设计一个程序,对学生的学籍信息进行管理。通过该系统实现对学生基本信息的录入、保存、删除、修改、查询等操作。
设计要求及提示如下:
1、学生基本信息包括:学号、姓名、性别、年龄、班号、专业名称、系别等。
2、使用类和对象的概念实现程序设计。
3、以菜单形式显示各功能项。
4、各功能项如下:
(1)学生基本信息的录入。
(2)学生基本信息的删除。
(3)学生基本信息的修改。
(4)学生基本信息的查询。
(b)按学号查询单个学生信息;
(b)按姓名查询单个学生信息;
(c)按性别查询学生信息;
(d)按班号查询学生信息;
(5)学生基本信息的统计。
(a)按性别统计学生人数;
(b)按班号统计学生人数;
(c)按年龄统计学生人数;
(d)按系别统计学生人数;
(6)退出系统。
5、执行某个功能之后,程序将重新显示菜单供用户选择。
6、将学生学籍信息保存到文件中。
读取文件内容一般使用getchar读取一个字母和getline读取一行字符串
eof()函数的判断文件指针是否在最后,故配合eof()可以进行对文件行数的统计等
切记勿直接对文件处理,而是把文件的数据先存储到计算机中,再对计算机内的容器进行操作。
例如:在学生信息管理系统中需要定义个student的类,我们就可以定义一个vector<student>的数组存储它;while循环中每次getline一个字符串string后,对字符串进行遍历,巧妙对空格进行判断,让对应的子串赋值给对应的数据,记的留类变量的接口。
在对学生信息进行操作管理,添加,new一个student,最后push_back;
删除,先找到要删除的学生,从这个删除的学生开始,让前一名学生等于后一名学生,最后resize让数组的长度减1;
修改,先找到要修改的学生,直接对学生信息进行修改,若修改的函数为为友元函数,需要定义SetValie()和GetValue()的接口
个人查询:直接匹配关键词key就行
统计:利用map<string,int>统计可以,种类就等于map对应的size(),分别输出的话直接for遍历即可
心得
文件流
C++标准库头文件—#include<fstream>,包含:ofstream,ifstream,fstream
open打开文件,close关闭文件
主要注意的是同个文件可同时被打开多次,但是不可以在同个作用域内同时进行IO处理,所以在函数内打开文件并对它处理的时候,记得在最后关闭文件。
ios::in 从文件读取信息
ios::out 向文件写入信息
ios::app 所有写入都追加到文件末尾
ios::trunc 清空文件后打开文件