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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学生成绩处理系统的设计与实现的设计说明书.docx

1、学生成绩处理系统的设计与实现的设计说明书CC+程序设计课程设计设计说明书学生成绩处理系统的设计与实现学生姓名学号班级成绩指导教师计算机科学与技术系2009年7月3日CC+程序设计课程设计评阅书题目学生成绩处理系统的设计与实现学生姓名学号指导教师评语及成绩指导教师签名: 年 月 日答辩评语及成绩答辩教师签名: 年 月 日教研室意见总成绩: 室主任签名: 年 月 日课程设计任务书20082009学年第二学期专业: 计算机科学与技术 学号: 姓名: 课程设计名称: 软件技术基础课程设计 设计题目: 学生成绩处理系统的设计与实现 完成期限:自 2009 年 6 月 22 日至 2009 年 7 月 3

2、 日 共 2 周设计依据、要求及主要内容(可另加附页): 有如下表所示的若干个学生成绩:学号姓名C语言数学英语总分平均08001李强90958008002张兵68755808003刘英788064要求用C/C+语言编写一个程序实现学生成绩处理系统,数据的基本存储结构采用结构体数组,指针作为函数的参数。要求实现如下功能:1) 阐述设计思想,画出流程图;2) 对学生成绩进行录入和修改;3) 横向计算每个学生各门功课的总成绩及平均成绩;纵向计算某门课程的平均分数;4) 采用选择排序、快速排序、归并排序对学生的平均成绩进行排序;5) 统计每门课程中不及格人数、6070分、7080分、8090分以及90

3、分以上人数;6) 说明测试方法,写出完整的运行结果,较好的界面设计;7) 编写课程设计报告。以上要求中前三个阶段的任务完成后,先将设计说明书的草稿交指导老师面审,审查合格后方可进入后续阶段的工作。设计工作结束后,经指导老师验收合格后将设计说明书打印装订,并进行答辩。最终设计成果形式为:1 设计好的软件一套;2 撰写一份课程设计说明书一份,打印并装订成册。指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日 摘 要设计了一个学生成绩处理系统软件,该处理系统具有计算每个学生的总成绩、平均成绩以及对学生平均成绩进行排列功能,计算各门课的总成绩和平均成绩功能,统计每门课各分数段的人数以及修

4、改学生信息的功能。本成绩处理系统采用VC+作为软件开发环境,采用了结构体数组来实现。操作简单,可适用多个学生的多门成绩处理。关键词:成绩处理;函数;VC+目 录1 课题描述12 设计过程23 程序源代码74 测试结果与分析13 总结17参考文献181 课题描述学生成绩处理系统可以通过简单的操作,实现对学生成绩平均分的计算,学生成绩的排序,修改,以及对每门课程总分,平均分的计算和各分数段人数的统计。对所输学生成绩的平均分进行选择排序,选择排序是将一组无序数据按升序排列。首先比较a1和a2的值,若a1大于a2则交换两者的值,否则不变;再比较a1和a3的值,以此类推,共处理n-1轮后就以升序排列。对

5、一门课中各个分数段人数进行统计,是用if-else语句实现多分支的方法。学生成绩处理系统解决了教师处理学生成绩的难题,提高了成绩处理的效率。在次以Visual C+6.0作为开发工具,编程实现了学生成绩处理的演示系统。2 设计过程 本设计采用结构体、数组实现学生成绩的基本处理。下面给出学生成绩处理系统中学生成绩的输出、平均成绩的计算和排列、各门课程的总分平均分以及各个分数段人数的统计的流程图。其中图2.1为学生成绩输出流程图:图2.1 学生成绩输出流程图 图2.2为对学生平均成绩进行排序流程图: 图2.2 对学生平均成绩进行排序(选择排序)的流程图图2.3为计算一门课的总成绩和平均分的流程图:

6、图2.3 计算一门课的总成绩和平均分的流程图 图2.4为修改学生成绩信息的流程图: 图2.4修改学生成绩信息的流程图 图2.5为计算一门课各个分数段人数的流程图修改学生成绩信息的流程图: 图2.5 计算一门课各个分数段人数的流程图修改学生成绩信息的流程图3 程序源代码#include /*引用库函数*/ #include #include#include#include typedef struct char name10; int num; float Cprogram; float English; float Math; float Sum; float average;Student;

