学生选修课管理系统C++课程设计_第1页
学生选修课管理系统C++课程设计_第2页
学生选修课管理系统C++课程设计_第3页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<iostream.h>#include<string.h>#include<fstream.h>#include <stdlib.h>#include <time.h>/using namespace std;const intcount =3;class situaction;classstudent public: int sno;char sname20;char sex3; int age;char depart20; char classno20; char lianx40;/public:friend v

2、oidsselect();friend voidsupdate();friend voidsdelet();friend voidsaccount();friend voidsdisplay();friend istream & operator >> (istream & in,student &stu)in>>stu.sno>>stu.sname>>stu.sex>>stu.age>>stu.depart>>stu.classno>>stu.lianx; return i

3、n;friend ostream & operator<< ( ostream & out,student &stu)"<<stu.depart<<"out<<stu.sno<<""<<stu.classno<<""<<stu.sname<<""<<stu.lianx<<endl;"<<stu.sex<<""

4、<<stu.age<<"return out;friend voidfriend voidxkadd();sadd();voidsadd() while(1)int flag1=0;student s;cout<<" 请输入要添加的学生的学号、 姓名、性别、年龄、系别、班级、联系方式 "<<endl; cin>>s;ifstream in("e:studentfile.txt");if(!in)cout<<" 打开学生信息文件失败!"<<en

5、dl;return ;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(s.sno=stu.sno) flag1=1; break; in.read(char*)&stu,sizeof(student);in.close();if(flag1=1) cout<<" 该学生已经在文件中存在不允许添加! " <<endl; else ofstream out("e:studentfile.txt",ios:app); out.write(c

6、har*)&s,sizeof(student);out.close();system("pause");break;voidsselect() while(1)system("cls");cout<<"*请选择要查询的类别: *"<<endl;cout<<"*按学生学号请按 1: * "<<endl;cout<<"*按学生姓名请按 2: *"<<endl;cout<<"*按学生系别请按 3: *

7、"<<endl;cout<<"*按学生班级请按 4: *"<<endl;cout<<"*返回上一级界面请按 5: *"<<endl;int sn;cin>>sn;while(sn>5|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;cout<<endl;ifstream in("e:studentfile.txt");if(!in)cou

8、t<<" 打开学生信息文件失败! "<<endl;return ;int flag=0;switch(sn)case 1: int no;cout<<" 请输入要查询的学生的学号"<<endl;cin>>no;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof() if(no=stu.sno) cout<<stu<<endl; flag=1; in.read(char*)&stu,siz

9、eof(student);break;case 2: char name20;cout<<" 请输入要查询的学生的姓名"<<endl;cin>>name;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(strcpy(name,stu.sname)=0)cout<<stu<<endl;flag=1;in.read(char*)&stu,sizeof(student);break;case 3:char dep20;cou

10、t<<" 请输入要查询的学生的系别"<<endl;cin>>dep;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof() if(strcmp(dep,stu.depart)=0) cout<<stu<<endl; flag=1; in.read(char*)&stu,sizeof(student);break;case 4:char clno20;cout<<" 请输入要查询的学生的班级"<

