学生评教管理系统_第1页
学生评教管理系统_第2页
学生评教管理系统_第3页
学生评教管理系统_第4页
学生评教管理系统_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、# i n c l u d e #include#include#include #include#includeusing namespace std;int s=0;int u=0;class teacher;class studentpublic:void resetsno(int);void inputst(char * ,char *,int,int,char *,long);void outputst(int);int checkst(int);void findst(int);void deletest(int);void resortst(int);void coverst(i

2、nt);int getsno(int);void lessoninput(int);int outtofile1(int);student student:operator=(student &s1);double value(teacher &te);protected:char name20;char sex20;int age;int sno;long tel;char banji50;char lesson1050;/ 用二维的字符数组存储学生所学的课程 ;class teacherpublic:double resetscore(double,int);teacher teacher

3、:operator=(teacher &t1);void resetworkno(int);void inputte(char *,char *,int,char *,char *,int);void outputte(int);int checkte(int);void findte(int);void deletete(int);void resortte(int);void resort(int);void coverte(int);int getworkno(int);int outtofile2(int);double getscore(int);友元成员。声friend doubl

4、e student:value(teacher &te);/明类 student 的 value 作为类 teacher 的友元函数。 protected:char name20;char sex20;int age;int workno;char les50;char dep50;double score;student stu50;teacher tea10;int student:getsno(int s)return stus.sno;void student:resetsno(int s)cinstus.sno;student student:operator=(student &s

5、1)/ 用成员函数来实现赋 值运算符的重载。strcpy(name,);sno=s1.sno;strcpy(banji,s1.banji);strcpy(sex,s1.sex);age=s1.age;tel=s1.tel;for(int i=0;i10;i+) strcpy(lessoni,s1.lessoni);return *this;void student:inputst(char *xm ,char *xb,int nl,int xh,char *bj,long dh)strcpy(,xm);strcpy(stus.sex,xb);stus.age=n

