您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > c++程序设计例题及答案(前面是例题后面是对应答案)
第2章2-43编写一个程序,输入三角形的三个边的边长,求三角形的面积。2-44从键盘输入一个大写字母,然后改用小写字母在屏幕上输出。2-46把华氏温度转换为摄氏温度的计算公式是:c=(5/9)×(F-32)。编写一个程序,用户输入一个华氏温度,程序输出相应的摄氏温度。要求将32和5/9用户const型变量表示。2-53编程求两个复数的和。2-60采用动态内存分配方法设计一个学生成绩处理程序,要求输入任意数量学生的学号、姓名和4门课的成绩,并按平均成绩高低输出每个学生的姓名和成绩。2-67分别使用for语句、while语句、do-while语句编程求50以内的自然数之和。2-71输入n个整数,利用冒泡排序法将它们从小到大排序,并在屏幕上输出。2-77首先编写以下函数声明的函数:voidswap(float*px,float*py),该函数用于交换两个实型变量的值,然后编写一个主函数验证函数swap()功能。2-79首先编写一个选择排序函数,然后在主函数中调用排序函数对10个整数从小到大进行排序。提示:采用数组名作为函数参数。选择排序:每一趟从待排序的序列中选出一个最小的数据。2-80用指针作为函数参数编写冒泡排序函数:BubbleSort(int*pArray,intn),在主函数中以指针作为实参调用函数BubbleSort(),从而对一个数组的元素进行排序。2-81一个程序由两个C++源文件组成,在一个源文件中定义主函数main()并声明一个外部整型变量n,在另一个源文件中定义一个不带参数的函数factorial(void),该函数用于计算变量n的阶乘。编程在主函数main()中输入一个整数并求它的阶乘。2-83函数的参数传递方式有“单向值传递”、“按地址传递”和“引用传递”三种方式,请采用内联函数的方法实现实参和形参的按地址传递。(包含例题(2-25)第三章3-39一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C++语言定义这个类,并为上述属性定义相应的方法。3-40(43)设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。3-41(42)建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。3-42建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。此外还有一个静态成员变量,用于表示已创建对象的数量;有两个静态成员函数,一个用于输出已创建对象的数量,一个用于输出一个学生的姓名和学号。编写一个主函数,声明一个学生对象,然后调用成员函数在屏幕输出学生信息。3-43设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够用友元函数实现将日期加一天的操作。3-44建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。有一个成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数。还有一个用于输出学生信息的友元函数。编写一个主函数,声明一个学生对象,然后调用友元函数在屏幕输出学生信息。3-45一个名为CPerson的类有以下属性:姓名、身份证号、性别和年龄,请用C++语言定义这个类,并为上述属性定义相应的方法。然后从CPerson类中派生出类CEmployee(雇员),派生类CEmployee增加了两个新的数据成员,分别用于表示部门和薪水。要求派生类CEmployee的构造函数显式调用基类CPerson的构造函数,可根据需要为派生类增加新的成员函数。3-46建立一个CPoint类,该类有两个私有成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标,还有两个公有的成员函数:分别用于获取x和y的坐标。由CPoint派生出CCircle类,派生类CCircle增加一个私有成员变量用于表示半径,并用派生类的构造函数设置半径,同时增加三个成员函数:一个用于获取半径,另两个分别用于获取圆外接正方形左上角的x坐标和y坐标。3-47设计一个类Time(时间),该类用于表示时间值(时、分、秒)。要求能设置时间和输出时间。再设计一个日期类Date,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够实现将日期加一天的操作。利用建立的日期类和时间类多重派生出日期时间类DateTime,并实现日期和时间的设置和输出。3-49设类X分别派生出类Y和类Z,类Y和类Z又共同派生出类W,请用虚基类方式定义这些类。要求为类简单添加一些成员,并编写main()函数进行验证。3-52首先定义类CPoint类,该类有两个保护成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标并输出点坐标,一个析构函数,用于输出点坐标。由CPoint派生出CCircle类,派生类CCircle增加一个保护成员变量用于表示半径;并用派生类的构造函数设置半径和显示点坐标以及半径;析构函数用于显示点坐标以及半径。再由CCircle类派生出CCylinder类,派生类CCylinder增加一个保护成员变量用于表示高度;构造函数设置高度,并显示高度、半径和点坐标;析构函数显示高度、半径和点坐标。为类CPoint、类CCircle和类Cctlinder添加计算面积的成员函数Area(),要求函数Area()采用虚函数的形式,并通过基类指针调用虚函数Area()。3-53首先定义类CPoint类,该类有两个保护成员变量x,y,表示点的坐标。有一个构造函数用于设置坐标并输出点坐标,一个析构函数,用于输出点坐标。由CPoint派生出CCircle类,派生类CCircle增加一个保护成员变量用于表示半径;并用派生类的构造函数设置半径和显示点坐标以及半径;析构函数用于显示点坐标以及半径。再由CCircle类派生出CCylinder类,派生类CCylinder增加一个保护成员变量用于表示高度;构造函数设置高度,并显示高度、半径和点坐标;析构函数显示高度、半径和点坐标。要求三个类的析构函数采用虚析构函数来实现,并编写代码验证所完成的功能。3-56用函数重载形式编写函数square():求一个int型或double型参数的平方。3-58建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别、年龄和高等数学、英语、操作系统、数据结构等4门课的分数和总成绩。还有以下成员函数:用于初始化学生姓名、学号、性别和年龄的构造函数,用于初始化学生姓名、学号、性别、年龄和4门课分数的构造函数,输入4门课分数的函数,计算学生总成绩的函数,输出学生信息的函数。编写一个主函数,调用第一个构造函数声明一个学生对象并输入其4门课的分数,再调用新增加的构造函数声明另一个学生对象。最后分别计算两个学生的总分,并在屏幕输出两个学生的所有信息。3-59建立一个名为CStudent的类,该类有以下几个私有成员变量:学生姓名、学号、性别和年龄。还有以下两个成员函数:一个用于初始化学生姓名、学号、性别和年龄的构造函数,一个用于输出学生信息的函数。采用类继承的方法,在派生的新类中增加几个私有成员变量:高等数学、英语、操作系统、数据结构等4门课的分数和总成绩。修改或重新定义以下成员函数:用于初始化学生姓名、学号、性别、年龄和4门课分数的构造函数,输入4门课分数的函数,计算学生总成绩的函数,输出学生信息的函数。编写一个主函数,调用继承的构造函数声明一个学生对象并输入其4门课的分数,再调用新增加的构造函数声明另一个学生对象。最后分别计算两个学生的总分,并在屏幕输出两个学生的所有信息。3-60建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,并在屏幕输出。3-61建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个Add()成员函数,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个Add()函数的功能。3-62定义矢量类型,给出平面上两个矢量的加法和减法运算。要求利用非成员函数重载运算符“+”,利用成员函数重载运算符“-”。3-63设计一个日期类CDate,该类用于表示日期值(年、月、日)。要求除了能够通过相应的成员函数设置和获取日期值外,还能够用重载运算符“++”的方法实现将日期加一天的操作。3-64建立一个名为CTeacher的类,该类有以下成员变量:教师姓名、ID号、基本工资、奖金、所得税和实际发放数。还有以下成员函数:两个构造函数,一个用于只初始化教师姓名和ID号,一个用于初始化教师姓名、ID号、基本工资、奖金和所得税;一个输入基本工资、奖金和所得税的函数;一个计算实际发放数的函数;一个输出教师信息的函数,两个重载运算符“+”,一个用于将其他教师的工资加到该教师(如该教师替其他教师代课),一个函数用于将一个数值加到该教师(如提高该教师的工资)。编写主函数,调用第一个构造函数声明一个教师对象并输入其工资,再调用第二个构造函数声明一个教师对象。最后分别计算两个教师的实际发放数,在屏幕输出,并编写代码验证两个重载运算符“+”的功能。3-65编写一个函数模板:求三个数中的最大数。3-66编写一个冒泡排序的函数模板,并利用它分别对int型和字符数据进行排序。第五章:共8题5-27:试编写一个MDI应用程序,在客户区显示文本串“欢迎使用VisualC++面向对象编程教程”,要求从左到右滚动显示这行字。5-28:编写一个SDI应用程序SDIDraw,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。5-29:编写一个SDI应用程序SDIDraw,为应用程序添加主菜单“我的菜单”,并添加“显示文本”和“画图”两个菜单项,编写上述两个菜单项的消息处理函数,分别在客户区显示一行文本或画一个圆。要求:显示文本后“显示文本”菜单项处于不可用状态;当画一个圆后“画圆”菜单项处于不可用状态。其他情况下处于可用状态。5-32:设计一个应用程序,当双击鼠标后弹出一个信息框,显示双击鼠标的次数。5-33:编写一个名为MyLine的程序,与Windows“画图”工具一样,在利用鼠标画出一条直线时,按住鼠标左键并拖拽,先画出随鼠标移动的直线,当释放左键后才真正画出一条所需要的直线。要求实现窗口重绘功能。5-39:编写一个名为MyLine的程序,与Windows“画图”工具一样,在利用鼠标画出一条直线时,按住鼠标左键并拖拽,先画出随鼠标移动的直线,当释放左键后才真正画出一条所需要的直线
本文标题:c++程序设计例题及答案(前面是例题后面是对应答案)
链接地址:https://www.777doc.com/doc-6156112 .html