1.程序执行后的部分效果1.1项目主菜单效果图1.2初始化信息,第一次对信息的录入1.3添加学生信息1.4删除某学生信息1.5修改某学生信息1.6查询某学生信息1.7显示全部学生信息源代码:/*把StudentData.cpp(源代码)和student.txt(数据存放处)放在同一个文件夹下*/#includeiostream#includestring#includefstream#includestring#includeiomanipusingnamespacestd;//最多提供50个学生的数据,可根据需要进行更改constintMAX=50;intcount=0;//用来统计学生人数classStudent{public:voidSet();//初始化信息,第一次对信息的录入voidAdd();//添加学生信息//从磁盘读取数据以便进行数据的操作,方便再重写进磁盘friendvoidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[]);intJudge(stringnum);//判断num是否在学生信息数据库中(注意它有一个参数,并且有一个int型的返回值)voidDelete();//删除某学生信息voidChange();//修改某学生信息voidSearch();//查询某学生信息voidDisplay();//显示全部学生信息private:stringm_no;stringm_name;stringm_sex;//m_指的是成员变量(member)stringm_special;stringm_clas;};voidStudent::Set(){stringno,name,sex,special,clas;ofstreamoutfile(student.txt);//打开文件if(!outfile){cerropenerrorendl;exit(1);//退出程序}cout当学号输入为0时,停止输入!endl;cout请依次输入学生的学号,姓名,性别,专业,班级:endl;for(inti=0;iMAX;i++){cout第count+1个学生:endl;cinno;if(no==0)break;//当输入的学号是0时,停止录入cinnamesexspecialclas;count++;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();}//添加学生信息voidStudent::Add(){stringno,name,sex,special,clas;//以追加的方式录入信息,直接将信息追加到以前文件的末尾ofstreamoutfile(student.txt,ios::app);if(!outfile){cerropenerrorendl;exit(1);}count++;//添加一个学生信息,当然count要+1cout请依次输入要添加的学生学号,姓名,性别,专业,班级:endl;cinnonamesexspecialclas;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;}//从磁盘读取数据voidRead(stringno[],stringname[],stringsex[],stringspecial[],stringclas[]){ifstreaminfile(student.txt,ios::in);if(!infile){cerropenerrorendl;exit(1);}for(inti=0;icount;i++)//只读取存放在数组中但不对其进行相关操作{infileno[i]name[i]sex[i]special[i]clas[i];}infile.close();}//判断某学号的学生是否在数据库中intStudent::Judge(stringnum){stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];Read(no,name,sex,special,clas);//调用Read()函数,获取数据,以便等下进行相关数据的判断for(inti=0;icount;i++){if(num==no[i]){returni;//如果存在,返回其下标break;}}return-1;//否则,返回-1}//删除某学生信息voidStudent::Delete(){stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];Read(no,name,sex,special,clas);//读取学生所有数据,cout请输入你要删除的学生学号:;cinnum;intk=Judge(num);//定义一个k来接收Judge()的返回值,等下用来判断该num是否存在if(k!=-1)//如果k不等于-1,表示要删除的学生存在{ofstreamoutfile(student.txt);if(!outfile){cerropenerrorendl;exit(1);}for(inti=0;icount;i++){if(i!=k)//把下标不等于K(即除了要删的学生外)其余的数据重新写入磁盘保存{outfileno[i]\t;outfilename[i]\t;outfilesex[i]\t;outfilespecial[i]\t;outfileclas[i]endl;}}outfile.close();count--;//删除一个学生,人数-1cout删除成功!endl;}elsecout该数据库没有此学生!endl;}voidStudent::Change(){stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];cout请输入你要修改的学生学号:;cinnum;intk=Judge(num);if(k!=-1){Read(no,name,sex,special,clas);//读取学生所有数据,cout请依次输入修改后的学生学号,姓名,性别,专业,班级:endl;cinno[k]name[k]sex[k]special[k]clas[k];//把下标是k的学生进行修改ofstreamoutfile(student.txt,ios::out);if(!outfile){cerropenerrorendl;exit(1);}for(inti=0;icount;i++)//改完后,回写进磁盘保存{outfileno[i]\t;outfilename[i]\t;outfilesex[i]\t;outfilespecial[i]\t;outfileclas[i]endl;}outfile.close();cout修改成功!endl;}elsecout该数据库没有此学生!endl;}voidStudent::Search(){stringnum,no[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];Read(no,name,sex,special,clas);cout请输入你要查找的学生学号;cinnum;intk=Judge(num);if(k!=-1)//找到该学生就打印出其信息{cout学号\t姓名\t性别\t专业\t班级endl;coutno[k]\t;coutname[k]\t;coutsex[k]\t;coutspecial[k]\t;coutclas[k]endl;}elsecout该数据库没有此学生!endl;}//显示学生的所有信息voidStudent::Display(){stringno[MAX],name[MAX],sex[MAX],special[MAX],clas[MAX];Read(no,name,sex,special,clas);//先读取cout学号\t姓名\t性别\t专业\t班级endl;for(inti=0;icount;i++)//后打印{coutno[i]\t;coutname[i]\t;coutsex[i]\t;coutspecial[i]\t;coutclas[i]endl;}}intmain(){intchoice=-1;Students;while(choice!=0)//除非你选择退出,否则一直循环{cout\n\t\t\t--学生信息管理系统--\n\n;cout\t\t\t|1.录入学生信息|\n;cout\t\t\t|2.添加一个信息|\n;cout\t\t\t|3.删除一个信息|\n;cout\t\t\t|4.修改学生信息|\n;cout\t\t\t|5.查询学生信息|\n;cout\t\t\t|6.显示学生信息|\n;cout\t\t\t|0.退出系统|\n;cout请选择所需要的操作:;cinchoice;switch(choice){case1:s.Set();break;case2:s.Add();break;case3:s.Delete();break;case4:s.Change();break;case5:s.Search();break;case6:s.Display();break;case0:break;default:cout你的选择有误!请重新选择!endl;break;}}return0;}