![C语言课程设计报告学生成绩管理系统[1].doc_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/27debd4a-5364-4c64-a026-6ece261e5ae3/27debd4a-5364-4c64-a026-6ece261e5ae31.gif)
![C语言课程设计报告学生成绩管理系统[1].doc_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/27debd4a-5364-4c64-a026-6ece261e5ae3/27debd4a-5364-4c64-a026-6ece261e5ae32.gif)
![C语言课程设计报告学生成绩管理系统[1].doc_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/27debd4a-5364-4c64-a026-6ece261e5ae3/27debd4a-5364-4c64-a026-6ece261e5ae33.gif)
![C语言课程设计报告学生成绩管理系统[1].doc_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/27debd4a-5364-4c64-a026-6ece261e5ae3/27debd4a-5364-4c64-a026-6ece261e5ae34.gif)
![C语言课程设计报告学生成绩管理系统[1].doc_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-9/23/27debd4a-5364-4c64-a026-6ece261e5ae3/27debd4a-5364-4c64-a026-6ece261e5ae35.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C 语言课程设计报告一、组员信息。组长:岳英明(信科092 班学号 0909281074)负责构思程序的大体算法,流程图,编写代码,检查错误。成员:孟琼瑶(信科092 班学号 0909281075)主要编写代码,查资料,界面设计。二、设计目的进一步加深、巩固学生所学专业课程( C语言)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。掌握运用C 语言独立地编写、调试应用程序和进行其它相关设计的技能。三、成绩管理系统主要功能1. 输入记录2. 用指定格式显示全部记录3. 根据姓名查找记录4. 根据姓名删除记录5. 保存记录到文件6. 按序号显示记录7. 按姓名由小到大的顺
2、序排序四、系统流程图开始输出界面选择操作学号选择 1输入数据姓名三门成绩选择 2显示数据选择 3排序按景平均成绩选择 4删除按学号选择 5查询按姓名选择 6插入数据按平均成绩高低选择 7保存数据选择 8读取数据选择 8退出系统结束五、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下:-欢迎进入学生成绩管理系统- 制作者 : 武汉纺织大学理学院信科092班岳英明* *主菜单 * *1.登记学生资料2.删除学生资料3.查找学生资料4.修改学生资料5.保存学生资料6.退出系统*六、程序代码#include stdio.h#include stdlib.h#include string.h
3、int shoudsave=0; /* */struct studentchar num10;/*学号*/char name20;char sex4;int cgrade;int mgrade;int egrade;int totle;int ave;char neartime10;/*最近更新时间*/;typedef struct nodestruct student data;struct node *next;Node,*Link;void menu()printf(*主菜单*);printf(t1 登记学生资料 ttttt2 删除学生资料 n); printf(t3 查询学生资料 tt
4、ttt4 修改学生资料 n); printf(t5 保存学生资料 ttttt0 退出系统 n); printf(*n);void printstart()printf(-n);void Wrong()printf(n= 提示 :输入错误 !n);void Nofind()printf(n= 提示 :没有找到该学生!n);void printc() /*本函数用于输出中文*/printf(学号 t姓名性别英语成绩数学成绩C 语言成绩总分平均分n);void printe(Node *p)/*本函数用于输出英文*/printf(%-12s%st%st%dt%dt%dt %dt %dn,p-data
5、.num,,p-data.sex,p-data. egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data.ave);Node* Locate(Link l,char findmess,char nameornum) /* 该函数用于定位连表中符合要求的接点,并返回该指针 */Node *r;if(strcmp(nameornum,num)=0) /*按学号查询*/r=l-next;while(r!=NULL)if(strcmp(r-data.num,findmess)=0)return r;r=r-next;else
6、if(strcmp(nameornum,name)=0) /*按姓名查询*/r=l-next;while(r!=NULL)if(strcmp(,findmess)=0)return r;r=r-next;return 0;void Add(Link l) /*增加学生*/Node *p,*r,*s;char num10;r=l;s=l-next;while(r-next!=NULL)r=r-next; /*将指针置于最末尾*/while(1)printf( 请你输入学号(以 0返回上一级菜单:);scanf(%s,num);if(strcmp(num,0)=0)break
7、;while(s)if(strcmp(s-data.num,num)=0)printf(=提示 :学号为 %s的学生已经存在,若要修改请你选择4 修改 !n,num);printstart();printc();printe(s);printstart();printf(n);return;s=s-next;p=(Node *)malloc(sizeof(Node);strcpy(p-data.num,num);printf( 请你输入姓名:);scanf(%s,);getchar();printf( 请你输入性别:);scanf(%s,p-data.sex);getch
8、ar();printf( 请你输入c 语言成绩 :);scanf(%d,&p-data.cgrade);getchar();printf( 请你输入数学成绩:);scanf(%d,&p-data.mgrade);getchar();printf( 请你输入英语成绩:);scanf(%d,&p-data.egrade);getchar();p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade; p-data.ave=p-data.totle / 3;/*信息输入已经完成*/p-next=NULL;r-next=p;r=p;shoudsave
9、=1;void Qur(Link l) /*查询学生*/int sel;char findmess20;Node *p;if(!l-next)printf(n= 提示 :没有资料可以查询!n);return;printf(n=1按学号查找 n=2 按姓名查找 n);scanf(%d,&sel);if(sel=1)/*学号*/printf( 请你输入要查找的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)printf(tttt查找结果 n);printstart();printc();printe(p);printstart();els
10、eNofind();else if(sel=2) /*姓名*/printf( 请你输入要查找的姓名:);scanf(%s,findmess);p=Locate(l,findmess,name);if(p)printf(tttt查找结果 n);printstart();printc();printe(p);printstart();elseNofind();elseWrong();void Del(Link l) /*删除 */int sel;Node *p,*r;char findmess20;if(!l-next)printf(n= 提示 :没有资料可以删除!n);return;printf
11、(n=1 按学号删除 n=2 按姓名删除 n); scanf(%d,&sel);if(sel=1)printf( 请你输入要删除的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n= 提示 :该学生已经成功删除!n);shoudsave=1;elseNofind();else if(sel=2)printf( 请你输入要删除的姓名:);scanf(%s,findmess);p=Locate(l,findmess,name
12、);if(p)r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(n= 提示 :该学生已经成功删除!n);shoudsave=1;elseNofind();elseWrong();void Modify(Link l)Node *p;char findmess20;if(!l-next)printf(n= 提示 :没有资料可以修改!n);return;printf( 请你输入要修改的学生学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p)printf( 请你输入新学号(原来是
13、 %s):,p-data.num);scanf(%s,p-data.num);printf( 请你输入新姓名(原来是 %s):,);scanf(%s,);getchar();printf( 请你输入新性别(原来是 %s):,p-data.sex);scanf(%s,p-data.sex);printf( 请你输入新的c 语言成绩 (原来是 %d 分 ):,p-data.cgrade);scanf(%d,&p-data.cgrade);getchar();printf( 请你输入新的数学成绩(原来是 %d 分 ):,p-data.mgrade);sca
14、nf(%d,&p-data.mgrade);getchar();printf( 请你输入新的英语成绩(原来是 %d 分 ):,p-data.egrade);scanf(%d,&p-data.egrade);p-data.totle=p-data.egrade+p-data.cgrade+p-data.mgrade;p-data.ave=p-data.totle/3;printf(n= 提示 :资料修改成功 !n);shoudsave=1;elseNofind();void Disp(Link l)int count=0;Node *p;p=l-next;if(!p)printf(n= 提示 :
15、没有资料可以显示!n);return;printf(tttt显示结果 n);printstart();printc();printf(n);while(p)printe(p);p=p-next;printstart();printf(n);void Tongji(Link l)Node *pm,*pe,*pc,*pt,*pa; /*用于指向分数最高的接点*/Node *r=l-next;if(!r)printf(n= 提示 :没有资料可以统计!n);return ;pm=pe=pc=pt=pa=r;while(r!=NULL)if(r-data.cgrade=pc-data.cgrade)pc
16、=r;if(r-data.mgrade=pm-data.mgrade)pm=r;if(r-data.egrade=pe-data.egrade)pe=r;if(r-data.totle=pt-data.totle)pt=r;if(r-data.ave=pa-data.ave)pa=r;r=r-next;printf(-统计结果 -n);printf( 总分最高者 :t%s %d 分 n,,pt-data.totle); printf( 平均分最高者 :t%s %d 分 n,,pa-data.ave);printf( 英语最高者 :t%s %d 分
17、 n,,pe-data.egrade); printf( 数学最高者 :t%s %d 分 n,,pm-data.mgrade); printf(c 语言最高者 :t%s %d 分 n,,pc-data.cgrade); printstart();void Sort(Link l)Link ll;Node *p,*rr,*s;ll=(Link)malloc(sizeof(Node); /*用于做新的连表*/ll-next=NULL;if(l-next=NULL)printf(n= 提示 :没有资料可以排序!n);return
18、 ;p=l-next;while(p)s=(Node*)malloc(sizeof(Node); /*新建接点用于保存信息*/s-data=p-data;s-next=NULL;rr=ll;while(rr-next!=NULL & rr-next-data.totle=p-data.totle)rr=rr-next;if(rr-next=NULL)rr-next=s;elses-next=rr-next;rr-next=s;p=p-next;free(l);l-next=ll-next;printf(n= 提示 :排序已经完成 !n);void Save(Link l)FILE* fp;No
19、de *p;int flag=1,count=0;fp=fopen(c:student,wb);if(fp=NULL)printf(n= 提示 :重新打开文件时发生错误!n);exit(1);p=l-next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;elseflag=0;break;if(flag)printf(n= 提示 :文件保存成功 .( 有%d 条记录已经保存 .)n,count); shoudsave=0;fclose(fp);void main()Link l;/*连表*/FILE *fp; /*文件指针*/
20、int sel;char ch;char jian;int count=0;Node *p,*r;printf(nt欢迎进入 ntttt学生成绩管理系统nntttt- 作者:成都航空职业技术学院60933 班 n);l=(Node*)malloc(sizeof(Node);l-next=NULL;r=l;fp=fopen(C:student,rb);if(fp=NULL)printf(n= 提示 :文件还不存在,是否创建?(y/n)n);scanf(%c,&jian);if(jian=y|jian=Y)fp=fopen(C:student,wb);elseexit(0);printf(n= 提
21、示 :文件已经打开 ,正在导入记录.n);while(!feof(fp)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeof(Node),1,fp) /*将文件的内容放入接点中*/p-next=NULL;r-next=p;r=p; /*将该接点挂入连中*/count+;fclose(fp); /*关闭文件*/printf(n= 提示 :记录导入完毕 ,共导入 %d 条记录 .n,count);while(1)menu();printf( 请你选择操作:);scanf(%d,&sel);if(sel=0)if(shoudsave=1) getchar();printf(n= 提示 :资料已经改动 ,是否将改动保存到文件中scanf(%c,&ch);if(ch=y|ch=Y)Save(l);printf(n= 提示 :你已经退出系统,再见 !n);break;switch(sel)case 1:Add(l)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025户外广告设计合同范本
- 2025版长期供货合同书(官方版)
- 关于-工程方案的批复(3篇)
- 2025年铸造 模拟试题及答案
- 2025年高新小学考试题目及答案
- 城市空中交通系统规划与低空交通产业发展策略报告
- 2025年连线体试题及答案
- 2025【合同范本】企业短期用工合同
- 工程业务上门宣传方案(3篇)
- 2025铝材买卖(订货)合同(深圳示范文本)
- 2025年中国电信集团招聘考试试题及答案全收录
- 成都市新都区部分单位2025年8月公开招聘编外(聘用)人员(三)(20人)备考练习试题及答案解析
- 人教PEP版(一起)(2024)一年级上册英语全册教案
- 租户消防安全知识培训课件
- 2025广东汕尾市海丰县纪委监委招聘政府聘员6人笔试模拟试题及答案解析
- 《食堂食品安全管理制度》知识培训
- 《大学生就业指导》课件第六章 就业权益与法律保障
- 2025年事业单位招聘工作人员考试笔试试题(含答案)
- 浙江爱生药业有限公司新增年产12亿单位药品制剂自动生产检测线升级技术改造项目环评报告
- 非财务人员财务基础知识培训
- 2025年律师培训试题(含答案)
评论
0/150
提交评论