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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(学生成绩管理系统含附源代码09.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统含附源代码09.docx

1、学生成绩管理系统含附源代码09西安郵電學院软件设计课程设计报告题 目:学生成绩管理系统 系部名称:电信系专业名称:电子科学与技术班 级:科技0701学号:05072009学生姓名 :梁玉婷指导教师:黄茹时间:2008年6月9日 至2008年6月20日 实验题目:学生成绩管理系统一、 课程设计目的1、 进一步掌握和利用C语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告); 二、课程设计内容1、每一条记

2、录包括一个学生的学号、姓名、性别、4门课成绩、平均成绩。2、输入功能:可以一次完成若干条记录的输入。3、输出功能:完成全部学生记录的显示。4、查找功能:完成按姓名查找学生记录,并显示。5、新增功能:完成对任意学生信息的增加。6、删除功能:完成对任意学生信息的删除。7、统计功能:完成对学生四门成绩最高分、最低分、平均成绩的统计。8、排序功能:完成学生四门成绩由高到低的排序,并显示。9、将学生记录存在文件student中。10、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观! 三、需求分析1、 用C语言实现系统;2、 利用结构体数组实现学生成绩的数据结构设计;3、 系统

3、具有增加,查询,插入,排序等基本功能;4、 系统的各个功能模块要求用函数的形式实现;5、 完成设计任务并书写课程设计报告。6、 将学生成绩信息存在文件中。四、概要设计1、方案设计对系统进行分析,给出结构图 分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下: 统计语文最高分、最低分、平均成绩2、模块功能说明对各个模块进行功能的描述(1)、输入模块:录入需要管理的学生信息并将信息保存于文件中,以方便日后进行打印、读取、修改等操作。(2)、输出模块:将所有学生信息或想要查询的学生信息显示于屏幕,用于打印

4、学生信息或查找某些学生信息。(3)、查询模块:可对已建立的学生信息进行查询,并且可根据需要选择按姓名查询。(4)、新增模块:根据需要随时增加学生信息。 (5)、修改模块:可根据需要对多个学生信息进行修改,也可随时对个别项进行修改。(6)、删除模块:可对退学或休学的学生信息做删除处理。(7)、统计模块: 对学生四门成绩最高分、最低分、平均成绩的统计。(8)、排序模块: 对学生四门成绩由高到低的排序。(9)、退出系统:选择该项,自动退出该系统。五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。统计计算机最高分、最低分、平均成绩统计英语最高分、最低分、平均成绩排序

5、语文成绩排序数学成绩排序语文成绩排序语文成绩删除模块统计语文最高分、最低分、平均成绩统计数学最高分、最低分、平均成绩新增模块修改模块 六 调试情况及运行结果1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。此次实践课编写的是一个应用程序,相对于以前我们见的程序,它要大得多,运行的结果也没有预想中的好,数据的输出格式不太规范,而且各模块也出现了一些小问题,在同学们的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的。可是毕竟是第一次独立完成这样的大程序,结果还不是太理想。由于时间很短,在选题报告中设想到的好多功能都没有实现。已有的那些功能虽已能基本上满足用户

6、的需要,但如果还有更多的功能程序就会更加完美。如:再录入数据时,没有设计数据输入出错的提示,如果成绩输的是负值程序也继续执行,这就给运用上带来一些不便;没有设计按各科成绩排序的功能。2、在设计过程中的感受。本次C 语言的实习课让我对C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用。本次实习中遇到了很多以前没有遇到过的问题,也曾想要放弃,但看到那些同学都在那认真的写程序,给了我继续的信心。在同学的帮助

7、下,我顺利的结束了本次实习,让我知道原来凭借自己努力取得的成功会让自己这么欣慰,也让我知道了友谊和团结的重要性。3、程序中出现的问题及解决方法问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文 数学、英语和计算机等相关信息;可用函数input()来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:(1)一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。(2)既然有此学生,那么检查循环判断是否有此学生的语句发现没有错。(3)仔细分析原因后,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的变量。问题二、查询

8、模块:可用inquire()函数来实现。找到就输出此学生全部信息,包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:(1)检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。(2)检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。问题三、插入模块:可用insert()函数来实现。当我们输入插入信息时,系统却提示插入不进数据。解决办法及步骤:(1)检查所

9、编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。(2)检查当我们在输入插入信息时,看是否我们输入的插入信息有。七参考文献C语言程序设计 王曙燕 曹锰 科学出版社 2005年2月八. 附录: # include # include # define N 5int sum; /*用来记录学生人数*/*学生信息结构体类型*/struct student int num; char name12; char sex; int score4; int ave;stuN;/*全新保存函数*/save_mes

10、sage(int sum) /*保存函数,保存sum个记录*/ FILE *fp; int i; if(fp=fopen(student.txt,wb)=NULL) /*以输出打开方式,在此前的记录被覆盖*/ printf(nCannot open filen); return NULL; for(i=0;isum;i+) if(stui.ave!=0) /*stui.ave=0表此记录已删除*/ if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp);/*学号输入函数*/vo

