面向对象程序设计-课程设计.pdf

上传人:奔*** 文档编号:88180091 上传时间:2023-04-24 格式:PDF 页数:37 大小:3.27MB
返回 下载 相关 举报
面向对象程序设计-课程设计.pdf_第1页
第1页 / 共37页
面向对象程序设计-课程设计.pdf_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《面向对象程序设计-课程设计.pdf》由会员分享,可在线阅读,更多相关《面向对象程序设计-课程设计.pdf(37页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数 学 与 计 算 机 学 院课 程 设 计 说 明 书课 程 名 称:面向对象程序设计-课程设计课 程 代 码:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _题 目:人事管理系统_ _ _ _ _ _ _ _ _ _ _ _ _ _年级/专业/班:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _学 生 姓 名:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _学 号:_ _ _ _ _

2、 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _开 始 时 间:2007 年 7 月 2 日完 成 时 间:2007 年 7 月 13 日课程设计成绩:指导教师签名:年 月 日学习态度及平时 成 绩(30)技术水平与实际能 力(20)创 新(5)说明书撰写质量(45)总 分(100)人 事 管 理 系 统目 录1弓 I 言.11.1 问题的提出.11.2 国内外研究的现状.11.3 任务与分析.12程序的主要功能.22.1 添加功能.22.2 删除功能.22.3 显示功能.22.4 查找功能.32.5 修改功能.33程序运行平台.44总体设计

3、.55程序类的说明.66详细设计.126.1添加模块.1 26.2显示模块.1 56.3修改模块.1 66.4查找模块.1 86.5删除模块.2 17系统测试.237.1添加功能测试.2 37.2查找功能测试.2 57.3 修改功能测试.2 77.4 删除功能测试.2 98结论.308.1 程序完成的功能.3 08.2 程序存在问题及修改.3 08.3 收获.3 1致 谢.32参考文献.33人 事 管 理 系 统摘 要分析了人事管理系统的功能需求,进行了总体设计和详细设计,在此基础上利用VC+6.0开发完成了人事管理系统,并对该系统进行了测试。该系统具有人员信息的添加、修改、删除和查找等功能,

4、并且有着友好的图形界面,能够方便地进行人员的分类管理。关键词:人事管理;添加;修改;删除人 事 管 理 系 统1引 言1.1 问题的提出在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这个人事管理系统。1.2 国内外研究的现状人事管理系统的发展历史可以追溯到2 0世 纪6 0年代末期。第二代的人事管理系统出现于2 0世 纪7 0年代末人事管理系统的革命性变革出现在2 0世 纪9 0年代末。由于市场竞争的需要,如何吸引和留住人才,激发人事的创造性、工作责

5、任感和工作热情已成为关系企业兴衰的重要因素,人才已经成为企业最重要的资产之一。”公正、公平、合理”的企业管理理念和企业管理水平的提高,使社会对人事管理系统有了更高的需求;同时由于个人电脑的普及,数据库技术、客户/服务器技术,特 别 是I n t e r n e t/I n t r a n e t技术的发展,使得第三代人事管理系统的出现成为必然。第三代人事管理系统的特点是从人事管理的角度出发,用集中的数据库将儿乎所有与人事相关的数据(如薪资福利、招聘、个人职业生涯的设计、培训、职位管理、绩效管理、岗位描述、个人信息和历史资料)统一管理起来,形成了集成的信息源。友好的用户界面,强有力的报表生成工具

6、、分析工具和信息的共享使得人事管理人员得以摆脱繁重的日常工作,集中精力从战略的角度来考虑企业人事规划和政策。1.3任务与分析本课题主要的目的是建立一个学生教师的基本信息管理系统,系统要能够存贮和显示人员信息并对人员信息有一般的操纵功能,包括添加、删除、修改和查找。每一类人员,如学生、研究生、教师,它们应该按类别的不同分别存在各自的文件中,这样便于分类管理,也便于对文件的读写操作。每一类人都对应一个对该类人员信息进行操作的对话框,每一类人对应的对话框都具有对该类人员的添加、删除、修改和查找的功能。如学生对话框就能够完成对学生的添加、删除、修改和查找。这样既便于管理操作又便于程序实现。-1-人 事

7、 管 理 系 统2程序的主要功能本系统的主要功能都集成在了一个对话框上,以学生类为例,如 图2.1所示:图2.1程序界面2.1添加功能添加一个人员的基本信息,包括姓名,编号,身份证号码,生日,性别。不同职务的人不要添加其一些和职务有关的信息。如:学生在添加完基本信息后,还要添加其班号。如果是老师就应在基本信息基础上再增加工作部门和职位信息。大体操作如图2.1所示。2.2删除功能一次能够删除一个人员的所有信息。首先可以应用系统的查找功能找到要删除的人员信息,点击删除按钮,然后点击确定按钮即可,如 图2.1所示。2.3显示功能当打开一个人员信息文件,或是对人员信息完成了添加、删除和修改功能后,在点

8、击了确定按钮后,能够在视图上显示每个人员的详细信息,如图2.2所示。人 事 管 理 系 统三 二_ 6-peopleJT向冈文件()()查看W)录入记录就S蹩编号名字身份证号性用生日班号1001刘备511304178505015552男1785.5.141002关羽511304178612147778男1786.12.14 5图2.2 显示功能2.4查找功能根据你键入的编号或名字或编号和名字查找。如果要查找的人员是存在的,系统能显示该人员的详细信息,如图2.1 所示。2.5修改功能可以先查找到要修改的人员的信息,修改后点修改按钮即可完成修改,如图2.1 所示。人 事 管 理 系 统3 程序运行

