当前位置:文档之家› 奖学金计算系统报告

奖学金计算系统报告

数据结构(C++实现)实训报告题目:奖学金计算系统专业:班级:学生:学号:指导老师:目录一、需求分析 (3)1.1 系统应实现的功能 (3)1.2. 系统应达到的性能 (3)二、系统设计 (4)2.1 逻辑结构的设计 (4)2.2物理结构的设计 (5)1)初始化学生信息 (5)2)查看奖学金信息 (5)3)查询个人奖学金 (5)4)修改个人成绩 (5)三、部分函数成员的实现 (6)1.初始化顺序表 (6)2.查看奖学金信息顺序表 (6)3.查询奖学金顺序表 (6)4. 修改学生顺序表 (7)四、测试与调试 (9)五、归纳总结 (11)一、需求分析随着社会的信息量与日俱增,越来越多的人依赖信息技术。

同样,在大学的期末考核后,会有奖学金的评定。

我们知道,学生人数诸多,评定的内容也并没有很简单,单单只是靠人力来评定,工作量较大而且准确率有时会受到影响。

开发一个奖学金计算系统,可以充分减轻辅导员的工作量,又能提高准确率。

1.1 系统应实现的功能本奖学金计算系统主要是建立在学生成绩基础上,方便计算出学生的学分绩及对应的奖学金,主要功能有学生成绩和学分绩的添加、查找、删除和修改。

根据输入姓名,学号,专业及成绩计算出学分绩,根据学分绩,按照实际奖学金的评定规则,输出各等奖学金。

系统模块划分如图1.2.①数据精确度在精度需求上,根据实际需要,数据在输入、输出及传输的过程中要满足各种精度的需求根据关键字精度的不同。

②时间特性系统响应时间应在人的感觉和视觉范围内(<1s),系统响应时间足够迅速(<5s),能够满足用户要求。

③适应性在操作方式、运行环境、软件接口或开发计划等发生变化时,应具有适应能力。

④可使用性操作界面简单明了,易于操作,对格式和数据类型限制的数据,进行验证,包括客户端验证和服务器验证,并采用错误提醒机制,提示用户输入正确数据和正确的操作系统。

⑤安全保密性只有合法用户才能登录使用系统,对每个用户都有权限设置。

对登录名、密码、以及用户重要信息进行加密,保证账号信息安全。

二、系统设计2.1 逻辑结构的设计本奖学金计算系统采用的是顺序表结构。

对于顺序表,计算机系统用一块地址连续的有限空间来依次存放线性表中的数据元素。

这样,任意两个逻辑上相邻的数据元素在物理存储上也是必然相邻。

顺序表可以随机访问,它可以通过元素的位置来访问数据元素。

E-R图2.2物理结构的设计本奖学金计算系统采用的是顺序存储方式。

1)初始化学生信息通过本模块添加学生的基本信息,包括学生姓名,学号,性别,专业。

并输入两个学期各个科目的成绩。

2)查看奖学金信息通过初始化学生的信息,查奖学金信息,包括姓名,学分绩及奖学金数额。

3)查询个人奖学金当录入的人数诸多时,输入学号,可以查询自己的奖学金数额。

