C++教师信息管理系统方案文档格式.docx
《C++教师信息管理系统方案文档格式.docx》由会员分享,可在线阅读,更多相关《C++教师信息管理系统方案文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
voidPrint()
(3)按职工号或教学效果综合评分排序并显示
intSortMenu()
voidSortMenuControl()
voidInsertByTeano(CNode*newp)
voidSortByTeano()
voidInsertByScore(CNode*newp)
voidSortByScore()
(4)按姓名或课程查找教师记录并显示
intSearchMenu()
voidSearchMenuControl()
voidSearchByName()
voidSearchByCourse()
四、程序源代码
#include"
stdafx.h"
#include<
iostream>
fstream>
vector>
algorithm>
cstring>
string>
usingnamespacestd;
classCPerson
{
private:
stringname;
intage;
charsex;
public:
CPerson()
{}
CPerson(stringname,intage=0,charsex='
M'
)
{
this->
name=name;
age=age;
sex=sex;
}
voidSetAge(intage=0)
voidSetNameAndSex(stringname,charsex)
voidShowInfo()
cout<
<
name<
"
\t"
age<
(sex=='
?
男"
:
女"
)<
endl;
stringGetName()
returnname;
intGetAge()
returnage;
charGetSex()
returnsex;
};
classCTeacher:
publicCPerson
stringtitle;
//职称
stringteano;
//职工号
vector<
course;
//教授课程
floatscore;
//教学效果综合评分
CTeacher()
CTeacher(stringname,intage=0,charsex='
):
CPerson(name,age,sex)
voidSetData(stringtitle,stringteano)
title=title;
teano=teano;
voidSetCourse(stringc1,stringc2,stringc3)
course.push_back(c1);
course.push_back(c2);
course.push_back(c3);
voidSetScore(floatscore)
score=score;
teano<
GetName()<
GetAge()<
(GetSex()=='
title<
course[0]<
course[1]<
course[2]<
score<
voidoperator=(CTeacher&
one)
CPerson(one.GetName(),one.GetAge(),one.GetSex());
title=one.title;
teano=one.teano;
course[0]=one.course[0];
course[1]=one.course[1];
course[2]=one.course[2];
score=one.score;
GetCourse()
returncourse;
stringGetTitle()
returntitle;
stringGetTeano()
returnteano;
floatGetScore()
returnscore;
classCNode
friendclassCList;
CTeacherdata;
CNode*next;
classCList
CNode*head;
CNode*tail;
CNode*p;
CNode*pre;
intnum;
//当前节点数
intMainMenu()
1.显示当前记录"
2.添加记录"
3.排序"
4.查找"
5.创建新纪录"
0.退出"
intchoice;
cin>
>
choice;
returnchoice;
voidMainMenuControl()
ReadData();
while
(1)
{
intchoice=MainMenu();
if(choice==0)break;
switch(choice)
{
case1:
Print();
break;
case2:
Append();
break;
case3:
SortMenuControl();
break;
case4:
SearchMenuControl();
case5:
NewList();
}
}
是否保存?
(Y/N):
;
charc;
c;
if(c=='
y'
)Save();
voidReadData()
head=tail=newCNode;
head->
next=NULL;
num=0;
charfname[80];
请输入要读取的文件:
fname;
ifstreamfile(fname);
if(!
file)
cout<
出现未知错误导致无法打开!
exit
(1);
stringname,title,teano,course[3];
intage;
charsex;
floatscore;
while(file.peek()!
=EOF)
file>
teano>
name>
age>
sex>
title>
course[0]>
course[1]>
course[2]>
score;
p=newCNode;
p->
data.SetNameAndSex(name,sex);
data.SetAge(age);
data.SetData(title,teano);
data.SetCourse(course[0],course[1],course[2]);
data.SetScore(score);
tail->
next=p;
tail=p;
num++;
tail->
voidPrint()
for(p=head->
next;
p!
=NULL;
p=p->
next)
data.ShowInfo();
voidAppend()
请输入:
姓名:
stringname;
cin>
name;
年龄:
intage;
age;
性别(F/M):
charsex;
sex;
职称:
stringtitle;
title;
职工号:
stringteano;
teano;
教授课程:
stringcourse[3];
course[2];
教学效果综合评分:
floatscore;
next=tail->
charc;
是否继续添加?
cin.get();
if(c!
='
)break;
Print();
intSortMenu()
1.按职工号排序"
2.按教学效果综合评分排序"
voidSortMenuControl()
intchoice=SortMenu();
SortByTeano();
SortByScore();
Print();
voidInsertByTeano(CNode*newp)
for(pre=head,p=head->
pre=p,p=p->
if(newp->
data.GetTeano()<
p->
data.GetTeano())break;
newp->
pre->
next=newp;
voidSortByTeano()
p=head->
CNode*nextp;
while(p!
=NULL)
nextp=p->
InsertByTeano(p);
p=nextp;
voidInsertByScore(CNode*newp)
data.GetScore()<
data.GetScore())break;
voidSortByScore()
InsertByScore(p);
intSearchMenu()
1.按姓名查找"
2.按课程查找"
voidSearchMenuControl()
intchoice=SearchMenu();
SearchByName();
break;
SearchByCourse();
voidSearchByName()
intn=0;
请输入姓名:
stringname;
if(p->
data.GetName()==name)
p->
n++;
if(n==0)cout<
没有相关记录"
voidSearchByCourse()
请输入查找课程:
stringc;
vector<
course=p->
data.GetCourse();
for(inti=0;
i<
3;
i++)
if(c==course[i])
{
p->
n++;
break;
}
voidNewList()
Destory();
是否继续输入?
voidSave()
保存到:
ofstreamfile(fname);
file<
p->
data.GetTeano()<
<
data.GetName()<
data.GetAge()<
data.GetSex()<
data.GetTitle()<
data.GetScore()<
file.close();
voidDestory()
p=head->
head->
next=p->
deletep;
deletehead;
head=NULL;
tail=NULL;
pre=NULL;
~CList()
pre=NULL