C++课程设计教师管理系统Word文档下载推荐.docx
《C++课程设计教师管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++课程设计教师管理系统Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
当查找教师时,并且填入的教师存在时,就会显示所对应的子菜单用于增加授课的班级;
当查找班级时,并且填入的班级存在时,就会显示所对应的子菜单用于增加此班级授课的科目。
程序在各各菜单选项中支持增加、查找、显示所有、删除、退出等功能选择。
通过该程序能够很好的管理教师的信息,具有很好的可维护性,保存后的信息可以在下次运行程序时被正确无误的载入,方便管理人员的操作和建立新的教师档案。
以解决现实生活中繁琐、冗余、耗时间、费事、容易丢失的数据管理问题,使教师管理信息更加简单,易懂,安全性更加强。
注:
由于本程序是参照课本上的学生管理系统应用实例程序而修改过来的,很多程序的命名规则没有做过多的改动,所以经修改过后的程序有一定的阅读难度。
1.2.1各项功能说明
主函数说明:
(1)教师信息的增加:
这部分的功能主要是在数据文件中加入教师的信息。
首先建立一个指向student.dat文件的指针,若成功建立,则按程序提示输入教师的相关信息,包括工号、姓名、性别、电话以及职位等,并将这些信息分别赋给指针中的相应变量,其中包括当前所指向的指针和指向;
然后把这个结点加入到指针中,可以从首地址来增加,计数器加一。
这样一个教师信息就形成了。
(2)查找教师信息:
进入该功能界面后,可以通过教师的工号查找出该教师的所有信息。
首先开辟一个指针,并把文件student.dat所指向的头指针赋给它,根据输入的教师工号,逐个查找文件中与此工号匹配的教师,找到之后,将此教师的所有信息输出。
(3)删除教师信息:
进入该功能界面后,可以通过教师的工号对某个教师信息进行删除。
首先开辟一个
指针,并把文件student.dat所指向的头指针赋给它,根据输入的教师编号,逐个查找文件中与此工号匹配的教师指针,找到之后,将此教师的所有信息删除。
可以通过显示所有的教师信息来看此教师信息是否删除。
(4)保存、载入教师信息:
选择这个功能后就会保存教师的所有信息,以供以后使用程序时载入之前保存过的信息
(5)显示教师信息:
选择此功能后可以将当前的所有教师信息显示出来。
(6)退出:
关闭程序。
各子菜单功能介绍:
(1)增加班级:
这部分的功能主要是在数据文件中加入教师所对应的班级的信息。
首先建立一个指向student.dat文件的指针,若成功建立,则按程序提示输入班级的相关信息,包括工号、姓名等,并将这些信息分别赋给指针中的相应变量,其中包括当前所指向的指针和指向;
这样一个教师对应的班级信息就形成了。
(2)查找、删除、显示、退出班级信息:
此部分跟主函数中的查找教师信息、删除教师信息、显示教师信息、退出相类似,不同之处就是班级管理信息是教师管理信息的一个子菜单,是附属关系。
班级信息中的退出只是返回到上一级菜单,而主函数中的退出是退出程序。
(3)科目管理子菜单:
此部分是班级菜单中的子菜单,其各部分的功能与班级管理信息菜单功能相似,其中包括:
增加科目、显示所有科目、删除科目、退出等选项。
其关系如下图:
1.3各项功能的需求标准
一、有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。
二、有严密正确的数据验证功能和数据处理功能,可根据需要增加教师信息,不会有空间的浪费,并能按编号进行查找和删除教师信息,删除后将空间释放。
三、系统要有一定的可靠性。
第二章课程设计环境与原理
2.1设计环境与模块的划分
2.1.1软件设计环境
MicrosoftVisualC++6.0
2.1.2软件模块的划分
该软件主要组成模块和各个模块之间的调用关系如下图:
2.2.3主要流程图
一、从表尾增加教师信息
二、删除教师信息
三、查找教师信息
四、显示教师信息
第三章软件的设计过程
3.1各软件模块之间的调用方式
程序中各个模块之间的调用方式主要是通过文件的包含和函数的调用实现的,用文件的形式把各个函数分开,再用头文件把它们包含进来,使用主函数进行调用。
3.2软件中实现各项功能的函数与程序代码
主函数:
#include"
School.h"
voidmain()
{
cout<
<
"
*********************************"
endl;
*欢迎进入教师管理系统*"
********************************"
while(sel)
{
\n请选择你的操作:
1.增加教师"
2.查找教师"
3.显示所有教师信息"
4.删除教师"
5.保存"
6.载入"
0.退出"
请选择要执行的操作(0-6):
;
cin>
>
sel;
//判断输入,0退出
if(sel>
=0&
&
sel<
=6)
switch(sel)
case1:
请输入教师工号:
Pno;
请输入教师姓名:
Pname;
cout<
请输入性别:
cin>
Psex;
请输入年龄:
Pold;
请输入职称:
Pwork;
请输入工资:
Pmoney;
请输入工龄:
Poldd;
请输入联系方式:
Pcall;
请输入住址:
Paddres;
shiyou.AddDept(Pno,Pname,Psex,Pold,Pwork,Pmoney,Poldd,Pcall,Paddres);
break;
case2:
Department*find;
find=shiyou.FindDept(Pno);
if(find!
=NULL)
教师工号:
find->
Pno<
教师姓名:
Pname<
endl<
1.进入此系"
其他数返回上级菜单"
intdepsel;
depsel;
if(depsel==1)
//系里菜单
shiyou.DepMenu(find);
}
else
case3:
所有教师信息为:
shiyou.DispAll();
case4:
\t请输入教师工号:
shiyou.DeleteDept(Pno);
case5:
shiyou.save();
case6:
shiyou.load();
case0:
输入错误!
请重新输入!
}}}
一、一个包含教师基本信息的类:
#if!
defined(AFX_SCHOOL_H_7D278A4A_44F9_45A2_B3D6_35306E25BEFE_INCLUDED_)
#defineAFX_SCHOOL_H_7D278A4A_44F9_45A2_B6D6_35306E25BEFE_INCLUDED_
#if_MSC_VER>
1000
#pragmaonce
#endif//_MSC_VER>
#include"
Department.h"
classSchool
public:
voidDepMenu(Department*depType);
voidDispAll();
Department*root;
intDeptCount;
School();
virtual~School();
boolAddDept(char*pno,char*pname,char*psex,char*pold,char*pwork,char*pmoney,char*poldd,char*pcall,char*paddres);
boolDeleteDept(char*no);
Department*FindDept(char*no);
voidsave();
//将班级记录存入指定文件
voidload();
//从指定文件装载班级记录
};
#endif
二、定义一个班级类
defined(AFX_DEPANTMENT_H_A6895DC1_C3F3_4737_88EC_AE2DA280272E_INCLUDED_)
#defineAFX_DEPANTMENT_H_A6895DC1_C3F3_4737_88EC_AE2DA280272E_INCLUDED_
Class.h"
classDepartment
voidClaMenu(Class*ClaType);
charPname[10];
charPno[5];
charPsex[5];
charPold[4];
charPwork[6];
charPmoney[10];
charPoldd[10];
charPaddres[50];
charPcall[20];
intClaCount;
Department*next;
Class*Cla;
Department();
Department(char*Pno1,char*Pname1,char*Psex1,char*Pold1,char*Pwork1,char*Pmoney1,char*Poldd1,char*Pcall1,char*Paddres1)
next=NULL;
Cla=NULL;
ClaCount=0;
strcpy(Pno,Pno1);
strcpy(Pname,Pname1);
strcpy(Psex,Psex1);
strcpy(Pold,Pold1);
strcpy(Pwork,Pwork1);
strcpy(Pmoney,Pmoney1);
strcpy(Poldd,Poldd1);
strcpy(Pcall,Pcall1);
strcpy(Paddres,Paddres1);
virtual~Department();
boolAddClass(char*cno,char*cname,char*pno);
boolDeleteClass(char*no);
Class*FindsClass(char*no);
friendostream&
operator<
(ostream&
oc,Department&
obj);
friendistream&
operator>
(istream&
ic,Department&
第四章设计结果与分析
4.1软件使用结果
在此,我们将把软件使用过程写出,并对此程序的一些细节的具体的操作方法加以说明,说明如下:
1..进入程序菜单,界面如下:
2.增加教师信息
3.根据教师编号查找教师信息
4.班级管理子菜单:
5.科目管理子菜单:
总结
经过了一周的课程设计,我感到编程并不是那么困难和枯燥,我对C++语言编程又重新有了浓厚的兴趣。
我经过这次编程,对程序的结构有了更加深科的认识,回忆起并熟悉掌握了C++语言的一些基础而重要的知识,对程序的调试能力也有了进一步的提高。
本次我圆满的完成了程序的编写与调试,所编写的程序能够顺利运行,并能够解决一些实际问题,我感到非常高兴和欣慰,对自己也充满了信心。
关于这次课程设计中,我们设计了一个对教师信息进行管理的系统,它基本满足了界面友好,易于操作的要求,因此更利于用户操作方便,运行简易,从而达到对教师信息更加有效的系统管理。
在此次设计中我们实现了根据用户的需求对教师信息的增加、查找和删除功能,采用C++所具有的优点,合理利用了空间。
但软件仍存在一些不足,比如可视化效果有点逊色,很多重要的功能都没有涉及到,存储数据的文件不能选择性的保存到其他的地方等。
通过这段时间不断对C++这门语言的学习和探索,我们发现理论和实践要充分地结合,是需要扎实的基本功的,这就表明学好基础知识是理论付诸实践的前提。
在设计中我们锻炼了自己同时也学到了很多,希望在以后我们能充分利用上机的时间充实自己,并希望这样的机会能被更好更多地提供。