教师评学管理系统.doc

上传人:大张伟 文档编号:8888938 上传时间:2021-01-23 格式:DOC 页数:15 大小:68.50KB
返回 下载 相关 举报
教师评学管理系统.doc_第1页
第1页 / 共15页
教师评学管理系统.doc_第2页
第2页 / 共15页
教师评学管理系统.doc_第3页
第3页 / 共15页
教师评学管理系统.doc_第4页
第4页 / 共15页
教师评学管理系统.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《教师评学管理系统.doc》由会员分享,可在线阅读,更多相关《教师评学管理系统.doc(15页珍藏版)》请在三一文库上搜索。

1、教师评学管理系统:(上传时间 :2012/7/17)注:本题目源码仅供参考,直接套用者后果自负。涉及知识:运算符重载、链表、友元、输入输出流等。#GUIDIAN#要求:该系统主要处理教师评学信息。班级信息主要包括:班级编号、班级名称、所在院系、评学成绩等内容。教师信息主要包括:编号、姓名、电话等内容。完成以下的操作:班级信息、教师信息、评学信息的录入、修改、删除和查询。提示:建立学校类、教师类、班级类、评学类学校、教师、班级、评学信息的初始化学校、教师、班级、评学信息的添加、修改、删除、查找学校、教师、班级、评学信息的输出对评学信息按评学成绩排序使用方法:按照注释分别加入到各个头文件中。附录:

2、源程序/ChainChart.h#ifndef CHAINCHART_H#define CHAINCHART_H#includeSchool.h /链表类class Nodepublic: Mate m;Teacher t;School s;Evaluate e; Node *next; ;class Listprivate:char School32; char Name32;char Tel32;int Number; int Mark;public: Node *head; List(); bool Tof(); /判断d void Paixu(); /排序d void Del(); /

3、 删除d void Add(); /增加d void Find(); /查询d void Fix(); /修改d void Insert();/插入d void Print(); /打印d int Length(); /长度判断d void Save();/保存d void Load();/载入d;#endif/school.h#ifndef SCHOOL_H#define SCHOOL_H /学校类#includeclass Mateprivate:char Department32;double Mark; public: char Name32; int Number;void Set(

4、); void Show();void Set(float); friend ostream &operator (ostream & stream,Mate &m)coutm.Numbertm.Nametm.Departmentt; return stream;class Teacherprivate:char Tel32; public:int Number;char Name32;void Show();void Set(char * ,char * ,int); friend ostream &operator (ostream & stream,Teacher &t) coutt.N

5、umbertt.Namett.Telt; return stream;class Schoolchar Name32;public:void Set(char *); void Show();friend ostream &operator (ostream & stream,School &s)couts.Namet; return stream;class Evaluatepublic:void Set();void Show(); double Mark;double Record(); friend ostream &operator (ostream & stream,Evaluat

6、e &e)coute.Markt; return stream;#endif/Chainchart.cpp#include ChainChart.h #include School.h#include #include #include List:List() head=new Node; head-next=NULL; bool List:Tof() / 判断是否继续输入 char tof; cout* 继续输入信息? yes:y no:n *tof;if(tof=n)return true;else if(tof=y)return false;else return Tof();int L

7、ist:Length() /求链表的长度int sum=0;Node *cur;cur=head-next;while(cur!=NULL)cur=cur-next ;sum+;return sum;void List:Add() /加入新链表 Node *pre; Node *nw=new Node; head-next=nw; nw-next=new Node; char tof; cout-下面开始录入:-endl; coutendl; cout输入您(老师)的学校:School; cout输入您的编号:Number; cout输入您的电话:Tel; cout输入您的名字:Name; n

8、w-s.Set(School); /录入学校名字 nw-t.Set(Name,Tel,Number);/录入老师信息 cout-您是 Name 老师,下面录入班级信息-endl; coutm.Set();/录入班级的信息 cout是否直接录入这个班级的成绩 y/ntof; if(tof=y) nw-e.Set();/录入评学成绩 else if(tof=n) nw-e.Mark=nw-e.Record(); pre=nw; nw=nw-next; if(Tof() pre-next=NULL; nw=NULL; cout #评学信息录入完毕,下面进行下一步操作!#endl; couts.Set

9、(School); /录入学校名字 nw-t.Set(Name,Tel,Number);/录入老师信息 cout-您是 Name 老师下面录入班级信息-endl; coutm.Set();/录入班级的信息 cout是否直接录入这个班级的成绩 y/ntof; if(tof=y) nw-e.Set();/录入评学成绩 else if(tof=n) nw-e.Mark=nw-e.Record(); nw-next=new Node; pre=nw; nw=nw-next; if(Tof() pre-next=NULL; nw=NULL; coutendl; cout #评学信息录入完毕,下面进行下一

10、步操作!#endl; coutendl; coutendl; coutnext=NULL; delete nw; coutendl; cout #评学信息录入完毕,下面进行下一步操作!#endl; coutnext-next=NULL)return; /把if语句放进去就不执行,i很小for(int i=0;inext; tem=head; pre=cur; cur=cur-next; for(int j=0;je.Markcur-e.Mark ) pre-next=cur-next; cur-next=pre; tem-next=cur; tem2=cur; cur=pre; pre=tem

11、2; if(j=Length()-2) /防止排序越界break; pre=pre-next; cur=cur-next; tem=tem-next; cout-排序成功-next=NULL;void List:Print() /链表打印 Node *cur; cur=head-next; int i=1; if(head-next=NULL) cout表中还没有人,怎么打印endl;return; coutendl; coutendl; cout-下面开始打印各个信息-endl; coutendl; cout序号 学校 老师编号 名字 电话 班级编号 名称 学院 成绩next=NULL) c

12、outitstmeendl; coutendl; cout-打印完毕,请继续下一步操作-next!=NULL) coutitstmenext; i+; coutitstmeendl; cout-打印完毕,请继续下一步操作-endl; /chainchart2.cpp#include ChainChart.h #include School.h#include#include#includevoid List:Insert()Node *cur,*nw;cur=head;if(cur-next=NULL)cout 表中没有人,请先加入!next!=NULL) cur=cur-next; nw=n

