学生成绩管理系统C语言源码_第1页
学生成绩管理系统C语言源码_第2页
学生成绩管理系统C语言源码_第3页
学生成绩管理系统C语言源码_第4页
学生成绩管理系统C语言源码_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>#include<stdlib.h>#include<string.h>#include<time.h>#define n 1000 /*链表导入数组的长度,可以说是记录数*/ #define len sizeof(struct student) /*用len代替结构体的长度*/ #define iform "%s%s%d%d%d%d%d" /*输入数据的格式*/ #define iform2 p1->number,p1->name,&p1->grade0,&

2、p1->grade1,&p1->grade2,&p1->grade3,&p1->grade4 /*输入数据存放到链表的格式*/ #define oform "%s %s %d %d %d %d %d" /*将数据输出到文件的格式*/ #define oform1 "%-10s %-6s %-4d %-4d %-4d %-4d %-4d"/*将数据打印到屏幕上的格式*/ #define oform2 p1->number,p1->name,p1->grade0,p1->grade1,p

3、1->grade2,p1->grade3,p1->grade4 /*输出引用结构体得格式*/ #define sinfo "请输入学号、姓名、大学英语、高等数学、线性代数、政治、计算机导论n" /*输入数据的提示符*/ #define sinfo2 "学号t 姓名 大学英语 高等数学 线性代数 政治 计算机导论n" /*打印在屏幕上的各数据项的属性*/struct student char number12; char name10; int grade5; struct student * next; /*定义存放学生基本信息的结构体

4、*/ file *fp; /*定义文件的指针*/ int open=0; /*用于表示是否有文件处于打开状态*/ struct student * head; /*定义链表的头*/ struct student * p1,* p2; /*定义用于链表输入输出的两个变量*/ char name100,ch; /*name用于存放打开的文件名,ch用于销毁回车符。*/ struct tm *ptr; /*定义时间的 结构体变量*/ time_t t; /*定义时间的变量*/ int main() int snew(void); int squery(void); int sinsert(void)

