教师评学管理系统.docx

上传人:b****8 文档编号:9871158 上传时间:2023-02-07 格式:DOCX 页数:29 大小:30.43KB
下载 相关 举报
教师评学管理系统.docx_第1页
第1页 / 共29页
教师评学管理系统.docx_第2页
第2页 / 共29页
教师评学管理系统.docx_第3页
第3页 / 共29页
教师评学管理系统.docx_第4页
第4页 / 共29页
教师评学管理系统.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

教师评学管理系统.docx

《教师评学管理系统.docx》由会员分享,可在线阅读,更多相关《教师评学管理系统.docx(29页珍藏版)》请在冰豆网上搜索。

教师评学管理系统.docx

教师评学管理系统

教师评学管理系统:

(上传时间:

2012/7/17)

注:

本题目源码仅供参考,直接套用者后果自负。

涉及知识:

运算符重载、链表、友元、输入输出流等。

####GUIDIAN####

要求:

该系统主要处理教师评学信息。

班级信息主要包括:

班级编号、班级名称、所在院系、评学成绩等内容。

教师信息主要包括:

编号、姓名、电话等内容。

完成以下的操作:

班级信息、教师信息、评学信息的录入、修改、删除和查询。

提示:

建立学校类、教师类、班级类、评学类

学校、教师、班级、评学信息的初始化

学校、教师、班级、评学信息的添加、修改、删除、查找

学校、教师、班级、评学信息的输出

对评学信息按评学成绩排序

使用方法:

按照注释分别加入到各个头文件中。

附录:

源程序

//ChainChart.h

#ifndefCHAINCHART_H

#defineCHAINCHART_H

#include"School.h"//链表类

classNode

{

public:

Matem;

Teachert;

Schools;

Evaluatee;

Node*next;

};

 

classList

{

private:

charSchool[32];

charName[32];

charTel[32];

intNumber;

intMark;

public:

Node*head;

List();

boolTof();//判断d

voidPaixu();//排序d

voidDel();//删除d

voidAdd();//增加d

voidFind();//查询d

voidFix();//修改d

voidInsert();//插入d

voidPrint();//打印d

intLength();//长度判断d

voidSave();//保存d

voidLoad();//载入d

 

};

#endif

//school.h

#ifndefSCHOOL_H

#defineSCHOOL_H//学校类

#include

classMate

{

private:

charDepartment[32];

doubleMark;

public:

charName[32];

intNumber;

voidSet();

voidShow();

voidSet(float);

friendostream&operator<<(ostream&stream,Mate&m)

{

cout<

returnstream;

}

};

classTeacher

{

private:

charTel[32];

public:

intNumber;

charName[32];

voidShow();

voidSet(char*,char*,int);

friendostream&operator<<(ostream&stream,Teacher&t)

{

cout<

returnstream;

}

};

classSchool

{

charName[32];

public:

voidSet(char*);

voidShow();

friendostream&operator<<(ostream&stream,School&s)

{

cout<

returnstream;

}

};

classEvaluate

{

public:

voidSet();

voidShow();

doubleMark;

doubleRecord();

friendostream&operator<<(ostream&stream,Evaluate&e)

{

cout<

returnstream;

}

};

#endif

//Chainchart.cpp

#include"ChainChart.h"

#include"School.h"

#include

#include

#include

List:

:

List()

{

head=newNode;

head->next=NULL;

};

 

boolList:

:

Tof()//判断是否继续输入

{

chartof;

cout<<"*************继续输入信息?

yes:

yno:

n*************"<

cin>>tof;

if(tof=='n')

{returntrue;}

elseif(tof=='y')

{returnfalse;}

else{returnTof();}

};

intList:

:

Length()//求链表的长度

{

intsum=0;

Node*cur;

cur=head->next;

while(cur!

=NULL)

{cur=cur->next;sum++;}

returnsum;

};

voidList:

:

Add()//加入新链表

