




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计(论文)任务书 软 件 学院 软件工程 专业20092班 一、课程设计(论文)题目学生成绩管理系统 二、课程设计(论文)工作自 2010 年 6 月 28日起至 2010 年7月 2日止。三、课程设计(论文) 地点: 软件学院实训中心 四、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握系统各功能模块的基本工作原理; (2)掌握C的基本编程原理和及基本的编程方法; (3)使学生学会系统调试;(4)培养学生分析、解决问题的能力;(5)提高学生的软件文档写作能力。 2课程设计的任务及要求1)基本要求:(1)分析系统各功能模块的工作原理;(2)至少有查找,排序、插入、删除等功能;
2、(3)提出系统的设计方案; (4)对所进行编程、调试、修改。 2)创新要求: 在基本要求达到后,可进行创新设计,如:文件流等; 3)课程设计论文编写要求(1)要按照书稿的规格打印誊写毕业论文(2)论文包括目录、绪论、正文、小结、参考文献、附录等(3)毕业论文装订按学校的统一要求完成4)答辩与评分标准: (1)完成原理分析:20分; (2)完成设计过程:40分; (3)完成调试运行结果正确:25分;(4)答辩:15分。5)参考文献:(1)谭浩强.C+程序设计实践指导 清华大学出版社 (2)谭浩强.C+程序设计 清华大学出版社(3)http:/ /6)课程设计进度安排内容 天数 地点总体需求与分析
3、构思及收集资料 1 图书馆各模块的编程实现,调试与修改 3 机房撰写论文与答辩 1 图书馆,学生签名: 江军然 2010 年 6 月28 日课程设计(论文)评审意见(1)完成原理分析(20分):优()、良()、中()、一般()、差(); (2)设计分析(25分):优()、良()、中()、一般()、差(); (3)完成调试(20分):优()、良()、中()、一般()、差();(4)运行结果(20分):优()、良()、中()、一般()、差();(5)答辩 (15分):优()、良()、中()、一般()、差();(6)格式规范性及考勤是否降等级:是()、否() 评阅人签名: 职称: 讲师 2010 年
4、7 月5日 目 录 第1章 软件设计内容411软件达到的目的412 软件功能说明41.2.1 功能分析说明图41.2.2 各项功能说明513软件功能的验收标准5第2章 软件设计环境与原理62.1 设计环境与模块的划分62.1.1 软件设计环境62.1.2 软件模块的划分62.2 软件设计主要原理72.2.1 采用的主要数据结构类型72.2.2 各个模块之间的调用关系和数据储存格式说明82.2.3 主要流程图8第3章 软件的设计过程103.1 各软件模块之间的调用方式103.2 软件中实现各项功能的函数与程序代码1041软件使用结果11第五章 小结13参考文献13第1章 软件设计内容11软件达到
5、的目的该软件主要是实现对学生成绩进行系统化的管理,首先该程序用文件流的形式对学生基本信息进行输入输出,主要功能可增加学生的相关信息,然后可以删除和更改学生信息,还有就是可按学号和姓名查询此学生的相关信息,还可统计任意课程在某一分数段的学生情况,也可对用户指定的课程进行成绩排名,并显示。由此来系统化管理学生信息,并达到简易操作的目的。12 软件功能说明 功能分析说明图该软件功能分析说明图如图1-1所示: 学生成绩管理系统1.输入学生成绩 2.显示学生成绩 3.排序学生成绩 4.查找学生成绩 5.增加学生成绩 6.删除学生成绩 7.安全退出系统 图:1-1实际软件效果如下图:图12 各项功能说明它
6、的主要功能是对学生的成绩进行修改和管理,而且方便快速,这个程序虽然简单,但是可以作为老师的辅助软件,对学生的各种成绩进行管理。(1)输入学生基本信息:这部分的功能主要包括信息的录入,首先按程序提示分别输入相关信息包括准考证号(八位数)、姓名、性别,以及学生各科成绩(英语,数学,物理,C语言)等。注意:在姓名处键以 ! 结束输入。(2)增加学生信息: 此功能是对原录入的学生信息,根据提示输入准考证号,如果指令不对则给出提示,要求重新输入或返回主菜单,并输出到文件中。(3)删除学生信息: 进入该项功能界面后,根据提示输入学号,如果学号不存在则给出提示,如果指令错误,也给出提示。(4)查找学生信息:
7、 此项功能可以使用户根据提示选择输入的学生学号查出该学生的信息,也可选择根据输入的学生姓名查出该学生的信息,如果不存在该同学系统会给出提示。(5)学生成绩的排序: 选择次项功能后,可选择按何课程成绩进行排序,选择后在屏幕上显示出排序后的学生姓名,成绩,排名,全班单科平均成绩和参加考试人数。(7)退出系统。 该出是否退出的提示,给用户友好的界面。13软件功能的验收标准一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能,并且能给以按键提示。二、有严密正确的数据验证功能和数据处理功能,能够求和、求全班单科平均成绩,参加考试人数,对成绩进行排序,能按准考证号和姓名查找学
8、生信息,以及删除学生信息。三、系统要有一定的可靠性。第2章 软件设计环境与原理2.1 设计环境与模块的划分2.1软件设计工具 该系统我采用了DevC+作为编译工具,如下图示 图22.2系统模块的划分定义一个学生考试信息的结构体 定义学生类建立链表函数定义output()函数将考生的信息从头指针所指内容开始输出统计学生人数的函数 插入学生的成绩的函数 建立删除函数查找函数定义paixu()函数将考生的总分从大到小排列并输出求各科平均分成绩的函数读取函数的实现主函数2.3软件设计主要原理采用的主要数据结构类型 该程序采用的是面向对象的思想来处理学生的所有基本信息,通过类来实现程序的功能,如下所述:
9、1)包含的库函数有:#include <iostream.h> #include <iomanip.h>#include <fstream> #include <vector>#include <malloc.h> #include <stdlib.h>#include <string> #include <process.h>#include <stdio.h>2)包含的类: class Information3)包含的结构体:struct student第3章 软件的设计过程3.1
10、各软件模块之间的调用方式程序中用类分开各个模块,通过函数之间的调用实现各个模块。首先使用主函数声明一个Menu类,通过Menu类调用其公有函数。3.2 软件中实现各项功能的函数与程序代码1)定义一个学生考试信息的结构体:struct student char nameQ; char sexQ; long int id; int score4; int total; struct student *next;2)学生类:class Information public:Information() ; Information() ; student *creat();void output(stu
11、dent *head);int count(student *head); student *insert(student*head);student *cancel(student *head,long int num);.student *find(student *head,long int num); .void paixu(student *head);void average( student *head); void save(student *head); student *Read();private:student *p1,*p2,*p3,*head,st; ;3)建立链表
12、函数:student *Information:creat(void) . char chQ;n=0; / p1=p2=(student *)malloc(LEN); cout<<" -<<请建立学生考试信息表,在姓名处键以 ! 结束输入。>>-"<<endl;cout<<" 姓名:"cin>>ch;head=NULL; while (strcmp(ch,"!")!=0) p1=(student *)malloc(LEN); strcpy(p1->name,
13、ch); cout<<" 性别:"cin>>p1->sex;cout<<" 准考证号(8位):"cin>>p1->id;cout<<" 数学成绩:"cin>>p1->score0;cout<<" 物理成绩:"cin>>p1->score1;cout<<" 英语成绩:"cin>>p1->score2;cout<<" C语言成绩:
14、"cin>>p1->score3;p1->total=p1->score0+p1->score1+p1->score2+p1->score3; if(n=0)head=p1;else p2->next=p1; p2=p1;n+; cout<<" 姓名:"cin>>ch; p2->next=NULL;return (head);4)统计学生人数的函数:int Information:count(struct student *head)if(head=NULL)return(0);e
15、lse return(1+count(head->next);5)插入学生的成绩的函数:student *Information:insert( student *head) cout<<"t-<<请输入新增学生成绩信息>>-n"<<endl;p1=(student *)malloc(LEN); cout<<" 准考证号(8位):"cin>>p1->id;中cout<<" 姓名:"cin>>p1->name; cout&l
16、t;<" 性别:"cin>>p1->sex;cout<<" 数学成绩:"cin>>p1->score0; cout<<" 物理成绩:"cin>>p1->score1; cout<<" 英语成绩:"cin>>p1->score2; cout<<" C语言成绩:"cin>>p1->score3;p1->total=p1->score0+p1-&g
17、t;score1+p1->score2+p1->score3; p2=head;if(head=NULL) head=p1;p1->next=NULL; else while(p1->id>p2->id)&&(p2->next!=NULL)p3=p2; p2=p2->next;if(p1->id<=p2->id)if(head=p2)p1->next=head;head=p1; else p3->next=p1;p1->next=p2;elsep2->next=p1;p1->next
18、=NULL;n+;cout<<"t-<<你输入的学生信息已经成功插入>>-"<<endl;return (head);5)删除函数:student *Information:cancel(student *head,long int num) if(head=NULL) return(head);elsep1=head; while(num!=p1->id&&p1->next!=NULL) p2=p1;p1=p1->next; if(num=p1->id) if(p1=head) hea
19、d=p1->next; else p2->next=p1->next; cout<<" 删除准考证号为"<<num<<"的学生n"n-; return(head); 6查找函数:student *Information:find(student *head,long int num) if(head=NULL) cout<<" 这是一个空表,请先输入考生成绩.n"return(head); elsep1=head; while(num!=p1->id&&a
20、mp;p1->next!=NULL)p1=p1->next;if(num=p1->id) cout<<"-n"cout<<"准考证号 姓 名 性别 数学 物理 英语 C+ 平均分 总分 n"cout<<"-n"cout<<setw(8)<<p1->id<<setw(9)<<p1->name<<setw(6)<<p1->sex<<setw(7)<<p1->score
21、0<<setw(7)<<p1->score1<<setw(7)<<p1->score2<<setw(7)<<p1->score3<<setw(10)<<p1->total/4.0<<setw(7)<<p1->total<<endl;cout<<"-n"else cout<<" 没找到准考证号为"<<num<<"的学生.n" /结
22、点没找到return(head);void Information:paixu(student *head) int i,k,m=0,j;student *pQ; if(head!=NULL) m=count(head);cout<<"-n"cout<<" *学生考试成绩统计表*n"cout<<"-n"cout<<"准考证号 姓 名 性别 数学 物理 英语 C+ 平均分 总分 名次n"cout<<"-n"p1=head;for(k=0;
23、k<m;k+)pk=p1;p1=p1->next;for(k=0;k<m-1;k+) for(j=k+1;j<m;j+)if(pk->total<pj->total)p2=pk;pk=pj;pj=p2; for(i=0;i<m;i+)cout<<setw(8)<<pi->id<<setw(9)<<pi->name<<setw(6)<<pi->sex<<setw(7)<<pi->score0<<setw(7)<&
24、lt;pi->score1<<setw(7)<<pi->score2<<setw(7)<<pi->score3<<setw(8)<<pi->total/4.0<<setw(7)<<pi->total<<setw(9)<<i+1<<endl;cout<<"-n" 7)求各科平均分成绩的函数:void Information:average(student *head)int k,m;float arg1=
25、0,arg2=0,arg3=0,arg4=0;if(head=NULL) cout<<" 这是一个空表,请先输入考生成绩.n"elsem=count(head);p1=head;for(k=0;k<m;k+)arg1+=p1->score0;arg2+=p1->score1;arg3+=p1->score2;arg4+=p1->score3;p1=p1->next;arg1/=m;arg2/=m;arg3/=m;arg4/=m;cout<<" *全班单科成绩平均分*n"cout<<&
26、quot;-n"cout<<" 数学平均分:"<<setw(7)<<arg1<<" 物理平均分:"<<setw(7)<<arg2<<" 英语平均分:"<<setw(7)<<arg3<<" C语言平均分:"<<setw(7)<<arg4<<endl;cout<<"-n"8保存函数:void Information:save
27、(student *head) ofstream out("data.txt",ios:out);out<<count(head)<<endl;while(head!=NULL) out<<head->name<<"t"<<head->id<<"t"<<"t"<<head->sex<<"t"<<head->score0<<"t&qu
28、ot;<<head->score1<<"t"<<head->score2<<"t"<<head->score3<<"t"<<head->total<<endl; head=head->next;9)读取函数的实现:student *Information:Read() int i=0;p1=p2=( student *)malloc(LEN);head=NULL; ifstream in("data.
29、txt",ios:out);in>>i;if(i=0)cout<<" data.txt 文件中的数据为空,请先输入数据。"<<endl; return 0; else cout<<" "<<endl;for(;i>0;i-) p1=(student *)malloc(LEN);in>>>>st.id>>st.sex>>st.score0>>st.score1>>st.score2>>
30、st.score3>>st.total;strcpy(p1->name,);p1->id=st.id;strcpy(p1->sex,st.sex);p1->score0=st.score0;p1->score1=st.score1;p1->score2=st.score2;p1->score3=st.score3;p1->total=st.total;if(n=0)head=p1; else p2->next=p1; p2=p1;n+; cout<<" "<<p1->name<<"t"<<p1->id<<"t"<<"t"<<p1->
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年元旦活动方案
- 老旧供水管道更新项目实施方案(参考范文)
- 老化供水管网重建工程规划设计方案
- 国内大循环发展中的关键实施方案
- 广东xx充电桩建设项目可行性研究报告
- 光伏电站光伏区技改项目初步设计(范文参考)
- 供水及排水提升工程可行性研究报告(仅供参考)
- 2025年开展《安全生产月》活动实施方案 合计4份
- 展览设计方案流程
- 新疆乌鲁木齐市实验学校2023-2024学年高三上学期1月月考英语含解析
- 西红门镇生活垃圾转运站及环卫停车场工程报告表
- 医院检验科实验室生物安全程序文件SOP
- 封条模板A4直接打印版
- 双减背景下的作业设计与实施优秀案例PPT
- 300B电子管技术参数
- 基于PLC的数控车床电气控制系统设计毕业论文_(2)[1]
- 古典概型 教学设计
- 国家开放大学《理工英语3》章节测试参考答案
- 钢管截面积、强度、挠度、惯性矩计算公式
- 施工现场平面布置和临时设施、临时道路布置
- Teamcenter10.1系统基础操作资料
评论
0/150
提交评论