C++教师信息管理系统方案.docx

上传人:b****8 文档编号:11876750 上传时间:2023-06-03 格式:DOCX 页数:22 大小:120.74KB
下载 相关 举报
C++教师信息管理系统方案.docx_第1页
第1页 / 共22页
C++教师信息管理系统方案.docx_第2页
第2页 / 共22页
C++教师信息管理系统方案.docx_第3页
第3页 / 共22页
C++教师信息管理系统方案.docx_第4页
第4页 / 共22页
C++教师信息管理系统方案.docx_第5页
第5页 / 共22页
C++教师信息管理系统方案.docx_第6页
第6页 / 共22页
C++教师信息管理系统方案.docx_第7页
第7页 / 共22页
C++教师信息管理系统方案.docx_第8页
第8页 / 共22页
C++教师信息管理系统方案.docx_第9页
第9页 / 共22页
C++教师信息管理系统方案.docx_第10页
第10页 / 共22页
C++教师信息管理系统方案.docx_第11页
第11页 / 共22页
C++教师信息管理系统方案.docx_第12页
第12页 / 共22页
C++教师信息管理系统方案.docx_第13页
第13页 / 共22页
C++教师信息管理系统方案.docx_第14页
第14页 / 共22页
C++教师信息管理系统方案.docx_第15页
第15页 / 共22页
C++教师信息管理系统方案.docx_第16页
第16页 / 共22页
C++教师信息管理系统方案.docx_第17页
第17页 / 共22页
C++教师信息管理系统方案.docx_第18页
第18页 / 共22页
C++教师信息管理系统方案.docx_第19页
第19页 / 共22页
C++教师信息管理系统方案.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++教师信息管理系统方案.docx

《C++教师信息管理系统方案.docx》由会员分享,可在线阅读,更多相关《C++教师信息管理系统方案.docx(22页珍藏版)》请在冰点文库上搜索。

C++教师信息管理系统方案.docx

C++教师信息管理系统方案

一、课程设计问题描述

学院教学信息管理系统是高等学校教务管理的重要组成部分,其容较多,为了简化计论,要求设计的管理系统能够完成以下功能:

(1)输入:

输入每一位教师记录,将其信息写入文件中;

(2)显示:

显示每位教师记录;

(3)排序:

按职工号或教学效果综合评分进行排序,并显示;

(4)查找:

完成按或课程查找教师的相关记录,并显示;

(5)创建:

创建新的纪录,输入数位教师记录,显示在屏幕上并保存;

二、课程设计目的和要求:

经过一个学期的《C++面向对象实用教程》课程的学习,已经有了一定地程序设计基础,但是要学好C++程序设计,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。

三、系统设计(算法分析)

1、整体结构

整个程序定义四个类

(1)CPerson类:

包含数据成员name,age,sex,记录,年龄,性别这些信息,并包含构造函数及其他成员函数(定义CPerson类以后若有需要,可再通过继承派生其他类);

(2)CTeacher:

共有继承CPerson类,包含数据成员title,teano,course,score,分别记录职称,职工号,3门课程和教学效果综合评分等信息,另有其他成员函数;

(3)CNode类:

节点类,包含2个数据成员,CTeacher类对象p和CNode类指针对象next,作为构建链表的单位;

(4)CList类:

链表类,声明为CNode类的友元类,数据成员有头结点head,尾节点tail,记录当前节点的p和当前节点前一节点的pre,链表相关的输入,显示,排序,查找,创建全部设为成员函数。

总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表进行操作,最后保存至文件中

 

2、流程图

 

 

 

 

3、各函数的功能和实现

学院教学信息管理系统的相关功能由对应的函数来实现。

(1)输入教师信息并显示

voidAppend()

通过提示一步步输入信息,由程序构建新节点并加入链表

(2)显示所有记录

voidPrint()

(3)按职工号或教学效果综合评分排序并显示

intSortMenu()

voidSortMenuControl()

voidInsertByTeano(CNode*newp)

voidSortByTeano()

voidInsertByScore(CNode*newp)

voidSortByScore()

(4)按或课程查找教师记录并显示

intSearchMenu()

voidSearchMenuControl()

voidSearchByName()

voidSearchByCourse()

四、程序源代码

#include"stdafx.h"

#include

#include

#include

#include

#include

#include

