面向对象程序设计实习报告

上传人:wuy****ng 文档编号:155866922 上传时间:2022-09-24 格式:DOC 页数:20 大小:62.01KB
收藏 版权申诉 举报 下载
面向对象程序设计实习报告_第1页
第1页 / 共20页
面向对象程序设计实习报告_第2页
第2页 / 共20页
面向对象程序设计实习报告_第3页
第3页 / 共20页
资源描述:

《面向对象程序设计实习报告》由会员分享,可在线阅读,更多相关《面向对象程序设计实习报告(20页珍藏版)》请在装配图网上搜索。

1、生活需要游戏,但不能游戏人生;生活需要歌舞,但不需醉生梦死;生活需要艺术,但不能投机取巧;生活需要勇气,但不能鲁莽蛮干;生活需要重复,但不能重蹈覆辙。 -无名 面向对象程序设计报告 课题: 面向对象程序设计 专业: 通信工程 班级: 姓名: 学号: 指导老师: 设计时间:2010/2011(2)学期第03-04周目录1. 实践课题 32. 实践要求 33. 设计目的 34. 实践内容 44.1必做课题:大学人员类的设计的功能描述以及模块结构4 功能模块描述及主要类描述44.1.2程序代码 7使用说明和调试结果16 必做题小结184.2选作课题:基于RFID设备的隧道工作人员考勤系统 18选做题

2、任务分析18 液晶屏功能实现 20 选做题小结 205.心得体会 216.参考文献 21一实践课题:面向对象程序设计二实践要求:2.1.必做课题 大学人员类的设计(3月7-8日)基类,person类,相关的属性自己定义派生类,student类,teacher类,相关的属性自己定义Student类和teacher类的属性不相同,利用多态性编辑show函数,可以输出同类正确的信息。编辑界面,功能有(1)输入人员(2)删除人员(3)保存人员(4)查询人员2.2选作课题 (二者必选一,六人一大组,三人一小组,每个同学 必须作不同的功能模块,要求选出组长,分配任务,)(3月9-18日)2.2.1. 基于

3、RFID设备的隧道工作人员考勤系统(1)与必做课题结合,将每个卡与人员姓名,工种绑定,进入即可显示人员的相关信息。两台RFID读卡器,从1-2表示进入隧道,从2-1表示退出隧道,据此,统计当前隧道里面的人员总数与姓名。2.2.2 基于RFID设备的隧道工作人员考勤系统(2)(1)自学MFC,设计基于MFC设计隧道工作人员考勤系统,具有增、删、改、查询的功能(2)结合小组1同学做的实时考勤系统,设计基于MFC的隧道工作人员考勤系统三实践目的:通过本次课程设计,使我们在掌握C+程序设计的基本思想、基本概念和基本方法上,能运用所学的知识对一般问题进行分析和程序设计,把C+程序设计语言作为基本工具使用

4、,为今后在专业课程的学习中,使用计算机解决实际问题打好基础。同时,将理论知识与实践相结合,更加深入的应用C+的知识,也了解和学习MFC的界面开发和界面设计。让我们学会创新,能够自主学习新的知识,提高我们的自学能力,也考验我们做事的耐心。四实践内容:4.1必做课题:大学人员类的设计的功能描述以及模块结构4.1.1功能模块描述及主要类描述 模块一:输入人员函数void inter() / 输入函数 loop:int intput;cout请您选择所要注册的类型n按“1”为普通人员n按“2”为学生n按“3”为教师nintput;switch(intput)case 1:intputperson(in

5、tputtime);intputtime+;break; case 2:intstudent(intputtime);intputtime+;break;case 3:intteacher(intputtime);intputtime+;break;default: cout抱歉,您输入错误,请重新输入endl;goto loop;break;输入添加指定的人员;模块二:查找人员函数 void finder()point1:int run,fin;char c;fin=0;cout请您输入要操作的名字nm;for(run=0;runname) cout恭喜您查找成功!nshow();fin=1