9、平台程序运行平台是V C+6.0。具体操作如下:在p e o p le工程中找到p e o p le,d sw文件打开。点击编译,然后运行即可。或 有p e o p le工程中的D e b ug下直接运行p e o p le.e x e-4-人 事 管 理 系 统4 总体设计图4.1程序总框架图人 事 管 理 系 统5 程序类的说明各类的关系如图5.1:图5.1 各个类的关系图各个类的声明如下:C B ir thd a y 类主要是用来表示人员的出生日期,其声明如下:C B ir thd a y 类的声明c la ss C B ir thd a y(p ub lic:C B ir thd a

10、y ();vir tua l C B ir thd a y。;C S tr in g m_ y e a r;年C S tr in g m_ mo n th;月C S tr in g m_ d a y;日);C P e o p le 类作为各个人员类的虚基类,里面封装了最基本的人员信息和一些函数接-6-人 事 管 理 系 统,其声明如下:C P e o p le类的声明c la ss C p e o p lep ub lic:C p e o p le ();C p e o p le(C p e o p le f e p e o p le);vir tua l C p e o p le。;vir

11、tua lB O O L o p e r a to r=(C p e o p le p e o p le);vir tua l vo id o p e r a to r=(C p e o p le p e o p le);vir tua l vo id S e r ia lize(C A r c hive&a r);vir tua l vo id O n D r a w(C D C*p D C ,in t to p);重载二号重载二号文件读写函数绘图函数C S tr in g m_ n a me;C S tr in g m_ n umb e r;C S tr in g m s ex;C S t

12、r in g m_ id;C B ir thd a y m_ b ir th;名字编号姓别身份证号出生日期);C S tud e n t类从C P e o p le类派生,主要完成学生信息的读写和绘制,其声明如下:C S tud e n t类的声明c la ss C S tud e n t:vir tua l p ub lic C p e o p le C P e o p le 作为虚基类p ub lic:C S tud e n t();C S tud e n t(C S tud e n t&stud e n t);vir tua l C S tud e n t();vo id o p e r

