.
C++程序设计期末考试选题
考试要求:
1、要求利用C++课程上学习的基础编程技巧来完成程序的设计;在设计的过程中,要建立清晰的类并正确使用相应的数据类型;在系统设计中要分析类与类之间的关系,将查找和排序的算法独立出来形成为单独的函数。正确使用继承、重载和多态等技巧。
2、如果有数据交互的地方,要求对用户输入的数据都进行有效性验证,以保证程序的正常运行。
考试目的:
1、加深对面向对象设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。
2、通过程序设计,掌握面向对象程序设计语言C++,培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力指导等。
§ 1人或2人合作完成,作为期末考试,满分30分。 § 完成后,向教师演示程序的运行和回答教师的问题,老师对每位同学提问3次,时间大概5分钟。
3、有效时间:从第15周-第16周,可利用上机时间向教师提交程序。每道题目最高分为习题前面所列分值。
.
.
选题1:银行类的设计(20分)
设计一个Bank类,帮助实现银行某账号的资金往来账目管理,包括建账号、存入、取出等。
Bank类包括五个私有数据成员:
Top(当前账指针),data(日期),money(金额),rest(余额和sum(累计余额)。
除一个构造函数外,还有以下三个成员函数: Void bankin(char d[],int m): //处理存入账 Void bankout(char d[],int m); //处理取出账
Void disp(); //输出明细账
现程序已经给出Bank()成员函数的实现,请补充完整Bank类数据和函数的定义以及其他两成员函数的实现。
程序运行时的结果如下:
日期 存入 取出 余额
2005.6.5 3000 3000 2005.7.2 1000 4000 2005.8.1 600 3400 2005.8.5 400 3000
.
.
选题2:MyString类的设计(20分)
用C++语言定义MyString(包括成员函数的实现代码),使之能符合下面程序及在注释中描述的运行结果的要求:
int main() {
MyString s1 = \ s1.display(); // 此时显示出: <0123456789> s2.display(); // 此时显示出(<>之间是五个空格): < > s3.display(); // 此时显示出: <>
s4.display(); // 此时显示出: <0123456789> s3 = s1;
s3.display(); // 此时显示出: <0123456789> s3 = 3+s3;
s3.display(); // 此时显示出: <0123456789999> s2 = s1[2];
s2.display(); // 此时显示出: <23456789> s1.display(); // 此时显示出: <0123456789> s3 = s2++;
s2.display(); // 此时显示出: <3456789> s3.display(); // 此时显示出: <23456789> return 0; }
.