大数据结构学生成绩管理系统报告材料.docx
《大数据结构学生成绩管理系统报告材料.docx》由会员分享,可在线阅读,更多相关《大数据结构学生成绩管理系统报告材料.docx(18页珍藏版)》请在冰豆网上搜索。
大数据结构学生成绩管理系统报告材料
数据结构大型实验报告
班级:
计算机1402
姓名:
学号:
指导老师:
2016年7月15日
1软件需求分析
1.1软件达到的目的
基础信息的输入。
成绩的操作。
查询功能。
成绩统计。
1.2软件功能说明
基础信息的输入:
即根据输入信息新增学生,班级或课程。
成绩的操作:
输入指定学生的成绩,并能够对成绩进行修改或删除。
查询功能:
查询某学生的所有成绩,查询某个班所有学生的成绩,或查询某门课所有学生的成绩。
成绩统计:
以班级为单位统计不及格,及格,中,良,优的人数,或以课程为单位统计不及格,及格,中,良,优的人数。
1.3设计环境
操作系统:
win10pro64位
开发工具:
Dev-C++新建工程
2系统设计
2.1数据结构设计
2.1.1主要数据结构类型的分析与选择(逻辑结构)
学生管理,班级管理,课程管理与成绩管理中存储相应实例,使用链表存储,方便删除数据。
2.1.2数据结构中的数据对象以及具体的操作的确定
数据结构中的数据对象为学生,班级,课程与成绩。
对应学生的操作为增加学生,修改学生的姓名或班级。
对应班级的操作为增加班级,查看班级的学生成员,与统计班级成绩。
对应课程的操作为增加课程,统计该课程的成绩。
对应成绩的操作为增加成绩,修改成绩,查询成绩,与删除成绩。
2.2对象设计
2.2.1系统中的类及对象
学生
学生管理
班级
班级管理
课程
课程管理
成绩
成绩管理
2.2.2类图设计
系统的类图如图2.1所示。
图2.1系统类图
2.3消息设计
2.3.1对象之间的消息传递说明
在设计类时设计接口,不同对象间通过接口传递消息。
2.3.2关键算法设计
新增学生:
同时在学生管理类和班级类中新增学生。
修改学生信息:
由于学生信息同时储存在学生管理类和班级类中,所以需要修改学生的话就需要同时修改学生管理类中的学生和班级类中的学生,修改班级类中的学生,通过旧班级名和学号查找到指定学生并删除,然后根据新班级名插入新学生完成修改学生信息的操作。
课程成绩统计:
输入课程名,在成绩管理类中搜索课程名对应的数据并统计值。
2.4界面设计
根据不同的功能设计不同的界面。
主界面如下:
1.学生管理系统:
2.课程管理系统:
2.班级管理系统:
3学生成绩管理系统:
3系统实现
3.1类的定义(存储结构)
课程类:
课程管理类:
成绩类:
成绩管理类:
学生类:
学生管理类:
班级类:
班级管理类:
3.2关键源代码的实现
3.2.1主函数源代码
intmain()
{
intnum;
Scorescore;
ClassManagecm;
KchenManagekcs;
StudentManagests;
init(cm,score,sts,kcs);
menu();
while(cin>>num)
{
switch(num){
case0:
studentmenu(sts,cm);
break;
case1:
kchenmenu(kcs,score);
break;
case2:
classmenu(cm,score);
break;
case3:
scoremenu(score,sts,kcs);
break;
case4:
SAVE(cm,score,sts,kcs);
exit(0);
default:
cout<<"请输入正确数据"<break;
}
system("cls");
menu();
}
return0;
}
3.2.2主要功能的实现(功能描述、流程图或N-S图)
新增学生功能:
修改成绩功能:
否
否
是
是
否
是
删除成绩功能:
3.3软件测试(包括有效测试数据和无效测试数据)
以登记成绩为例:
无效数据:
无效课程:
无效成绩(小于0或大于100):
有效数据:
4结果分析与总结
4.1结果分析
该程序主要功能完成(对班级,课程的增加,学生和成绩的增删改查),结构稳定,并有合理的提示。
但由于时间不是特别充裕,有些模块以及整个系统还有很多不完善的地方,如界面不够美观,部分操作较为繁琐,部分实现不够简洁,操作性不太友好等。
4.2总结
通过这次数据结构实验的实践训练,进一步掌握了面向对象程序开发的思维方式,加深了对面向对象开发的各种优点的理解。
对如何把现实中的一些关系转化为程序中类与类之间关系的实践过程有了一点了解,提高了编程能力,培养综合分析、解决问题的能力。