《C语言编写的简单学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C语言编写的简单学生成绩管理系统.doc(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C语言编写的简单学生成绩管理系统 C语言编写的简单学生成绩管理系统#include stdio.h#include stddef.h#include stdlib.h#include conio.h /*屏幕操作函数*/#include string.h#define MAX 10typedef struct studentchar nameMAX;char numMAX;char sexMAX;int age;int chinese;int mathematic;int english;float aver;struct student *next;stu;stu *head;void pr
2、int() /*输出菜单*/textcolor(RED); /*设置文本显示颜色为红色*/textbackground(GREEN); /*设置背景颜色为绿色*/window(1,1,80,10); /* 制作显示菜单的窗口*/clrscr();printf( n);printf( * welcome to use student manage *n);printf( * MENU *n);printf( * Enter Record ); /*录入信息*/printf( Statistics *n); /*显示成绩*/printf( * Quest ); /*查询*/printf( Upda
3、ta *n); /*修改*/printf( * Save ); /*保存到磁盘*/printf(Display *n); /*统计成绩*/printf( * Fresh ); /*刷新*/printf(Quit *n); /*退出系统*/printf( $ Maker: zhangwantong Class:045 Date:2007.01.12 $n);printf( n);void cin(stu *p1) /*录入学生信息 */ printf(Enter name:n);scanf(%s,p1-name);printf(Enter num:n);scanf(%s,p1-num);prin
4、tf(Enter sex:n);scanf(%s,&p1-sex);printf(Enter age:n);scanf(%d,&p1-age);printf(Enter score:n);printf(Enter chinese:n);scanf(%d,&p1-chinese);printf(Enter math:n);scanf(%d,&p1-mathematic);printf(Enter English:n);scanf(%d,&p1-english);p1-aver=(p1-chinese+p1-mathematic+p1-english)/3.0; /*平均分*/void cinda
5、ta() /*是否继续录入*/ stu *p1,*p2;int i=1;char ch;head=(stu *)malloc(sizeof(stu);p1=head; /*头指针*/while(i)cin(p1);printf(Do you Want to Continue?yes or no:);ch=getchar();ch=getchar();if(ch=n|ch=N) i=0;p1-next=NULL;else p2=p1;p1=(stu *)malloc(sizeof(stu);p2-next=p1;void lookdata(stu *p1) /*输出所有信息*/ printf(-
6、n);while(p1!=NULL) printf(Num:%s ,p1-num);printf(Name:%s ,p1-name);printf(Sex:%s ,p1-sex);printf(Age:%d ,p1-age);/* printf(n); */printf(Chinese:%d ,p1-chinese);printf(Math:%d ,p1-mathematic);printf(English:%d ,p1-english);printf(Average:%fn,p1-aver);printf(-n);p1=p1-next;printf(-n);/*已经完成的任务:1.录入保存磁
7、盘2.按姓名学号查询3.输出成绩表4.修改处理5.统计学生成绩*/void find1(stu *p2) /* 按姓名查找信息 */ char name20;int b=0;printf(Enter the name of the student you want to find:);scanf(%s,name);while(p2!=NULL)if(strcmp(name,p2-name)=0)printf(The data you want has be foundn);printf(-n);printf(Num:%st,p2-num);printf( Name:%st,p2-name);p
8、rintf(sex:%st,p2-sex);printf(age:%dt,p2-age);printf(n);printf(Chinese:%dt,p2-chinese);printf(Math:%dt,p2-mathematic);printf(English:%dt,p2-english);printf(Average:%fn,p2-aver);printf(*n);b=1;p2=p2-next;if(b=1)printf(Find onen);elseprintf(Not findn);void find2(stu *p2) /* 按学号查找信息 */ char numMAX;int b
9、=0;printf(Enter the num of the student you want to find:);scanf(%s,&num);while(p2!=NULL) if(strcmp(num,p2-num)=0) printf(The data you want has be foundn);printf(-n);printf(Num:%st,p2-num);printf( Name:%st,p2-name);printf(Sex:%st,p2-sex);printf(Age:%dt,p2-age);printf(n);printf(Chinese:%dt,p2-chinese)
10、;printf(Math:%dt,p2-mathematic);printf(English:%dt,p2-english);printf(Average:%fn,p2-aver);printf(*n);b=1;p2=p2-next;if(b=1)printf(Find onen);elseprintf(Not findn);void find() /*查询记录*/ int i;printf(Find with name Find with num Returnn);printf(Please Enter your choice:);scanf(%d,&i);switch(i) case 1:
11、find1(head);break;case 2:find2(head);break;case 3:return;void update1(stu *p2) /*按姓名修改*/char name10;int b=0;printf(Enter The Name:);scanf(%s,name);while(p2!=NULL) if(strcmp(name,p2-name)=0) printf(Find you data!n);printf(Enter the new name:);scanf(%s,p2-name);printf(Enter the num:);scanf(%s,p2-num);
12、printf(Enter the sex:);scanf(%s,p2-sex);printf(Enter the age:);scanf(%d,&p2-age);printf(Enter the chinese score:);scanf(%d,&p2-chinese);printf(Enter the math score:);scanf(%d,&p2-mathematic);printf(Enter the english score:);scanf(%d,&p2-english);p2-aver=p2-chinese+p2-mathematic+p2-english;printf(Suc
13、cess!n);b=1;p2=p2-next;if(b=0)printf(Sorry not Find data!n);elseprintf(Finish!n);void update2(stu *p2) /*按学号修改*/char numMAX;int b=0;printf(Enter The Num:);scanf(%s,&num);while(p2!=NULL) if(strcmp(num,p2-num)=0) printf(Find you data!n);printf(Enter the new name:);scanf(%s,p2-name);printf(Enter the nu
14、m:);scanf(%s,p2-num);printf(Enter the sex:);scanf(%s,p2-sex);printf(Enter the age:);scanf(%d,&p2-age);printf(Enter the chinese score:);scanf(%d,&p2-chinese);printf(Enter the math score:);scanf(%d,&p2-mathematic);printf(Enter the english score:);scanf(%d,&p2-english);p2-aver=(p2-chinese+p2-mathematic
15、+p2-english)/3.0;printf(Success!n);b=1;p2=p2-next;if(b=0)printf(Sorry not Find data!n);elseprintf(Finish!n);void update() /*修改记录*/ int i;printf(Updata with name Updata with num Returnn);printf(Please Enter your choice:);scanf(%d,&i);switch(i) case 1:update1(head);break;case 2:update2(head);break;cas
16、e 3:return;void saved(stu *p2) /*保存到磁盘student.dat文件中*/FILE *fp;char file16=c:student.dat;char file1=num-name-sex-age-chinese-math-english-avern;if(fp=fopen(file,wt)=NULL) printf(nCannot open the file !n);return;fprintf(fp,%s,file1);while(p2!=NULL) fprintf(fp,%s-,p2-num);fprintf(fp,%s-,p2-name);fprin
17、tf(fp,%s-,p2-sex);fprintf(fp,%d-,p2-age);fprintf(fp,%d-,p2-chinese);fprintf(fp,%d-,p2-mathematic);fprintf(fp,%d-,p2-english);fprintf(fp,%fn,p2-aver);p2=p2-next;fclose(fp);printf(Saved successed!);void statistics(stu *p2) /*统计学生成绩*/ FILE *fp,*fp1;char file16=c:stufile.dat,file116=c:stugood.dat;if(fp=
18、fopen(file,wt)=NULL) printf(nCannot open the file !n);return;if(fp1=fopen(file1,wt)=NULL) printf(nCannot open the file !n);return;while(p2!=NULL) if(p2-chineseenglishmathematicnum);fprintf(fp,%s-,p2-name);fprintf(fp,%s-,p2-sex);fprintf(fp,%d-,p2-age);fprintf(fp,%d-,p2-chinese);fprintf(fp,%d-,p2-math
19、ematic);fprintf(fp,%d-,p2-english);fprintf(fp,%fn,p2-aver);p2=p2-next;else if(p2-chinese=90)&(p2-english=90)&(p2-mathematic=90) fprintf(fp1,%s-,p2-num);fprintf(fp1,%s-,p2-name);fprintf(fp1,%s-,p2-sex);fprintf(fp1,%d-,p2-age);fprintf(fp1,%d-,p2-chinese);fprintf(fp1,%d-,p2-mathematic);fprintf(fp1,%d-,
20、p2-english);fprintf(fp1,%fn,p2-aver);p2=p2-next;elsep2=p2-next;fclose(fp);fclose(fp1);printf(Saved successed!);void print1() system(cls); /*去除整个屏幕*/void display2() /*显示不及格记录*/ FILE *fp;if(fp=fopen(c:STUFILE.DAT,r)=NULL) printf(Cannot open the file!);return;while(!feof(fp) putchar(fgetc(fp);printf(bS
21、uccess!n);void display3() /*显示90分以上同学的记录*/ FILE *fp;if(fp=fopen(c:STUGOOD.DAT,r)=NULL) printf(Cannot open the file!);return;while(!feof(fp) putchar(fgetc(fp);printf(bSuccess!n);void display() /*显示记录*/ int i;printf(Display All Display Good Display Flunkn);printf(Plasce Enter your choice:);scanf(%d,&i
22、);switch(i) case 1:lookdata(head);break;case 2:display3();break;case 3:display2();break;void interface() /*启动界面*/ clrscr();window(20, 5, 60, 15);textattr(BLUE+(LIGHTGRAY4);clrscr();cputs(nn Welcome to use student manage system! );cputs( Maker: zhangwantong );cputs( Class: 04-5 );cputs( Date : 2007.0
23、1.13 );cputs( Edit : V1.0 );cputs( Press ENTER key .);while(getchar()!=n) ;return;void interface2() /*退出界面*/ print1();window(20, 5, 60, 15);textattr(128+BLUE+(LIGHTGRAY4);clrscr();cputs(nn & Thanks for you used! & n);cputs( Maker: zhangwantong );cputs( Class: 04-5 );cputs( Date : 2007.01.13 );cputs(
24、 Edit : V1.0 );cputs( Press ENTER key .);while(getchar()!=n) ;return;void main() int choice;int i;stu *p2;interface();print1();print();while(1)printf(Enter your choice:);scanf(%d,&i);while(i8) printf(Enter num from 1 to 8:n);printf(Enter your choice:);scanf(%d,&i);switch(i) case 1:cindata();break;case 2:statistics(head);break;case 3:find();break;case 4:update();break;case 5:saved(head);break;case 6:display();break;case 7:print1();print();break;case 8:interface2();exit(1);break; printf(Input ENTER to continue:);getchar();while(getchar()!=n) ;system(cls);print();