您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C++面向对象程序设计》习题答案
1《C++程序设计》习题解答I目录第2部分习题解答..................................................................................................................................2第1章面向对象程序设计概述......................................................................................................2第2章面向过程程序设计............................................................................................................12第3章类和对象............................................................................................................................18第4章继承与派生........................................................................................................................24第5章多态性与虚函数................................................................................................................33第6章友元与静态成员................................................................................................................37第7章运算符重载........................................................................................................................41第8章泛型编程............................................................................................................................50第9章输入/输出...........................................................................................................................55第10章异常处理..........................................................................................................................612第2部分习题解答第1章面向对象程序设计概述一、简答题简述面向过程程序设计和面向对象程序设计的编程思想,体会面向对象程序设计的优点。【答案要点】面向过程程序设计的编程思想:功能分解、逐步求精、模块化、结构化。当要设计一个目标系统时,首先从整体上概括出整个系统需要实现的功能,然后对系统的每项功能进行逐层分解,直到每项子功能都足够简单,不需要再分解为止。具体实现系统时,每项子功能对应一个模块,模块间尽量相对独立,通过模块间的调用关系或全局变量而有机地联系起来。面向对象程序设计的编程思想:(1)客观世界中的事物都是对象(object),对象之间存在一定的关系。(2)用对象的属性(attribute)描述事物的静态特征,用对象的操作(operation)描述事物的行为(动态特征)。(3)对象的属性和操作结合为一体,形成一个相对独立、不可分的实体。对象对外屏蔽其内部细节,只留下少量接口,以便与外界联系。(4)通过抽象对对象进行分类,把具有相同属性和相同操作的对象归为一类,类是这些对象的抽象描述,每个对象是其所属类的一个实例。(5)复杂的对象可以用简单的对象作为其构成部分。(6)通过在不同程度上运用抽象的原则,可以得到一般类和特殊类。特殊类继承一般类的属性与操作,从而简化系统的构造过程。(7)对象之间通过传递消息进行通信,以实现对象之间的动态联系。(8)通过关联表达类之间的静态关系。与传统的面向过程程序设计相比,面向对象程序设计的优点如下:(1)从认识论的角度看,面向对象程序设计改变了软件开发的方式。软件开发人员能够利用人类认识事物所采用的一般思维方式来进行软件开发。(2)面向对象程序中的数据的安全性高。外界只能通过对象提供的对外接口操作对象中的数据,这可以有效保护数据的安全。(3)面向对象程序设计有助于软件的维护与复用。某类对象数据结构的改变只会引起该类对象操作代码的改变,只要其对外提供的接口不发生变化,程序的其余部分就不需要做任何改动。面向对象程序设计中类的继承机制有效解决了代码复用的问题。人们可以像使用集成电路(IC)构造计算机硬件那样,比较方便地重用对象类来构造软件系统。二、编程题【程序参考代码】/*学生信息管理系统C语言源代码student.c*/#includestdio.h/*包含输入/输出头文件*/#includestring.h/*包含字符串处理头文件*/#includestdlib.h#defineMAXSIZE100/*能够处理的学生总人数,可以随意修改*/typedefstruct{/*用于存放生日信息的结构体*/intyear;intmonth;intday;}Date;typedefstructStud{/*用于存放学生信息的结构体*/charNum[12];/*学号为11位*/charName[11];/*姓名,最多5个汉字*/charSex[2];/*性别,男记为m,女记为f*/第3页DateBirthday;/*出生日期*/floatEnglish,DataStructure,CPlusPlus;/*三门课成绩*/floatSum,Average;/*总成绩、平均成绩*/}Student;charCurFile[40];/*存放当前正在操作的磁盘文件的文件名*/intIsOpen=0;/*当前是否有磁盘文件被打开标志*/intfound=0;/*在查找学生信息时是否找到标志*/Studentstud[MAXSIZE];/*用于存放读入内存中的所有学生信息的全局数组*/intIndex=0;/*存放实际学生人数的全局变量*//*各自定义函数原型声明*/voidCreate();/*新建学生信息文件*/voidOpen();/*打开学生信息文件,并读取学生信息到全局数组stud中*/voidDisplay();/*显示学生信息*/voidSearch();/*查询学生信息*/intSearchNum(char*Num);/*按学号查询学生信息*/intSearchName(char*Name);/*按姓名查询学生信息*/voidAppend();/*添加学生信息*/voidModify();/*修改学生信息*/voidDelete();/*删除学生信息*/voidTotal();/*统计所有学生某一科目总成绩*/voidSort();/*学生信息排序*/voidBackup();/*备份学生信息*/voidmenu()/*系统功能菜单*/{intchoice;/*用于保存用户对功能菜单的选择结果*/for(;;){/*显示系统功能菜单*/printf(\n****************************************************\n);printf(***************学生信息管理系统*******************\n);printf(****************************************************\n);printf(************1.新建学生信息文件*****************\n);printf(************2.打开学生信息文件*****************\n);printf(************3.显示学生信息*****************\n);printf(************4.查询学生信息*****************\n);printf(************5.添加学生信息*****************\n);printf(************6.修改学生信息*****************\n);printf(************7.删除学生信息*****************\n);printf(************8.统计学生信息*****************\n);printf(************9.学生信息排序*****************\n);printf(************10.备份学生信息*****************\n);printf(************0.退出系统*****************\n);printf(****************************************************\n);printf(请选择要执行的操作(0~8):_);scanf(%d,&choice);switch(choice){case1:Create();break;case2:Open();break;case3:Display();break;case4:Search();break;case5:Append();break;case6:Modify();break;case7:Delete();break;case8:Total();break;case9:Sort();break;case10:Backup();break;case0:return;4default:printf(选择错误!请重新选择。\n);}/*switch结束*/}/*for结束*/}voidReOrEx()/*在用户执行完一项系统功能后,可以选择:是继续运行系统,还是退出系统*/{intn;printf(\n****************************************************\n);printf(***************1.返回上级菜单**************\n);printf(***************0.退出系统**************\n);printf(****************************************************\n);printf(请选择(1/0)?_);scanf(%d,&n);if(n==0){printf(\n****************************************************\n);printf(*************谢谢使用本系统!***************\n);printf(****************************************************\n);exit(1);}}voidmain(){printf(********************
本文标题:《C++面向对象程序设计》习题答案
链接地址:https://www.777doc.com/doc-7104105 .html