13、 a to r=(C S tud e n t stud e n t);重载二号vo id S e r ia lize(C A r c hive&a r);重载基类读写文件函数-7-人 事 管 理 系 统void OnDraw(CDC*pDC,int top);重载基类绘图函数BOOL operator=(CStudent student);重载二号CString m_classnumber;班号);CGraduate类 从 CStudent类派生,主要完成研究生信息的读写和绘制,其声明如下:CGraduate 类声明class CGraduate:virtual public CStudent

14、 CStudent 作为虚基类public:CGraduate();CGraduate(CGraduate&graduate);virtual CGraduate0;void operator=(CGraduate graduate);重载二号BOOL operator=(CGraduate graduate);重载二二号void Serialize(CArchive&ar);重载基类读写文件函数void OnDraw(CDC*pDC,int top);重载基类绘图函数CString m_zuanye;专业CTeacher m_teacher;导师;CTeacher类从CPeople类派生,主

15、要完成教师信息的读写和绘制,其声明如下:CTeacher类声明class CTeacher:virtual public Cpeople CPeople 作为虚基类public:CTeacher();CTeacher(CTeacher&teacher);virtual CTeacher();-8-人 事 管 理 系 统vo id o p e r a to r=(C T e a c he r te a c he r);重载二号B O O L o p e r a to r=(C T e a c he r te a c he r);重载二 二 号vo id S e r ia lize(C A r c

16、 hive&a r);重载基类读写文件函数vo id O n D r a w(C D C*p D C,in t to p);重载基类绘图函数C S tr in g m_ p o sitio n;职务C S tr in g m_ d e p a r tme n t;部门);C A sista n tT e a c he r 类从C G r a d ua te 类和C T e a c he r 类派生,主要完成学生信息的读写和绘制,其声明如下:C A s i sta n tT e a c he r 类声明c la ss C A sista n tT e a c he r:p ub lic C G

17、r a d ua te,p ub lic C T e a c he rp ub lic:C A sista n tT e a c he r();C A sista n tT e a c he r(C A sista n tT e a c he r&a sista n t);vir tua l C A sista n tT e a c he r();vo id o p e r a to r=(C A sista n tT e a c he r a sista n t);重载二号B O O L o p e r a to r=(C A sista n tT e a c he r a sista n

18、t);重载二 二 号vo id S e r ia lize(C A r c hive f t a r);重载基类读写文件函数vo id O n D r a w(C D C*p D C,in t to p);重载基类绘图函数;由于对话框类都是完成相同的功能,所以它们有相同的处理函数,只是关联的变量个数不同,现以C S tud e n t类为例说明:C stud e n tD ilo g 类声明c la ss C stud e n tD ilo g :p ub lic C D ia lo g/C o n str uc tio np ub lic:-9-人 事 管 理 系 统C stud e n t

19、D ilo g(C W n d*p P a r e n t=N U L L);/sta n d a r d c o n str uc to rC S tud e n t stud e n ts M A X _ S I Z E ;存入学生信息的对象数组C S tud e n t*g e tS tud e n t();返回学生对象数组指针v o i d st u d e n t Se a r c h(i n t k);将选择的学生的的信息恢复到各控件i n t n C o u n t;记录学生人数i n t k;选中的列表索引号/D i a l o g D a t a/A F X_D A TA(C

20、 st u d e n t D i l o g)e n u m I D D =I D D _STUD NT ;i n t m _st u d e n t b o y;姓别C St r i n g m _st u d e n t c l a sn u m;班号C St r i n g m st u d e n t d a y;日C St r i n g m _st u d e n t i d;身份证号C St r i n g m _st u d e n t m o n t h;/月C St r i n g m _st u d e n t n a m e;名字C St r i n g m _st

