奖学金计算系统报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构(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;

else

cout << "该生未获得奖学金,请继续努力" << 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++)

相关文档
最新文档