教师信息管理系统C++课程设计.docx
- 文档编号:25261341
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:23
- 大小:131.19KB
教师信息管理系统C++课程设计.docx
《教师信息管理系统C++课程设计.docx》由会员分享,可在线阅读,更多相关《教师信息管理系统C++课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
教师信息管理系统C++课程设计
教师信息管理系统
目录
一、设计方案和目的3
1.设计方案:
3
2.设计目的:
3
二、系统分析3
1.功能分析:
3
2.性能:
3
3.系统功能模块3
4.模块框架图4
三、系统实现和测试结果4
四.流程图4
1.系统流程图5
2.输入模块6
3.查找模块7
4.删除模块8
五、总结8
六、参考资料8
附录:
程序清单9
一、设计方案和目的
1.设计方案:
根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序来实现教师信息记录;自己根据能力及需要添加相应功能模块,增强模拟系统功能。
包括系统的功能分析、系统的功能模块、程序流程图或结构框图、逻辑结构设计。
2.设计目的:
能直观简单地管理教师信息,达到基本的教师信息管理,方便直接对教师信息进行修改。
二、系统分析
1.功能分析:
a.增加教师的信息;
b.查找教师信息;
c.显示所有教师的信息;
d.删除选定的教师信息;
e.保存教师信息;
f.从指定文件中载入教师信息。
2.性能:
a.系统安全、可靠;
b.功能简单;
c.操作方便;
d.易于维护和扩充。
3.系统功能模块
系统由信息增加模块、查询模块、显示模块、删除模块、保存模块、载入模块构成。
4.模块框架图
三、系统实现和测试结果
系统基本能实现各功能的要求,达到最基本的要求,缺点就是有很多的地方都不够完善,功能单一。
四.流程图
1.系统流程图
2.输入模块
3.查找模块
4.删除模块
五、总结
虽然该系统非常简单,但对于我们来说是一个渐进的过程,要求我们对程序的设计要求有一个比较明确的认识,加深对C++语言的理解和掌握,然后逐步去实现各个功能,不断改进,从而提高编程能力。
六、参考资料
C++面对对象程序设计刘永华清华大学出版社
附录:
程序清单
/*Department.h文件*/
#if!
defined(AFX_DEPANTMENT_H_A6895DC1_C3F3_4737_88EC_AE2DA280272E_INCLUDED_)
#defineAFX_DEPANTMENT_H_A6895DC1_C3F3_4737_88EC_AE2DA280272E_INCLUDED_
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
#include
#include
#include
#include
#include
classDepartment//定义Department关于教师信息的类//
{
public:
charPname[20];//教师名字//
charPno[20];//工号//
charSsex[10];//性别//
intSgrade;//年龄//
charTel[20];//电话//
charAddress[30];//住址//
Department*next;
Department();
Department(char*Pno1,char*Pname1,char*Ssex1,intSgrade1,char*Tel1,char*Address1)
{
next=NULL;
strcpy(Pno,Pno1);
strcpy(Pname,Pname1);
strcpy(Ssex,Ssex1);
Sgrade=Sgrade1;
strcpy(Tel,Tel1);
strcpy(Address,Address1);
}
virtual~Department();
friendostream&operator<<(ostream&oc,Department&obj);//重载<<
friendistream&operator>>(istream&ic,Department&obj);//重载>>
};
#endif
/*School.h文件*/
#if!
defined(AFX_SCHOOL_H_7D278A4A_44F9_45A2_B3D6_35306E25BEFE_INCLUDED_)
#defineAFX_SCHOOL_H_7D278A4A_44F9_45A2_B3D6_35306E25BEFE_INCLUDED_
#if_MSC_VER>1000
#pragmaonce
#endif//_MSC_VER>1000
#include"Department.h"
classSchool//定义School类//
{
public:
voidDepMenu(Department*depType);
voidDispAll();
Department*root;
intDeptCount;
charPname[20];
charPno[20];
charSsex[10];
intSgrade;
charTel[20];
charAddress[30];
School();
virtual~School();
boolAddDept(char*pno,char*pname,char*ssex,
intsgrade,char*tel,char*address);
boolDeleteDept(char*no);
Department*FindDept(char*no);
voidsave();//将教师信息记录存入指定文件
voidload();//从指定文件装载教师记录
friendostream&operator<<(ostream&oc,School&obj);//重载<<
friendistream&operator>>(istream&ic,School&obj);
};
#endif
/*****.Department.cpp文件*****/
#include"Department.h"
Department:
:
Department()
{
next=NULL;
Pno[0]='0';
Pname[0]='0';
Ssex[0]='0';
Sgrade=0;
Tel[0]='0';
Address[0]='0';
}
Department:
:
~Department()
{
if(next!
=NULL)
deletenext;
}
/*增加教师,先用工号查找,如果找到,返回false;否则返回true*/
ostream&operator<<(ostream&oc,Department&obj)//重载<<
{
oc< oc< oc< oc< oc< oc< returnoc; } istream&operator>>(istream&ic,Department&obj) { ic>>obj.Pname; ic>>obj.Pno; ic>>obj.Ssex; ic>>obj.Sgrade; ic>>obj.Tel; ic>>obj.Address; returnic; } /**********************************************************/ /*****School.cpp文件*****/ #include"School.h" School: : School() { root=NULL; DeptCount=0; } School: : ~School() { if(root! =NULL) deleteroot; } boolSchool: : AddDept(char*pno,char*pname,char*ssex, intsgrade,char*tel,char*address)//增加函数定义// { Department*temp,*old; temp=old=root; while(temp! =NULL) { if(strcmp(temp->Pno,pno)==0) { cout<<"\t这个教师"< "< returnfalse; } else { old=temp; temp=temp->next; } } if(temp==NULL) { Department*ptr; ptr=newDepartment(pno,pname,ssex,sgrade,tel,address); ptr->next=NULL; if(old! =NULL) { old->next=ptr; } else root=ptr; DeptCount++; cout<<"\t"< "< returntrue; } returnfalse; } boolSchool: : DeleteDept(char*no)//删除函数定义// { Department*temp,*old; temp=old=root; while(temp! =NULL) { if(strcmp(temp->Pno,no)! =0) { old=temp; temp=temp->next; } else { if(temp==root) { root=NULL; } old->next=temp->next; cout<<"\t工号为"< "< DeptCount--; if(DeptCount! =0) { if(temp==old) { root=old->next; } } returntrue; } } if(temp==NULL) { cout<<"\t工号为"< "< returnfalse; } returnfalse; } Department*School: : FindDept(char*no)//查找函数定义// { Department*temp; temp=root; while(temp! =NULL) { if(strcmp(temp->Pno,no)==0) { cout<<"\t工号为"< "< returntemp; } else { temp=temp->next; } } if(temp==NULL) { cout<<"\t工号为"< "< } returnNULL; } voidSchool: : DispAll()//显示函数定义// { Department*temp; temp=root; cout<<"\t教师名"<<"\t工号"<<"\t性别"<<"\t年龄"<<"\t电话"<<"\t\t住址"< while(temp! =NULL) { cout<<'\t'< < temp=temp->next; } } voidSchool: : save()//保存函数定义// { ofstreamout; out.open("school.dat",ios: : out); if(! out) { cout<<"\t文件不能打开! "< return; } if(root==NULL) { cout<<"\t没有系的记录可存! "< DeptCount=0; return; } cout<<"\t正在保存系数据..."< Department*p; p=root; out< while(p! =NULL) { out<<*p; p=p->next; } out.close(); cout<<'\t'< "< } voidSchool: : load()//装载函数定义// { //先清空当前列表 if(root! =NULL) //deleteroot; root=NULL; DeptCount=0; ifstreamin; in.open("school.dat",ios: : in|ios: : nocreate); if(! in) { cout<<"\t文件不能打开! "< return; } cout<<"\t正在读取系数据..."< Department*p,*old; intcount; in>>count; for(inti=0;i { p=newDepartment; in>>*p; if(root==NULL) { root=p; old=root; } else { old->next=p; old=old->next; } DeptCount++; } in.close(); cout<<'\t'< "< } ostream&operator<<(ostream&oc,School&obj)//操作符函数定义// { oc< oc< oc< oc< oc< oc< Department*p; p=obj.root; while(p! =NULL) { oc<<*p; p=p->next; } returnoc; } istream&operator>>(istream&ic,School&obj) { ic>>obj.Pname; ic>>obj.Pno; ic>>obj.Ssex; ic>>obj.Sgrade; ic>>obj.Tel; ic>>obj.Address; intcount; ic>>count; Department*p,*old; old=obj.root; for(inti=0;i { p=newDepartment; ic>>*p; if(obj.root==NULL) { obj.root=p; old=obj.root; } else { old->next=p; old=old->next; } obj.DeptCount++; } returnic; } #include"School.h"//主函数// voidmain() { Schoolshiyou; intsel; sel=1; charPname[30]; charPno[10]; charSsex[10]; intSgrade; charTel[20]; charAddress[20]; cout<<"**************************************************"< cout<<"*欢迎进入教师管理系统*"< cout<<"**************************************************"< while(sel) { cout<<"\n请选择您的操作: "< cout<<"1.增加教师信息"< cout<<"2.查找教师"< cout<<"3.显示所有教师"< cout<<"4.删除教师"< cout<<"5.保存"< cout<<"6.载入"< cout<<"0.退出"< cout<<"请选择要执行的操作(0-6): "; cin>>sel; cout< //判断输入,0退出 if(sel>=0&&sel<=6) { switch(sel) { case1: cout<<"请输入教师工号: "; cin>>Pno; cout< cout<<"请输入教师名字: "; cin>>Pname; cout< cout<<"请输入教师性别: "; cin>>Ssex; cout< cout<<"请输入教师年龄: "; cin>>Sgrade; cout< cout<<"请输入教师电话: "; cin>>Tel; cout< cout<<"请输入教师住址: "; cin>>Address; cout< shiyou.AddDept(Pno,Pname,Ssex,Sgrade,Tel,Address); break; case2: Department*find; cout<<"请输入教师工号: "; cin>>Pno; find=shiyou.FindDept(Pno); if(find! =NULL) { cout<<"教师名字: "< cout<<"教师工号: "< cout<<"性别: "< cout<<"年龄: "< cout<<"电话: "< cout<<"住址: "< break; } break; case3: cout<<"所有教师信息为: "< shiyou.DispAll(); break; case4: cout<<"请输入教师工号: "; cin>>Pno; shiyou.DeleteDept(Pno); break; case5: shiyou.save(); break; case6: shiyou.load(); break; case0: break; } } else { cout<<"输入错误! 请重新输入! "; } } } ........忽略此处.......
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教师 信息管理 系统 C+ 课程设计