




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构大型实验报告班级:计算机1402姓名:学号:指导老师:2016年7月15曰目录1软件需求分析11.1软件达到的ei的11.2软件功能说明113设计环境12纖册12.1数据结构设计12.1.1主要数据结构类型的分析与选择(逻辑结构)12.1.2数据结构中的数据对象以及具体的操作的确定12.2对象没计12.2.1系统中的类及对象12.2.2类图设计.223消息设计22.3.1对象之间的消息传递说明.22.3.2关键算法没计.22.4界而设计43系统实现63.1类的定义(存储结构)63.2关键源代码的实现103.2.1主函数源代码.103.2.2主要功能的实现(功能描述、流程图或n-s图)1
2、03.3软件测试(包括有效测试数据和无效测试数据)134结果分析与总结164.1结果分析164.2总结161软件需求分析1.1软件达到的目的基础信息的输入。成绩的操作。查询功能。成绩统计。1.2软件功能说明某础信息的输入:即根据输入信息新增学生,班级或课程。成绩的操作:输入指定学生的成绩,外能够对成绩进行修改或删除。查洵功能:查洵某学牛.的所有成绩,查洵菜个班所有学牛.的成绩,或查洵某门课所有 学生的成绩。成绩统计:以班级为单位统计不及格,及格,屮,良,优的人数,或以课程为单位统 计不及格,及格,屮,良,优的人数。1.3设计环境操作系统:winl0pro64位 开发工其:dev-c+新建工程2
3、系统设计2.1数据结构设计2.1.1主要数据结构类型的分析与选择(逻辑结构)学生管理,班级管理,课程管理与成绩管理中存储相应实例,使用链表存储,a便删除 数据。2.1.2据结构中的数据对象以及具体的操作的确定数据结构中的数裾对象为学生,班级,课程与成绩。对应学生的操作为増加学生,修改 学生的姓名或班级。对放班级的操作为增加班级,杏看班级的宁生成负,与统计班级成 绩。对应课程的操作为增加课程,统汁该课程的成绩。对应成绩的操作为増加成绩,修 改成绩,査询成绩,与删除成绩。2.2对象设计2.2.1系统中的类及对象学生孕生管理班级班级管理 课程课程管理 成绩成绩管珂2.2.2类图设计系统的类图如图2.
4、1所示。索学boo:+新增学生0 : bool获取学1:名| : : string d 衣(: : void 史新生伝总():void 阳除7:生(>void保打倍悤0 : void-班钽:班後- bi成糾俗:i 1() : void +枚系w级(> :bcol +班狄列衣:void 新坩孚生(> voidb 丨 void 醐u (> void +保夼do : void ti: voidiilv-.>?: : boo: 新增课fig : bool 戊力列表<):void 保f/f:息()void* -滿7分(i : double:vo:d“:? u 丨./
5、: : : vo:dkwlbt纯():bool mi 祈必.! :: : bool 利除成绩<):bool 统i卜成锁0 : void >保存伝总():void*涵屬-0拗?,: string-孚生人教:int -学生列衣:卞生: bool : void狳出成绮(:vo1c*斯彬成绱0 :oool:0。1dh除成绩辭cool*修改姓名0 :void修改班级名<):void取嗲导0 :string- :string坎取班级名0:string,统u 1'灼分():double7*1:«+7strxnemr印成什istr:n2收:名iis s - -4v10副除学
6、生()void 瑜h学生角灰(> :void 扶取消级名(string-v:v : stnr.e-itfv ? : striiis: ir.t*打印成城(;:void*茯取乍号():strir.e 伐取汉():3tr:ns 茯取成缁():ir.t 没»成飧0 : void:.人:vo:d- 涂岀成纹::void图2.1系统类图2.3消息设计2.3.1对象之间的消息传递说明在设计类时设计接口,不同对象i川通过接口传递消息。2.3.2关键算法设计新增学生:|void initstudent(studentmanage &students? classmanage &
7、cm)ifstream fin; fin. open ( student, txt ); string code,name,classname; while(fin>>code>>name>>classname)student news(code, name, classname); studentsaddstudent(news); cm.addstudent(news);fin.close();同吋在学卞管理类和班级类屮新增学牛.。修改学生信息:void updatestudentfstudentmanage 8sm, classmanage 8cm)s
8、tring code,name,newclassnamejoldclassname; cout<<"请输入需要修改学生的学号"<<endl; cin>>code;if(!smsearchstudent(code)cout<<"该学生不存在! "<<endl; j return;elsecout<<"请输入新名字新班级原班级"<<endl; cin>>name>>ngwclassname>>oldclassname;
9、if(!cm.searchclass(newclassname)1cout<<该班级不存在! "<<endl;return;ismupdatestudent(code? name? newclassname);icm.updatestudent(code, name, newclassname, oldclassname);山于学生信总冏时储存在学牛.管理类和班级类中,所以需要修改学生的诏就需要inj吋修 改学牛.管理类屮的学屯和班级类屮的学牛.,修改班级类屮的学中,通过旧班级名和学号 查找到指定学伞并删除,然后根据新班级名插入新学生完成修改学生信息的操作。课
10、程成绩统计:|void reportscorebykchen(score score, kchenmanage kchens)int buj igej igezhong liang ?you;bujige = 0;jige = 0;zhong = 0;liang = 0;you = 0;string name;cout<<请输入课程名:(検入#ig出)"<<endl; cin>>name;if(kchens.searchkchen(name)score.printbykchen(name);score.countnum(name, bujige,
11、jige, zhong, liang, you);elsecout<<"査无该课程! "<<endl; cout<<endl;cout<<"不及格人数:"<<bujige<<endl; cout<<及格人数:”<<jige<<endl; cout<<中人数:”<<zhong<<endl; cout<<"良人数:m<<liang<<endl; cout<<优
12、人数:”<<you<<endl;输入课程名,在成绩管理类中搜索课程名对应的数裾并统计值。2.4界面设计根据不同的功能设计不同的界面。o h:code5s3ssrt5manage.exe制作人:朱永堃:本本本本衣木本本本木氺本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本本專本本本本本本車本本本本本本本本本本本本本#本本本車本本本本本專本本2'篆盡暮謹震禁学校管理系统1、课程管理系统 3、学生成後管理系统 4、退出系统学生管理系统0、墦加学生1、修改学生2、朗除学生3、学生列表4、返回上一级句拼音输入法全:1.课程管理系统:3 h:codejms
13、i8t5manage.exev f» i, r _ >v> * f 厂'>1 f , , 1 雩1 雩 '翬'罾雩» , 罾0、学生管理系统 2、班级管瑾系统学校音理系统1、课程管理系统3、学生成镜管理系统4、退出疟统潭程管理系统1、潭程成缴统计3、返回上一级授狗拼音输入法全:2.班级管理系统:i h:codesbqeistgmanage.exe一 口 x搜狗拼音输入法全:3学1成绩管理系统:q h:codesseisklmanage.exe x3系统实现3.1类的定义(存储结构)课程类:cjlass kchen private:s
14、tring name;public:kchen();kchen(string n):name(n)nvoid print(score *t); string getname();课程管理类:class kchenmanage private:i list<kchen> allk; public:bool searchkchen(string name); bool addkchen(kchen k); j void coutall(); void save();成缋类:class scorenodeflprivate:string code; string name; int sc
15、ore; public:i scorenode();scorenode(stringstring n,int s):code(c),name(n),score(s);void print(); string getname(); string getcode(); int getscore(); void setscore(int s); void printbykchen(); void printbystudent();成绩管理类:class score private:list<scorenode> sc; public:double averagestudent(strin
16、g code); void printbykchen(string name); void printbystudent(string code); bool addscorenode(scorenode score);int sliang, int &you);bool updatescorenode(string code, string name, int score); bool deletescorenode(string code, string name); void countnum(string name, int sbujige, int &jige, in
17、t szhong, void save();class student private:string code; string name; string classname; public:student();student(stringstring n?string cn)i code = c;name = n; classnamecn;void print(score *score);void addscore(score scorescorenode news);void updatescore(score xupdate);void deletescore(score xdelet)j
18、void setname(string n);void setclassname(string classname);string getcode();string getname();string getclassname();double averagescore(score *score);学生管理类:class studentmanage private:list<student> alls; public:bool searchstudent(string code); bool addstudent(student s; string returnname(string
19、 code); void coutstudent();void updatestudent(string codestring namestring classname); void deletestudent(string code); void save();班级炎:class class private:string name;丨 int studentnum;list<student> s; public:丨 class()|studentnum = 0;!class(string n)name = n;istudentnum = 0;i bool addstudent(s
20、tudent data); void coutscore(score *score); void deletestudent(string code); void coutstudent(); string getname();班级管理类:class classmanage private:list<class> allc; public:bool addclass(class c); void report(score score); bool searchclass(string name); void coutall(); void addstudent(student s)
21、;void updatestudent(string code, string name, string newclassname, string oldclassname); void removestudent(string code); void save();void coutstudent();3.2关键源代码的实现3.2.1主函数源代码int main()int num;score score;classmanage cm;kchenmanage kcs;studentmanage sts; initfcm, score, sts, kcs); menu();while(cin
22、187;num)switch(num) case 0:studentmenu(sts, cm); break;case 1:kchenmenu(kcs, score); break;case 2:classmenu(cm, score); break;case 3:scoremenu(score, sts, kcs); break;case 4:save(cm, score, sts, kcs); exit(0);default:cout<"请输入正确数据"<<endl; break;system("cls");menu();retur
23、n 0;3.2.2主要功能的实现(功能描述、流程图或n-s图)新增学生功能:(幵始)瑜入新平少的 学号,財” 班级r躲证巧 h3.轮ii 否?咄级足f/i:否<0§iifjt. 迸示失败珐 i在学生管理中新増学生趵对应的讲级新增学生修改成绩功能:删除成绩功能:3.3软件测试(包括有效测试数据和无效测试数据)以登记成绩为例.o h:code5s®st5manage.exe制作人:朱永望k本本木本本木本木本本本木本本本本木本本本本本*本本木本本本本本本本本本本本本本本本本本本車本本本本本本本本本本本本本本本本本本本章本本本本本本本本本本本学校管理系统1、课程管理系统 3、学生成後晋理系统 4、退出系统成绩管理系统1、学生成镜修改3、学生成镜登记4、返向上一级i育输入学生学号拼音输
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国无线红外鼠标市场调查研究报告
- 2025年中国手霜市场调查研究报告
- 2025年中国念盈药条数据监测研究报告
- 2025年中国小蚕共育加温补湿机市场调查研究报告
- 2025年中国家用品防震垫市场调查研究报告
- 2025年中国孔雀靠垫数据监测研究报告
- 2022-2027年中国塑铝稳态PPR管行业发展监测及投资战略研究报告
- 液压陶瓷柱塞泵行业深度研究分析报告(2024-2030版)
- 2025年中国伸缩气缸行业市场发展前景及发展趋势与投资战略研究报告
- 2024-2030全球涂鸦清除服务行业调研及趋势分析报告
- 2024年湖南省公安厅招聘警务辅助人员笔试真题
- 弘扬中国精神的课件
- 2025年高考英语全国二卷试题含答案
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试备考题库及完整答案详解一套
- 云南省玉溪市2023-2024学年高二下学期期末教学质量检测语文试卷(含答案)
- 抚州市乐安县招聘城市社区工作者笔试真题2024
- 网络服务器配置与管理(微课版) 教案 项目02 虚拟化技术和VMware-2
- 2025年西式面点师(中级)面包烘焙实操考试试卷
- T/CAPEC 3-2018汽轮机制造监理技术要求
- 工程完工后的回访与保修服务承诺
- 医疗质量管理质控科的未来发展趋势与挑战
评论
0/150
提交评论