1、C+教师信息管理系统一、 课程设计问题描述学院教学信息管理系统是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下功能:(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,作为构建链表的单位;(4)
3、CList类:链表类,声明为CNode类的友元类,数据成员有头结点head,尾节点tail,记录当前节点的p和当前节点前一节点的pre,链表相关的输入,显示,排序,查找,创建全部设为成员函数。总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表进行操作,最后保存至文件中开始打开文件读取记录输入choicechoice=0?显示当前记录添加记录创建新纪录排序查找保存保存结束2、流程图 是 否 是 否3、 各函数的功能和实现学院教学信息管理系统的相关功能由对应的函数来实现。(1) 输入教师信息并显示void Append()通过提示一步步输入信息,由程序构建新节点并加入链表(2) 显示所有
4、记录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()四、程序源代码#include stdafx.h#include
5、#include #include #include #include #include using namespace std;class CPerson private: 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 SetNameAndSex(string name,char sex
6、) this-name=name; this-sex=sex; void ShowInfo() coutnametaget(sex=M?男:女)endl; string GetName() return name; int GetAge() return age; char GetSex() return sex; ;class CTeacher:public CPerson private: string title;/职称 string teano;/职工号 vector course;/教授课程 float score;/教学效果综合评分 public: CTeacher() CTeac
7、her(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,string c3) course.push_back(c1); course.push_back(c2); course.push_back(c3); void SetScore(float score) this-score=score; void Sh
8、owInfo() coutteanotGetName()tGetAge()t(GetSex()=M?男:)titletcourse0tcourse1tcourse2tscoretitle=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; string GetTitle() return title; string
9、GetTeano() return teano; float GetScore() return score; ;class CNode friend class CList; private: CTeacher data; CNode *next;class CList private: CNode *head; CNode *tail; CNode *p; CNode *pre; int num;/当前节点数 public: int MainMenu() cout1.显示当前记录endl; cout2.添加记录endl; cout3.排序endl; cout4.查找endl; cout5.
10、创建新纪录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:NewList(); brea
11、k; coutc; if ( c=y ) Save(); void ReadData() head=tail=new CNode; head-next=NULL; num=0; char fname80; coutfname; ifstream file(fname); if ( !file ) cout出现未知错误导致无法打开!teanonameagesextitlecourse0course1course2score; 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.ShowInfo(); coutendl;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1