usingnamespacestd;

classCPerson

{

private:

stringname;

intage;

charsex;

public:

CPerson()

{}

CPerson(stringname,intage=0,charsex='M')

{

this->name=name;

this->age=age;

this->sex=sex;

}

voidSetAge(intage=0)

{

this->age=age;

}

voidSetNameAndSex(stringname,charsex)

{

this->name=name;

this->sex=sex;

}

voidShowInfo()

{

cout<

"男":

"女")<

}

stringGetName()

{

returnname;

}

intGetAge()

{

returnage;

}

charGetSex()

{

returnsex;

}

};

classCTeacher:

publicCPerson

{

private:

stringtitle;//职称

stringteano;//职工号

vectorcourse;//教授课程

floatscore;//教学效果综合评分

public:

CTeacher()

{}

CTeacher(stringname,intage=0,charsex='M'):

CPerson(name,age,sex)

{}

voidSetData(stringtitle,stringteano)

{

this->title=title;

this->teano=teano;

}

voidSetCourse(stringc1,stringc2,stringc3)

{

course.push_back(c1);

course.push_back(c2);

course.push_back(c3);

}

voidSetScore(floatscore)

{

this->score=score;

}

voidShowInfo()

{

cout<

"男":

")<

}

voidoperator=(CTeacher&one)

{

CPerson(one.GetName(),one.GetAge(),one.GetSex());

this->title=one.title;

this->teano=one.teano;

this->course[0]=one.course[0];

this->course[1]=one.course[1];

this->course[2]=one.course[2];

this->score=one.score;

}

vectorGetCourse()

{

returncourse;

}

stringGetTitle()

{

returntitle;

}

stringGetTeano()

{

returnteano;

}

floatGetScore()

{

returnscore;

}

};

classCNode

{

friendclassCList;

private:

CTeacherdata;

CNode*next;

};

classCList

{

private:

CNode*head;

CNode*tail;

CNode*p;

CNode*pre;

intnum;//当前节点数

public:

intMainMenu()

{

cout<<"1.显示当前记录"<

cout<<"2.添加记录"<

cout<<"3.排序"<

cout<<"4.查找"<

cout<<"5.创建新纪录"<

cout<<"0.退出"<

cout<

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();break;

case5:

NewList();break;

}

}

cout<<"是否保存?

(Y/N):

";

charc;

cin>>c;

if(c=='y')Save();

}

voidReadData()

{

head=tail=newCNode;

head->next=NULL;

num=0;

charfname[80];

cout<<"请输入要读取的文件:

";

cin>>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);

p->data.SetAge(age);

p->data.SetData(title,teano);

p->data.SetCourse(course[0],course[1],course[2]);

p->data.SetScore(score);

tail->next=p;

tail=p;

num++;

}

tail->next=NULL;

}

voidPrint()

{

for(p=head->next;p!

=NULL;p=p->next)

p->data.ShowInfo();

cout<

}

voidAppend()

{

while

(1)

{

p=newCNode;

cout<<"请输入:

"<

cout<<":

";

stringname;

cin>>name;

cout<<"年龄:

";

intage;

cin>>age;

cout<<"性别(F/M):

";

charsex;

cin>>sex;

p->data.SetNameAndSex(name,sex);

p->data.SetAge(age);

cout<<"职称:

";

stringtitle;

cin>>title;

cout<<"职工号:

";

stringteano;

cin>>teano;

p->data.SetData(title,teano);

cout<<"教授课程:

";

stringcourse[3];

cin>>course[0]>>course[1]>>course[2];

p->data.SetCourse(course[0],course[1],course[2]);

cout<<"教学效果综合评分:

";

floatscore;

cin>>score;

p->data.SetScore(score);

p->next=tail->next;

tail->next=p;

tail=p;

num++;

charc;

cout<<"是否继续添加?

(Y/N):

";

cin>>c;

cin.get();

if(c!

='y')break;

}

tail->next=NULL;

Print();

}

intSortMenu()

{

cout<<"1.按职工号排序"<

cout<<"2.按教学效果综合评分排序"<

cout<<"0.退出"<

cout<

intchoice;

cin>>choice;

returnchoice;

}

voidSortMenuControl()

{

while

(1)

{

intchoice=SortMenu();

if(choice==0)break;

switch(choice)

{

case1:

SortByTeano();break;

case2:

SortByScore();break;

}

Print();

}

}