13、ew Node; cur-next=nw; cout输入您的学校:School; cout输入老师的编号:Number; cout输入老师的电话:Tel; cout输入老师的名字:Name; nw-s.Set(School); /录入学校名字 nw-t.Set(Name,Tel,Number);/录入老师信息 nw-m.Set();/录入班级的信息 nw-e.Set();/录入评学成绩 nw-next=NULL; void List:Del() /删除函数 int Number; Node *cur,*pre; cout输入要删除班级的编号Number; int j=0; if(head=NU

14、LL) cout表是空的,不能删除endl;return; cur=pre=head; while(jnext;if(cur-m.Number=Number) if(head=cur) head=head-next; /如果是头指针指向的节点,则还要重新添加引导 elsepre-next=cur-next;cout这个班级的信息已经删除!endl;return;j+; cout找不到这个班的编号,请重新输入!next; cout输入要查找的班级编号Number; int j=0; if(head=NULL) cout表是空的,不能查找endl;return; cur=head; while(j

15、next;if(cur-m.Number=Number) cout已经找到,下面输出信息endl; cout学校 老师编号 名字 电话 班级编号 名称 学院 成绩endl; coutstmeendl;return;j+; cout%找来找去,找不到这班%next; while(1) cout请输入修改的目标,修改班级信息:1 修改老师信息:2choose; i=0;cur=head-next;if(choose=1) i=0; cout请输入班级的编号:Num; cout请输入班级的名称:Nam; cur=head-next; while(im.Number=Num&strcmp(Nam,cu

16、r-m.Name)=0) cout下面录入这个班级要修改的信息:m.Set(); cout班级信息修改成功!next; if(i=Length()-1) cout查不到这个班,请重新输入next; cout请输入老师的编号:Num; cout请输入老师的姓名:Nam; cout -下面录入老师要修改的信息:-endl; cout输入您的学校:School; cout输入老师的编号:Number; cout输入老师的电话:Tel; cout输入老师的名字:Name; while(it.Number=Num&strcmp(Nam,cur-t.Name)=0) cur-s.Set(School);

17、/录入学校名字 cur-t.Set(Name,Tel,Number);/录入老师信息if(i=Length()-1)cout*老师信息修改成功!*next; if(i=Length() cout%查不到这个老师,请重新输入%endl;i=0;break; else cout%信息输入不正确,请重新输入!%next;for(int i=0;iLength();i+)coutstmenext;cout写入文件成功!next=nw; pre=nw; cur=nw; ifstream in(data.txt,ios:binary);while(in)in.read(char *)cur, sizeof

18、(*cur);if(!in)break;nw=new Node; cur-next=nw;pre=cur;cur=cur-next; pre-next=NULL; cout读出文件成功!endl; in.close();/School.cpp#include School.h#include #include #include#includevoid School:Set(char *p) strcpy(Name,p); ;void School:Show()cout学校:Nameendl;void Evaluate:Set() cout请输入这个班级的成绩Mark;cout这位班级的信息输入

19、完毕!endl;cout-endl;void Evaluate:Show ()cout成绩:Markendl;void Teacher:Set(char *p,char *q,int n) strcpy(Tel,q); strcpy(Name,p); Number=n;void Teacher:Show()cout老师的名字:t老师的电话:t老师的编号:tendl;coutNametTeltNumbertendl;void Mate:Set()cout输入此班级的编号Number;cout输入这个班级的名称Name;cout输入这个班级的学院Department;void Mate:Show(

20、) cout班级编号t班级名称t班级学院tendl;coutNumbertNametDepartmenttendl;double Evaluate:Record()char a4;double mark=0;cout下面开始对班级评分:endl;cout这班级学生的到课情况: 1:好 2:一般 3:差 a0;cout这班级学生的上课情况: 1:好 2:一般 3:差 a1;cout这班级学生的作业情况: 1:好 2:一般 3:差 a2;cout这班级学生的考试情况: 1:好 2:一般 3:差 a3;for(int i=0;i4;i+) switch(ai) case 1 : mark+=25;b

21、reak; case 2 : mark+=20;break; case 3 : mark+=10;break; cout这位班级的信息输入完毕!endl;cout-endl;return mark;/main.cpp#include#includeChainChart.h#includeSchool.h#include#includeint menu()/显示主菜单char c;cout -n;cout 教师评学管理系统 v1.0*n;cout *n;cout | - 1. 录入评学信息*n;cout | - 2. 添加评学信息*n;cout | - 3. 修改评学信息*n;cout | -

22、4. 班级信息排序*n;cout | - 5. 查找班级信息*n;cout | - 6. 删除班级信息*n;cout | - 7. 打印班级信息*n;cout | - 8. 保存班级信息*n;cout | - 9. 读取班级信息*n;cout | - 0. 退出*n;cout -*n;cout n请输入(09): ;do /键盘输入循环cin.get(c); while(c9);return c-48;void main() /主函数 char choice;List l;for(;) /循环,直到键盘输入结束代码choice = menu();switch(choice) /根据键盘输入,调用相应的功能case 1: l.Add();break;case 2: l.Insert();break;case 3: l.Fix();break;case 4: l.Paixu();break;case 5: l.Find();break;case 6: l.Del();break;case 7: l.Print();break;case 8: l.Save();break;case 9: l.Load();break;case 0: exit(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1