7、Student stu5; /*结构体数组变量*/int menu() /*菜单函数*/char c;docout*学生成绩管理系统*endl;/*菜单选择*/ cout1:输入学生成绩endl; /*交互输入* cout2:输出学生成绩endl; cout3:用选择排列法排列学生平均成绩endl; cout4:纵向计算三门课的成绩endl; cout5:修改一组学生成绩endl; cout6:统计三门课程各分数段的成绩endl; cout0:退出程序endl; cout请选择操作(0到6):endl; c=getchar(); /*读入选择*/ while(c6);return(c-0);i

8、nt Input(Student stud,int n) int i=0; char sign; while(sign!=n&sign!=N) /*判断*/ coutstudi.name; coutstudi.num; coutstudi.Cprogram; coutstudi.Math; coutstudi.English; cout提示:继续写入成绩?(Y/N); cinsign; /*输入判断*/ i+; return i; void Output(Student stud,int n) /*输出学生成绩*/ int i; cout姓名 学号 C语言 数学 英语 总分 平均分endl;

9、for(i=1;in+1;i+) studi-1.Sum=studi-1.Cprogram+studi-1.Math+studi-1.English; studi-1.average=studi-1.Sum/3; coutstudi-1.nametstudi-1.numtstudi-1.Cprogramtstudi-1.Mathtstudi-1.Englishtstudi-1.Sumtstudi-1.averagen; void Swap(Student stud,int n) /*按平均分排序*/ int i,j; Student temp; for(i=0;in-1;i+)/*进行选择排序

10、*/ for(j=i+1;jn;j+) if(studi.averagestudj.average) temp=studi; studi=studj; studj=temp; cout-输入学生的信息-endl;cout姓名 学号 C语言 数学 英语 总分 平均分endl; for(i=0;in;i+) studi.Sum=studi.Cprogram+studi.Math+studi.English; studi.average=studi.Sum/3; coutstudi.nametstudi.numtstudi.Cprogramtstudi.Mathtstudi.Englishtstud

11、i.Sumtstudi.averagen; void Average(Student stud,int n) /*计算各门课的总分和平均分*/ int i; float aver1,aver2,aver3; float sum1=stud0.Cprogram; float sum2=stud0.Math; float sum3=stud0.English; for(i=1;in+1;i+) sum1+=studi.Cprogram; sum2+=studi.Math; sum3+=studi.English; aver1=sum1/n; aver2=sum2/n; aver3=sum3/n;

12、cout-输入学生的信息-endl;cout姓名 学号 C语言 数学 英语 总分 平均分endl; for(i=0;in;i+) studi.Sum=studi.Cprogram+studi.Math+studi.English; studi.average=studi.Sum/3; coutstudi.nametstudi.numtstudi.Cprogramtstudi.Mathtstudi.Englishtstudi.Sumtstudi.averagen;cout C语言课程的总分,平均分:sum1taver1endl;cout 数学课程的总分,平均分:sum2taver2endl;co

13、ut 英语课程的总分,平均分:sum3taver3endl;void Modify(Student stud,int n) /*按学号查找,修改学生成绩*/ int s; int i=0; cout输入需要修改成绩学生的学号:s; while(studi.num-s)!=0&in) i+; /*查找判断*/ if(i=n) cout提示:对不起,无该学生的成绩endl; /*输入失败信息*/ return; cout-该学生的信息-endl; /*格式头*/ cout 姓名 学号 C语言 数学 英语 总分 平均分endl; coutstudi.nametstudi.numtstudi.Cpro

14、gramtstudi.Mathtstudi.Englishtstudi.Sumtstudi.averagen; cout-endl; coutstudi.name; coutstudi.num; coutstudi.Cprogram; coutstudi.Math; coutstudi.English; studi.Sum=studi.Cprogram+studi.Math+studi.English; studi.average=studi.Sum/3; cout该学生修改后的成绩信息为:endl; coutstudi.nametstudi.numtstudi.Cprogramtstudi.