voidInsertByTeano(CNode*newp)

{

for(pre=head,p=head->next;p!

=NULL;pre=p,p=p->next)

if(newp->data.GetTeano()data.GetTeano())break;

newp->next=p;

pre->next=newp;

}

voidSortByTeano()

{

p=head->next;

head->next=NULL;

CNode*nextp;

while(p!

=NULL)

{

nextp=p->next;

InsertByTeano(p);

p=nextp;

}

}

voidInsertByScore(CNode*newp)

{

for(pre=head,p=head->next;p!

=NULL;pre=p,p=p->next)

if(newp->data.GetScore()data.GetScore())break;

newp->next=p;

pre->next=newp;

}

voidSortByScore()

{

p=head->next;

head->next=NULL;

CNode*nextp;

while(p!

=NULL)

{

nextp=p->next;

InsertByScore(p);

p=nextp;

}

}

intSearchMenu()

{

cout<<"1.按查找"<

cout<<"2.按课程查找"<

cout<<"0.退出"<

cout<

intchoice;

cin>>choice;

returnchoice;

}

voidSearchMenuControl()

{

while

(1)

{

intchoice=SearchMenu();

if(choice==0)break;

switch(choice)

{

case1:

SearchByName();break;

case2:

SearchByCourse();break;

}

}

}

voidSearchByName()

{

intn=0;

cout<<"请输入:

";

stringname;

cin>>name;

for(p=head->next;p!

=NULL;p=p->next)

if(p->data.GetName()==name)

{

p->data.ShowInfo();

n++;

}

if(n==0)cout<<"没有相关记录"<

cout<

}

voidSearchByCourse()

{

intn=0;

cout<<"请输入查找课程:

";

stringc;

cin>>c;

for(p=head->next;p!

=NULL;p=p->next)

{

vectorcourse=p->data.GetCourse();

for(inti=0;i<3;i++)

if(c==course[i])

{

p->data.ShowInfo();

n++;

break;

}

}

if(n==0)cout<<"没有相关记录"<

cout<

}

voidNewList()

{

Destory();

head=tail=newCNode;

head->next=NULL;

while

(1)

{

p=newCNode;

cout<<"请输入:

"<

cout<<":

";

stringname;

cin>>name;

cout<<"年龄:

";

intage;

cin>>age;

cout<<"性别(F/M):

";

charsex;

cin>>sex;

p->data.SetNameAndSex(name,sex);

p->data.SetAge(age);

cout<<"职称:

";

stringtitle;

cin>>title;

cout<<"职工号:

";

stringteano;

cin>>teano;

p->data.SetData(title,teano);

cout<<"教授课程:

";

stringcourse[3];

cin>>course[0]>>course[1]>>course[2];

p->data.SetCourse(course[0],course[1],course[2]);

cout<<"教学效果综合评分:

";

floatscore;

cin>>score;

p->data.SetScore(score);

tail->next=p;

tail=p;

num++;

cout<<"是否继续输入?

(Y/N):

";

charc;

cin>>c;

cin.get();

if(c!

='y')break;

}

tail->next=NULL;

}

voidSave()

{

charfname[80];

cout<<"保存到:

";

cin>>fname;

ofstreamfile(fname);

if(!

file)

{

cout<<"出现未知错误导致无法打开!

"<

exit

(1);

}

for(p=head->next;p!

=NULL;p=p->next)

{

vectorcourse=p->data.GetCourse();

file<data.GetTeano()<<"\t"

<data.GetName()<<"\t"

<data.GetAge()<<"\t"

<data.GetSex()<<"\t"

<data.GetTitle()<<"\t"

<

<data.GetScore()<

}

file.close();

}

voidDestory()

{

for(p=head->next;p!

=NULL;p=head->next)

{

head->next=p->next;

deletep;

}

deletehead;

head=NULL;

tail=NULL;

pre=NULL;

num=0;

}

~CList()

{

for(p=head->next;p!

=NULL;p=head->next)

{

head->next=p->next;

deletep;

}

deletehead;

head=NULL;

tail=NULL;

pre=NULL;

}

};

intmain(intargc,char*argv[])

{

CListlist1;

list1.MainMenuControl();

CListlist2;

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

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2