{

Node*pre;

Node*nw=newNode;

head->next=nw;

nw->next=newNode;

chartof;

cout<<"---------下面开始录入:

-------"<

cout<

cout<<"输入您(老师)的学校:

"<

cin>>School;

cout<<"输入您的编号:

"<

cin>>Number;

cout<<"输入您的电话:

"<

cin>>Tel;

cout<<"输入您的名字:

"<

cin>>Name;

nw->s.Set(School);//录入学校名字

nw->t.Set(Name,Tel,Number);//录入老师信息

cout<<"---------------------------------您是"<

nw->m.Set();//录入班级的信息

cout<<"是否直接录入这个班级的成绩y/n"<

cin>>tof;

if(tof=='y')

{

nw->e.Set();//录入评学成绩

}

elseif(tof=='n')

{

nw->e.Mark=nw->e.Record();

}

pre=nw;

nw=nw->next;

if(Tof())

{

pre->next=NULL;

nw=NULL;

cout<<"##########评学信息录入完毕,下面进行下一步操作!

##########"<

cout<

return;

};

while(true)

{

nw->s.Set(School);//录入学校名字

nw->t.Set(Name,Tel,Number);//录入老师信息

cout<<"--------------------------------您是"<

nw->m.Set();//录入班级的信息

cout<<"是否直接录入这个班级的成绩y/n"<

cin>>tof;

if(tof=='y')

{

nw->e.Set();//录入评学成绩

}

elseif(tof=='n')

{

nw->e.Mark=nw->e.Record();

}

nw->next=newNode;

pre=nw;

nw=nw->next;

if(Tof())

{

pre->next=NULL;

nw=NULL;

cout<

cout<<"##########评学信息录入完毕,下面进行下一步操作!

##########"<

cout<

return;

}

}

pre->next=NULL;

deletenw;

cout<

cout<<"##########评学信息录入完毕,下面进行下一步操作!

##########"<

cout<

};

 

voidList:

:

Paixu()//链表排序

