2022年C++教师信息管理系统 .pdf

上传人:Che****ry 文档编号:27261188 上传时间:2022-07-23 格式:PDF 页数:15 大小:213.01KB
返回 下载 相关 举报
2022年C++教师信息管理系统 .pdf_第1页
第1页 / 共15页
2022年C++教师信息管理系统 .pdf_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《2022年C++教师信息管理系统 .pdf》由会员分享,可在线阅读,更多相关《2022年C++教师信息管理系统 .pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、- 1 - 一、 课程设计问题描述学院教学信息管理系统是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下功能:(1)输入:输入每一位教师记录,将其信息写入文件中;(2)显示:显示每位教师记录;(3)排序:按职工号或教学效果综合评分进行排序,并显示;(4)查找:完成按姓名或课程查找教师的相关记录,并显示;(5)创建:创建新的纪录,输入数位教师记录,显示在屏幕上并保存;二、 课程设计目的和要求:经过一个学期的 C+面向对象实用教程课程的学习,已经有了一定地程序设计基础, 但是要学好 C+程序设计,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践

2、,通过上机实践才能增强和巩固知识。三、 系统设计(算法分析)1、 整体结构整个程序定义四个类(1) CPerson类:包含数据成员name,age,sex,记录姓名,年龄,性别这些信息,并包含构造函数及其他成员函数(定义CPerson类以后若有需要,可再通过继承派生其他类) ;(2) CTeacher : 共有继承 CPerson类,包含数据成员 title, teano, course , score,分别记录职称,职工号, 3门课程和教学效果综合评分等信息,另有其他成员函数;(3) CNode类:节点类,包含2 个数据成员, CTeacher类对象 p 和 CNode 类指针对象 next

3、,作为构建链表的单位;(4) CList 类:链表类,声明为CNode类的友元类,数据成员有头结点head ,尾节点 tail,记录当前节点的p 和当前节点前一节点的pre,链表相关的输入,显示,排序,查找,创建全部设为成员函数。总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表进行操作,最后保存至文件中名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 15 页 - - - - - - - - - - 2 - 2、流程图是否是否开始打开文件读取记录输入 choic

4、e choice=0?显示当前记录添加记录创建新纪录排序查找保存保存结束名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 15 页 - - - - - - - - - - 3 - 3、各函数的功能和实现学院教学信息管理系统的相关功能由对应的函数来实现。(1) 输入教师信息并显示void Append() 通过提示一步步输入信息,由程序构建新节点并加入链表(2) 显示所有记录void Print() (3)按职工号或教学效果综合评分排序并显示int SortMenu() vo

5、id SortMenuControl() void InsertByTeano(CNode *newp) void SortByTeano() void InsertByScore(CNode *newp) void SortByScore() (4)按姓名或课程查找教师记录并显示int SearchMenu() void SearchMenuControl() void SearchByName() void SearchByCourse() 四、程序源代码#include stdafx.h #include #include #include #include #include #incl

6、ude using namespace std; class CPerson private: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 15 页 - - - - - - - - - - 4 - string name; int age; char sex; public: CPerson() CPerson(string name,int age=0,char sex=M) this-name=name; this-age=age; this-sex=sex; v

7、oid SetAge(int age=0) this-age=age; void SetNameAndSex(string name,char sex) this-name=name; this-sex=sex; void ShowInfo() coutnametaget(sex=M? 男:女)endl; string GetName() return name; int GetAge() return age; char GetSex() return sex; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

8、 - - - - - - 第 4 页,共 15 页 - - - - - - - - - - 5 - ; class CTeacher:public CPerson private: string title;/职称string teano;/职工号vector course;/ 教授课程float score;/教学效果综合评分public: CTeacher() CTeacher(string name,int age=0,char sex=M):CPerson(name,age,sex) void SetData(string title,string teano) this-title=

9、title; this-teano=teano; void SetCourse(string c1,string c2,string c3) course.push_back(c1); course.push_back(c2); course.push_back(c3); void SetScore(float score) this-score=score; void ShowInfo() coutteanotGetName()tGetAge()t(GetSex()=M?男:)titletcourse0tcourse1tcourse2tscoretitle=one.title; this-t

10、eano=one.teano; this-course0=one.course0; this-course1=one.course1; this-course2=one.course2; this-score=one.score; vector GetCourse() return course; string GetTitle() return title; string GetTeano() return teano; float GetScore() return score; ; class CNode friend class CList; private: CTeacher dat

11、a; CNode *next; ; class CList private: CNode *head; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 15 页 - - - - - - - - - - 7 - CNode *tail; CNode *p; CNode *pre; int num;/当前节点数public: int MainMenu() cout1.显示当前记录 endl; cout2.添加记录 endl; cout3.排序endl; cout4.查找end

12、l; cout5.创建新纪录 endl; cout0.退出endl; coutchoice; return choice; void MainMenuControl() ReadData(); while ( 1 ) int choice=MainMenu(); if ( choice=0 ) break; switch ( choice ) case 1:Print(); break; case 2:Append(); break; case 3:SortMenuControl(); break; case 4:SearchMenuControl(); break; case 5:NewLi