11、id no_input(int i) /*表示第i个的学生信息*/ int j,k; printf(NO.:); scanf(%d,&stui.num); if(stui.num9) /*判断学号是否为数字*/ printf(Input errror!Only bemade up of (0-9).Please reinput!n);/*对分数输入*/void score_input(int i) int j; for(j=0;j4;j+) printf(score %d:,j+1); scanf(%d,&stui.scorej); void average(int i) /*对第i个记录的分

12、数求平均值*/ int j,sum=0; for(j=0;j4;j+) sum+=stui.scorej; stui.ave=sum/4;/*输入模块*/void input_message(int i) printf(nn 录入学生信息(最多%d种)n,N); for(i=0;iN;i+) printf(please input name:n); fflush(stdin); scanf(%3s,stui.name); no_input(i); fflush(stdin); printf(please input sex:n); scanf(%c,&stui.sex); fflush(std

13、in); score_input(i); fflush(stdin); average(i); fflush(stdin); printf(n -%d名学生信息输入完毕!-n,i); sum=i; printf(n 按任意键返回主菜单!);/*读取信息*/int read_message() FILE *fp; int i=0; if(fp=fopen(student.txt,rb)=NULL) printf(nn*暂时还没有任何库存信息,按任意键进入主菜单选择基本信息的录入! *n); return; while(feof(fp)!=1) fread(&stui,sizeof(struct

14、student),1,fp); if(stui.num=0) break; else i+; fclose(fp); return(i);/*输出模块*/void output_message() int i=0,j; do printf(%d %3s %ctt,stui.num,stui.name,stui.sex); for(j=0;j4;j+) printf(%dtt,stui.scorej); average(i); printf(%dn,stui.ave); i+; while(isum); printf(按任意键返回主菜单!); getch();/*查询模块*/void inqui

15、re_message() char name4; int j=0,i; printf(please input the name of the student you want to find:); /*通过姓名查看*/ scanf(%3s,name); fflush(stdin); for(i=0;i8|c1) printf(nChoice error!Please again!); /*判断选择是否错误,若是则重新选择*/ getchar(); /*当输入是字符时,可以防止死循环*/ switch(c) /*选择要修改的项目*/ case 1:printf(n 输入修改后的学号:); sc

16、anf(%d,&stui.num); break; case 2:printf(n 输入修改后的姓名:); scanf(%3s,stui.name); break; case 3:printf(n 输入修改后的性别:); getchar(); scanf(%c,&stui.sex); break; case 4:printf(n 输入修改后的语文成绩:); scanf(%d,&stui.score0); break; case 5:printf(n 输入修改后的数学成绩:); scanf(%d,&stui.score1); break; case 6:printf(n 输入修改后的英语成绩:)

17、; scanf(%d,&stui.score2); break; case 7:printf(n 输入修改后的计算机成绩:); scanf(%d,&stui.score3); break; case 8:printf(n 输入修改后的平均成绩:); scanf(%d,&stui.ave); break; printf(nn Go on? (Y/N); /*判断是否继续*/ scanf(%c,&choice); getchar(); if (choice=Y) flag=1; printf(n Go on!n); else flag=0; printf(n 按任意键返回主菜单!); getch(

18、);/*删除学生信息*/void del_message() int i,k,del_num,flag=1; char choice; printf(please input the deleted student num:); scanf(%d,&del_num); for(i=0;isum;i+) if(stui.num=del_num) for(k=i;ksum;k+) stuk=stuk+1; break; if(i=sum) printf(n 学生信息不存在:); printf(nn Go on? (Y/N); fflush(stdin); getchar(); scanf(%c,&

19、choice); if(choice=Y) flag=1; printf(n Go on!n); else flag=0; printf(n 按任意键返回主菜单!); getch();/*求学生语文最高分,最低分,平均成绩*/void Chinese_average() int i,max,min,SUM=0,ave; max=min=stu0.score0; for(i=0;imax) max=stui.score0; if (stui.score0min) min=stui.score0; SUM+=stui.score0; ave=SUM/sum; printf(n Chinese av

20、erage:%d,ave); printf(n Chinese max:%d,max); printf(n Chinese min:%d,min); printf(n 按任意键返回主菜单!); getch();/*求学生数学最高分,最低分,平均成绩*/void Math_average() int i,max,min,SUM=0,ave; max=min=stu0.score1; for(i=0;imax) max=stui.score1; if (stui.score1min) min=stui.score1; SUM+=stui.score1; ave=SUM/sum; printf(n

21、Math average:%d,ave); printf(n Math max:%d,max); printf(n Math min:%d,min); printf(n 按任意键返回主菜单!); getch();/*求学生英语最高分,最低分,平均成绩*/void English_average() int i,max,min,SUM=0,ave; max=min=stu0.score2; for(i=0;imax) max=stui.score2; if (stui.score2min) min=stui.score2; SUM+=stui.score2; ave=SUM/sum; print

22、f(n English average:%d,ave); printf(n English max:%d,max); printf(n English min:%d,min); printf(n 按任意键返回主菜单!); getch();/*求学生计算机最高分,最低分,平均成绩*/void Computer_average() int i,max,min,SUM=0,ave; max=min=stu0.score3; for(i=0;imax) max=stui.score3; if (stui.score3min) min=stui.score3; SUM+=stui.score3; ave

23、=SUM/sum; printf(n Computer average:%d,ave); printf(n Computer max:%d,max); printf(n Computer min:%d,min); printf(n 按任意键返回主菜单!); getch();/*学生语文成绩排序*/void sort_Chinese() int i,j,t; printf(Input %d scores:n,sum); for(i=0;isum;i+) printf(%d,stui.score0); printf(n); for(i=0;isum-1;i+) for(j=i+1;jsum;j+) if(stui

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1