面向对象程序设计课设题目
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2012计算机科学与技术专业
面向对象课程设计题目
一设计要求
每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。
(若两人一个题目,需各自独立完成,题目相同者的课程设计报告不能完全相同。)二题目列表
三题目内容及要求
题目1 矩阵运算
内容及要求:
定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。
用程序实现验证n*n矩阵的如下定理:
A(BC)=(AB)C。
题目2 填XO游戏程序
内容及要求:
游戏规则和胜利条件:
棋盘共有5行5列:
选择难度(1):两个斜对角之一都为X或O,则玩家胜。一横行都为X或O则玩家胜。)一竖行都为X或O则玩家胜。
选择难度(2):两个斜对角之一都为X或O,则玩家胜。
选择难度(3):两个斜对角都为X或O,则玩家胜。
输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键;
玩者下一步X或O,计算机也自动下一步X或O。
程序运行示例:
题目3 统计学生成绩
内容及要求:
要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作:
(1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。(2)要求对“<<”和“>>”运算符进行重载。
(3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。
(4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息:
学号姓名算术语文平均
(5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。
(6)编写能检索文件中某个学生信息的子程序。如无此学生,输出“未查到”信息。
(7)使用多文件编程和菜单操作。
题目4 会议记录管理系统
内容及要求:
定义会议信息类class Conference
会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。会议信息以二进制形式存储在文件中。
(1) 添加会议记录
(2) 浏览所有会议记录信息
(3) 按不同字段(会议编号,会议名称等)查询会议记录
(4) 修改会议记录
(5) 删除会议记录
题目5 设计菜单选择趣味程序
内容及要求:
设计一个比较使用的菜单,通过菜单选择不同的功能。设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
出圈游戏一:
(1)设计一个SeqList类。
(2)在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。
(3)使用类的数组来求解。
(4)用Joseph()函数求解出圈,使用函数game1()作为菜单项。
(5)在文件game1.cpp中实现Joseph和game1()函数。
出圈游戏二:
(1)使用上题中的SqList类.使用向量数组求解。
(2)重载Joseph()函数来求解出圈,使用函数game2()作为菜单项。
(3)在文件game2.cpp中实现Joseph()和game2()函数
求解方程:
(1)设计类FindRoot
将方程系数设计成属性,将方程的根x1,x2。以及用来作为判定条件的d(d=b*b-4*a*c) 均设计成类的属性
(2)设计构造函数
(3)设计求根成员函数Find().
(4)设计输出结果成员函数Display().
题目6 个人财政管理
内容及要求:
(1)完善程序,补充类中数据成员盈余(dlBalance)的计算和输出,要求每笔收入和支出都要重新统计当前情况下的盈余数目。
(2)程序中的收支情况按时间顺序排序存放,将其放入一个文件中,每次运行程序时首先打开这个文件,程序运行完毕时将更新的记录放回文件中。
(3)可以按时间的范围来检查账目,即在主菜单中增加检索的功能选项,输入时间范围即可打印出详细报表。
(4)可以修改、删除某笔收入或支出。
(5)增加程序监控功能,当输入时间发生错误(如月份超过12等)时,要求重新输入正确的时间;当结余的数目为负数时,打印出信息,警告已经透支。
题目7 求解有理数分式方程
内容及要求:
设计一个Rational(有理数)类,用来求解有理数分式方程。为它设计两个数据成员,一个作为分子,另一个作为分母。分母不能为0。有理数1/2可以使用这个类的对象r表示为r(1,2)。需要完成如下操作:
如果分子和分母友公约数,就应该进行化简;
有理数可以进行四则运算,需要重载运算符;
重载流运算符,可以直接输入分子和分母,以及作为整体输出,如:
cin>>r;
1/6 //输入
cou< 1/6 //输出 解有理数方程a/b x+c/d =e/f,用有理数表示为: r1=a/b r2=b/c r3=e/f 则 x=(r3-r2)/r1 题目8 模拟21点扑克牌游戏 内容及要求: 模拟21点扑克牌游戏,玩家最多可以要5张牌,但如果牌的点数之和超过21,则自动出局;在不超过21点的情况下,玩家与庄家比牌的点数的大小,大者为赢家。 程序设计要求: (1)将大于10点的点数改为半点。 (2)高级玩家可以查看下一张牌,然后按要求输入密码,密码正确可以看牌,决定是否要牌。 (3)超级玩家可以查看庄家的所有牌面,并任意输入自己想要的牌,有赢无输。 (4)每次要完牌后可以重新设定赔率,只能加注。 题目9 计算算术运算表达式 内容及要求: 计算算术运算表达式。实现将括号内的数提出计算,再将结果并入愿字符串,每次只计算一个简单的式子,如对算式(3+22)*3而言,先计算式子3+22,得到结果25,再求25*3,得到最终结果75 要求:计算string所表示的算术运算表达式的值。 题目10 通信录 内容及要求: (1)输入信息,建立文件; (2)文件的存取和显示; (3)删除记录; (4)查询记录; (5)整体性能; (6)测试程序。