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<<r;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)测试程序。
题目11 分数运算内容及要求:分数相加,两个分数分别是1/5和7/20,它们相加之后得11/20。
方法是先求出两个分数分母的最小公倍数,通分后,再求两个分子的和,最后约简结果分数的分子和分母(如果两个分数相加的结果是4/8,则必须将其化简成最简分数的形式1//2),即用分子分母的最大公约数分别除分子和分母。
试建立一个一个分数类Fract,来完成两个分数相加的功能。
(1)重载提取和插入运算符<<和>>,实现分数类对象的直接输入输出,即可以用cin 运算符从键盘输入具体的分数数据,同时将运算结果用cout输出。
(2)重载加法运算符+,完成两个或多个对象的加法,同时约简结果。
(3)重新用两种方法实现m,n的最大公约数的函数int gcd(int m,int n)。
题目12 彩票游戏内容及要求:该程序模拟体彩和福彩的投彩的开奖过程。
(1)进一步完善福彩部分,无论是开奖还是下注,福彩的6个号码都不能重复,请在程序中进行设置。
(1)福彩的中奖号码与其数字的顺序无关,重新设置中奖等级。
(3)进一步完善体彩部分,体彩的中奖等级分为特等奖(数字完全吻合),一等奖(6个连续数字吻合),二等奖(5个连续数字吻合),三等级(4个连续数字吻合),安慰奖(2个连续数字吻合)。
题目13 职工信息表内容及要求:设计职工信息表,并由此产生一个信息简表,并使用虚函数实现多态性,完成显示不同简表信息的任务。
使用了继承的方法,编写最多能输入10个职工的信息表,再根据这个表产生一个职工信息简表,并利用多态性实现信息的输出。
使用类和向量及菜单实现选择功能。
为了允许用户交替选择1-5选项,必须对各种可能的输入进行处理。
设计的简单界面如下:1.增加职工记录2.生成信息简表3.显示原始记录4.显示简表记录5.查找职工信息6.结束程序运行题目14 字符串类的设计内容及要求:定义字符串类(String),包含存放字符串的字符数组和字符串中字符的个数。
(1)字符串的输入与赋值;(2)字符串的运算:连接、复制、查找、交换、求子串、比较;(3)字符串的输出。
对字符串的输入和输出都用文件实现。
题目15 矩阵的旋转反射内容及要求:输入矩阵的行列,选择旋转方式,输出旋转后的矩阵。
(1)绕X轴旋转;(2)绕Y轴旋转;(3)绕原点旋转。
题目16 学生成绩管理内容及要求:设计一个实用的小型学生成绩管理程序。
它有查询和检索等功能,并且能够对指定文件操作,也可以将多个文件组成一个文件。
(1)建立文件:可以使用默认文件名或指定文件名将记录存储文件。
设置适当的标志位,作为对记录进行操作的信息。
写同名文件将覆盖原来文件的内容。
(2).增加学生记录:可在已有记录后面追加新的记录。
可以随时增加新的记录,它们仅保存在向量数组中。
可以将一个文件读入,追加在已有记录之后。
采取文件追加方式时,在没有保存到文件之前,将继续保持文件追加状态,以便实现连续文件追加操作方式。
如果没有记录存在,给出提示信息。
(3)新建学生信息文件:用来重新建立学生信息记录。
如果已经有记录存在,可以覆盖原记录或者在原记录后面追加,也可以将原有记录信息保存到一个指定文件,然后重新建立记录。
给出相应的提示信息。
(4)显示、删除、修改、查询记录。
题目17 复数计算器内容及要求:(1)所设计的复数计算器可以进行+ - * += -= *= ++ -- >= <= == !=运算符,其中>= <=是针对复数的模进行运算。
(2)设计输入重载函数,要求能接收从键盘输入a+bi形式的复数,在程序中可以识别出实部虚部并正确赋值。
(3) 设计计算器测试程序,对加减法进行测试,要求在两位数以内进行,对乘法进行测试,乘法要求为一位数的运算。
(4) 设计记录功能,可以记录下不同用户使用计算器的情况,记录以文件的形式保存在计算机内,开机时要求用户输入用户名,显示该名户以前的记录。
用户记录用包括:做了多少次加减法、乘法、进行测试的次数,后3次的测试平均分等,在退出计算器程序时用心的用户记录代替原有的记录。
题目18 工资管理内容及要求:设计一个员工工资管理程序,有显示、储存、显示、修改和删除功能。
(1)定义类CSalary,在工资表的数据类中增加一个私有数据选项:工号,用字符数组的形式,从000001开始编号,该工号不能人工修改,是有计算机自动根据录入的先后赋值的,录入数据时的时候不必输入工号。
(2)可以选择显示的多种排序形式,如按姓名的顺序、工资总额的顺序、职务工资获奖金的顺序,显示超过一屏的显示范围要能分屏显示。
(3)可以查询某一范围内的数据,如工资总跟小于2000元的人的数据,介于1000~2000元的人的数据等,根据具体要求列出菜单供用户选择。
(4)可以根据工号或者姓名修改、删除数据,在修改、删除时先要确定用户确认,确认后再进行操作。
(5)每次显示时,将所有要显示数据的工资总额、职务工资总额、奖金总额一起计算显示。