5、; int sdelete(void); int sinput(void); int soutput(void); int sclear(void); int salter(void); int sorder(void); int choose; int i; printf("nn-nn"); printf(" 欢 迎 使 用 学 生 成 绩 管 理 系 统 ! "); printf("nn-nn"); printf("ntt正 在 加 载 程 序 ,请 稍 等n"); printf("tt-ntt&qu

6、ot;); for(i=0;i<2000000000;i+) if(i%40000000=0) printf(">"); system("cls"); printf("nn-nn"); printf(" 欢 迎 使 用 学 生 成 绩 管 理 系 统 ! "); printf("nn-nn"); printf("ntt程 序 加 载 完 成 !n"); printf("tt-n"); printf("tt>>>>

7、;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>nn"); system("pause"); system("cls"); printf("nnttt 学 生 成 绩 管 理 系 统nn"); if(open

8、=1) printf("当前被打开的文件为:%s ",name); else printf("暂无文件被打开 ");t = time(null); ptr = gmtime(&t); printf(ctime(&t);printf("-n"); printf(" 1、新建t 2、查询t 3、插入t 4、删除t5、 修改nn"); printf(" 6、导入t 7、导出t 8、清空t 9、排序t10、退出nn");printf("-n");printf(&quo

9、t;请选择相应操作: "); while(scanf("%d",&choose)!=eof) switch(choose) case 1: snew(); break; case 2: squery(); break; case 3: sinsert(); break; case 4: sdelete(); break; case 5: salter(); break; case 6: sinput(); break; case 7: soutput(); break; case 8: sclear(); break; case 9: sorder();

10、break; case 10: system("cls"); printf("nn-nn"); printf(" 谢 谢 使 用 ! "); printf("nn-nn"); system("pause"); exit(0); default : ch=getchar(); system("cls"); printf("nnttt 学 生 成 绩 管 理 系 统nn"); if(open=1) printf("当前被打开的文件为:%-35s&qu

11、ot;,name); else printf("暂无文件被打开 "); t = time(null); ptr = gmtime(&t); printf(ctime(&t); printf("-n"); printf(" 1、新建t 2、查询t 3、插入t 4、删除t5、 修改nn"); printf(" 6、导入t 7、导出t 8、清空t 9、排序t10、退出nn"); printf("-n"); printf("请选择相应操作: "); choose=12

12、; return 0; int snew()int n=0,exit=1;char temp;system("cls");printf("n学生成绩查询系统新建n-nn");if(open=1) printf("是否关闭当前文件(%s)?(y/n)n",name);ch=getchar();scanf("%c",&temp);while(temp!='y' && temp!='n' && temp!='y' &&

13、 temp!='n') system("cls"); printf("n学生成绩查询系统 新建n-nn"); printf("输入错误!请重新输入n"); printf("是否关闭当前文件(%s)?(y/n)n",name); ch=getchar(); scanf("%c",&temp); if(temp='y' | temp='y') fclose(fp);open=0;if(temp='n' | temp='n

14、') return 1;if(open=0) system("cls"); while(ch=getchar()!='n' && ch!=eof); printf("n学生成绩查询系统 新建n-nn");printf("请输入新建文件的名称及路径(如 d:abc.txt):n");while(scanf("%s",name)!=eof) fp=fopen(name,"w+"); open=1; system("cls"); printf

15、("n学生成绩查询系统新建录入数据n-nn"); head=null; printf("是否录入数据?是(1)、否(0)n"); scanf("%d",&exit); while(exit=1) n+; if(n=1) p1=p2=(struct student *)malloc(len);head=p1; else p1=(struct student *)malloc(len);p2->next =p1;p2=p1; system("cls"); printf("n学生成绩查询系统新建录

16、入数据n-nn"); printf(sinfo); while(scanf(iform,iform2)!=7) system("cls"); printf("n学生成绩查询系统新建录入数据n-nn"); printf("输入错误!,请重新输入n"); printf(sinfo); printf("录入的数据为:n"); printf(oform,oform2); while(ch=getchar()!='n' && ch!=eof); printf("n是否继续录

17、入数据?是(1)、否(0)n"); scanf("%d",&exit); system("cls"); printf("n学生成绩查询系统新建录入数据n-nn"); if(n>0) p2->next =null; n=0; p1=head; while(p1!=null) n+; if(n>1) fprintf(fp,"n"); fprintf(fp,oform,oform2); p1=p1->next ; fclose(fp); fp=fopen(name,"r

18、+"); system("cls"); printf("n学生成绩查询系统新建n-nn"); printf("新建文件成功!nn"); printf("文件名为:%sn",name); system("pause");break; int squery()int choose,back=1,exit=0,success=0;int choose2,choose3,yes;char num12;system("cls");printf("n学生成绩查询系统查

19、询n-nn");if(open=0)printf("没有打开的文件!请先导入或新建一个文件n");system("pause");return 1;if(open=1)printf("请选择查询条件:n");printf("1、浏览文件t2、学号查询t 3、姓名查询n");printf("4、成绩查询t5、退出查询n");while(ch=getchar()!='n' && ch!=eof);while(scanf("%d",&

20、;choose)!=eof) switch(choose) case 1: system("cls"); printf("n学生成绩查询系统查询浏览文件n-nn"); fclose(fp); fp=fopen(name,"r+"); p1=head; printf(sinfo2); while(p1!=null) printf(oform1,oform2); printf("n"); p1=p1->next ; system("pause");break; case 2: system(&

21、quot;cls"); printf("n学生成绩查询系统查询学号查询n-nn"); printf("请输入需要查询的学号:n"); if(scanf("%s",num)=eof) strcpy(num,"fdsafga"); system("cls"); printf("n学生成绩查询系统查询学号查询查询结果n-nn"); fclose(fp); fp=fopen(name,"r+"); p1=head; printf(sinfo2); whi

22、le(p1!=null) if(strcmp(num,p1->number)=0) printf(oform1,oform2); printf("n"); success=1; p1=p1->next ; if(success=0) printf("无记录!n"); success=0; system("pause");break; case 3: system("cls"); printf("n学生成绩查询系统查询姓名查询n-nn"); printf("请输入需要查询的姓

23、名:n"); if(scanf("%s",num)=eof) strcpy(num,"fdsafga"); system("cls"); printf("n学生成绩查询系统查询姓名查询查询结果n-nn"); fclose(fp); fp=fopen(name,"r+"); p1=head; printf(sinfo2); while(p1!=null) if(strcmp(num,p1->name)=0) printf(oform1,oform2); printf("n

24、"); success=1; p1=p1->next ; if(success=0) printf("无记录!n"); success=0; system("pause");break; case 4: system("cls"); printf("n学生成绩查询系统查询成绩查询科目选择n-nn"); printf("请选择查询的科目:n"); printf("1、大学英语t2、高等数学 t3、线性代数n"); printf("4、政治 t5、计算机

25、导论n"); while(ch=getchar()!='n' && ch!=eof); while(scanf("%d",&choose2)=eof) system("cls"); printf("n学生成绩查询系统查询成绩查询科目选择n-nn"); printf("选择错误!请重新选择n"); printf("1、大学英语t2、高等数学 t3、线性代数n"); printf("4、政治 t5、计算机导论n"); system

26、("cls"); printf("n学生成绩查询系统查询成绩查询分数选择n-nn"); printf("请选择查询条件:n"); printf("1、 <60分 t2、6070分t3、7080分n"); printf("4、8090分t5、90100分n"); while(scanf("%d",&choose3)=eof) system("cls"); printf("n学生成绩查询系统查询成绩查询分数选择n-nn");

27、printf("选择错误!请重新选择n"); printf("1、 <60分 t2、6070分t3、7080分n"); printf("4、8090分t5、90100分n"); if(choose2>=1 && choose2<=5 && choose3>=1 && choose3<=5) system("cls"); printf("n学生成绩查询系统查询成绩查询查询结果n-nn"); p1=head; printf

28、(sinfo2); while(p1!=null) switch(choose3) case 1: yes=(p1->gradechoose2-1<60);break; case 2: yes=(p1->gradechoose2-1>=60 && p1->gradechoose2-1<70); break; case 3: yes=(p1->gradechoose2-1>=70 && p1->gradechoose2-1<80); break; case 4: yes=(p1->gradechoo

29、se2-1>=80 && p1->gradechoose2-1<90); break; case 5: yes=(p1->gradechoose2-1>=90 && p1->gradechoose2-1<=100); break; if(yes=1) printf(oform1,oform2); printf("n"); success=1; p1=p1->next ; if(success=0) printf("无记录!n"); success=0; else printf

30、("输入错误!n"); system("pause");break; case 5: exit=1;break; default : ch=getchar(); back=0; if(exit=1) break; system("cls"); printf("n学生成绩查询系统查询n-nn"); printf("请选择查询条件:n"); printf("1、浏览文件t2、学号查询t3、姓名查询n"); printf("4、成绩查询t5、退出查询n"); c

31、hoose=6; return back;int sinsert() int back,choose,success=0,n=0; int exit=0; char num12; system("cls"); printf("n学生成绩查询系统插入n-nn"); if(open=0)printf("没有打开的文件!请先导入或新建一个文件n");system("pause");return 1;if(open=1) printf("请选择插入的方式:n"); printf("1、首记录前

32、t2、某记录后t3、末记录后t4、退出n"); while(ch=getchar()!='n' && ch!=eof); while(scanf("%d",&choose)!=eof) switch(choose) case 1: system("cls"); printf("n学生成绩查询系统插入首记录前插入n-nn"); printf("请输入数据:n"); printf(sinfo); p1=(struct student *)malloc(len); whi

33、le(scanf(iform,iform2)!=7) system("cls"); printf("n学生成绩查询系统插入首记录前插入n-nn"); printf("输入错误!,请重新输入n"); printf(sinfo); p1->next=head; head=p1; system("cls"); printf("n学生成绩查询系统插入首记录前插入n-nn"); printf("插入成功n"); fclose(fp); fp=fopen(name,"w+"); p1=head; while(p1!=null) n+; if(n>1) fprintf(fp,"n"); fprintf(fp,oform,oform2); p1=p1->next ; fclose(fp); fp=fopen(name,"r+"); n=0; system("pause");break; case 2: system("cls"); printf("n学生成绩查询系统插入指定记录后插入n-nn"); printf(&qu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论