21、u d e n t y e a r;年C St r i n g m st u d e n t n u m b e r;编号C St r i n g m _se a r c hn a n i e;查找的名字C St r i n g m _se a r c hn u m b e r;查找的编号/A F X_D A TA/Ov e r r i d e s/C l a ssWi z a r d g e n e r a t e d v i r t u a l f u n c t i o n o v e r r i d e s/A F X_VI RTUA L(C st u d e n t D i l o

22、g)p r o t e c t e d:v i r t u a l v o i d D o D a t a E x c ha n g e(C D a t a E x c ha n g e*p D X);/D D X/D D V su p p o r t/A F X_VI RTUA L/I m p l e m e n t a t i o np r o t e c t e d:-10-人 事 管 理 系 统/G e n e r a t e d m e ssa g e m a p f u n c t i o n s/A F X_MSG(C st u d e n t D i l o g)a f x _

23、m sg v o i d On A d d();添加消息处理函数a f x _m sg v o i d On Se l c ha n g e St u d e n t l i st ();列表发生鼠标事件处理函数v i r t u a l B OOL On l n i t D i a l o g O;初始化对话框a f x _m sg v o i d On St u d e n t d e l ();删除消息处理函数a f x _m sg v o i d On St u d e n t m o d O;修改消息处理函数a f x _m sg v o i d On Se a r c hO;查找消

24、息处理函数/A F X_MSGD E C L A RE _ME SSA G E _MA P());-11-人 事 管 理 系 统6详细设计6.1添加模块当点击添加按钮,系统会将填好的信息加入事先已声明好的对象数组中,当点击了确定按钮后,返回对象数组的函数会将数组中的值赋给文档类中一个相同的对象数组以便将数据写入文件保存。以学生类为例:当点击添加按钮后:程序流程如图6.1所示:图6.1添加流程图函数实现如下:v o i d C st u d e n t D i l o g:0n A d d()/TOD O:A d d y o u r c o n t r o l n o t i f i c a t

25、 i o n ha n d l e r c o d e he r eUp d a t e D a t a O;将控件的值刷新到变量以下是将各控件值赋给相应的对象的属性st u d e n t s n C o u n t .m _n a m e=m _st u d e n t n a m e;st u d e n t s n C o u n t .m _n u m b e r:zm _st u d e n t n u m b e r;-12-人 事 管 理 系 统st u d e n t s n C o u n t .m b i r t h,m y e a r=m _st u d e n t y

26、 e a r;st u d e n t s n C o u n t .m b i r t h,m m o n t h=m st u d e n t m o n t h;st u d e n t s n C o u n t .m _b i r t h.m _d a y=m _st u d e n t d a y;st u d e n t s n C o u n t .m _c l a ssn u m b e r=m _st u d e n t c l a sn u m;st u d e n t s n C o u n t .m i d=m _st u d e n t i d;i f(m _st

27、u d e n t b o y=0)st u d e n t s n C o u n t .m _se x=男;e l se i f(m _st u d e n t b o y=l)st u d e n t s n C o u n t .m _se x=女;n C o u n t+;/学生数加(C L i st B o x*)G e t D l g l t e m(I D C STUD E NTL I ST)-A d d St r i n g(m st u d e n t n u m b e r);在编号列表中增加编号点击后控件置为空m _st u d e n t n a m e=m _st

28、u d e n t n u m b e r=m st u d e n t y e a r=m _st u d e n t c l a sn u m=n i _st u d e n t i d=;m _st u d e n t b o y=-l;(C C o m b o B o x*)G e t D l g l t e m(I D C _st u d e n t d a y)-Se t C u r Se l(-1);(C C o m b o B o x*)G e t D l g l t e m(I D C _st u d e n t m o n t h)-Se t C u r Se l(-1);