15、Mathtstudi.Englishtstudi.Sumtstudi.averagen; void cprogram(Student stud,int n) /*统计C语言各个分数段的人数*/ int i; int k=0,h=0,m=0,p=0,l=0; for(i=0;i=90) k+; else if(studi.Cprogram=80) h+; else if(studi.Cprogram=70) m+; else if(studi.Cprogram=60) p+; elsel+; coutC语言中90分以上的人数:kn 80到90分数段的人数:hn 70到60分数段的人数:mn 60

16、到70分数段的人数:pn 不及格的人数:ln; void math(Student stud,int n) /*统计数学各个分数段的人数*/ int i; int k=0,h=0,m=0,p=0,l=0; for(i=0;i=90) k+; else if(studi.Math=80) h+; else if(studi.Math=70) m+; else if(studi.Math=60) p+; elsel+; cout数学中90分以上的人数:kn 80到90分数段的人数:hn 70到60分数段的人数:mn 60到70分数段的人数:pn 不及格的人数:ln; void english(St

17、udent stud,int n) /*统计英语各个分数段的人数*/ int i; int k=0,h=0,m=0,p=0,l=0; for(i=0;i=90) k+; else if(studi.English=80) h+; else if(studi.English=70) m+; else if(studi.English=60) p+; elsel+; cout英语中90分以上的人数:kn 80到90分数段的人数:hn 70到60分数段的人数:mn 60到70分数段的人数:pn 不及格的人数:ln; void main() /*主函数*/ int n;for(;) switch(me

18、nu() /*选择判断*/ case 1: coutendl 输入成绩 =endl; n=Input(stu,n); break; case 2: coutendl输出学生成绩信息=endl; Output(stu,n); break; case 3: coutendl学生成绩选择排列=endl; Swap(stu,n); break; case 4: coutendl 纵向计算三门课的成绩 =endl; Average(stu,n); break; case 5: coutendl 修改一组成绩 =endl; Modify(stu,n); /*查找并显示一个记录*/ break;case 6

19、:coutendl 对三门课各分数段成绩人数进行统计 =endl; cprogram(stu,n); math(stu,n); english(stu,n); break;case 0: coutendl退出=endl; exit(0); 4 测试结果及分析运行程序,按要求输入学生成绩得到运行结果,如图4.1所示: 图4.1 输入学生成绩选择功能 2, 输出学生成绩信息,如图4.2所示: 图4.2 输出学生成绩选择功能 3,对学生平均成绩进行排列,如图4.3所示: 图4.3 对学生平均成绩进行排列选择功能4,纵向计算三门课成绩的总分以及平均分,如图4.4所示: 图4.4 纵向计算三门课的总成绩

20、和平均成绩选择功能 5,根据学号修改学生的成绩信息,如图4.5所示: 图4.5输入要修改的学生学号如果输入学号错误,如图4.6所示: 图4.6 输入错误学号选择功能 6,统计三门课个分数段人数,如图4.7所示: 图4.7 对学生三门课各分数段成绩人数进行统计选择功能 0,退出,如图4.8所示: 图4.8 退出 总 结课程设计的过程是非常不容易的,但对我却有很大的启发。这次课程设计我主要是应用以前所学的C语言以及本学期的VC,综合起来才完成了这个学生成绩处理系统的软件,比平常上机实验所编程序要复杂,锻炼了我自己。首先,C/C+程序设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有

21、了更进一步的理解和认识;再次,我在课程设计中碰到了很多的问题,通过查阅相关资料以及上网查询进行解决,同时曹老师对我也进行了指导,指出了课程设计流程中的错误,提出了建议。越来越多的人们开始依靠计算机来解决日常生活中的问题,计算机可以明显提高速度和准确率。我所设计的成绩处理系统可以对学生成绩进行处理。当然,通过这次课程设计,我也发现了自身的很多不足之处,在以后的学习中,我会不断的完善自我,不断进取,能使自己在C/C+编程这方面有一个大的发展。参考文献1 严蔚敏,吴伟民.数据结构(C语言版)M.北京:清华大学出版社,20022 刘斌,王忠.面向对象程序设计Visual C+M.北京:清华大学出版社,20033 何钦铭,颜辉.C语言程序设计M.北京: 高等教育出版社,2008

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

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