学生选修课管理系统-C++课程设计(23页).doc
《学生选修课管理系统-C++课程设计(23页).doc》由会员分享,可在线阅读,更多相关《学生选修课管理系统-C++课程设计(23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第 1 页学生选修课管理系统-C+课程设计-第 2 页#include#include#include#include#include/using namespace std;const intcount=3;class situaction;classstudentpublic:int sno;char sname20;char sex3;int age;char depart20;char classno20;char lianx40;/public:friend voidsselect();friend voidsupdate();friend voidsdelet();friend
2、voidsaccount();friend voidsdisplay();friend istream&operator (istream&in,student&stu)instu.snostu.snamestu.sexstu.agestu.departstu.classnostu.lianx;return in;friend ostream&operator(ostream&out,student&stu)outstu.snostu.snamestu.sexstu.agestu.departstu.classnostu.lianxendl;return out;friend voidxkad
3、d();friend voidsadd();voidsadd()while(1)int flag1=0;student s;cout请输入要添加的学生的学号、姓名、性别、年龄、系别、班级、联系方式s;ifstream in(e:studentfile.txt);if(!in)cout打开学生信息文件失败!endl;return;student stu;in.read(char*)&stu,sizeof(student);-第 3 页while(!in.eof()if(s.sno=stu.sno)flag1=1;break;in.read(char*)&stu,sizeof(student);i
4、n.close();if(flag1=1)cout该学生已经在文件中存在不允许添加!endl;elseofstream out(e:studentfile.txt,ios:app);out.write(char*)&s,sizeof(student);out.close();system(pause);break;voidsselect()while(1)system(cls);cout*请选择要查询的类别:*endl;cout*按学生学号请按 1:*endl;cout*按学生姓名请按 2:*endl;cout*按学生系别请按 3:*endl;cout*按学生班级请按 4:*endl;cout
5、*返回上一级界面请按 5:*sn;while(sn5|sn1)cout选择的数据无效,请重新输入:sn;coutendl;ifstream in(e:studentfile.txt);if(!in)cout打开学生信息文件失败!endl;return;int flag=0;switch(sn)case 1:int no;cout请输入要查询的学生的学号no;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(no=stu.sno)coutstuendl;flag=1;in.read(char*)&stu,sizeof
6、(student);break;case 2:char name20;-第 4 页cout请输入要查询的学生的姓名name;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(strcpy(name,stu.sname)=0)coutstuendl;flag=1;in.read(char*)&stu,sizeof(student);break;case 3:char dep20;cout请输入要查询的学生的系别dep;student stu;in.read(char*)&stu,sizeof(student);whi
7、le(!in.eof()if(strcmp(dep,stu.depart)=0)coutstuendl;flag=1;in.read(char*)&stu,sizeof(student);break;case 4:char clno20;cout请输入要查询的学生的班级clno;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(strcmp(clno,stu.classno)=0)coutstuendl;flag=1;in.read(char*)&stu,sizeof(student);break;case 5:r
8、eturn;in.close();if(flag=0)cout要查询的学生在文件不存在!endl;system(pause);voidsupdate()while(1)system(cls);cout*请选择按下列类别查询后修改:*endl;cout*按学生学号请按 1:*endl;cout*按学生姓名请按 2:*endl;cout*按学生系别请按 3:*endl;cout*按学生班级请按 4:*endl;cout*返回上一级界面请按 5:*sn;while(sn5|sn1)cout选择的数据无效,请重新输入:sn;coutendl;fstream in(e:studentfile.txt,i
9、os:in|ios:out);if(!in)cout打开学生信息文件失败!endl;return;int flag=0;switch(sn)case 1:int no;cout请输入要查询的学生的学号no;student stu;int i=0;in.seekg(i*sizeof(student),ios:beg);in.read(char*)&stu,sizeof(student);while(!in.eof()if(no=stu.sno)coutstuendl;cout请输入要修改的学生的学号、姓名、性别、年龄、系别、班级、联系方式stu;in.seekp(i*sizeof(student
10、),ios:beg);in.write(char*)&stu,sizeof(student);flag=1;i+;in.seekg(i*sizeof(student),ios:beg);in.read(char*)&stu,sizeof(student);break;case 2:case 3:case 4:case 5:return;in.close();if(flag=0)cout要修改的学生在文件不存在!endl;system(pause);voidsdelet()while(1)system(cls);cout*请选择按下列类别查询后删除:*endl;cout*按学生学号请按 1:*e
11、ndl;-第 6 页cout*按学生姓名请按 2:*endl;cout*按学生系别请按 3:*endl;cout*按学生班级请按 4:*endl;cout*返回上一级界面请按 5:*sn;while(sn5|sn1)cout选择的数据无效,请重新输入:sn;coutendl;student stu20;int flag=0;switch(sn)case 1:ifstream in(e:studentfile.txt);if(!in)cout打开学生信息文件失败!endl;return;int n=0;in.read(char*)&stun,sizeof(student);while(!in.e
12、of()n+;in.read(char*)&stun,sizeof(student);in.close();int no;cout请输入要删除的学生的学号no;for(int i=0;in;i+)if(no=stui.sno)coutstuiendl;cout是否要删除该学生的信息!ch;if(ch=Y|ch=y)for(int j=i;jn;j+)stuj=stuj+1;n-;flag=1;if(flag=0)cout要修改的学生在文件不存在!endl;elseofstream out(e:studentfile.txt);if(!out)cout打开学生信息文件失败!endl;return
13、;-第 7 页for(int k=0;kn;k+)out.seekp(k*sizeof(student),ios:beg);out.write(char*)&stuk,sizeof(student);out.close();break;case 2:case 3:case 4:case 5:return;system(pause);voidsaccount()ifstream ifs(e:studentfile.txt);if(!ifs)cout打开文件失败!;system(pause);return;int i=0;student s;ifs.read(char*)&s,sizeof(stu
14、dent);while(!ifs.eof()i+;ifs.read(char*)&s,sizeof(student);ifs.close();cout学生:i人endl;ifs.close();system(pause);voidsdisplay()ifstream in(e:studentfile.txt,ios:in);if(!in)cout打开学生信息文件失败!endl;return;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()coutstu(istream&in,course&cou)amecou.cxzc
15、ou.zxscou.xfcou.kcxqcou.xxrs;return in;friend ostream&operator(ostream&out,course&cou)amecou.cxzcou.zxscou.xfcou.kcxqcou.xxrsendl;return out;friend voidxkadd();void cadd()int flag1=0;course c;cout请输入要添加的课程的课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数c;ifstream in(e:coursefile.txt);if(!in)cout打开课程信息文件失败!endl;retu
16、rn;course cou;in.read(char*)&cou,sizeof(course);while(!in.eof()if(o=o)flag1=1;break;in.read(char*)&cou,sizeof(course);in.close();if(flag1=1)cout该课程已经在文件中存在不允许添加!endl;elseofstream out(e:coursefile.txt,ios:app);out.write(char*)&c,sizeof(course);out.close();system(pause);voidcselect()while(1)-第 9 页syst
17、em(cls);cout*请选择要查询的类别:*endl;cout*按课程编号请按 1:*endl;cout*按课程名称请按 2:*endl;cout*返回上一级界面请按 3:*sn;while(sn3|sn1)cout选择的数据无效,请重新输入:sn;coutendl;ifstream in(e:coursefile.txt);if(!in)cout打开课程信息文件失败!endl;return;int flag=0;switch(sn)case 1:int no;cout请输入要查询的课程的编号no;course ke;in.read(char*)&ke,sizeof(course);whi
18、le(!in.eof()if(no=o)coutkeendl;flag=1;in.read(char*)&ke,sizeof(course);/if(no=ke.char*)&ke,sizeof(course);break;case 2:char name25;cout请输入要查询的课程的名称name;course ke;in.read(char*)&ke,sizeof(course);while(!in.eof()if(strcpy(name,ame)=0)coutkeendl;flag=1;in.read(char*)&ke,sizeof(course);break;case 3:retu
19、rn;in.close();if(flag=0)cout要查询的课程在文件不存在!endl;system(pause);voidcupdate()while(1)-第 10 页system(cls);cout*请选择按下列类别查询后修改:*endl;cout*按课程编号请按 1:*endl;cout*按课程名称请按 2:*endl;cout*按课程性质请按 3:*endl;cout*按课程学分请按 4:*endl;cout*返回上一级界面请按 5:*sn;while(sn5|sn1)cout选择的数据无效,请重新输入:sn;coutendl;fstream in(e:studentfile.t
20、xt,ios:in|ios:out);if(!in)cout打开课程信息文件失败!endl;return;int flag=0;switch(sn)case 1:int no;cout请输入要查询的课程的编号no;course k;int i=0;in.seekg(i*sizeof(course),ios:beg);in.read(char*)&k,sizeof(course);while(!in.eof()if(no=o)coutkendl;cout请输入要修改的课程的编号,名称,性质,学分k;in.seekp(i*sizeof(course),ios:beg);in.write(char*
21、)&k,sizeof(course);flag=1;i+;in.seekg(i*sizeof(course),ios:beg);in.read(char*)&k,sizeof(course);break;case 2:int no;cout请输入要查询的学生的学号no;-第 11 页student stu;int i=0;in.seekg(i*sizeof(student),ios:beg);in.read(char*)&stu,sizeof(student);while(!in.eof()if(no=stu.sno)coutstuendl;cout请输入要修改的的课程的编号,名称,性质,学分
22、stu;in.seekp(i*sizeof(student),ios:beg);in.write(char*)&stu,sizeof(student);flag=1;i+;in.seekg(i*sizeof(student),ios:beg);in.read(char*)&stu,sizeof(student);break;case 3:return;in.close();if(flag=0)cout要修改的选课信息在文件不存在!endl;system(pause);voidcdelet()while(1)system(cls);cout*请选择按下列类别查询后删除:*endl;cout*按课
23、程编号请按 1:*endl;cout*按课程名称请按 2:*endl;cout*返回上一级界面请按 3:*sn;while(sn3|sn1)cout选择的数据无效,请重新输入:sn;coutendl;course k20;int flag=0;switch(sn)case 1:ifstream in(e:coursefile.txt);if(!in)cout打开课程信息文件失败!endl;return;int n=0;in.read(char*)&kn,sizeof(course);while(!in.eof()-第 12 页n+;in.read(char*)&kn,sizeof(course
24、);in.close();int no;cout请输入要删除的课程的编号no;for(int i=0;in;i+)if(no=o)coutkiendl;cout是否要删除该课程的信息!ch;if(ch=Y|ch=y)for(int j=i;jn;j+)kj=kj+1;n-;flag=1;if(flag=0)cout要修改的课程在文件不存在!endl;elseofstream out(e:coursefile.txt);if(!out)cout打开课程信息文件失败!endl;return;for(int i=0;in;i+)out.seekp(i*sizeof(course),ios:beg);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选修课 管理 系统 C+ 课程设计 23
限制150内