收藏 分享(赏)

C 教师信息管理系统.doc

上传人:liyang3100 文档编号:1534921 上传时间:2018-07-27 格式:DOC 页数:15 大小:148.50KB
下载 相关 举报
C  教师信息管理系统.doc_第1页
第1页 / 共15页
C  教师信息管理系统.doc_第2页
第2页 / 共15页
C  教师信息管理系统.doc_第3页
第3页 / 共15页
C  教师信息管理系统.doc_第4页
第4页 / 共15页
C  教师信息管理系统.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

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,链表相关的输入,显示,排序,查找,创建全部设为成员函数。总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表进行操作,最后保存至文件中- 2 -2、流程图是否是否开始打开文件读取记录输入 choicechoice=0?显示当前记录添加记录 创建新纪录排序 查找保存保存结束- 3 -3、 各函数的功能和实现学院教学信息管理系统的相关功能由对应的函数来实现。(1) 输入教师信息并显示void Append()通过

4、提示一步步输入信息,由程序构建新节点并加入链表(2) 显示所有记录void Print()(3)按职工号或教学效果综合评分排序并显示int SortMenu()void SortMenuControl()void InsertByTeano(CNode *newp)void SortByTeano()void InsertByScore(CNode *newp)void SortByScore()(4)按姓名或课程查找教师记录并显示int SearchMenu()void SearchMenuControl()void SearchByName()void SearchByCourse()四、

5、程序源代码#include “stdafx.h“#include #include #include #include #include #include using namespace std;class CPersonprivate:- 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;void SetAge(int age=0)this-age=age;void SetNameAn

6、dSex(string name,char sex)this-name=name;this-sex=sex;void ShowInfo()cout 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=title;this-teano=teano;void SetCourse(string c1,string c2,stri

7、ng c3)course.push_back(c1);course.push_back(c2);course.push_back(c3);void SetScore(float score)this-score=score;void ShowInfo()couttitle=one.title;this-teano=one.teano;this-course0=one.course0;this-course1=one.course1;this-course2=one.course2;this-score=one.score;vector GetCourse()return course;stri

8、ng GetTitle()return title;string GetTeano()return teano;float GetScore()return score;class CNodefriend class CList;private:CTeacher data;CNode *next;class CListprivate:CNode *head;- 7 -CNode *tail;CNode *p;CNode *pre;int num;/当前节点数public:int MainMenu()coutchoice;return choice;void MainMenuControl()R

9、eadData();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:NewList(); break;coutc;if ( c=y ) Save();void ReadData()- 8 -head=tail=new CNode;head-next=NULL;num=

10、0;char fname80;coutfname;ifstream file(fname);if ( !file )coutteanonameagesextitlecourse0course1course2score;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=NU

11、LL;void Print()for ( p=head-next; p!=NULL; p=p-next)p-data.ShowInfo();coutname;coutage;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);p-next

12、=tail-next;tail-next=p;tail=p;num+;char c;coutc;cin.get();if ( c!=y ) break;tail-next=NULL;Print();int SortMenu()- 10 -coutchoice;return choice;void SortMenuControl()while ( 1 )int choice=SortMenu();if ( choice=0 ) break;switch ( choice )case 1:SortByTeano(); break;case 2:SortByScore(); break;Print(

13、);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=nextp;- 11 -void InsertByScore(C

14、Node *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 SortByScore()p=head-next;head-next=NULL;CNode *nextp;while ( p!=NULL )nextp=p-next;InsertByScore(p);p=nextp;int SearchMenu()coutchoice;return choice;void Se

15、archMenuControl()while ( 1 )int choice=SearchMenu();if ( choice=0 ) break;switch ( choice )case 1:SearchByName(); break;case 2:SearchByCourse();break;- 12 -void SearchByName()int n=0;coutname;for ( p=head-next; p!=NULL; p=p-next)if ( p-data.GetName()=name )p-data.ShowInfo();n+;if ( n=0 ) coutc;for (

16、 p=head-next; p!=NULL; p=p-next)vector course=p-data.GetCourse();for (int i=0; idata.ShowInfo();n+;break;if ( n=0 ) coutnext=NULL;while ( 1 )p=new CNode;coutname;coutage;coutsex;p-data.SetNameAndSex(name,sex);p-data.SetAge(age);couttitle;coutteano;p-data.SetData(title,teano);coutcourse0course1course

17、2;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=NULL;- 14 -void Save()char fname80;coutfname;ofstream file(fname);if ( !file )coutnext; p!=NULL; p=p-next)vector course=p-data.GetCourse();filedata.GetTean

18、o()data.GetName()data.GetAge()data.GetSex()data.GetTitle()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;- 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。

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

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报