{

Node*cur,*pre,*tem,*tem2;

if(head->next->next==NULL)

{return;}//把if语句放进去就不执行,i很小

for(inti=0;i

{

cur=head->next;

tem=head;

pre=cur;

cur=cur->next;

for(intj=0;j

{

if(pre->e.Mark>cur->e.Mark)

{

pre->next=cur->next;

cur->next=pre;

tem->next=cur;

tem2=cur;

cur=pre;

pre=tem2;

 

}

if(j==Length()-2)//防止排序越界

{break;}

pre=pre->next;

cur=cur->next;

tem=tem->next;

}

}

cout<<"---------------------------排序成功--------------------------------"<

cur->next=NULL;

};

 

voidList:

:

Print()//链表打印

{

Node*cur;

cur=head->next;

inti=1;

if(head->next==NULL)

{cout<<"表中还没有人,怎么打印"<

cout<

cout<<"-----------------------------"<<"下面开始打印各个信息"<<"--------------------------------"<

cout<

cout<<"序号"<<""<<"学校"<<""<<"老师编号"<<""<<"名字"<<""<<"电话"<<""<<"班级编号"<<""<<"名称"<<""<<"学院"<<""<<"成绩"<

if(cur->next==NULL)

{

cout<s<t<m<e<

cout<

cout<<"------------------------"<<"打印完毕,请继续下一步操作"<<"------------------------------"<

return;

}

while(cur->next!

=NULL)

{

cout<s<t<m<e<

cur=cur->next;

i++;

}

cout<s<t<m<e<

cout<<"------------------------"<<"打印完毕,请继续下一步操作"<<"------------------------------"<

};

//chainchart2.cpp

#include"ChainChart.h"

#include"School.h"

#include

#include

#include

voidList:

:

Insert()

{

Node*cur,*nw;

cur=head;

if(cur->next==NULL)

{cout<<"表中没有人,请先加入!

"<

while(cur->next!

=NULL)

{

cur=cur->next;

}

nw=newNode;

cur->next=nw;

cout<<"输入您的学校:

"<

cin>>School;

cout<<"输入老师的编号:

"<

cin>>Number;

cout<<"输入老师的电话:

"<

cin>>Tel;

cout<<"输入老师的名字:

"<

cin>>Name;

nw->s.Set(School);//录入学校名字

nw->t.Set(Name,Tel,Number);//录入老师信息

nw->m.Set();//录入班级的信息

nw->e.Set();//录入评学成绩

nw->next=NULL;

}

 

voidList:

:

Del()//删除函数

{

intNumber;

Node*cur,*pre;

cout<<"输入要删除班级的编号"<

cin>>Number;

intj=0;

if(head==NULL)

{

cout<<"表是空的,不能删除"<

return;

}

cur=pre=head;

while(j

{

pre=cur;

cur=cur->next;

if(cur->m.Number==Number)

{

if(head==cur)

{head=head->next;}//如果是头指针指向的节点,则还要重新添加引导

else{pre->next=cur->next;}

cout<<"这个班级的信息已经删除!

"<

return;

}

j++;

}

cout<<"找不到这个班的编号,请重新输入!

"<

Del();

};

 

voidList:

:

Find()//查找函数

{

Node*cur;

cur=head->next;

cout<<"输入要查找的班级编号"<

cin>>Number;

intj=0;

if(head==NULL)

{

cout<<"表是空的,不能查找"<

return;

}

cur=head;

while(j

{

cur=cur->next;

if(cur->m.Number==Number)

{

cout<<"已经找到,下面输出信息"<

cout<<"学校"<<""<<"老师编号"<<""<<"名字"<<""<<"电话"<<""<<"班级编号"<<""<<"名称"<<""<<"学院"<<""<<"成绩"<

cout<s<t<m<e<

return;

}

j++;

}

cout<<"%%%%%%找来找去,找不到这班%%%%%%%"<

return;

};

 

voidList:

:

Fix()

{

inti=0;

charchoose;

charNam[32];

intNum;

intNumber;

charName[32];

charTel[32];

charSchool[32];

Node*cur;

cur=head->next;

while

(1)

{

cout<<"请输入修改的目标,修改班级信息:

1修改老师信息:

2"<

cin>>choose;

i=0;

cur=head->next;

if(choose=='1')

{

i=0;

cout<<"请输入班级的编号:

"<

cin>>Num;

cout<<"请输入班级的名称:

"<

cin>>Nam;

cur=head->next;

while(i

{

if(cur->m.Number==Num&&strcmp(Nam,cur->m.Name)==0)

{

cout<<"下面录入这个班级要修改的信息:

"<

cur->m.Set();

cout<<"班级信息修改成功!

"<

i=0;

return;

}

i++;

cur=cur->next;

if(i==Length()-1)

{cout<<"查不到这个班,请重新输入"<

}

}

elseif(choose=='2')

{

i=0;

cur=head->next;

cout<<"请输入老师的编号:

"<

cin>>Num;

cout<<"请输入老师的姓名:

"<

cin>>Nam;

cout<<"----------下面录入老师要修改的信息:

-----------"<

cout<<"输入您的学校:

"<

cin>>School;

cout<<"输入老师的编号:

"<

cin>>Number;

cout<<"输入老师的电话:

"<

cin>>Tel;

cout<<"输入老师的名字:

"<

cin>>Name;

while(i

{

if(cur->t.Number==Num&&strcmp(Nam,cur->t.Name)==0)

{

cur->s.Set(School);//录入学校名字

cur->t.Set(Name,Tel,Number);//录入老师信息

if(i==Length()-1)

{cout<<"********老师信息修改成功!

********"<

}

i++;

cur=cur->next;

if(i==Length())

{cout<<"%%%%%%%查不到这个老师,请重新输入%%%%%%"<

}

}

else

{cout<<"%%%%%%%%信息输入不正确,请重新输入!

%%%%%"<

}

};

voidList:

:

Save()

{

Node*cur;

ofstreamout("data.txt",ios:

:

binary);

cur=head->next;

for(inti=0;i

{

cout<s<t<m<e<

out.write((char*)cur,sizeof(*cur));

cur=cur->next;

}

cout<<"写入文件成功!

"<

out.close();

};

 

voidList:

:

Load()

{

Node*cur,*pre,*nw;

head=newNode;

nw=newNode;

head->next=nw;

pre=nw;

cur=nw;

ifstreamin("data.txt",ios:

:

binary);

 

while(in)

{

in.read((char*)cur,sizeof(*cur));

if(!

in)

{break;}

nw=newNode;

cur->next=nw;

pre=cur;

cur=cur->next;

}

pre->next=NULL;

cout<<"读出文件成功!

"<

in.close();

};

//School.cpp

#include"School.h"

#include

#include

#include

#include

voidSchool:

:

Set(char*p)

{

strcpy(Name,p);

};

voidSchool:

:

Show()

{

cout<<"学校:

"<

};

 

voidEvaluate:

:

Set()

{

cout<<"请输入这个班级的成绩"<

cin>>Mark;

cout<<"这位班级的信息输入完毕!

"<

cout<<"-----------------------------------"<

};

voidEvaluate:

:

Show()

{

cout<<"成绩:

"<

};

voidTeacher:

:

Set(char*p,char*q,intn)

{

strcpy(Tel,q);

strcpy(Name,p);

Number=n;

};

voidT

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

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1