一、实验目的及要求
通过设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解。培养学生对计算机应用系统的综合设计能力,培养学生正确分析和解决问题的能力,了解系统开发的过程,逐步熟悉程序设计的方法。
二、实验设备与平台
- 实验设备:计算机;
- 平台:Windows 10 操作系统,Visual Studio 2019。
三、实验内容与步骤
设计一个程序,对学生的学籍信息进行管理。通过该系统实现对学生基本信息的录入、保存、删除、修改、查询等操作。
设计要求及提示如下:
1、学生基本信息包括:学号、姓名、性别、年龄、班号、专业名称、系别等。
2、使用类和对象的概念实现程序设计。
3、以菜单形式显示各功能项。
4、各功能项如下:
(1)学生基本信息的录入。
(2)学生基本信息的删除。
(3)学生基本信息的修改。
(4)学生基本信息的查询。
(a)按学号查询单个学生信息;
(b)按姓名查询单个学生信息;
©按性别查询学生信息;
(d)按班号查询学生信息;
(5)学生基本信息的统计。
(a)按性别统计学生人数;
(b)按班号统计学生人数;
©按年龄统计学生人数;
(d)按系别统计学生人数;
(6)退出系统。
5、执行某个功能之后,程序将重新显示菜单供用户选择。
6、将学生学籍信息保存到文件中。
该代码尚未完善,还需要修改修改,仅供参考
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
class student
{
public:
student() {
}
student(long mID, string mName, string mSex, int mAge, string xi, string zhuanye, string mClass)
{
this->mID = mID;
this->mName = mName;
this->mSex = mSex;
this->mAge = mAge;
this->xi = xi;
this->zhuanye = zhuanye;
this->mClass = mClass;
this->Array = NULL;
this->number = 0;
//开辟空间
this->Array = new student * [this->number];
//将文件中的数据读到数组中
this->init();
}
~student()
{
if (this->Array != NULL) //堆区数据手动释放
{
delete[] this->Array;
this->Array = NULL;
}
}
void save(); //保存到文档
void menu(); //显示菜单
void add(); //录入信息
void init(); //从文档读取数据
void Delete(); //删除学生
int isExist(long id); //判断学生是否存在
void modifiy(); //修改学生信息
void find(); //实现查询功能
void showinfo(); //打印学生信息
void statistics(); //统计学生信息
private:
long mID;
string mName;
string mSex;
int mAge;
string mClass;
string zhuanye;
string xi;
int number; //记录学生人数
student** Array; //学生数组指针
};
void student::menu()
{
cout << " * 学生学籍管理系统 *\n " << endl;
cout << " ******************************************************\n" << endl;
cout << "*********************系统功能菜单************************* " << endl;
cout << " ---------------------- ---------------------- " << endl;
cout << " ********************************************* " << endl;
cout << " * 1. 学生基本信息的录入 * " << endl;
cout << " ********************************************* " << endl;
cout << " * 2.学生基本信息的删除 * " << endl;
cout << " ********************************************* " << endl;
cout << " * 3.学生基本信息的修改 * " << endl;
cout << " ********************************************* " << endl;
cout << " * 4.学生基本信息的查询 * " << endl;
cout << " ********************************************* " << endl;
cout << " * 5.学生基本信息的统计 * " << endl;
cout << " ********************************************* " << endl;
cout << " * 0.退出系统 * " << endl;
}
void student::add()
{
int n = 0; //保存用户输入数量
cout << "请输入需要录入学生信息数量:";
cin >> n;
if (n > 0)
{
int newSize = this->number + n; //新空间大小=原来记录人数+新增人数
student** newSpace = new student * [newSize]; //开辟新空间
//将原来空间下的数据,拷贝到新空间下
if (this->Array != NULL)
{