13、st(); break; coutc; if ( c=y ) Save(); void ReadData() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 15 页 - - - - - - - - - - 8 - head=tail=new CNode; head-next=NULL; num=0; char fname80; coutfname; ifstream file(fname); if ( !file ) cout出现未知错误导致无法打开!teanoname

14、agesextitlecourse0course1course2score; p=new CNode; p-data.SetNameAndSex(name,sex); p-data.SetAge(age); p-data.SetData(title,teano); p-data.SetCourse(course0,course1,course2); p-data.SetScore(score); tail-next=p; tail=p; num+; tail-next=NULL; void Print() for ( p=head-next; p!=NULL; p=p-next) p-data

15、.ShowInfo(); coutendl; void Append() while ( 1 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 15 页 - - - - - - - - - - 9 - p=new CNode; cout请输入: endl; coutname; coutage; coutsex; p-data.SetNameAndSex(name,sex); p-data.SetAge(age); couttitle; coutteano; p-data

16、.SetData(title,teano); coutcourse0course1course2; p-data.SetCourse(course0,course1,course2); coutscore; p-data.SetScore(score); p-next=tail-next; tail-next=p; tail=p; num+; char c; coutc; cin.get(); if ( c!=y ) break; tail-next=NULL; Print(); int SortMenu() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

17、 - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 15 页 - - - - - - - - - - 10 - cout1.按职工号排序 endl; cout2.按教学效果综合评分排序endl; cout0.退出endl; coutchoice; return choice; void SortMenuControl() while ( 1 ) int choice=SortMenu(); if ( choice=0 ) break; switch ( choice ) case 1:SortByTeano(); break; case 2:SortBySc

18、ore(); break; Print(); void InsertByTeano(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; void SortByTeano() p=head-next; head-next=NULL; CNode *nextp; while ( p!=NULL ) nextp=p-next; InsertByTeano(p); p

19、=nextp; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 15 页 - - - - - - - - - - 11 - void InsertByScore(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; void SortBy

20、Score() p=head-next; head-next=NULL; CNode *nextp; while ( p!=NULL ) nextp=p-next; InsertByScore(p); p=nextp; int SearchMenu() cout1.按姓名查找 endl; cout2.按课程查找 endl; cout0.退出endl; coutchoice; return choice; void SearchMenuControl() while ( 1 ) int choice=SearchMenu(); if ( choice=0 ) break; switch ( ch

21、oice ) case 1:SearchByName(); break; case 2:SearchByCourse(); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 15 页 - - - - - - - - - - 12 - void SearchByName() int n=0; coutname; for ( p=head-next; p!=NULL; p=p-next) if ( p-data.GetName()=name ) p-data.S

22、howInfo(); n+; if ( n=0 ) cout没有相关记录 endl; coutendl; void SearchByCourse() int n=0; coutc; for ( p=head-next; p!=NULL; p=p-next) vector course=p-data.GetCourse(); for (int i=0; idata.ShowInfo(); n+; break; if ( n=0 ) cout没有相关记录 endl; coutnext=NULL; while ( 1 ) p=new CNode; cout请输入: endl; coutname; c

23、outage; coutsex; p-data.SetNameAndSex(name,sex); p-data.SetAge(age); couttitle; coutteano; p-data.SetData(title,teano); coutcourse0course1course2; p-data.SetCourse(course0,course1,course2); coutscore; p-data.SetScore(score); tail-next=p; tail=p; num+; coutc; cin.get(); if ( c!=y ) break; tail-next=N

24、ULL; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 15 页 - - - - - - - - - - 14 - void Save() char fname80; coutfname; ofstream file(fname); if ( !file ) cout出现未知错误导致无法打开!next; p!=NULL; p=p-next) vector course=p-data.GetCourse(); filedata.GetTeano()t data.GetN

25、ame()t data.GetAge()t data.GetSex()t data.GetTitle()t course0tcourse1tcourse2t data.GetScore()next; p!=NULL; p=head-next) head-next=p-next; delete p; delete head; head=NULL; tail=NULL; pre=NULL; num=0; CList() for ( p=head-next; p!=NULL; p=head-next) head-next=p-next; 名师资料总结 - - -精品资料欢迎下载 - - - - -

26、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 15 页 - - - - - - - - - - 15 - delete p; delete head; head=NULL; tail=NULL; pre=NULL; ; int main(int argc, char* argv) CList list1; list1.MainMenuControl(); CList list2; list2.MainMenuControl(); return 0; 五、缺陷1.每次都要读取文件中的记录,若是只想创建新记录,则此部多余;2.判断文件末尾的语句file.peek()!=EOF,当文件末尾为图一所示是可正常读取完,若如图二所示,则会多读一次;图一图二3.没有控制输出格式,输出格式混乱,不美观;4.输入时没有错误输入检测,因此必须正确输入才能保证程序正常运行,如输入文件名时必须完全正确,输入性别是必须输入M/F。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 15 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