C++教师信息管理系统_第1页
C++教师信息管理系统_第2页
C++教师信息管理系统_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、ist类:链表类,声明为 CNode类的友元类,数据成员有头 结点head,尾节点tail ,记录当前节点的 p和当前节点前一节 点的pre,链表相关的输入,显示,排序,查找,创建全部设 为成员函数。总体流程为先打开文件,读取文件中的记录来创建链表,然后对链表 进行操作,最后保存至文件中是创建新纪录查找排序添加记录显示当前记录3、各函数的功能和实现学院教学信息管理系统的相关功能由对应的函数来实现。(1)输入教师信息并显示void Append()通过提示一步步输入信息,由程序构建新节点并加入链表( 2) 显示所有记录void Print()(3)按职工号或教学效果综合评分排序并显示int So

4、rtMenu()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 <iostream>#include <

5、;fstream>#include <vector>#include <algorithm>#include <cstring>#include <string>using namespace std;class CPersonprivate: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

6、oid SetAge(int age=0)this->age=age;void SetNameAndSex(string name,char sex)this->name=name;this->sex=sex;void ShowInfo()cout<<name<<"t"<<age<<"t"<<(sex='M'?" 男 ":" 女 ")<<endl;string GetName()return name;int

7、GetAge()return age;char GetSex()return sex;class CTeacher:public CPersonprivate:string title;/ 职称string teano;/ 职工号 vector<string> course;/教授课程float score;/ 教学效果综合评分public:CTeacher()age=0,charCTeacher(string name,int sex='M'):CPerson(name,age,sex)void SetData(string title,string teano)

8、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 ShowInfo()cout<<teano<<"t"<<GetName()<<"t"<<GetA

9、ge()<<"t"<<(GetSex()='M'?"":")<<title<<"t"<<course0<<"t"<<course1<<"t"<<course2<<"t"<<score<<endl;void operator =(CTeacher &one)CPerson(one.GetName(),o

10、ne.GetAge(),one.GetSex();this->title=one.title;this->teano=one.teano;this->course0=one.course0;this->course1=one.course1;this->course2=one.course2;this->score=one.score;vector<string> GetCourse()return course;string GetTitle()return title;string GetTeano() return teano;float

11、GetScore()return score;class CNodefriend class CList; private:CTeacher data;CNode *next;class CListprivate:CNode *head;CNode *tail;CNode *p;CNode *pre;int num;/ 当前节点数public:int MainMenu()cout<<"1. 显示当前记录 "<<endl; cout<<"2. 添加记录 "<<endl; cout<<"3

12、. 排序 "<<endl;cout<<"4. 查找 "<<endl;cout<<"5. 创建新纪录 "<<endl;cout<<"0. 退出 "<<endl; cout<<endl;int choice;cin>>choice;return choice;void MainMenuControl()ReadData();while ( 1 )int choice=MainMenu();if ( choice=0 )br

13、eak;switch ( choice )case 1:Print();break;case 2:Append(); break;case 3:SortMenuControl();break;case 4:SearchMenuControl(); break;case 5:NewList(); break;cout<<" 是否保存?( Y/N):"char c;cin>>c;if ( c='y' ) Save();void ReadData()head=tail=new CNode; head->next=NULL;num=0;

14、char fname80;cout<<" 请输入要读取的文件: "cin>>fname;ifstream );if ( !file )cout<<" 出现未知错误导致无法打开! "<<endl;exit(1);string name,title,teano,course3;int age;char sex;float score;while ( ()!=EOF )file>>teano>>name>>age>>sex>>title>>c

15、ourse0>>course1 >>course2>>score;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-&g

16、t;next; p!=NULL; p=p->next)p->data.ShowInfo();cout<<endl;void Append()while ( 1 )p=new CNode;cout<<" 请输入: "<<endl; cout<<" 姓名: "string name; cin>>name; cout<<" 年龄: "int age; cin>>age;cout<<" 性别( F/M):" char

17、 sex;cin>>sex;p->data.SetNameAndSex(name,sex); p->data.SetAge(age);cout<<" 职称: " string title;cin>>title; cout<<" 职工号: "string teano; cin>>teano; p->data.SetData(title,teano);cout<<" 教授课程: " string course3;cin>>course0&

