ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:432.97KB ,
资源ID:5279138      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5279138.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计报告 学生成绩管理系统Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计报告 学生成绩管理系统Word格式文档下载.docx

1、浏览成绩退出模块四.详细设计1、主函数【分析】 将各个功能模块设置为菜单选项,方便调用,且执行完每部分功能模块后能够方便返回到系统界面.【流程图】: 开 始 显示一系列功能选项 N输入n,判断n是否是A-H间的字母 Y根据n的值调用各功能模块函数 结束【程序代码】:menu() /*主界面*/int w1; char n; /*.变量n保存选择菜单数字,w1判断输入的数字是否在功能菜单对应数字范围内*/ do puts(tt*菜单*nn);ttttA. 录入学生信息ttttB.修改学生记录ttttC.删除一个学生记录ttttD.登记成绩ttttE.修改成绩ttttF.浏览全班成绩ttttG.退

2、出 puts(nntt*n printf(操作选择(A-H): bb n=getchar();n if(nH) w1=1; /*对选择的数字作判断*/ else w1=0; while(w1=1); switch(n) /*选择功能*/ case :enter();break; /*输入模块*/ case B modify (); /*修改模块*/ case C delete (); /*删除模块*/D add(); /*登记成绩模块*/E modify_score (); /*修改成绩模块*/Fbrowse (); /*浏览模块*/Gexit (0); /*退出模块*/main() /*主函

3、数*/ menu();2、各功能模块设计(1) 输入模块【数据分析】:单看各数据信息,学号年龄以及数学英语物理各科成绩和总分均是整型,姓名可以采用字符型数组.数据信息存放在文件中,一条记录对应一个学生,既符合习惯也方便信息管理.把学生的学号姓名年龄各科成绩及总分作为结构体成员,存放若干个学生信息就用结构体数组.【流程图】:输入用户要输入学生记录的个数ni从0到n-1调用输入函数input(i)调用保存函数save(n)【程序代码】enter() /*输入模块*/int i,n;How many students(1-%d)?,N); scanf(%d,&n); /*要输入的记录个数*/nEnt

4、er data nownn for(i=0;in;i+)printf(n Input %dth student record.n,i+1); input(i); /*调用输入函数*/ if(i!=0) save(n); /*调用保存函数*/ printf_back(); /*一个任务结束时让用户选择是浏览还是返回*/(2)修改模块【分析】:该模块的功能是显示所有学生信息,考虑到记录很多,故采用分屏显示。显示完所有记录后,用户输入要修改学生的学号,根据学号查找学生记录,并提示用户修改该记录的哪部分信息,是学号、姓名、年龄或某科成绩、总分还是所有信息都修改,根据用户选择修改相应信息。返回主菜单YN

5、modify() /*修改模块*/ struct student s; FILE *fp; int i,n,k,w0=1,w1,w2=0; n=load(); k=-1;/*给用户看全部记录以便确认要修改的记录*/ printf_face(); /*调用显示数据结构项目函数*/ for(i=0; if(i!=0)&(i%10=0) /*目的是分屏显示*/ printf(nn请输入您要修改的学生编号(No.073101-).按任意键继续 . getch(); puts(nn printf_one(i); printf( donn请输入您要修改的学生编号(No.073101-)! NO.:0731

6、01- scanf(s.num); /*输入要修改的数据的学号*/ for(i=0;i+)/*查找要修改的数据*/ if(s.num=stui.num) k=i;/*找到要修改的记录*/ s=stui;/* 把stui备份给s,以便用户反悔时恢复*/ if(k=-1) printf(nn记录不存在,请重新输入! while(k=-1);/*当k=-1表示没有找到*/ printf_one(k);/*调用显示一个记录的函数*/ w1=modify_data(k,n);/*修改学生记录并且返回保存控制值w1,w1=1 则表示用户已确认修改*/ if(w1=1) /*确认修改*/n修改成功! _.n

7、n是否继续修改?nnt1.是2.返回并保存t bbw0); w2=1;/*来控制保存,使w2=1是标记已有过修改*/ else w0=0; /*结束*/ if(w2=1) stuk=s; /*没有修改,把备份的s恢复,使w0=0是为了让循环终止*/ if(w0!=1&w2=1) save(n);/*正常返回,且有过修改 */ while(w0=1);(3)删除模块该模块的功能是与修改模块一样先显示所有的学生信息,同样考虑到记录很多,采用分屏显示。显示完所有记录后,用户输入要删除学生的学号,根据学号查找学生记录并删除。删除一般的做法是将数据从文件中删除,删除位置后面的记录往前挪。显示所有记录,让

8、用户看哪个要删除输入要删除的学号是否找到此学生记录 N显示找到的记录 提示没有找到使stuk.sum=0继续删除?【程序代码】:delete() /*删除模块*/(i%10=0)/*分屏显示*/nn请输入您要删除的学生编号(No.073101-).按任意键继续.nn请输入您要删除的学生编号(No.073101-)!/*将要删除的记录备份给s */ printf(n确定删除?nnt1.是2.此次返回,但不保存 bb scanf(w1); if(w1=1) stuk.sum=0;/*标记为0后,保存时便不保存*/n成功删除! _.nn是否继续删除?/*确认删除*/ /* end */*正常返回且已

9、删除*/(4)登记成绩模块该模块的功能是用户需要增加新的学生记录, 请从键盘输入并逐条写到原来的输入文件中.调用加载函数n=load();并计算可以记录个数n输入用户要添加学生记录的个数mK=m+n i从n到k调用输入函数input(i)保存添加的记录add()/*登记成绩模块*/ int i,n,m,k;您要添加几个学生(1-%d)?,N-n);m); /*输入要添加的记录个数*/ k=m+n; for(i=n;k;n 请输入第%d个学生数据.n input(i);/*调用输入函数*/ if(fp=fopen(score.txt,ab)=NULL)/*以ab方式打开文件,添加保存*/不能打开

10、此文件.ni+)/*输出到文件*/ if(fwrite(&stui,sizeof(struct student),1,fp)!=1)文件写入错误.n fclose(fp); printf_back(); /*一个任务结束时的选择浏览还是返回*/(5)修改成绩模块该模块的功能是修改各科成绩或全体成绩。modify_score()/*修改成绩模块*/nn请输入您要修改成绩的学生编号(No.073101-)!.按任意键继续. /*输入要修改的学生学号*/* 将要修改的记录备份*/ if(k=-1) printf(nn记录不存在,请再次输入! w1=modify_score1(k);/*调用修改成绩函

11、数*/ _.nn是否继续修改成绩?nnt1.是2.保存并返回t bb/*确认修改*/*正常返回且已修改*/(6)浏览模块该模块的功能是显示所有学生记录信息。browse()/*浏览模块*/ int i,j,n;/*加载记录*/ printf_face();/*调用显示数据结构项目函数*/ if(i!(i%10=0) /*分屏显示*/nn按任意键继续 . getch(); puts( printf_one(i);t共有%d项记录.n,n);n按任意键返回. getch();/*按任意键*/3、一些公共函数下面是在每个模块中都有可能用到的一些公共函数。(1)保存函数save(int n)【说明】形

12、参n控制保存的个数。当stuk.sum=0表示删除,不保存该记录。save(int n) /*保存函数,保存n个记录*/ int i;wb)=NULL)/*以输出打开方式,在此前的记录被覆盖*/n不能打开此文件n return NULL; if(stui.sum!=0) /*stui.sum=0表示该记录已删除*/ if(fwrite(&文件写入错误n fclose(fp);(2)加载函数load()该函数可以用来加载所有记录,并且可以返回所有记录的个数。load()/*加载记录或可以计算记录个数的函数*/rb!feof(fp); fread(&stui,sizeof(struct stude

13、nt),1,fp); fclose(fp); return(i-1); /*返回记录个数*/(3)学号输入函数no_input(int i,int n)该函数对输入学号进行判断,确保输入的学号唯一。形参i表示第i个学生记录,形参n表示总共有n个学生记录。no_input(int i,int n) /*学号输入函数*/ int k,w1; w1=0;NO.:stui.num); if(stui.numN)/*判断学号是否在1到N之间*/输入错误! 学号只能在(1-N)之间.请重新输入! w1=1; if(w1! for(k=0;knn 1.数学 2.英语 3.物理 4.总分 5.取消并返回您需要

14、修改?/*输入选择作个判断*/c); if(c5|c1); switch(c)/*选择要修改的项目*/ case 1:数学:stui.Math); case 2:英语:stui.English); case 3:物理: case 4:enter_score(i);/*调用成绩输入函数*/ case 5:0&c5) sum(i);/*调用求总分函数*/n现在:/*修改后的记录让用户确认*/n确认修改?nnt1.是 2.否,重新修改 3.此次保存并返回 bb/*输入2表示重新修改*/ while(w1=2); return(w1);(8)修改记录函数modify_data(int i,int n)形参i表示第i个学生成绩记录,形参n表示有n个记录,此函数带回保存控制值w1,当w1=1时表示确认保存。modify_data(int i,int n)/*修改记录函数*/nn 1.编号 2.姓名 3.年龄 4.数学 5.英语 6.物理 7.总分 8.所有数据 9.取消并返回

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2