29、Up d a t e D a t a(F A L SE);将变量的值刷新到捽件当点击确定按钮后:v o i d C Pe o p l e D o c:On St u d e n t()-13-人 事 管 理 系 统/TOD O:A d d y o u r c o m m a n d ha n d l e r c o d e he r eC st u d e n t D i l o g st u d e n t;i f (p e o p l e 0 =&sst u d e n t 0)当 p e o p l e 中是存放和学生对像时f o r(i n t j=0;j n C o u n t;j+

30、)(st u d e n t.g e t St u d e n t ()j =sst u d e n t j ;将从文件读出的学生对象赋给学生对话框中的学生数组)st u d e n t.n C o u n t=n C o u n t;将学生数目赋给学生对话框中记录学生个数的变量i f (I D 0K=st u d e n t.D o Mo d a l ()&.(st u d e n t.g e t St u d e n t ()0.m _n u m b e r !=)/如果点击了确定按钮且如果没有新成员,就不更新当前视图(f o r(i n t i=0;i Te x t Ou t(10,30

31、+t o p,m n u m b e r);p D C-Te x t Ou t(130,30+t o p,m _n a m e);p D C-Te x t Ou t(240,30+t o p,m _i d);p D C-Te x t Ou t(420,30+t o p,m _se x);p D C-Te x t Ou t(470,30+t o p,b i r t h);p D C-Te x t Ou t(550,30+t o p,m c l a ssn u m b e r);)6.3修改模块先找出要修改的人,修改后点击修改按钮,这时系统会在编号列表的原位置对原编号进行修改,同时会用修改后的信息

32、覆盖数组中对应位置的原信息,以达到修改的目的。以学生类为例:程序流程图如图6.4所示:-16-图6.4修改流程图修改函数实现如下:v o i d Cstud e n tDi l o g:On Stud e n tm o d()/TODO:Ad d y o ur c o n tro l n o ti f i c a ti o n h a n d l e r c o d e h e rei f (n Co un t!=0)要有信息才能进行修改(Upd a te Da ta O;将捽件的值刷新到变量以下是将各捽件值赋给相应的对象的属性stud e n ts k.m n a m e=m _stud e

33、 n tn a m e;stud e n ts Ek.m _n um b e r=m _stud e n tn um b e r;stud e n ts Ek.m _b i rth.m _y e a r=m _stud e n ty e a r;stud e n ts k.m b i rth.m _m o n th=m stud e n tm o n th;stud e n ts k.m b i rth.m _d a y=m _stud e n td a y;stud e n ts k.m _c l a ssn um b e r=m _stud e n tc l a sn um;stud e

34、n ts k.m _i d=m _stud e n ti d;i f(m _stud e n tb o y=0)-17-人 事 管 理 系 统students k.m_sex=男;else if(m_studentboy=l)students k.m_sex二 女 ;点击后控件置为空m_studentname=m_studentnumber=m_studentyear=m_studentclasnum=m_studentid二 ;m_studentboy=-l;(CComboBox*)GetDlgltem(IDC_studentday)-SetCurSel(-1);(CComboBox*)Ge

35、tDlgItem(IDC_studentmonth)-SetCurSel(-1);(CListBox*)GetDlgltem(IDC STUDENTLIST)-InsertString(k,studentsk.m number);更新列表(CListBox*)GetDlgltem(IDC_STUDENTLIST)-DeleteString(k+l);UpdateData(FALSE);/将变量的值刷新到控件)6.4查找模块本系统可以根据编号或名字或名字与编号查找,如果找到就会在编号列表中选中该人员的号,并在各控件中显示相应的值。如果找不找就给出提示。仍以学生类为例:程序流程图如图6.5 所示:

36、-18-人 事 管 理 系 统输入要查找的人员编号或名字图6.5查找流程图查找程序实现如下:void CstudentDilog:OnSearch()(/TODO:Add your control notification handler code hereint tishi=O;-19-人 事 管 理 系 统UpdateData();CString number=m_searchnumber;CString name=m_searchname;if(name!=&number!=)/按名字和编号查找for(int i=0;iSelectString(l,number);在列表中选中找到的编号

37、k=(CListBox*)GetDlgItem(IDC_STUDENTLIST)-GetCurSel();studentSearch(k);将数据恢复到各控件tishi=l;)else if(name=,n&number!=)for(int i=0;iSelectString(-l,number);k=(CListBox*)GetDlgItem(IDC_STUDENTLIST)-GetCurSel();studentSearch(k);tishi=l;-20-人 事 管 理 系 统else if(name!=n&number=,M,)for(int i=0;iSelectString(-1,s

38、tudents i.m_number);k=(CListBox*)GetDlgItem(IDC_STUDENTLIST)-GetCurSel();studentSearch(k);tishi=l;if(tishi=O)如果没找到就弹出提示对话框MessageBox(对不起!没有你要查找的人,查找,0);)6.5 删除模块首先在编号列表中找到要删除成员的编号或查找到要删除的成员。然后点击删除按钮,系统会在编号列表中移出要删除成员的编号,并在存贮信息的对象数组中删除该成员的信息。然后将各控件置空。以学生类为例:程序流程图如图6.6 所示:-21-图6.6删除流程图删除程序实现如下:void Cst

39、udentDilog:OnStudentdel()/TODO:Add your control notification handler code hereif(nCount!=0)要有成员才能执行删除操作(CListBox*)GetDlgItem(IDC_STUDENTLIST)-DeleteString(k);从编号歹 U 表中移出先中的成员的编号for(int i=k;iSetCurSel(-l);(CComboBox*)GetDlgItem(IDC_studentmonth)-SetCurSel(-1);UpdateData(FALSE);将变量值刷新到控件-22-人 事 管 理 系

40、统7系统测试首先进入VC+6.0,打开工程pe o pl e.d sw,然后进入源程序编译运行即可,也可以不打开工程,直接双击pe o pl e 文件夹下的d e b ug 子文件夹下的pe o pl e.e x e 文件即可运行程序。程序源文件见刻录光盘。7.1添加功能测试1.在各个控件中输入相应的数据如图7.1所示:X姓 名 网 备 添加身份证号 4146543213编号 j而出 删除班 号 向出生日期 修改年|1978二 月|3勺 日 联 三 明/E查询姓 名I编 号 一编号列表女哨图7.1输入信息2 .输入的身份证号码位数不正确提示出错,如图7.2 所示:-23-姓名添加身份证号编号班

41、号出生日期4146543213Tool-45年|而 F月|3 3日图7.2 身份证号码出错提示3.输入的编号不能为空,否则提示出错,如图7.3 所示:姓 名 网 有 身份证号|4146543213-24-人 事 管 理 系 统图7.3编号为空提示4.添加成功会在编号列表中显示加入成员编号,如图7.4所示:图7.4添加成功7.2查找功能测试1.可以按名字查找,按编号查找或按名字和编号查找,如图7.5所示:-25-人 事 管 理 系 统区I添加删除修改确定图7.5 查找功能2.如果没有要查找的人员,则给出提示,如图7.6 所示:学生查询姓名网备编 号|1001查找 I编号列表10011002|xl

42、-26-人 事 管 理 系 统图7.6查找失败3.如果查找成功,则在编号列表中选中该成员,并在各控件中显示详细信息,如图7.7所示:图7.7查找成功7.3修改功能测试1.查找到要修改的人员,进行修改,修改后如果身份证号的位数不够,提示出错,如图7.8所不:-27-人 事 管 理 系 统姓 名|W-身份证号 511304178501555编号 1001班号 P出生日期编号列表10011002年|1785二|月|53日图7.8修改后身份证号码出错2.修改后编号为空时,提示出错,如图7.9所示:学生X-28-人 事 管 理 系 统图7.9修改后编号出错7.4删除功能测试查找到要删除成员,点击删除按钮

43、,再点击确定按钮将会看见要删除的成员已经删除了,如 图7.11所示:编号 名字 身份证号 性别 生日 班号1002 关羽 511304178612147778 男 1786.12.14 5图7.11删除功能其它儿个类的对话框的界面与此相同。该系统完成了添加、删除、查找和修改功能,方便对人员信息进行分类管理,并能完成简单的出错处理。-29-人 事 管 理 系 统8结论8.1程序完成的功能利 用 VC+6.0开发完成了该人事管理系统,该系统操作简单,能完成以下功能:1)添加人员信息;2)通过名字或编号或名字与编号查找人员信息;3)修改人员信息。4)删除人员信息。8.2程序存在问题及修改制作本系统当

44、然也遇到了不少问题,在完成了界面与各个类的编写后,进行调试,以学生类为例因为各类人员的操作相同,只完成一类人员的操作,其他的就很容易了:1)确定各个信息都是输入的情况下,但是显示出来的却只有一-部分信息,如编号和名字都没有了,为什么会这样呢,对它的执行过程作了儿次检查,发现执行的步骤是没有问题的,但信息丢失是存在的,再仔细检查每一步的执行情况,唯一可能出错的一个地方就是赋值操作,即将一个对象的值赋给另一个同类的对象,可能的重载的=号出了错,找到学生类重载的=号,发现里面,少了编号与名字的赋值,经过修改,这个问题得以解决。2)在读取文件时又出现了问题,就是程序是以对象读写的,那么在读文件时程序怎