18、gt;>course1>>course2;p->data.SetCourse(course0,course1,course2);cout<<" 教学效果综合评分: "float score;cin>>score;p->data.SetScore(score);p->next=tail->next;tail->next=p;tail=p;num+;char c;cout<<" 是否继续添加?( Y/N): "cin>>c;cin.get();if ( c!=&#

19、39;y' ) break;tail->next=NULL;Print();int SortMenu()cout<<"1. 按职工号排序 "<<endl;cout<<"2. 按教学效果综合评分排序 "<<endl;cout<<"0. 退出 "<<endl;cout<<endl;int choice;cin>>choice;return choice;void SortMenuControl()while ( 1 )int ch

20、oice=SortMenu();if ( choice=0 ) break;switch ( choice )break;break;case 1:SortByTeano();case 2:SortByScore();Print();void InsertByTeano(CNode *newp)for ( pre=head,p=head->next; p!=NULL; pre=p,p=p->next)if ( newp->data.GetTeano() < p->data.GetTeano() ) break;newp->next=p; pre->ne

21、xt=newp;void SortByTeano()p=head->next;head->next=NULL;CNode *nextp;while ( p!=NULL ) nextp=p->next; InsertByTeano(p); p=nextp;void InsertByScore(CNode *newp)for ( pre=head,p=head->next; p!=NULL; pre=p,p=p->next)if ( newp->data.GetScore() < p->data.GetScore() ) break;newp->

22、;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()cout<<"1. 按姓名查找 "<<endl;cout<<"2. 按课程查找 "<<endl;cout<<"0. 退出 "<<

23、endl; cout<<endl;int choice;cin>>choice;return choice;void SearchMenuControl()while ( 1 )int choice=SearchMenu();if ( choice=0 )break;switch ( choice )break;break;case 1:SearchByName(); case 2:SearchByCourse();void SearchByName()int n=0;cout<<" 请输入姓名: "string name;cin>

24、>name;for ( p=head->next; p!=NULL; p=p->next) if ( p->data.GetName()=name ) p->data.ShowInfo();n+;if ( n=0 ) cout<<"没有相关记录 "<<endl;cout<<endl;void SearchByCourse()int n=0;cout<<" 请输入查找课程: " string c;cin>>c;for ( p=head->next; p!=NUL

25、L; p=p->next)vector<string> course=p->data.GetCourse();for (int i=0; i<3; i+)if ( c=coursei)p->data.ShowInfo();n+;break;if ( n=0 ) cout<<"没有相关记录 "<<endl;cout<<endl;void NewList()Destory();head=tail=new CNode; head->next=NULL;while ( 1 )p=new CNode;cou

26、t<<" 请输入: "<<endl; cout<<" 姓名: "string name;cin>>name;cout<<" 年龄: "int age;cin>>age;cout<<" 性别( F/M):" char sex;cin>>sex;p->data.SetNameAndSex(name,sex); p->data.SetAge(age);cout<<" 职称: " st

27、ring title;cin>>title; cout<<" 职工号: " string teano;cin>>teano; p->data.SetData(title,teano);cout<<" 教授课程: " string course3;cin>>course0>>course1>>course2;p->data.SetCourse(course0,course1,course2);cout<<" 教学效果综合评分: "

28、float score;cin>>score;p->data.SetScore(score);tail->next=p;tail=p;num+;cout<<" 是否继续输入?( Y/N): " char c;cin>>c;cin.get();if ( c!='y' ) break;tail->next=NULL;void Save()char fname80;cout<<" 保存到:cin>>fname;ofstream );if ( !file )cout<<

29、;" 出现未知错误导致无法打开! "<<endl;exit(1);for ( p=head->next; p!=NULL; p=p->next)vector<string> course=p->data.GetCourse();file<<p->data.GetTeano()<<"t"<<p->data.GetName()<<"t"<<p->data.GetAge()<<"t"<

30、<p->data.GetSex()<<"t"<<p->data.GetTitle()<<"t"<<course0<<"t"<<course1<<"t"<<course2<<"t"<<p->data.GetScore()<<endl;();void Destory()for ( p=head->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;delete p;delete

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论