求编程
一、目的
通过用C++编写一个学生考试成绩信息系统,强化面向对象程序设计思想,使学生能够将C++程序设计中的面向对象、重载、模板、文件等各种概念,灵活的运用到实际的程序设计中去。
二、要求
要求用C++面向对象的程序设计思想来实现学生考试成绩信息系统。
综合利用C++的基本语法,利用C++面向对象思想的各种基本概念,来设计和实现上述学生成绩信息系统。在实验中,有机的融入类和对象、数组和指针、重载、模板、文件的创建和使用等c++的基本概念。创建学生类、课程类,将学生的各项信息作为学生类的属性,排序、统计等作为课程类的成员函数。
使用数组模板实现学生群体,所有学生的信息存储成文件。该实验要求实现以下功能:
1)录入课程和选课学生的信息;
2)录入成绩
3)学生信息和成绩的修改;
3)统计学生成绩;
4)成绩排序;按成绩排序
5)统计成绩分布功能:即各成绩段学生的数量:“优”:90~100;“良”:80~90;“中”:70~80;“及格”:60~70;“不及格”60。
并输出统计分布结果;
三。细则。
使用面向对象的设计思想,在学生成绩考试系统中,主要涉及的是学生和课程,对于所有的学生,都具有共性,因此可以抽象为一个学生类,同理可以得到课程类。
1.类的设计:实验首先设计两个类:学生类和课程类,并根据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。
(1)学生类
(a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。
(b)操作:学生信息的输入、输入函数,学生成绩的设置和获取函数。
(2)课程类
(a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、选课的学生列表、学生成绩表。
(b)操作:包括课程信息的录入、录入选课学生信息、录入成绩,(若成绩为-1表示缺考),统计实考人数、成绩分析((1)各分数段人数、百分比、及格率,2)统计总平均成绩)、成绩排序、显示课程及选课学生信息等。
2。 类模板和函数模板的设计:
(1)数组类模板的设计:对于某一门课,选课的学生很多,可定义一个数组模板,并将数组模板实例化为学生对象数组。
(2)无论对什么数据类型的排序,使用的排序算法都是一样的,因此需要定义一个函数模板,用学生类实例化,实现学生的成绩排序,排序算法可选用插入排序、冒泡排序或者选择排序等。
3.运算符重载的设计
(1)学生的信息和成绩以及选课信息要求写入文件并在需要时从文件中读出,需要重载插入、提取运算符“>”。
(2)学生成绩排序要对学生对象进行比较、赋值等操作,而类实际上是一种复杂数据类型,因此上述这些操作要通过运算符重载(包括、==、)来实现。
4.主菜单设计
1) 录入课程及选课学生信息
2) 录入学生成绩
3) 统计学生成绩
4) 学生成绩排序
5) 输出课程信息
6) 保存文件
7) 另存为排序文件
8) 打开文件
9) 修改学生信息
10) 查找学生信息
11) 退出
。