11、<endl;cin>>clno;student stu;in.read(char*)&stu,sizeof(student);while(!in.eof()if(strcmp(clno,stu.classno)=0)cout<<stu<<endl;flag=1;in.read(char*)&stu,sizeof(student);break;case 5:return ;in.close();if(flag=0) cout<<" 要查询的学生在文件不存在! " <<endl; system(&

12、quot;pause");voidsupdate()while(1)system("cls");cout<<"* cout<<"* cout<<"* cout<<"* cout<<"* cout<<"*请选择按下列类别查询后修改:*"<<endl;按学生学号请按 1: * "<<endl;按学生姓名请按 2: *"<<endl;按学生系别请按 3: *"<

13、;<endl;按学生班级请按 4: *"<<endl;返回上一级界面请按 5: *"<<endl;int sn;cin>>sn;while(sn>5|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;cout<<endl;fstream in("e:studentfile.txt",ios:in|ios:out);if(!in)cout<<" 打开学生信息文件失败! "

14、;<<endl; return ;int flag=0;switch(sn)case 1: int no;cout<<" 请输入要查询的学生的学号"<<endl;cin>>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)cout<<stu<<endl;cout<<" 请输入要修改

15、的学生的学号、姓名、性别、年龄、系别、班级、联系方式"<<endl;cin>>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 2:case 3:case 4:case 5:return ;in.close();if(flag=0) cout<<&qu

16、ot;要修改的学生在文件不存在!" <<endl;system("pause");voidsdelet() while(1)system("cls");cout<<"*请选择按下列类别查询后删除:*"<<endl;cout<<"*按学生学号请按 1: * "<<endl;cout<<"*按学生姓名请按 2: *"<<endl;cout<<"*按学生系别请按 3: *"&l

17、t;<endl;cout<<"*按学生班级请按 4: *"<<endl;cout<<"*返回上一级界面请按 5: *"<<endl;int sn;cin>>sn;while(sn>5|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;cout<<endl;student stu20;int flag=0;switch(sn)case 1: ifstream in("

18、e:studentfile.txt");if(!in) cout<<" 打开学生信息文件失败! "<<endl; return ;int n=0;in.read(char*)&stun,sizeof(student);while(!in.eof() n+; in.read(char*)&stun,sizeof(student);in.close();int no;cout<<" 请输入要删除的学生的学号"<<endl;cin>>no;for(int i=0;i<n

19、;i+) if(no=stui.sno)cout<<stui<<endl;cout<<" 是否要删除该学生的信息!"<<endl;char ch;cin>>ch;if( ch='Y'|ch='y')for(int j=i;j<n;j+)stuj=stuj+1;n-;flag=1;if(flag=0)cout<<" 要 修 改 的 学 生 在 文 件 不 存 在 ! "<<endl;elseofstream out("e:st

20、udentfile.txt");if(!out)cout<<" 打开学生信息文件失败!"<<endl;return ;for(int k=0;k<n;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("

21、e:studentfile.txt"); if(!ifs)cout<<" 打开文件失败!"system("pause");return ;int i=0;student s;ifs.read(char*)&s,sizeof(student);while(!ifs.eof()i+;ifs.read(char*)&s,sizeof(student);ifs.close();cout<<" 学生: "<<i<<"人 "<<endl;if

22、s.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()cout<<stu<<endl; in.read(char*)&stu,sizeof(student);

23、in.close();system("pause");classcourse public: int cno;char cname20;char cxz10;intzxs;intxf;char kcxq10;intxxrs;/public:friend voidcadd();friend voidcselect();friend voidcupdate();friend voidcdelet();friend voidcaccount();friend voidcdisplay();friend istream & operator >> (istrea

24、m & in, course &cou)in>>o>>ame>>cou.cxz>>cou.zxs>>cou.xf>>cou.kcxq>>cou.xxrs;return in;friend ostream & operator <<(ostream & out,course &cou)out<<o<<""<<ame<<""<<cou.cxz<<&quo

25、t;"<<cou.zxs<<""<<cou.xf<<""<<cou.kcxq<<""<<cou.xxrs<<endl;return out;friend voidxkadd();void cadd() int flag1=0; course c;cout<<" 请输入要添加的课程的课程代码、课程名称、课程性质、总学时、学分、开课学期、选修人数 "<<endl;cin>>c;i

26、fstream in("e:coursefile.txt");if(!in)cout<<" 打开课程信息文件失败!"<<endl;return ;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<<"该课程已经在文件中存在不允许添加!" <

27、<endl;elseofstream out("e:coursefile.txt",ios:app); out.write(char*)&c,sizeof(course);out.close();system("pause");voidcselect()while(1) system("cls");cout<<"*请选择要查询的类别: *"<<endl;cout<<"*按课程编号请按 1: * "<<endl;cout<<

28、"*按课程名称请按 2: *"<<endl;cout<<"*返回上一级界面请按 3: *"<<endl;int sn;cin>>sn;while(sn>3|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;cout<<endl;ifstream in("e:coursefile.txt");if(!in)cout<<" 打开课程信息文件失败! &quo

29、t;<<endl; return ;int flag=0;switch(sn)case 1: int no;cout<<" 请输入要查询的课程的编号"<<endl;cin>>no;course ke;in.read(char*)&ke,sizeof(course);while(!in.eof() if(no=o) cout<<ke<<endl; flag=1; in.read(char*)&ke,sizeof(course);/if(no=ke. char*)&ke,sizeof

30、(course);break;case 2: char name25;cout<<" 请输入要查询的课程的名称"<<endl;cin>>name;course ke;in.read(char*)&ke,sizeof(course);while(!in.eof() if(strcpy(name,ame)=0) cout<<ke<<endl; flag=1; in.read(char*)&ke,sizeof(course);break;case 3:return ;in.close();if(flag=

31、0) cout<<"要查询的课程在文件不存在!" <<endl;system("pause");voidcupdate() while(1) system("cls");cout<<"*请选择按下列类别查询后修改:*"<<endl;cout<<"*按课程编号请按 1: * "<<endl;cout<<"*按课程名称请按 2: *"<<endl;cout<<"*

32、按课程性质请按 3: *"<<endl;cout<<"*按课程学分请按 4: *"<<endl;cout<<"*返回上一级界面请按 5: *"<<endl;int sn;cin>>sn;while(sn>5|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;cout<<endl;fstream in("e:studentfile.txt",

33、ios:in|ios:out);if(!in)cout<<" 打开课程信息文件失败! "<<endl;return ;int flag=0;switch(sn)case 1: int no;cout<<" 请输入要查询的课程的编号"<<endl;cin>>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)cout<

34、<k<<endl;cout<<" 请输入要修改的课程的编号,名称,性质,学分 "<<endl;cin>>k;in.seekp(i*sizeof(course),ios:beg);in.write(char*)&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<<" 请输入要查询的学生的学号&quo

35、t;<<endl;cin>>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)cout<<stu<<endl;cout<<" 请输入要修改的的课程的编号,名称,性质,学分 "<<endl;cin>>stu;in.seekp(i*sizeof(student),ios:beg);in.writ

36、e(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<<&quo

37、t;*请选择按下列类别查询后删除:*"<<endl;cout<<"*按课程编号请按 1: * "<<endl;cout<<"*按课程名称请按 2: *"<<endl;cout<<"*返回上一级界面请按 3: *"<<endl;int sn;cin>>sn;while(sn>3|sn<1)cout<<" 选择的数据无效,请重新输入:"<<endl;cin>>sn;c

38、out<<endl;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() n+; in.read(char*)&kn,sizeof(course);in.close();int no;cout<<"

39、 请输入要删除的课程的编号"<<endl;cin>>no;for(int i=0;i<n;i+) if(no=o)cout<<ki<<endl;cout<<" 是否要删除该课程的信息!"<<endl;char ch;cin>>ch;if( ch='Y'|ch='y')for(int j=i;j<n;j+)kj=kj+1;n-;flag=1;if(flag=0)cout<<" 要 修 改 的 课 程 在 文

40、件 不 存 在 ! "<<endl;elseofstream out("e:coursefile.txt");if(!out)cout<<" 打开课程信息文件失败!"<<endl;return ;for(int i=0;i<n;i+)out.seekp(i*sizeof(course),ios:beg);out.write(char*)&ki,sizeof(course);out.close();break;case 2:case 3:case 4:case 5:return ;system(&

41、quot;pause");voidcaccount()ifstream ifs("d:coursetfile.txt"); if(!ifs)cout<<" 打开文件失败!"system("pause");return ;int i=0;course ke;ifs.read(char*)&ke,sizeof(course);while(!ifs.eof()i+;ifs.read(char*)&ke,sizeof(course);ifs.close();cout<<" 课程: &

42、quot;<<i<<"门 "<<endl;ifs.close();system("pause");voidcdisplay() ifstream in("e:coursefile.txt"); if(!in)cout<<" 打开课程信息文件失败!"<<endl;return ;course cou;in.read(char*)&cou,sizeof( course);while(!in.eof()cout<<cou;in.read(ch

43、ar*)&cou,sizeof( course);in.close();system("pause");classsituaction public:int sno;int cno;int score;/ public:friend voidxkadd();friend voidxkselect();friend voidxkupdate();friend voidxkdelet();friend voidxkaccount();friend voidxkdisplay();friend istream & operator >> (istrea

44、m & in, situaction &si) in>>si.sno>>o;si.score=0;return in;friend ostream & operator <<(ostream & out,situaction &si)out<<si.sno<<""<<o<<""<<si.score<<endl;return out;voidxkadd() situaction xk;cout<<&

45、quot; 请输入要选修的学号、课程号"<<endl;cin>>xk;int flag1=0, flag2=0;ifstream in1("e:studentfile.txt");if(!in1)cout<<" 打开学生信息文件失败!"<<endl;return ;student stu;in1.read(char*)&stu,sizeof(student);while(!in1.eof()if(xk.sno=stu.sno) flag1=1; break;in1.read(char*)&

46、amp;stu,sizeof(student);in1.close();if(flag1=0) cout<<"该学生不存在不允许选课!" <<endl;else course cou;ifstream in2("e:coursefile.txt"); if(!in2)cout<<" 打开课程文件失败!"<<endl;return ;in2.read(char*)&cou,sizeof(course);while(!in2.eof()if(o=o) flag2=1; break;i

47、n2.read(char*)&cou,sizeof(course);in2.close();if(flag2=0) cout<<"该课程不存在不允许选课!" <<endl;else situaction si;int scount=0,ccount=0;ifstream in3("e:situationfile.txt");if(!in3)cout<<" 打开选课文件失败!"<<endl;return ;in3.read(char*)&si,sizeof(situaction);while(!in3.eof()if(xk.sno=si.sno) ccount+;if(o=o) scount+;in3.read(char*)&si,sizeof(situaction);in3.close();if(cou.xxrs<=scount)cout<<" 该课程人数已满不允许选课!" <<endl;else if(count<=ccount)cout<<" 该学生已选满"<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论