收藏 分享(赏)

七《面向对象程序设计》.doc

上传人:dzzj200808 文档编号:2286655 上传时间:2018-09-09 格式:DOC 页数:14 大小:175.50KB
下载 相关 举报
七《面向对象程序设计》.doc_第1页
第1页 / 共14页
七《面向对象程序设计》.doc_第2页
第2页 / 共14页
七《面向对象程序设计》.doc_第3页
第3页 / 共14页
七《面向对象程序设计》.doc_第4页
第4页 / 共14页
七《面向对象程序设计》.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、95七面向对象程序设计大纲说明:实验 1、2 为基本的验证设计实验,要求验证 C+的新特性以及简单类的编写和应用实验 3 为重点内容,主要锻炼学生对继承与多态性的掌握,并能灵活运用于简单的实际应用问题的解决。实验 4 为综合应用实验,主要锻炼学生运用所学 C+知识,结合某一特定 C+语言工具(如 VC+)实现一个实用的窗口应用程序。实验 4 的内容一般由教师指定范围,学生自由选择一题,由学生独立或小组合作完成。实验一 实现一个简单的 C+交互程序一、所需主要仪器及环境:每人微机一台,安装 VC+二、实验目的和要求:学会使用 VC 完成 C+语言源程序的编辑、编译、运行,熟悉程序结构及非面向对象

2、的新特性。三、实验主要内容:运行并初步了解 VC+环境;创建一个简单的 Win32 Console Application;编写简单程序;编译并调试运行程序。四、参考实验步骤:运行 VC+,并在新建菜单中选择创建一个空的 Win32 Console Application 类型的工程引入头 iostream.h 文件,编写 main 函数,在其中实现:定义一个整型变量 i;通过键盘给变量 i 赋值;显示变量 i 的值;以.cpp 为扩展名为存盘;编译、运行。参考实例:#include void main()int i;couti;coutclass CRectangleprivate: flo

3、at x, y, area, circum; /定义成员变量存储矩形的长、宽和面积、周长public:CRectangle() x=0;y=0; /定义缺省构造函数CRectangle(float xi, float yi)x=xi; y=yi; /定义初始化构造函数void cal_area() area=x*y; /计算面积,结果存放在 area 成员变量void cal_circum() circum=2*(x+y); /计算周长,结果存放在 circum 成员变量float getarea() const return area; /返回矩形面积float getcircum() co

4、nst return circum; /返回矩形周长;void main()float x,y;coutx;couty;CRectangle myrec(x,y); /创建矩形类的一个对象,并用上述输入进行初始化myrec.cal_area(); /调用计算矩形面积的方法myrec.cal_circum(); /调用计算矩形周长的方法coutclass Calculatorprivate: float x, y, result;public:97Calculator() x=0;y=0; /定义缺省构造函数Calculator(float xi, float yi) x=xi; y=yi; /

5、定义初始化构造函数void add() result=x+y; /实现两个操作数相加void minus() result=x-y; /实现两个操作数相减void multiple() result=x*y; /实现两个操作数相乘void divide() if(y=0) coutx;couty;Calculator mycal(x,y); /创建计算器类的一个对象,并用上述输入进行初始化mycal.add();coutno=no)return curr;else curr=curr-next;while (curr!=NULL);return curr;virtual CSchoolEmp

