《学生信息管理计划系统C++代码.doc》由会员分享,可在线阅读,更多相关《学生信息管理计划系统C++代码.doc(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、#+1. 程序执行后的部分效果1.1项目主菜单效果图1.2初始化信息,第一次对信息的录入1.3添加学生信息1.4删除某学生信息1.5修改某学生信息1.6查询某学生信息1.7显示全部学生信息源代码:/*把StudentData.cpp(源代码) 和 student.txt(数据存放处)放在同一个文件夹下*/#include #include #include #include #include using namespace std;/最多提供50个学生的数据,可根据需要进行更改const int MAX = 50;int count = 0;/用来统计学生人数class Student pub
2、lic: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(
3、);/显示全部学生信息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 errorendl;exit(1);/退出程序cout当学号输入为 0 时,停止输入!endl;cout请依次输入学生的学号,姓名,性别,专业,班级:endl;
4、for(int i=0; iMAX; i+)cout第count+1个学生:no;if(no = 0) break;/当输入的学号是 0 时,停止录入cinnamesexspecialclas;count+;m_no = no;outfilem_not;/每录入一个学号,写进磁盘保存,以下同理m_name = name;outfilem_namet;m_sex = sex;outfilem_sext;m_special = special;outfilem_specialt;m_clas = clas;outfilem_clasendl;outfile.close();/添加学生信息void
5、Student:Add()string no, name, sex, special, clas;/以追加的方式录入信息,直接将信息追加到以前文件的末尾ofstream outfile(student.txt,ios:app);if(!outfile) cerr open errorendl; exit(1); count+;/添加一个学生信息,当然 count 要 +1cout请依次输入要添加的学生学号,姓名,性别,专业,班级:nonamesexspecialclas;m_no = no;outfilem_not;m_name = name;outfilem_namet;m_sex = se
6、x;outfilem_sext;m_special = special;outfilem_specialt;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 errorendl;exit(1);for(int i=0; inoinameisexispec
7、ialiclasi;infile.close();/判断某学号的学生是否在数据库中int Student:Judge(string num)string noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/调用Read()函数,获取数据,以便等下进行相关数据的判断for(int i=0; icount; i+)if(num = noi)return i;/如果存在,返回其下标break;return -1;/否则,返回-1/删除某学生信息void Student:Delete()stri
8、ng num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);/读取学生所有数据,coutnum;int k = Judge(num);/定义一个k来接收Judge()的返回值,等下用来判断该num是否存在if(k != -1)/如果k不等于-1, 表示要删除的学生存在ofstream outfile(student.txt);if(!outfile)cerr open errorendl; exit(1); for(int i=0; icount; i+)if(i != k)/把下
9、标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存outfilenoit;outfilenameit;outfilesexit;outfilespecialit;outfileclasiendl;outfile.close();count-;/删除一个学生,人数 -1cout删除成功!endl;elsecout该数据库没有此学生!endl;void Student:Change()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;coutnum;int k = Judge(num);if(k != -1)Read(no, n
10、ame, sex, special, clas);/读取学生所有数据,cout请依次输入修改后的学生学号,姓名,性别,专业,班级:noknameksexkspecialkclask;/把下标是k的学生进行修改ofstream outfile(student.txt,ios:out);if(!outfile) cerr open errorendl; exit(1); for(int i=0; icount; i+)/改完后,回写进磁盘保存outfilenoit;outfilenameit;outfilesexit;outfilespecialit;outfileclasiendl;outfil
11、e.close();cout修改成功!endl;elsecout该数据库没有此学生!endl;void Student:Search()string num, noMAX, nameMAX, sexMAX, specialMAX, clasMAX;Read(no, name, sex, special, clas);coutnum;int k = Judge(num);if(k != -1)/找到该学生就打印出其信息cout学号t姓名t性别t专业t班级endl;coutnokt;coutnamekt;coutsexkt;coutspecialkt;coutclaskendl;elsecout该
12、数据库没有此学生!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+)/后打印coutnoit;coutnameit;coutsexit;coutspecialit;coutclasiendl;int main()int choice = -1;Student s;while(choice != 0)/
13、除非你选择退出,否则一直循环coutnttt-学生信息管理系统-nn;coutttt| 1.录入学生信息 |n;coutttt| 2.添加一个信息 |n;coutttt| 3.删除一个信息 |n;coutttt| 4.修改学生信息 |n;coutttt| 5.查询学生信息 |n;coutttt| 6.显示学生信息 |n;coutttt| 0.退出 系统 |n;coutchoice;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;