45、么知道即将读出的是哪类对象,又怎么知道要读多少个对象?如果把对象的类型和个数事先写入文件,在读人员信息前将对象类型和个数读出来,再判断该以哪个类的读文件的函数来读就可以了,所以程序中会增加一个计算对象的个数的变量就是这个原因。当把程序这样改正,发现这样是行得通的。3)读写文件的问题解决了,但是把文件打开以后问题又来了,就是当我先打开存放学生信息的一个文件,再打开一个存放助教的文件,这时我乂打开学生对话框,发现里面居然还有值,照理说,当我打开了另一个文件,前一个文件已经关闭,那么它对应的对话框中不应有值。原来是在读出文件时,将数据读入了相应的对象数组,再将这个对象数组的值赋给虚基类的一个数组,在

46、不关闭程序的情况下,该类对象数组是不会消-30-人 事 管 理 系 统失的。然而在打开学生对话框时,就将该数组的值传给了对话框。于是,当出现这样的操作就出现了以上情况。问题的解决办法是,在打开该类的对话框时,先判断虚基类的数组中是否是存放的该类型的对象,如果是才会将数据传给对话框。8.3收获在完成本系统的编写后,感到真是收获不小,这是在学了 C+语言和M F C后完成的第一个自认为比较大的一个程序。让我对C+语言有了更深的印象,相信自己也因此掌握得更好了,我觉得最大的收获还是,通过这个程序,我知道了 w i n d o w s程序与命令行下程序的不同运行方式,它不要在编写程序时,规定程序运行的

47、各个步骤,它是靠事件来驱动程序的。-31-人 事 管 理 系 统致 谢能够顺利完成本次课程设计,首先要感谢指导老师谭平老师,在她细心的指导下,耐心的讲解下帮助我克服一个个难题。帮我指出程序的不足之处,使程序的设计更加完善。也要感谢室友给我的帮助,他们也有对我的程序提出宝贵的意见和建议。-32-人 事 管 理 系 统参考文献1李强,贾云霞编著.Visual C+项目开发实践.北京:中国铁道出版社,20032郑莉,董渊,张 瑞 丰 编 著.C+语言程序设计(第三版).北京:清华大学出版社,20063孙 鑫 主 讲.Visual C+程序设计视频教程.网址:http:,cn/pcedu/empolder/gj/vc/0607/820674.html4陈清华朱红编著.Visual C+课程设计案例精选与编程指导.南京:东南大学出版社,2003.065刘振安等 编著.C+程序设计课程设计.机械工业出版社,2004.08,北京-33-人 事 管 理 系 统-34-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