Av-akyyeC--实习报告.docx
我们Il打(败)r敌人。我们Il(把敌人)打败了。面对对象程序设计报告课题:向对对象程序设计专业:通信工程班级:姓名:学号:指导老师:设计时间:2010/2011(2)学期第03-04周书目1 .实践课题32 .实践要求33 .设计目的34 .实践内容44.1 必做课题:高校人员类的设计的功能描述以与模块结构4功能模块描述与主要类描述44.1.2程序代码7运用说明和调试结果16必做题小结184.2 选作课题:基于RFID设备的隧道工作人员考勤系统18选做题任务分析18液晶屏功能实现20选做题小结205 .心得体会216 .叁考文献21一 .实践课题:面对对象程序设计二 .实践要求:1.1 .必做课题高校人员类的设计(3月7-8口)基类,person类,相关的属性自己定义派生类,StUdent类,teacher类,相关的属性自己定义Student类和teacher类的属性不相同,利用多态性编辑ShoW函数,可以输出同类正确的信息.编辑界面,功能有(1)输入人员(2)删除人员(3)保存人员(4)查询人员1.2 选作课题(二者必选,六人大组,三人小组,每个同学必需作不同的功能模块,要求选出组长,安排任务,)(3月9-18日)2. 2.1.基于RFID设备的隧道工作人员考勤系统(1)与必做课题结合,将每个卡与人员姓名,工种绑定,进入即可显示人员的相关信息。两台RFID读卡器,从1-2表示进入隧道,从27表示退出隧道,据此,统计当前隧道里面的人员总数与姓名。3. 2.2基于RFlD设备的隧道工作人员考勤系统(2)(1)自学MFC,设计基于MFC设计隧道工作人员考勤系统,具有增、删、改、查询的功能(2)结合小组1同学做的实时考勤系统,设计基于MFC的隧道工作人员考勤系统三,实践目的2通过木次课程设计,使我们在驾驭C+程序设计的基本思想、基本概念和基本方法上,能运用所学的学问对般问题进行分析和程序设计,把C+;程序设计语言作为基本工具运用,为今后在专业课程的学习中,运用计算机解决实际问题打好基础。同时,将理论学问与实践相结合,更加深化的应用c+的学问,也r解和学习MK的界面开发和界面设计。让我们学会创新,能够自主学习新的学问,提高我们的自学实力,也考验我们做事的耐性。四.实践内容:4.1 必做课Ah离校人员类的设计的功能描述以与模块结构4.1.1 功能模块描述与主要类描述模块一:输入人员函数voidinterO/输入函数loop:intintput;8Ul<<"请您选择所要注册的类型Y<'n'<<”按"1”为一般人员“<<'n'<<"按"2"为学生"<<n'«"按"3"为老师"<<'n'<<endl;cin>>intput;switch(intput)case1:inlpulperson(intputtime):inIpu11ime+:break;case2:intstudent(intputtime);intputtime+;break;case3:intteacher(intputtime);intputtime÷+break;default:CoUtX,t鬼疚,您输入错误,请重新输入"<<endl;goto100pibreak;输入添加指定的人员;模块二:查找人员函数voidfinder()pointl:intrun,fin;charc:fin=O;COUl<<"请您输入要操作的名字"<<'n,<<endl:stringm:cin>>11:for(run=O;run<intputtime;run+)if(m=(findrun->name)cout<<"恭喜您查找胜利!*«,n,«endl:findrun->show():fin=l;break;Iocation=run;if(fin=O)cout<<“愧疚,没有找到该信息n'«endl;fin=O:CoUt<<"您想接着杳询吗?(yn)"<<endl:cin>>c;if(c=,Y,lc=,y,)gotopoint1;查找指定的基本信息;模块三:保存人员信息函数voidsaverO学生信息保存SySIem("cis");Ofstreamfile;file.OPen("D:信息保存Jxl”,ios:out);COUt<<"nnnnnnttt正在保存,请稍等*<<endl:SySIem("cis"):cout<<,nnnntt数据保存保存胜利!nn”<<endl;fot-(inti=0;Kintpultime;i")列出现有的详情findi->show();file,close();SyStem("pause");保存指定的信息.:模块四:删除人员函数voiddeIelememberOchara;Iocation=O;finderO;CoUl<<”是否删除该数据(YN)"<<endl;cin>>a;if(a=,Y'IIa=-y,)for(;location<intputtime;location+)(findlocation=findlocation+l:)CoUt«"删除胜利"<<endl;intputtime;删除指定的其本信息。模块五:板示函数show。,定义为虚函数实现函数的多态,使在不同类中能够依据变量的多少选择合适的ShOWo函数。virtualvoidshow();voidperson:show()cout<<姓名:"<<name<<'n'年龄"<<age<<'n'<<”性别:"<<gender<<endl;if(registered=1)voidstudent:show()BerSOn:ShOW();CoUt<<"学号:"<<num<<endl;voidteacher:show()person:show();COUt老师职称:*<<position<<endl;本高校人员类的设计采纳了面对对象的程序设计方法。全部的方法均以类为基础。所涉与到的类包括:classPerson般人员类;该类是个基类,设置了属于私有成员的年龄,以与公有成员gender和name,可以给学生和老师类维承。且分别定义了IDO、get_name(),get_ageO和geJgenderO函数。Classstudent学生类:该类多态维承了一般人员类,加入了成员变量num与成员函数get_numO。ClassIeaCher老师类:该类同样多态维承J'一股人员类。该类定义了与学生类样的函数,有着同样的功能。加入了成员变量POSitiOn与成员函数get_positionO。程序代码fiinclude<iostream>Sinclude<fstream>fiinclude<st-ing>USingnamespacestd;intintputtime=O:/输入的次数intregistered=。:/区分注册与查找intIocalion=O;/确定"1前位置classpersonprivate:intage:public:stringgender;/1为男O为女stringname;virtualintID();voidget_name();voidget_ageO;voidget_gender():virtualvoidshow();intperson:ID()return0:)voidperson:get_name()stringn;COUt<<"请您输入姓名"<×endl;cin>>n;name=n;voidperson:get_age()inta;COUt<×”请您输入年龄"<×endl;cin>>a;age=a;voidperson:get_gender()stringg;COUl<<"请您输入性别'男'或者'女'"endl;cin>>g:gender=g;voidperson:show()couI<<,姓名J<<name<<'r'年龄"<<age<<'n'性别:*<<gender<<endl;if(registered=1)cout<<"恭喜您胜利完成注册!”endl;classStudentzvirtualpublicperson/学生维承public:intID();stringnum:voidgel_num();voidshowO;intstudent:ID()return1;)voidstudent:gel_num()stringn:CoUx<"请您输入学号”<<endl:cin>>n;num=n:voidstudent:show()person:show():COUt<<*学号:"<<num<<endl;classIeacherrvirtualpublicpersonpublic:intIDO:stringposition;voidget_posilion();voidshow():intteacher:ID()return2;voidteacher:get_position()stringp;cout«*i§您输入职称"<<end1:cin>>p;position=p;voidteacher:showOperson:show();COUt<,老师职称:/,«position«endl:/留意此处下面变量要为全局变量:personp200;/学校一般人员变量students200;学生变量teachert200j;/老师变量person*finti600:/查找用的指针voidintputperson(intx)px.gelIame();px.get_age();pxgeJgenderO:px.ID();px.show():findx=&px;registered=。:/注册时候显示用的voidintstudent(intx)sx.gel-na11e():sx.get_ageO;sx.get_gender():sx.get_num();sx.IDO:sx.show();findx=&sx:registere(i=O;voidintteacher(intx)tx.get_name():tx.get_age();tx.get_gender();1.x.get_posilion();tx.IDO;lx.show();findx=tx;regis1.ered=O;voidinterO/输入函数loop:intintpt;coul<U请您选择所要注册的类型"<<,n'<<"按"1”为一般人员<<'n'