C++课程设计-学生成绩管理系统[1] 联系客服

发布时间 : 星期日 文章C++课程设计-学生成绩管理系统[1]更新完毕开始阅读df79dd4233b765ce0508763231126edb6f1a76f2

3.1.2 Stu类

正如上面所述,Course类的一个对象作为Stu类的一个数据成员,但是正常情况下,一个同学是不只一门科目的,所以要定义一个Course类的数组来存放同一学生的不同科目信息Course course[20]。为了其信息的隐蔽性,我们把所有的数据成员都声明为private。

接下来,要处理的就是函数了。有两种处理方式,但到底是采用成员函数还是采用友元函数呢在本例中,我采用的是友元函数。原因如下:

(1)采用友元函数,可以使类的结构变得更加简单,有助于整个设计过程的思考。 (2)使用友元函数,将函数独立于类的结构之外而采用类对象传参的方式,可以使该函数的独立性大大提高,有助于在其他地方的使用。

具体如下: 成员 Class_num num name sex age room tel average Num_of_course order Course[20]

友元函数:

Input( Stu stud[] ) Statistic( Stu stud[] ) Lookup( Stu stud[] ) Modify( Stu stud[] ) Delete( Stu stud[] ) Output( Stu stud[] ) Sort( Stu stud[] ) Insert( Stu stud[] ) Showfail( Stu stud[] ) 输入学生信息 学生信息输出 查找学生信息 修改学生信息 删除学生信息 输出全部信息 对学生进行排序 插入学生信息 查找不及格学生 成员属性 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 数据成员 访问类型 private private private private private private private private private private private Write( Stu stud[] ) Read( Stu stud[] ) void menu()

文件写入函数 文件读取函数 菜单函数,以供选择 整体流程

上面已经主要分开介绍了两个独立的类及其内部成员,现在来介绍整个学生系统功能实现的流程。 查询

主菜单函数

删除

输入 Switch语句选择 显示

不及格 修改

显示 插入

全部 排序查看学生成绩

文件读取 文件保存 4.主要模块的算法说明

信息的保存和读取

在本次课程设计中,因为还没有接触到数据库的有关知识,故采用文件流来写入和读取信息。主要涉及到fstream类。在系统运行过程中,会利用该类将学生的基本身份信息和基本课程信息全部存到自定义的一个文件中,当需要使用这些数据时,例如查询,修改,显示等,再将需要的读取出来进行相关的操作。

对信息的处理

4.2.1 数据的录入和插入

数据的录入和插入基本一样,这里只介绍录入。

当在主菜单里选择信息录入时,会跳出录入页面,只需依次输入提示的信息即可。在整个大体框架上,采用一个while语句判断是否继续录入。注意在录入学生成绩信息时。需要输入要登记的课程数目。其中成绩信息的各科综合成绩和是否重修不需要手动录入,它会在登记完平时成绩和末考成绩后自动生成。当所有信息录入完成后,该生所有科目的平均成绩average也会自动计算。

4.2.2 数据的查询

所谓数据的查询,就是把存放在文档中的学生数据读取出来并加以输出。

当只针对某个人的查询时,需要输入学号或姓名,再调用read()函数将相关的数据读取出来,至于需要输出哪些,可以自己控制。

当要输出所有学生的数据是时,首先调用read()函数返回数据的个数count,即学生的个数。最后采用for循环控制依次输出每一个学生的信息。

4.2.3 数据的修改

当修改数据时,只需输入需要修改学生的学号即可。首先会将该生的相关信息输出出来。然后再提示重新输入信息。执行到这里时基本就和前面的数据录入,插入一样了。

4.2.4 数据的删除

本例中,对数据的删除比较简单。只需输入学号或姓名,当查找到该生的相关信息后。将后面一个学生的信息赋值给他,相当于该生的信息被覆盖,也就是删除。

4.2.5 数据的排序

在需求分析中,有一项功能,按学生成绩平均分降序排列。此功能还是比较好实现的。 在输入学生数据时,当所有课程分数输入完毕,会自动生成一个平均分,该数值就是学生类Stu中的average数据成员。然后采用冒泡法比较大小,把这些学生的数据重新排列,最后再依次输出。

5.程序运行结果

菜单欢迎界面 信息的录入

如上所示,依次输入需要填写的信息,其中“该门课的综合成绩”和“是否重修”是不需要输入,系统自动执行的。最后还会提示是否继续填写(Y\\N)。

信息的显示

在这个功能里面主要显示全部同学的身份信息和平均分:

信息的查询

信息的查询分两种方式:

当你选择1 时,表示按学号查询, 当你选择2 时,表示按姓名查询。 下面介绍的是按学号查询。。。

如上所示,当输入需要查询的同学的学号时,会输出该同学的身份信息以及每一门课的综合成绩,还有这些课的平均成绩。

信息的修改

当输入需要修改的学生学号时,会首先输出该同学现在的已经存在的信息:

然后提示重新输入:

输入完成后,会提示是否保存: