C++教师信息管理系统(最新版-修订)新修订

上传人:l****6 文档编号:148742127 上传时间:2020-10-22 格式:PDF 页数:15 大小:214.43KB
返回 下载 相关 举报
C++教师信息管理系统(最新版-修订)新修订_第1页
第1页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++教师信息管理系统(最新版-修订)新修订》由会员分享,可在线阅读,更多相关《C++教师信息管理系统(最新版-修订)新修订(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、 成员函数; (3) CNode 类:节点类,包含 2 个数据成员,CTeacher 类对象 p 和 CNode 类 指针对象 next,作为构建链表的单位; (4) CList 类:链表类,声明为 CNode 类的友元类,数据成员有头结点 head, 尾节点 tail, 记录当前节点的 p 和当前节点前一节点的 pre, 链表相关的输 入,显示,排序,查找,创建全部设为成员函数。 总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表进行操作, 最后保存至文件中 - 2 - 2、流程图流程图 是 否 是 否 开始 打开文件 读取记录 输入 choice choice=0? 显 示 当

4、前 记 录 添 加 记 录 创 建 新 纪 录 排 序 查 找 保存 保存 结束 - 3 - 3、 各函数的功能和实现各函数的功能和实现 学院教学信息管理系统的相关功能由对应的函数来实现。 (1) 输入教师信息并显示 void Append() 通过提示一步步输入信息,由程序构建新节点并加入链表 (2) 显示所有记录 void Print() (3)按职工号或教学效果综合评分排序并显示 int SortMenu() void SortMenuControl() void InsertByTeano(CNode *newp) void SortByTeano() void InsertBySco

5、re(CNode *newp) void SortByScore() (4)按姓名或课程查找教师记录并显示 int SearchMenu() void SearchMenuControl() void SearchByName() void SearchByCourse() 四、程序源代码四、程序源代码 #include stdafx.h #include #include #include #include #include #include using namespace std; class CPerson private: - 4 - string name; int age; cha

6、r 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 SetNameAndSex(string name,char sex) this-name=name; this-sex=sex; void ShowInfo() coutnametaget(sex=M?男:女)endl; string GetName() return name; int G

7、etAge() return age; char GetSex() return sex; - 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-t

8、itle=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;

9、this-teano=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: CTeach

10、er data; CNode *next; ; class CList private: CNode *head; - 7 - CNode *tail; CNode *p; CNode *pre; int num;/当前节点数 public: int MainMenu() cout1.显示当前记录endl; cout2.添加记录endl; cout3.排序endl; cout4.查找endl; cout5.创建新纪录endl; cout0.退出endl; coutchoice; return choice; void MainMenuControl() ReadData(); while (

11、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=0; char

12、 fname80; coutfname; ifstream file(fname); if ( !file ) cout出现未知错误导致无法打开!teanonameagesextitlecourse0course1course2sco re; 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

13、=p; num+; tail-next=NULL; void Print() for ( p=head-next; p!=NULL; p=p-next) p-data.ShowInfo(); coutendl; void Append() while ( 1 ) - 9 - p=new CNode; cout请输入:endl; coutname; coutage; coutsex; p-data.SetNameAndSex(name,sex); p-data.SetAge(age); couttitle; coutteano; p-data.SetData(title,teano); cout

14、course0course1course2; 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() - 10 - cout1.按职工号排序endl; cout2.按教学效果综合评分排序endl; cout0.退出endl; coutchoi

15、ce; return choice; void SortMenuControl() while ( 1 ) int choice=SortMenu(); if ( choice=0 ) break; switch ( choice ) case 1:SortByTeano();break; case 2:SortByScore();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=nextp; - 11 - void InsertByScore(CNode *newp) for ( p

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

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号