6、*query(char* name)curr=head;doif(!strcmp(curr-name,name)return curr;else curr=curr-next;while(curr!=NULL);return curr;/采用链表形式添加条目virtual void additem(CSchoolEmp *info)tail-next=info;tail=info;/删除符合要求的单个记录,如成功返回 0,否则返回 1 virtual int delitem(int no)if(query(no)=NULL)return 1;elsecurr=head;CSchoolEmp *

7、tmp=head;102doif(curr-no=no)break;else tmp=curr; curr=curr-next;while (curr!=NULL);tmp-next=curr-next;delete curr;return 0; virtual int delitem(char *name)if(query(name)=NULL)return 1;elsecurr=head;CSchoolEmp *tmp=head;doif(!strcmp(curr-name,name)break;else tmp=curr; curr=curr-next;while (curr!=NULL

8、);tmp-next=curr-next;delete curr;return 0; /显示链表所有结点信息virtual void displayall()curr=head;while(curr!=NULL)coutno;coutname;coutsex;coutbirthdate;coutjoinwork_date;coutsalary;coutnext;103/显示链表某一结点信息virtual void displayone(CSchoolEmp *curr)coutno;coutname;coutsex;coutbirthdate;coutjoinwork_date;coutsal

9、ary;coutno;coutname;coutsex;coutbirthdate;coutjoinwork_date;coutsalary;coutexpert_level;coutsal_level;coutschool;coutnext;void displayone(CTeacher *curr)coutno;coutname;coutsex;coutbirthdate;104coutjoinwork_date;coutsalary;coutexpert_level;coutsal_level;coutschool;coutm_strFilter=“name=“+quename+“;

10、/设置过滤器m_pSet-Requery(); /重新查询UpdateData(FALSE); /显示查询结果,这里只能显示第一个结果2增加新记录void CDbexampleView:OnButtonAddnew() CAddnewdlg addlg; / CAddnewdlg 为新建的专用于添加新记录的对话框if(addlg.DoModal()=IDOK)if(addlg.m_empno=0) MessageBox(“职工号不能为空 !“);return;if(addlg.m_strname.IsEmpty() MessageBox(“姓名不能为空 !“);return;m_pSet-Ad

11、dNew(); /在数据库表末尾添加新记录m_pSet-m_empno=addlg.m_empno; /以下为值传递m_pSet-m_name=addlg.m_strname;m_pSet-m_sex=addlg.m_strsex;m_pSet-m_birthdate=addlg.m_strbirthdate;m_pSet-m_joinworkdate=addlg.m_strjoinwork;m_pSet-m_salary=addlg.m_salary;m_pSet-Update(); /更新数据库表m_pSet-MoveLast();UpdateData(FALSE); /显示添加结果3删除

12、当前记录void CDbexampleView:OnButtonDeleterec() if(MessageBox(“确实要删除当前记录?“)=IDOK)try /删除操作易出错,因此放在错误捕获结构中m_pSet-Delete();catch(CDBException *e) /以下为错误处理108AfxMessageBox(e-m_strError);e-Delete();m_pSet-MoveFirst();UpdateData(FALSE);m_pSet-MoveNext();if(m_pSet-IsEOF()m_pSet-MoveLast();4修改当前记录void CDbexamp

13、leView:OnButtonModcurrec() CModcurrecdlg modlg; / CModcurrecdlg 为新建的专用于修改当前记录的对话框modlg.m_empno=m_pSet-m_empno; /以下先获得当前记录的对应字段内容modlg.m_strname=m_pSet-m_name;modlg.m_strsex=m_pSet-m_sex;modlg.m_strbirthdate=m_pSet-m_birthdate;modlg.m_strjoinwork=m_pSet-m_joinworkdate;modlg.m_salary=m_pSet-m_salary;i

14、f(modlg.DoModal()=IDOK)try /将修改也放在异常捕获结构中m_pSet-Edit(); /对当前记录进行修改m_pSet-m_name=modlg.m_strname;m_pSet-m_sex=modlg.m_strsex;m_pSet-m_birthdate=modlg.m_strbirthdate;m_pSet-m_joinworkdate=modlg.m_strjoinwork;m_pSet-m_salary=modlg.m_salary;catch(CDBException *e)AfxMessageBox(e-m_strError);e-Delete();m_pSet-MoveFirst();UpdateData(FALSE);UpdateData(FALSE);其它复杂功能请学生参考有关资料完成。参考用书:陈维兴等编,C+面向对象程序设计教程,清华大学出版社,北京,2002

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报