6、l;while (xh999) /判断输入的学号是否正确cout 您输 入的学 号不 正确 , 请输入 一个 三位 数的学 号 xh;while(checkst(xh)cout 学号重复 ! 请重新输入 :xh;stus.sno=xh;strcpy(stus.banji,bj);stus.tel=dh;void student:lessoninput(int s)int n;coutn;for(int i=0;in;i+)cout 这是本学期第 i+1stus.lessoni;void student:outputst(int s)cout 学生的姓名是 :endl;cout

7、 学生的性别是 :stus.sexendl;cout 学生的学号是 :stus.snoendl;cout 学生的年龄是 :stus.ageendl;cout 学生的班级是 :stus.banjiendl;cout 学生的联系电话是 :stus.telendl;cout 学生本学期所学课程有 :;for(int i=0;i10;i+)couttteau.workno;int teacher:getworkno(int u)return teau.workno;void teacher:inputte(char *xm,char *xb,int nl,char *yb,char *kc,int g

8、h)strcpy(,xm);strcpy(teau.sex,xb);teau.age=nl;while (gh99999) / 判断输入的学号是否正确cout 您输 入的工 号不 正确 , 请输入 一个 五位 数的工 号 gh;while(checkte(gh)cout 工号重复 ! 请重新输入 :gh;teau.workno=gh;strcpy(teau.dep,yb);strcpy(teau.les,kc);void teacher:outputte(int u)cout 教师的姓名是 :endl;cout 教师的性别是 :teau.sexendl;co

9、ut 教师的年龄是 :teau.ageendl;cout 教师的工号是 :teau.worknoendl;cout 教师的院部是 :teau.dependl;cout 教师所教授的课程是 :teau.lesendl; double student:value(teacher &te)int n=0;double sum=0;for(int i=1;i=s;i+)int m=0;for(int j=0;j10;j+)if(strcmp(stui.lessonj,te.les)=0)/ 只有当学生 学习了教师教授的课程才可以对教师进行评教n+;m+; 同学 :; cout

10、te.score;sum+=te.score;if(m=0) 同学 :; cout 你没有学习该教师的课程 ! 不能对其进行评分。endl;if(n=0)cout 没有学生对该教师进行评分。 endl;return 0;elseendl;cout 有n 个学生对该教师进行了评分。 return sum/n;int student:checkst(int xh1)/ 检查int m=0;while(ms+1)return 0;elsereturn 1;int student:outtofile1(int s)ofstream fout(D:student.txt,ios

11、:app);if(!fout)cout 文件打开失败 !endl; return 1; stus.sex stus.age stus.sno stus.banji stus.tel ;for(int i=0;i10;i+)foutstus.lessoni ;fout.close();return 0;void student:findst(int s) / 按学号查找模块int xh,p;while(s=0)cout 没有记录,请先输入记录! endl;break;if(s!=0)coutxh;while (xh999)cout 您输入的学号不正确 , 请您输入一个三

12、位数的学号 xh;while(checkst(xh)cout 学号重复 ! 请重新输入 :xh;while(s!=0) / 查找是否有符合条件的记录if (xh=stus.sno)p=1;outputst(s);coutendl;getch();break;elsep=0;s-;if(p=0) / 用 p 标记是否有查找的对象。cout 很抱歉 , 没有找到您要查找的学号 !endl;getch();void student:resortst(int s) /按学号排序student st1;while(s=0)cout 没有记录,请先输入记录! endl;break;if(s!=0)for(

13、int i=1;i=s;i+) /利用冒泡法对 stu 进行排序for(int j=1;jstuj+1.sno)st1=stuj;stuj=stuj+1;stuj+1=st1;for(int k=1;k=s;k+)outputst(k);coutendl;getch();void student:deletest(int n) /删除学生记录int xh,p=0;char da;while(s=0)cout 没有学生记录,请先输入记录! endl;break;if(s!=0)coutxh;while (xh999)cout 您输入的学号不正确 , 请您输入一个三位数的学号 xh;while(c

14、heckst(xh)cout 学号重复 ! 请重新输入 :xh;for(int i=1;i=n;i+)if(stui.sno=xh)outputst(i);coutendl; coutda;if(da=y|da=Y)for(int j=i;jn;j+) /删除记录strcpy(,stuj+1.name);strcpy(stuj.sex,stuj+1.sex);stuj.age=stuj+1.age;stuj.sno=stuj+1.sno;strcpy(stuj.banji,stuj+1.banji); stuj.tel=stuj+1.tel;for(int k=0;k10;k

15、+)strcpy(stuj.lessonk,stuj+1.lessonk);cout 该记录已删除 !endl;s=s-1;p=1;break;elsecout 该记录未删除 !endl;p=1;if(p=0)cout 很抱歉 , 没有找到您要找的学号 !endl;getch();void student:coverst(int s)/ 为检查修改的结果应该把修改前和 修改后的结果都输出来。 / 不允许修改学号int p,xh;while(s=0)cout 没有学生记录,请先输入记录! endl;break;if(s!=0)cout 请输入要修改的学生的学号 :xh;while (xh999)

16、cout 您输入的学号不正确 , 请您输入一个三位数的学号 xh;while(checkst(xh)cout 学号重复 ! 请重新输入 :xh;for(int i=1;i=s;i+)if(stui.sno!=xh)p=0;if(stui.sno=xh)p=1;cout 修改前的学生信息是 :endl;outputst(i); coutendl;cout 请输入学生的以下信息 :endl; ;coutstui.sex;coutstui.age;coutstui.banji;coutstui.tel;cout 课程 :;lessoninput(i);coutendl;co

17、ut 修改后的学生信息是 :endl; outputst(i);coutendl;break;if(p=0)cout 很抱歉, 没有找到您要找的学号 !endl;getch();/用成员函数来实现赋teacher teacher:operator=(teacher &t1)/ 值运算符的重载。strcpy(name,); workno=t1.workno; strcpy(sex,t1.sex); strcpy(dep,t1.dep);age=t1.age;score=t1.score; strcpy(les,t1.les); return *this;int teacher:ch

18、eckte(int gh1)/ 检查模块int n=0;while(nu+1)return 0;elsereturn 1;void teacher:findte(int u) /按工号查找模块int gh,p;while(u=0)cout 没有教师记录,请先输入记录! endl;break;if(u!=0)coutgh;while (gh99999) / 判断输入的工号是否正确cout 您输入的工号不正确 , 请输入一个五位数的工号gh;while(checkte(gh)cout 工号重复 ! 请重新输入 :gh;while(u!=0) / 查找是否有符合条件的记录if (gh=teau.wo

19、rkno)p=1;outputte(u);coutendl;getch();break;elsep=0;u-;if(p=0) / 用 p 标记是否有查找的对象。cout 很抱歉 , 没有找到您要查找的工号 !endl;getch();void teacher:resortte(int u) / 按工号排序teacher te;while(u=0)cout 没有教师记录,请先输入记录! endl;break;if(u!=0)for(int i=1;i=u;i+) /利用冒泡法对 tea 进行排序for(int j=1;jteaj+1.workno) te=teaj;teaj=teaj+1;tea

20、j+1=te;for(int k=1;k=u;k+)outputte(k);coutendl;getch();int teacher:outtofile2(int u)ofstream fout1(D:teacher.txt,ios:app);if(!fout1)cout 文件打开失败 !endl;return 1; teau.sexteau.workno teau.dep teau.score;fout1.close();return 0;double teacher:resetscore(double cj,int u)teau.

21、score=cj;return teau.score;void teacher:resort(int u) /按评教成绩对教师进行排序teacher te;cout 请在进行此功能前首先确定已经进行过评教 !endl;while(u=0)cout 没有教师记录,请先输入记录! endl;break;if(u!=0)for(int i=1;i=u;i+)for(int j=1;j=u-i;j+)if(teaj.scoreteaj+1.score)te=teaj;teaj=teaj+1;teaj+1=te;for(int k=1;k=u;k+)te.outputte(k);成绩cout 该 教 师

22、 的 评 教 是:teak.getscore(k)endl;coutendl;getch();void teacher:deletete(int n) / 删除教师记录int gh,p=0;char da;while(u=0)cout 没有教师记录,请先输入记录! endl;break;if(u!=0)coutgh;while (gh99999) / 判断输入的工号是否正确 cout 您输入的工号不正确 , 请输入一个五位数的工号 gh;while(checkte(gh)cout 工号重复 ! 请重新输入 :gh;for(int i=1;i=n;i+)if(teai.workno=gh)out

23、putte(i);coutendl;coutda;if(da=y|da=Y)for(int j=i;jn;j+) / 删除记录strcpy(,teaj+1.name);strcpy(teaj.sex,teaj+1.sex);teaj.age=teaj+1.age;teaj.workno=teaj+1.workno;strcpy(teaj.dep,teaj+1.dep);strcpy(teaj.les,teaj+1.les);cout 该记录已删除 !endl;u=u-1;p=1;break;elsecout 该记录未删除 !endl;p=1;if(p=0)cout 很抱歉 ,

24、 没有找到您要找的工号 !endl;getch();void teacher:coverte(int u)/ 为检查修改的结果应该把修改前和 修改后的结果都输出来。 / 不允许修改工号int p,gh;while(u=0)cout 没有记录,请先输入记录! endl;break;if(u!=0)cout 请输入要修改的教师的工号 :gh;while (gh99999) / 判断输入的工号是否正确cout 您输入的工号不正确 , 请输入一个五位数的工号 gh;while(checkte(gh)cout 工号重复 ! 请重新输入 :gh;for(int i=1;i=u;i+)if(teai.wor

25、kno!=gh)p=0;if(teai.workno=gh)p=1;cout 修改前的教师信息是 :endl; outputte(i);coutendl;cout 请输入教师的以下信息 :endl;;coutteai.sex;coutteai.age;coutteai.dep;coutteai.les;coutendl;cout 修改后的教师信息是 :endl;outputte(i);coutendl;break;if(p=0)cout 很抱歉, 没有找到您要找的工号 !endl;getch();void main()student st;char da,*xm,*x

26、b,*bj,*yb,*kc; int a,nl,xh,gh;long dh;teacher te;double cj;time_t t;time(&t);while(1)system(cls);coutendl;cout欢迎使用学生评教管理系统 endl;cout时间和日期 :ctime(&t)endl;cout1 输入 / 添加学生资料 endl;cout2 显示学生资料 endl;cout3 按学号查找学生资料 endl;cout4 按学生学号排序 endl;cout5 按学号修改学生资料 endl;cout6 按学号删除学生资料 endl;cout7输入/添加教师资料 endl;cout

27、8 对教师进行评教 endl;cout9 显示教师资料 endl;cout10 按教师工号查找教师信息 endl;cout11 按教师评教成绩平均分进行排序 endl;cout12 按教师工号排序 endl;cout13 按教师工号修改教师资料 endl;cout14 按教师工号删除教师资料 endl;cout0 退出 endl;cout请选择操作 (1-14)endla;exit: if(a=0) break; /exit 是标号。switch(a)case 1:xm=new char;xb=new char;bj=new char;cout 请输入学生的以下信息 :endl;coutxm;

28、 coutxb;coutnl; coutxh; coutbj;coutdh;while(st.checkst(xh)cout 学号重复 , 请重新输入 !xh;s=s+1;st.inputst(xm,xb,nl,xh,bj,dh);st.lessoninput(s);coutda;while (da=y|da=Y) / 判断是否要继续输入 xm=new char;xb=new char;bj=new char;cout 请输入学生的以下信息 :endl;coutxm;coutxb;coutnl;coutxh;coutbj;coutdh;while(st.checkst(xh)cout 学号重复 , 请重新输入 !xh;s=s+1;st.inputst(xm,xb,nl,xh,bj,dh);st.lessoninput(s);coutda;getch();break;case 2:if(s=0) / 判断是否有记录输入cout 没有学生记录 , 请先输入记录 !endl; getch();break;if(s!=0)for(int i=1;i=s;i+)st.outputst(i);st.outtofile1(i);coutendl;getch();break;case 3:st.findst(s);break;case 4:st.resor

温馨提示

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

评论

0/150

提交评论