6、;break;location=run;if(fin=0)cout抱歉,没有找到该信息nendl; fin=0;cout您想继续查询吗?(y/n)c;if(c=Y|c=y)goto point1;查找指定的基本信息;模块三:保存人员信息函数void saver()/学生信息保存system(cls);ofstream file;file.open(D:信息保存.txt,ios:out);coutnnnnnnttt正在保存,请稍等 endl;system(cls);coutnnnntt数据保存保存成功!nnendl;for(int i=0;ishow();file.close();system(

7、pause);保存指定的信息;模块四:删除人员函数void deletemember() char a; location=0; finder(); cout是否删除该数据(Y/N)a; if(a=Y|a=y) for(;locationintputtime;location+) findlocation=findlocation+1; cout删除成功endl; intputtime-; 删除指定的基本信息。模块五:显示函数show(),定义为虚函数实现函数的多态,使在不同类中能够根据变量的多少选择合适的show()函数。virtual void show(); void person:sh

8、ow() cout姓名:namen年龄agen性别:genderendl; if(registered=1)void student:show()person:show();cout学号:numendl;void teacher:show()person:show();cout教师职称:positionendl;本大学人员类的设计采用了面向对象的程序设计方法。所有的方法均以类为基础。所涉及到的类包括:class Person 普通人员类;该类是一个基类,设置了属于私有成员的年龄,以及公有成员gender和name,可以给学生和老师类继承。且分别定义了ID()、get_name()、get_ag

9、e()和get_gender()函数。Class student 学生类;该类多态继承了普通人员类,加入了成员变量num及成员函数get_num()。 Class teacher 教师类;该类同样多态继承了普通人员类。该类定义了与学生类一样的函数,有着同样的功能。加入了成员变量position及成员函数get_position()。 程序代码#include#include #includeusing namespace std;int intputtime=0; / 输入的次数int registered=0; / 区别注册与查找int location=0; / 确定当前位置class p

10、ersonprivate: int age;public:string gender;/ 1为男 0为女string name;virtual int ID(); void get_name(); void get_age();void get_gender();virtual void show(); ;int person:ID()return 0;void person:get_name()string n; cout请您输入姓名n; name=n;void person:get_age() int a; cout请您输入年龄a; age=a;void person:get_gender

11、() string g; cout请您输入性别男或者女g; gender=g;void person:show() cout姓名:namen年龄agen性别:genderendl; if(registered=1) cout恭喜您成功完成注册!endl; class student:virtual public person /学生继承public: int ID(); string num; void get_num(); void show(); int student:ID()return 1;void student:get_num()string n;cout请您输入学号n;num=

12、n;void student:show()person:show();cout学号:numendl;class teacher:virtual public personpublic: int ID(); string position; void get_position(); void show();int teacher:ID()return 2;void teacher:get_position()string p;cout请您输入职称p;position=p;void teacher:show()person:show();cout教师职称:positionendl; / 注意此处下

13、面变量要为全局变量person p200; / 学校普通人员变量student s200; /学生变量teacher t200; / 老师变量person *find600;/ 查找用的指针void intputperson(int x) px.get_name(); px.get_age(); px.get_gender(); px.ID(); px.show(); findx=&px; registered=0; / 注册时候显示用的void intstudent(int x)sx.get_name();sx.get_age();sx.get_gender();sx.get_num();s

14、x.ID();sx.show();findx=&sx;registered=0;void intteacher(int x)tx.get_name();tx.get_age();tx.get_gender();tx.get_position();tx.ID();tx.show();findx=&tx;registered=0;void inter() / 输入函数 loop:int intput;cout请您选择所要注册的类型n按“1”为普通人员n按“2”为学生n按“3”为教师nintput;switch(intput)case 1:intputperson(intputtime);intpu

15、ttime+;break; case 2:intstudent(intputtime);intputtime+;break;case 3:intteacher(intputtime);intputtime+;break;default: cout抱歉,您输入错误,请重新输入endl;goto loop;break; void finder()point1:int run,fin;char c;fin=0;cout请您输入要操作的名字nm;for(run=0;runname) cout恭喜您查找成功!nshow();fin=1;break;location=run;if(fin=0)cout抱歉

16、,没有找到该信息nendl; fin=0;cout您想继续查询吗?(y/n)c;if(c=Y|c=y)goto point1;void saver()/学生信息保存system(cls);ofstream file;file.open(D:信息保存.txt,ios:out);coutnnnnnnttt正在保存,请稍等 endl;system(cls);coutnnnntt数据保存保存成功!nnendl;for(int i=0;ishow();file.close();system(pause); void deletemember() char a; location=0; finder();

17、 cout是否删除该数据(Y/N)a; if(a=Y|a=y) for(;locationintputtime;location+) findlocation=findlocation+1; cout删除成功endl; intputtime-; void main()point:int a;char b;cout 福建工程学院通信0801信息管理系统 endl;cout*endl;cout 按1输入人员endl;cout 按2查询人员endl;cout 按3保存成员endl;cout 按4删除成员endl;cout *endl;cout请选择您需要的操作a;switch(a)case 1:in

18、ter();break;case 2:finder();break;case 3:saver();break;case 4:deletemember();break;default :goto point;cout是否继续操作(Y/N)b;if(b=Y|b=y)goto point;elsecout感谢您的使用!_ endl;4.1.3使用说明和调试结果(1)使用说明这是一个关于学生和教师信息管理系统,具有输入、查询、保存、删除的功能,建立了一个含有人员的姓名、性别、年龄、学号、职位等成员的类的变量。可以选择三类人员进行信息的输入,查询、保存和删除操作。调试过程中,可按照有关提示进行相关操作:

19、输入人员信息按“1”键;查询人员信息按“2”键;保存人员信息按“3”键;删除人员信息按“4”键;同时根据提示进行相关的操作。(2)调试结果代码中运用了switch 语句调用各子函数,数字 1、2、3、4等4个数字代表不同的指令。程序运行后调试程序代码后出现的总体界面:按1输入信息后出现如下界面,进行人员信息输入对象的选择:选择3教师类信息输入如图示,有如下功能:信息查询功能 信息保存功能信息保存在:D:信息保存.txt但是此程序中存在一个问题不能符合要求的是:在运行界面关掉后,再次打开运行界面时,不能够查询到前一个界面的信息。 必做题小结对大学人员类的设计,在系统分析和设计的部分花了比较多的时

20、间。模块设计部分因为涉及功能的实现,要从抽象的设计转化成实际的代码,因此对于某项功能的实现方法都思考得比较详尽。由于自己的知识和能力有限,只能在借鉴前人和阅读很多与本系统有相关内容的书籍做参考的基础上,完成此次的系统编写。由于班里有些同学对编程方面很感兴趣和精通,所以我也经常请教他们,做互相交流。同时,在交流的过程中能够互相提出更好的建议。4.2选作课题:基于RFID设备的隧道工作人员考勤系统我们组选择的课题是选作课题(2)即:(1)自学MFC,设计基于MFC设计隧道工作人员考勤系统,具有增、删、改、查询的功能(2)结合小组1同学做的实时考勤系统,设计基于MFC的隧道工作人员考勤系统4.2.1

21、选做题任务分析由于必做题做的是学生管理系统,同样有输入、删除、查询的功能,与其去编写一个新的程序,倒不如顺着之前对管理系统的理解和程序的掌握继续选择做人员管理系统的输入、查询等操作设计。选作题要运用到的是MFC设计界面中的对话框编程。一开始我们对MFC相当的陌生,经过查看相关书籍和请教同学,稍微了解了一些操作。选作课题我们组六个人分为三小组,每个人完成每一小部分,分别有以下三部分:界面;这部分要求完成的是考勤系统的操作界面,包括进入系统,输入所有人员信息的界面,能够查询、删除、修改人员的界面,同时能够自动保存实时处理的数据,以及进行相关功能程序的编写。其中绑定姓名与ID号则是与第二部分所做的内

22、容的一个连接点。ID号即为卡号;RFID接口;完成当读到卡的ID号时能够显示人员姓名等相关的基本信息,这部分要编写显示信息属性的相关程序,且能够将显示的信息保存在固定的文件中;液晶屏显示,将进入隧道人员的姓名及相关信息在LED显示屏上显示出相关信息来。归纳起来对各小组的要求为:界面小组的功能要求:!,密码登陆,2,录入人员(每个人员有唯一的ID号,如学号),删除,查询人员的信息3,将人员与RFID卡绑定4,所有人员可以保存5,可以查询人员的考勤记录 这部分我们基本上完成了知识在人员与RFID卡的绑定上与第二部分衔接不上。RFID小组的功能要求:1 能够获取读卡器发回的ID号2 将ID号与界面小

23、组保存的人员信息比较,找到配对的人名3 将该名人员进行考勤信息保存(人名,ID号,时间)这部分在第二点与界面相连接找到配对绑定的人员上没有完成,对于绑定的人员和ID卡号的实现部分是在第二部分的程序中单独完成的。液晶小组的功能要求(vc调用delphi的dll):1 能正确使液晶显示需要显示的信息2 能够将RFID当前读到的人员名单在液晶上进行显示能够显示所需要的信息,但是正确的信息显示完之后会显示出一连串的未知乱码。4.2.2 液晶屏功能实现我做的是液晶屏显示这一部分的内容,这部分完成的内容相对于前两部分来讲甚是简单,只需要完成老师给的delphi的dll程序代码的理解,然后将文件流与第二部分

24、RFID结合即可。LED屏幕的参数设置程序略。当接入LED显示屏后,将端口参数改成设备管理器的硬件设备端口值,然后运行LedshowTW2011二次开发库()的delphi库程序,此前先将delphi中的dll文件拷贝到Visual C+的工程下(驱动液晶显示器的程序工程下),此步骤即是完成VisualC+对delphi的动态链接库的调用。然后再在delphi的应用程序页面单击“添加屏幕”、“添加节目”、“添加图文区域”、打开要显示信息的目录,我们的程序中信息存储在:C:SUIDAO17kaoqin.txt文件中,将此文件添加到当前图文区域即可。LED过缓冲时间后即可显示kaoqin文件中的信

25、息。由于此部分操作简单,也不需要编写程序,于是实习期间基本上是帮忙做前两部分的同学完成前两部分的内容,其中对界面的编写更为熟悉。其中较为熟练的掌握事件的实现和界面跳转功能的实现等,其中界面跳转功能的实现如下:首先在主要界面的类函数前添加要转界面的类的头文件,在按钮函数中加入代码如删shanchu dlg; dlg.DoModal();这个代码,就可以实现跳转到删除的界面了。由于我们是初学MFC,所以只能在程序编写上较多的参考老师及其他已完成同学的程序及做法,只能做到对考勤系统有有个比较系统地了解,知道它是怎么设计和实现功能的。4.2.3 选做题小结在基于RFID设备的隧道工作人员考勤系统设计方

26、面,通过在网上查找和下载了相关资料,以及老师的讲解和同学的帮助,基本上了解了系统要怎样实现这些功能,同时,通过学习从学校图书馆借的Visual C+的相关书籍,学习界面的设计,也学习一些程序代码,MFC 对于我们来说是新的知识,又由于英语水平差,所以看那些程序代码,以及MSDN,基本上都很难看的懂,所以学起来也相当的吃力。五心得体会: 通过这次面向对象程序设计,我得到了很大的收获。首先,深刻了解到自主学习能力的重要性,因为知识是无限的,老师和同学教给你的东西毕竟是有限的,在这有限之外扩充的东西必须要自己去学,而且是主动,如果被动的等着别人来教你,那么你永远不可能学会任何东西,更别说是一门技术了

27、。在这两周的实习中,我们天天面对的是电脑,有些同学会认真学习,努力钻研,最后学会了很多很多,而另一些同学则是玩游戏、聊天,到最后什么也没有学习到。这次C设计课题,不仅提升了我分析问题和逻辑思考的能力,也让我明白团队合作的重要性,因为一开始我们没有经过讨论,只是各做各的,结果发现每个人的想法都不同,更别说是三部分结合了,后面经过调整,我们才能完成任务。从这次设计学习到的东西,相信会对我们日后的学习工作起到很大的指导作用同时,这次的专周实习也让我深深的陷入了对专业认识及就业方向的思考中,在了解到了自己的无知-之前在学习C+的时候没有认真,敷衍了事,为了应付考试,而到最后什么的都不会。实习过程中我一直在思考的一个问题是:对于学习,是我确实不会呢,还是我不去学?后面我发现,其实更主要的原因是因为我们畏惧新的知识而放弃了主动权和机会。所以,下定决心,要在以后的学习中打好夯实基础,使得自己在将来的就业和工作中有更强的竞争力。六参考文献1 郑莉,C+语言程序设计(第4版),清华大学出版社,2010.72 刘锐宁,Visual C+从入门到精通.第2版,清华大学出版社,20103 李琳娜,Visual C+开发技术大全,清华大学出版社,20104 方可燕,Visual C+ 6.0实战与精通,清华大学出版社,2000

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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