奖学金计算系统报告.docx
《奖学金计算系统报告.docx》由会员分享,可在线阅读,更多相关《奖学金计算系统报告.docx(11页珍藏版)》请在冰豆网上搜索。
奖学金计算系统报告
奖学金计算系统报告
数据结构(C++实现)
实训报告
题目:
奖学金计算系统
专业:
班级:
学生:
学号:
指导老师:
一、需求分析
随着社会的信息量与日俱增,越来越多的人依赖信息技术。
同样,在大学的期末考核后,会有奖学金的评定。
我们知道,学生人数诸多,评定的内容也并没有很简单,单单只是靠人力来评定,工作量较大而且准确率有时会受到影响。
开发一个奖学金计算系统,可以充分减轻辅导员的工作量,又能提高准确率。
系统应实现的功能
本奖学金计算系统主要是建立在学生成绩基础上,方便计算出学生的学分绩及对应的奖学金,主要功能有学生成绩和学分绩的添加、查找、删除和修改。
根据输入姓名,学号,专业及成绩计算出学分绩,根据学分绩,按照实际奖学金的评定规则,输出各等奖学金。
系统模块划分如图
.系统应达到的性能
①数据精确度
在精度需求上,根据实际需要,数据在输入、输出及传输的过程中要满足各种精度的需求根据关键字精度的不同。
②时间特性
系统响应时间应在人的感觉和视觉范围内(<1 s),系统响应时间足够迅速(<5 s),能够满足用户要求。
③适应性
在操作方式、运行环境、软件接口或开发计划等发生变化时,应具有适应能力。
④可使用性
操作界面简单明了,易于操作,对格式和数据类型限制的数据,进行验证,包括客户端验证和服务器验证,并采用错误提醒机制,提示用户输入正确数据和正确的操作系统。
⑤安全保密性
只有合法用户才能登录使用系统,对每个用户都有权限设置。
对登录名、密码、以及用户重要信息进行加密,保证账号信息安全。
二、系统设计
逻辑结构的设计
本奖学金计算系统采用的是顺序表结构。
对于顺序表,计算机系统用一块地址连续的有限空间来依次存放线性表中的数据元素。
这样,任意两个逻辑上相邻的数据元素在物理存储上也是必然相邻。
顺序表可以随机访问,它可以通过元素的位置来访问数据元素。
E-R图
物理结构的设计
本奖学金计算系统采用的是顺序存储方式。
1)初始化学生信息
通过本模块添加学生的基本信息,包括学生姓名,学号,性别,专业。
并输入两个学期各个科目的成绩。
2)查看奖学金信息
通过初始化学生的信息,查奖学金信息,包括姓名,学分绩及奖学金数额。
3)查询个人奖学金
当录入的人数诸多时,输入学号,可以查询自己的奖学金数额。
4)修改个人成绩
三、部分函数成员的实现
1.初始化顺序表
voidguanli:
:
chushi(student*stu)
{
inti;
for(i=0;ivoidguanli:
:
paihang(student*stu)ingding();
}
boolfinish=false;PAswap(stu[j+1],stu[j]);
finish=false;
}
}
for(i=0;i{cout<}3.查询奖学金顺序表
voidguanli:
:
find(student*stu)
{
inta;floatb;
cout<<"请输入所查询学生学号"<stringch;
cin>>ch;inti;
for(i=0;i{if(ch==stu[i].number)
{
b=stu[i].pingding();
if(b>=75&&b<80)
cout<<"恭喜"<elseif(b>=80&&b<90)
cout<<"恭喜"<elseif(b>=90)
cout<<"恭喜"<else
cout<<"该生未获得奖学金,请继续努力"<return;}
}
cout<<"查无此人"<}
4.修改学生顺序表
voidguanli:
:
amend(student*stu)
{strings;inti=0,a,b;charch;floataa;
cout<<"请输入修改学生的学号"<cin>>s;
for(i=0;iif(stu[i].number==s
{loop1:
cout<<"请输入要修改的成绩"<cout<<"1上半年成绩"<cout<<"2下半年成绩"<cin>>a;
if(a==1){
cout<<"请输入要修改的学科"<cout<<"1数学"<cout<<"2英语"<cout<<"3体育"<cout<<"4实践"<cin>>b;
cout<<"请输入修改后的成绩"<cin>>aa;
switch(b)
{case1:
stu[i].=aa;break;
case2:
stu[i].=aa;break;
case3:
stu[i].=aa;break;
case4:
stu[i].=aa;break;}
}
elseif(a==2)
{cout<<"请输入要修改的学科"<cout<<"1数学"<cout<<"2英语"<cout<<"3体育"<cout<<"4实践"<cin>>b;
cout<<"请输入修改后的成绩"<cin>>aa;
switch(b)
{case1:
stu[i].=aa;break;
case2:
stu[i].=aa;break;
case3:
stu[i].=aa;break;
case4:
stu[i].=aa;break;}
}
else{cout<<"输入错误请重新输入"<gotoloop1;}我需要完成的是奖学金系统.
C++数据结构的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机基础语言.而我们通过这一学期的学习,对于其特点和算法有了一定程度的了解.这两周的实训课程正是让我们巩固以前的知识并在此基础上能够有所突破.
在大家的刻苦努力下,忙碌了两个星期,我们顺利的完成了对此程序的编译与调试运行.在设计程序的过程中,我们了解到要设计一个完整的程序,其中最难的可能就是设计整个程序的框架即需求分析,其中可能需要经过很多次的修改与调试,所以必须要有耐心,直至最后设计出自己想要的程序.
另外平时学习C++数据结构的基础也很关键.如果平时学的不怎么样,那么你面对这么一个比较有难度的程序时,可能会望而却步,看懂他人的程序是个难点,更别说让自己去设计了.获悉解决此类问题,最好就是多向同学,请教老师或者查找资料.
设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:
首先要了解这个问题的基本要求,即输入.输出.完成从输入到输出的要求是什么;其次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,确定所需的变量,数组,函数,然后确定处理的过程-----算法.
感谢这次的实训课程,它使我更加深刻的体会到C++数据结构程序编写过程的严谨与细致,还有就是无论做任何事情都要有耐心.总的来说,这次实训课程让我受益匪浅,对数据结构也有了进一步的认识:
其功能多,表达能力强,使用灵活方便,目标程序效率高等.C++是在国内外都广泛使用的一种计算机语言,相信以上优点,还有很多我所没有发现的,希望能在以后的学习中有更深入的认识。
附录参考文献
谭浩强著《C++面向对象程序设计》清华大学出版社;