学生信息管理系统C++代码.doc
1. 程序执行后的部分效果1.1项目主菜单效果图1。2初始化信息,第一次对信息的录入1。3添加学生信息1。4删除某学生信息1。5修改某学生信息1。6查询某学生信息1。7显示全部学生信息源代码:/把StudentData。cpp(源代码) 和 student.txt(数据存放处)放在同一个文件夹下/include iostream>#include string>include fstream>include stringinclude iomanip>using namespace std;/最多提供50个学生的数据,可根据需要进行更改const int MAX = 50;int count = 0;/用来统计学生人数class Student public:void Set();/初始化信息,第一次对信息的录入void Add();/添加学生信息/从磁盘读取数据以便 进行 数据的操作,方便再重写进磁盘friend void Read(string no,string name,string sex,string special,string clas);int Judge(string num);/判断 num 是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值)void Delete();/删除某学生信息void Change();/修改某学生信息 void Search();/查询某学生信息void Display();/显示全部学生信息private:string m_no;string m_name;string m_sex;/m_ 指的是成员变量(member)string m_special;string m_clas;;void Student:Set()string no, name, sex, special, clas;ofstream outfile(”student。txt"); /打开文件if(!outfile)cerr” open error"endl;exit(1);/退出程序cout<<”当学号输入为 0 时,停止输入!”<endl;cout”请依次输入学生的学号,姓名,性别,专业,班级:"<<endl;for(int i=0; iMAX; i+)cout<"第”count+1<"个学生:”<<endl;cin>no;if(no = ”0") break;/当输入的学号是 0 时,停止录入cin>namesexspecial>>clas;count+;m_no = no;outfile<<m_no<<”t”;/每录入一个学号,写进磁盘保存,以下同理m_name = name;outfile<m_name<”t”;m_sex = sex;outfilem_sex"t"m_special = special;outfilem_special<”t”;m_clas = clas;outfilem_clas<<endl;outfile。close();/添加学生信息void Student::Add()string no, name, sex, special, clas;/以追加的方式录入信息,直接将信息追加到以前文件的末尾ofstream outfile(”student。txt”,ios:app);if(!outfile) cerr" open error”endl; exit(1); count+;/添加一个学生信息,当然 count 要 +1cout”请依次输入要添加的学生学号,姓名,性别,专业,班级:”<endl;cin>no>>namesex>special>>clas;m_no = no;outfilem_no<"t”;m_name = name;outfilem_name<"t”;m_sex = sex;outfilem_sex<<”t”;m_special = special;outfilem_special<"t”;m_clas = clas;outfilem_clasendl;outfile。close();cout"已添加成功!"<<endl;/从磁盘读取数据void Read(string no,string name,string sex,string special,string clas)ifstream infile(”student。txt”,ios:in);if(!infile)cerr<” open error”endl;exit(1);for(int i=0; icount; i+)/只读取存放在数组中 但不对其进行相关操作infile>noinamei>sexispeciali>clasi;infile。close();/判断某学号的学生是否在数据库中int Student:Judge(string num)string noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/调用Read()函数,获取数据,以便等下进行相关数据的判断for(int i=0; i<count; i+)if(num = noi)return i;/如果存在,返回其下标break;return 1;/否则,返回-1/删除某学生信息void Student::Delete()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/读取学生所有数据,cout”请输入你要删除的学生学号:”;cin>num;int k = Judge(num);/定义一个k来接收Judge()的返回值,等下用来判断该num是否存在if(k != -1)/如果k不等于1, 表示要删除的学生存在ofstream outfile(”student。txt");if(!outfile)cerr” open error”endl; exit(1); for(int i=0; icount; i+)if(i != k)/把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存outfile<<noi<”t”;outfile<namei<”t";outfile<sexi”t”;outfilespeciali"t"outfile<clasi<endl;outfile.close();count-;/删除一个学生,人数 1cout”删除成功!”<endl;elsecout<<”该数据库没有此学生!"<<endl;void Student:Change()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;cout”请输入你要修改的学生学号:"cin>num;int k = Judge(num);if(k != 1)Read(no, name, sex, special, clas);/读取学生所有数据,cout<<”请依次输入修改后的学生学号,姓名,性别,专业,班级:"endl;cin>>nok>>namek>>sexk>specialkclask;/把下标是k的学生进行修改ofstream outfile(”student。txt",ios::out);if(!outfile) cerr” open error"<endl; exit(1); for(int i=0; icount; i+)/改完后,回写进磁盘保存outfile<noi”t";outfile<namei"t”;outfile<sexi<"t”;outfile<speciali<<”t”;outfile<clasiendl;outfile.close();cout”修改成功!”endl;elsecout<”该数据库没有此学生!”<endl;void Student:Search()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);cout”请输入你要查找的学生学号";cin>num;int k = Judge(num);if(k != 1)/找到该学生就打印出其信息cout”学号t姓名t性别t专业t班级"<endl;cout<nok<"t”;cout<namek<”t”;coutsexk<"t";cout<<specialk"t"coutclaskendl;elsecout<”该数据库没有此学生!"<endl;/显示学生的所有信息void Student:Display()string noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/先读取cout<<"学号t姓名t性别t专业t班级"<endl;for(int i=0; icount; i+)/后打印cout<noi”t”;cout<namei”t"coutsexi”t”;cout<speciali”t”;cout<clasi<endl;int main()int choice = -1;Student s;while(choice != 0)/除非你选择退出,否则一直循环cout<”nttt-学生信息管理系统nn";cout"ttt 1。录入学生信息 n";cout<”ttt 2。添加一个信息 n";cout<"ttt| 3。删除一个信息 n”;cout"ttt 4。修改学生信息 |n”;cout<”ttt 5.查询学生信息 |n”;cout”ttt 6。显示学生信息 |n”;cout<<”ttt 0.退出 系统 n”;cout<"请选择所需要的操作:”;cin>choice;switch(choice)case 1:s。Set();break;case 2:s.Add();break;case 3:s。Delete();break;case 4:s.Change();break;case 5:s。Search();break;case 6:s。Display();break;case 0:break;default:cout"你的选择有误!请重新选择!"endl;break;return 0;