4)修改个人成绩三、部分函数成员的实现1.初始化顺序表void guanli::chushi(student *stu){int i;for (i = 0; i < n; i++) //n是输入的人数stu[i].pingding();//调用奖学金评定函数,初始化每个同学奖学金都为零。

}2.查看奖学金信息顺序表void guanli::paihang(student *stu) //查看奖学金信息函数{ int i;cout << "姓名" << " " << "学分绩" << " " << "奖学金数额" << endl;for (i = 0; i < n; i++){stu[i].pingding();}bool finish = false; //冒泡排序,学分绩从大到小排列int k = 1;while (k < n && !finish) {finish = true;for (int j = 0; j < n - k; j++)if (stu[j].GPA < stu[j + 1].GPA) {swap(stu[j + 1], stu[j]);finish = false;}}for (i = 0; i < n; i++){cout << stu[i].name << " " << stu[i].GPA << " " << stu[i].money << endl;}}3.查询奖学金顺序表void guanli::find(student *stu){int a; float b;cout << "请输入所查询学生学号" << endl;string ch;cin >> ch; int i;for (i = 0; i < n; i++){if (ch == stu[i].number){b = stu[i].pingding();if (b >= 75 && b < 80)cout << "恭喜" << stu[i].name << "获得综合三等奖学金,数额为750" << endl;else if (b >= 80 && b < 90)cout << "恭喜" << stu[i].name << "获得综合二等奖学金,数额为1500" << endl;else if (b >= 90)cout << "恭喜" << stu[i].name << "获得综合一等奖学金,数额为3000" << endl;elsecout << "该生未获得奖学金,请继续努力" << endl; return;}}cout << "查无此人" << endl;}4. 修改学生顺序表void guanli::amend(student *stu){string s; int i = 0, a, b; char ch; float aa;cout << "请输入修改学生的学号" << endl;cin >> s;for (i = 0; i < n; i++)if (stu[i].number == s{ loop1:cout << "请输入要修改的成绩" << endl;cout << " 1上半年成绩 " << endl;cout << " 2下半年成绩 " << endl;cin >> a;if (a == 1) {cout << "请输入要修改的学科" << endl;cout << " 1数学" << endl;cout << " 2英语" << endl;cout << " 3体育" << endl;cout << " 4实践" << endl;cin >> b;cout << "请输入修改后的成绩" << endl;cin >> aa;switch (b){case 1:stu[i].first_grade.Math = aa; break;case 2:stu[i].first_grade.English = aa;break;case 3:stu[i].first_grade.Sport = aa;break;case 4:stu[i].first_grade.practise = aa;break; }}else if (a == 2){ cout << "请输入要修改的学科" << endl;cout << " 1数学" << endl;cout << " 2英语" << endl;cout << " 3体育" << endl;cout << " 4实践" << endl;cin >> b;cout << "请输入修改后的成绩" << endl;cin >> aa;switch (b){ case 1: stu[i].second_grade.Math = aa;break;case 2:stu[i].second_grade.English = aa; break;case 3: stu[i].second_grade.Sport = aa;break;case 4:stu[i].second_grade.practise = aa;break; }}else{cout << "输入错误请重新输入" << endl;goto loop1; }//当输入错误时,跳转到loop1循环cout << "是否继续修改?(Y/N)" << endl;cin >> ch;if (ch == 'y') goto loop1;//若继续修改,跳转循环return; //结束运行}cout << "查无此人" << endl;}四、测试与调试测试效果与截图程序效果主界面初始化学生信息查看奖学金信息查询个人奖学金修改个人成绩五、归纳总结本学期我们的C++数据结构实训课程的考试题目是让学生自主设计程序,全班每人都需要完成属于自己的程序.而我需要完成的是奖学金系统.C++数据结构的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机基础语言.而我们通过这一学期的学习,对于其特点和算法有了一定程度的了解.这两周的实训课程正是让我们巩固以前的知识并在此基础上能够有所突破.在大家的刻苦努力下,忙碌了两个星期,我们顺利的完成了对此程序的编译与调试运行.在设计程序的过程中,我们了解到要设计一个完整的程序,其中最难的可能就是设计整个程序的框架即需求分析,其中可能需要经过很多次的修改与调试,所以必须要有耐心,直至最后设计出自己想要的程序.另外平时学习C++数据结构的基础也很关键.如果平时学的不怎么样,那么你面对这么一个比较有难度的程序时,可能会望而却步,看懂他人的程序是个难点,更别说让自己去设计了.获悉解决此类问题,最好就是多向同学,请教老师或者查找资料.设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入.输出.完成从输入到输出的要求是什么;其次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,确定所需的变量,数组,函数,然后确定处理的过程-----算法.感谢这次的实训课程,它使我更加深刻的体会到C++数据结构程序编写过程的严谨与细致,还有就是无论做任何事情都要有耐心.总的来说,这次实训课程让我受益匪浅,对数据结构也有了进一步的认识:其功能多,表达能力强,使用灵活方便,目标程序效率高等.C++是在国内外都广泛使用的一种计算机语言,相信以上优点,还有很多我所没有发现的,希望能在以后的学习中有更深入的认识。

相关主题