C語言課程設計(上)
學生信息管理系統
題目:
新生入學,需要管理學生信息,要求如下:
- 能夠通過鍵盤進行輸入學生的信息,比如:學生姓名,學號,性別,班級,專業,入學成績;
- 能夠通過鍵盤輸入要錄入的學生的個數;
- 能夠增加學生;
- 能夠刪除某一個或多個學生的所有信息;
- 能夠進行查找某個學生的所有信息;
- 能夠進行修改學生的信息;
- 能夠將學生的信息保存到文件中,並且可以將文件中的學生信息讀出;
- 能夠實現註冊賬號,密碼,並且能夠實現登錄…
代碼如下;
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<string.h>
#include<conio.h>
#include<time.h>
struct student//先定義一個結構體數組
{
int num;
char name[20];
int score;
int banji;
char xibie[20];
struct student *next;//一個結構體指針
};
void insert(struct student *head)//輸入學生信息
{
FILE *fp;//將學生信息直接寫到文件中
int n;
fp=fopen("D:\\wenjian.txt","w");
struct student *l=head;
struct student *p=head->next;//使用鏈表## 標題
printf("請輸入你要輸入的學生的個數:");
scanf("%d",&n);
printf("\n");
for(int i=1;i<=n;i++)
{
{
struct student *p=(struct student *)malloc(sizeof(struct student));
printf("請輸入該生的學號:");
scanf("%d",&p->num);
printf("請輸入該生的姓名:");
scanf("%s",p->name);
printf("請輸入該生的成績:");
scanf("%d",&p->score);
printf("請輸入該生的班級:");
scanf("%d",&p->banji);
printf("請輸入該生的系別:");
scanf("%s",p->xibie);
printf("\n\n");
p->next=NULL;
l->next=p;
l=l->next;
}
p=head->next;//返回頭
{
fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
fputs("\n",fp);
}
}
fclose(fp);
system("cls");
printf(" 輸入完成!\n\n");
}
void add(struct student *head)//添加學生信息
{
FILE *fp;
int n;
fp=fopen("D:\\wenjian.txt","a+");
struct student *l=head;
while(l->next)
l=l->next;
printf("請輸入你要添加的學生的個數:");
scanf("%d",&n);
printf("\n");
for(int i=1;i<=n;i++)
{
struct student *p=(struct student *)malloc(sizeof(struct student));
printf("請輸入該生的學號:");
scanf("%d",&p->num);
printf("請輸入該生的姓名:");
scanf("%s",p->name);
printf("請輸入該生的成績:");
scanf("%d",&p->score);
printf("請輸入該生的班級:");
scanf("%d",&p->banji);
printf("請輸入該生的系別:");
scanf("%s",p->xibie);
printf("\n\n");
p->next=NULL;
l->next=p;
l=l->next;
}
l=head->next;
fclose(fp);
fp=fopen("D:\\wenjian.txt","w");
while(l!=NULL)
{
fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",l->num,l->name,l->score,l->banji,l->xibie);
fputs("\n",fp);
l=l->next;
}
fclose(fp);
system("cls");
printf(" 添加完成!\n\n");
}
void daoru(struct student *head)//將文件導入鏈表
{
struct student *p=head;
FILE *fp;
int n;
if((fp=fopen("D:\\wenjian.txt","r"))==NULL)
{
printf("文件打開失敗!\n");
exit(0);
}
else
{
for(n=0;!feof(fp);n++)
{
struct student *q=(struct student *)malloc(sizeof(struct student));
fscanf(fp,"%d\t%s\t%d\t%d\t%s\n",&q->num,q->name,&q->score,&q->banji,q->xibie);
q->next=NULL;
p->next=q;
p=p->next;
}
}
fclose(fp);
system("cls");
}
void xianshi(struct student *head)//顯示學生信息
{
struct student *p=head;
printf("************************************************************************************************************\n");
printf("************************************************************************************************************\n");
printf("************************ 學號 *** 姓名 *** 成績 *** 班級 *** 系別 ************\n");
while(p->next!=NULL)
{
printf("************************ %d *** %s *** %d *** %d *** %s ************\n",p->next->num,p->next->name,p->next->score,p->next->banji,p->next->xibie);
p=p->next;
}
printf("************************************************************************************************************\n");
printf("************************************************************************************************************\n\n\n");
}
void delet_num(struct student *head)//通過學號進行刪除
{
struct student *p=head;
FILE *fp;
int ch;
if((fp=fopen("D:\\wenjian.txt","r"))==NULL)
{
printf("文件打開失敗!\n");
exit(0);
}
else
{
int num2;
int n=0;
printf("請輸入你要刪除的學號:");
scanf("%d",&num2);
while(p->next!=NULL)
{
if(p->next->num==num2)
{
struct student *q;
q=p->next;
p->next=q->next;
free(q);
printf("刪除成功!\n\n");
n++;
}
p=p->next;
}
if(n==0)
{
printf("沒有找到該學號!\n\n");
}
}
fclose(fp);
fp=fopen("D:\\wenjian.txt","w");
p=head->next;
while(p!=NULL)
{
fprintf(fp,"%d\t%s\t%d\t%d\t%s\t",p->num,p->name,p->score,p->banji,p->xibie);
fputs("\n",fp);
p=p->next;
}
fclose(fp);
printf("\n");
}
本代碼未寫完,請看下一篇…
具體代碼可以訪問:
複製這段內容後打開百度網盤手機App,操作更方便哦 鏈接:https://pan.baidu.com/s/1SrdDdMoNiyP7srfCHIL3mA 提取碼:50xy
謝謝!!!