


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.一、 课程设计问题描述学院教学信息管理系统是高等学校教务管理的重要组成局部,其内容较多,为了简化计论,要求设计的管理系统能够完成以下功能:1输入:输入每一位教师记录,将其信息写入文件中;2显示:显示每位教师记录;3排序:按职工号或教学效果综合评分进展排序,并显示;4查找:完成按XX或课程查找教师的相关记录,并显示;5创立:创立新的纪录,输入数位教师记录,显示在屏幕上并保存;二、 课程设计目的和要求:经过一个学期的"C+面向对象实用教程"课程的学习,已经有了一定地程序设计根底,但是要学好C+程序设计,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进展上机实践,通过上机实
2、践才能增强和稳固知识。三、 系统设计算法分析1、 整体构造整个程序定义四个类(1) CPerson类:包含数据成员name,age,sex,记录XX,年龄,性别这些信息,并包含构造函数及其他成员函数定义CPerson类以后假设有需要,可再通过继承派生其他类;(2) CTeacher:共有继承CPerson类,包含数据成员title,teano,course,score,分别记录职称,职工号,3门课程和教学效果综合评分等信息,另有其他成员函数;(3) ode类:节点类,包含2个数据成员,CTeacher类对象p和ode类指针对象next,作为构建链表的单位;(4) CList类:链表类,声明为o
3、de类的友元类,数据成员有头结点head,尾节点tail,记录当前节点的p和当前节点前一节点的pre,链表相关的输入,显示,排序,查找,创立全部设为成员函数。总体流程为先翻开文件,读取文件中的记录来创立链表,然后对链表进展操作,最后保存至文件中2、流程图开场翻开文件读取记录输入choicechoice=0. 是 否查找排序创立新纪录添加记录显示当前记录保存 是保存 否完毕3、 各函数的功能和实现学院教学信息管理系统的相关功能由对应的函数来实现。(1) 输入教师信息并显示void Append()通过提示一步步输入信息,由程序构建新节点并参加链表(2) 显示所有记录void Print()3按职
4、工号或教学效果综合评分排序并显示int SortMenu()void SortMenuControl()void InsertByTeano(ode *newp)void SortByTeano()void InsertByScore(ode *newp)void SortByScore()4按XX或课程查找教师记录并显示int SearchMenu()void SearchMenuControl()void SearchByName()void SearchByCourse()四、程序源代码*include "stdafx.h"*include <iostream&
5、gt;*include <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
6、->sex=sex;void 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
7、name;int GetAge()return age;char GetSex()return sex;class CTeacher:public CPersonprivate:string title;/职称string teano;/职工号vector<string> course;/教授课程float score;/教学效果综合评分public:CTeacher()CTeacher(string name,int age=0,char sex='M'):CPerson(name,age,sex)void SetData(string title,string
8、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 ShowInfo()cout<<teano<<"t"<<GetName()<<"t"<&l
9、t;GetAge()<<"t"<<(GetSex()='M'"男":")<<title<<"t"<<course0<<"t"<<course1<<"t"<<course2<<"t"<<score<<endl;void operator =(CTeacher &one)CPerson(one.GetNa
10、me(),one.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;f
11、loat GetScore()return score;class odefriend class CList;private:CTeacher data;ode *next;class CListprivate:ode *head;ode *tail;ode *p;ode *pre;int num;/当前节点数public:int MainMenu()cout<<"1.显示当前记录"<<endl;cout<<"2.添加记录"<<endl;cout<<"3.排序"<&l
12、t;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 )break;switch ( choice )cas
13、e 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 ode;head->next=NULL;num=0;char fname80;cout<<"请输入要
14、读取的文件:"cin>>fname;ifstream file(fname);if ( !file )cout<<"出现未知错误导致无法翻开!"<<endl;exit(1);string name,title,teano,course3;int age;char sex;float score;while ( file.peek()!=EOF )file>>teano>>name>>age>>sex>>title>>course0>>course
15、1>>course2>>score;p=new ode;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-&g
16、t;next)p->data.ShowInfo();cout<<endl;void Append()while ( 1 )p=new ode;cout<<"请输入:"<<endl;cout<<":"string name;cin>>name;cout<<"年龄:"int age;cin>>age;cout<<"性别F/M:"char sex;cin>>sex;p->data.SetNameAndS
17、ex(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>>course1>>course2;p->data.SetCourse(cou
18、rse0,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!='y' )break;tail->next=NULL;Print();int SortMenu()cou
19、t<<"1.按职工号排序"<<endl;cout<<"2.按教学效果综合评分排序"<<endl;cout<<"0.退出"<<endl;cout<<endl;int choice;cin>>choice;return choice;void SortMenuControl()while ( 1 )int choice=SortMenu();if ( choice=0 )break;switch ( choice )case 1:SortByT
20、eano();break;case 2:SortByScore();break;Print();void InsertByTeano(ode *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->next=newp;void SortByTeano()p=head->next;head->next=NULL;ode *nextp;w
21、hile ( p!=NULL )nextp=p->next;InsertByTeano(p);p=nextp;void InsertByScore(ode *newp)for ( pre=head,p=head->next; p!=NULL; pre=p,p=p->next)if ( newp->data.GetScore() < p->data.GetScore() )break;newp->next=p;pre->next=newp;void SortByScore()p=head->next;head->next=NULL;od
22、e *nextp;while ( p!=NULL )nextp=p->next;InsertByScore(p);p=nextp;int SearchMenu()cout<<"1.按XX查找"<<endl;cout<<"2.按课程查找"<<endl;cout<<"0.退出"<<endl;cout<<endl;int choice;cin>>choice;return choice;void SearchMenuControl()whi
23、le ( 1 )int choice=SearchMenu();if ( choice=0 )break;switch ( choice )case 1:SearchByName();break;case 2:SearchByCourse();break;void SearchByName()int n=0;cout<<"请输入XX:"string name;cin>>name;for ( p=head->next; p!=NULL; p=p->next)if ( p->data.GetName()=name)p->data.
24、ShowInfo();n+;if ( n=0 )cout<<"没有相关记录"<<endl;cout<<endl;void SearchByCourse()int n=0;cout<<"请输入查找课程:"string c;cin>>c;for ( p=head->next; p!=NULL; p=p->next)vector<string> course=p->data.GetCourse();for (int i=0; i<3; i+)if ( c=cours
25、ei)p->data.ShowInfo();n+;break;if ( n=0 )cout<<"没有相关记录"<<endl;cout<<endl;void NewList()Destory();head=tail=new ode;head->next=NULL;while ( 1 )p=new ode;cout<<"请输入:"<<endl;cout<<":"string name;cin>>name;cout<<"年龄
26、:"int age;cin>>age;cout<<"性别F/M:"char 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<<
27、;"教授课程:"string course3;cin>>course0>>course1>>course2;p->data.SetCourse(course0,course1,course2);cout<<"教学效果综合评分:"float score;cin>>score;p->data.SetScore(score);tail->next=p;tail=p;num+;cout<<"是否继续输入.Y/N:"char c;cin>>c;
28、cin.get();if ( c!='y' )break;tail->next=NULL;void Save()char fname80;cout<<"保存到:"cin>>fname;ofstream file(fname);if ( !file )cout<<"出现未知错误导致无法翻开!"<<endl;exit(1);for ( p=head->next; p!=NULL; p=p->next)vector<string> course=p->data.GetCourse();file<<p->data.GetTeano()<<&quo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-河北-河北土建施工人员五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-河北-河北下水道养护工五级(初级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-江苏-江苏放射技术员三级(高级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广西-广西汽车驾驶与维修员二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西无损探伤工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广西-广西公路养护工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东食品检验工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东热处理工四级(中级工)历年参考题库含答案解析
- 2025年事业单位工勤技能-广东-广东垃圾清扫与处理工四级(中级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东信号工-机车信号设备维修三级(高级工)历年参考题库含答案解析
- GB/T 35267.4-2025清洗消毒器第4部分:内镜清洗消毒器
- 中职生单招语文必背古诗文(35篇)
- 新版2025心肺复苏术指南
- DB45T 1056-2014 土地整治工程 第2部分:质量检验与评定规程
- 2025年文明行车科目一试题及答案
- 电商快递合作协议样本
- 《朝花夕拾》名著导读+知识点+习题集合
- 柴油发电机组操作培训
- 《新能源材料与器件专业导论》课程教学大纲
- 养老院文娱活动意外应急预案
- 老年护理学试题库(含参考答案)
评论
0/150
提交评论