《面向对象程序设计课程设计》题目
面向对象课程设计题目(1)
2011计算机科学与技术专业面向对象课程设计题目李爱华一设计要求每个题目可以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会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。
面向对象程序设计(C++课程设计报告)
(2)问题描述:
使用MFC,应用MFC中已有函数以及画图类完成一个划线程序,使得能用鼠标在MFC视图中划出一道可以自定义线的格式的线,然后完成拾取、保存以及读取工作。
(3)问题分析:
该题目需要我们在熟练运用MFC的基础上,对MFC中函数进行掌握,并学会划线类地应用。首先需要我们完成划线操作利用buttondown和buttonup两个消息响应函数,然后将所有的线的属性放入vector容器中,实现线的存储,利用两边之和约等于第三边完成线的选取工作,再利用文本输入输出流完成保存和读取。
void CHuaxianView::OnMenuitem32771()
{
// TODO: Add your command handler code here
dialog a;
a.DoModal();
m_b=a.m_b;
m_r =a.m_r;
m_w =a.m_w;
m_y =a.m_y;
}
在ChuaxianView类的OnLButtonDown()函数中完成记录起始点的工作:
// TODO: add draw code for native data here
for(int i = 0; i < m_vLines.size() ;i++)
m_vLines[i].Draw(pDC);//将容器中所有线进行重绘
}
在ChuaxianView类的对话框函数中完成数据输入与更新:
void CHuaxianView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
面向对象程序设计样卷
面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。
A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。
A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。
A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。
2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。
3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。
4.当删除对象时, 程序自动调用析构函数。
5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。
8. 抽象类是指类里有一个函数, 是纯嘘函数。
三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。
本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。
面向对象课程设计题目汇总及要求
面向对象程序设计课程设计题目汇总选题说明及要求说明:1、由于各选题的难度不同,将选题分为A、B、C三个等级,每个等级对应的最高分依次为:100分、85分和75分。
达到基本要求且有一定程度和创新和见解的同学可获得较高分数。
学生可根据自己的情况,自行选择。
2、每个题目最多只能有两组,若超过两组,则该题目自动作废!3、规定2-4人的题目,若实际人数比分组人数每少一人,则题目等级自动上调一级。
4、若实际小组人数比规定人数多一人,则题目等级自动下调一级。
实际人数比规定人数多两个的分组无效!题目列表题目一、单链表(1人)(C级) (3)题目二:一元多项式求和(1人)(B级) (3)题目三:快餐店点餐系统(3人)(B级) (3)题目四、简单车辆管理系统(3人)(B级) (4)题目五、滚动发车系统设计(3人)(B级) (4)题目六、简单银行账户系统(3人)(A级) (5)题目七、银行叫号系统设计(3人)(B级) (5)题目八、学生学籍管理系统(3人)(B级) (6)题目九、教师工资信息管理系统(3人)(A级) (6)题目十、书刊租借信息管理系统(3人)(A级) (7)题目十一、仓库管理信息系统(3人)(B级) (7)题目十二、研究生管理信息系统(3人)(B级) (8)题目十三、图书馆管理信息系统(3人)(B级) (8)题目十四、学生宿舍管理信息系统(3人)(B级) (9)题目十五、理财管理信息系统(3人)(B级) (9)题目十六、IT设备资产管理系统(3人)(B级) (10)题目十七、员工管理信息系统(3人)(B级) (10)题目十八某软件公司客户关系(CRM)管理系统(4人)(A级).. 11 题目十九:足球联赛排名(3人)(A级) (11)题目二十:小学生四则运算测验(3人)(B级) (12)题目二十一:学生电子投票平台设计(3人)(B级) (12)题目二十二:物品库存管理系统(3人)(B级) (12)题目二十三:个人财政支出管理系统(2人)(C级) (13)题目二十四:电话簿管理系统(2人)(C级) (13)题目二十五:股票交易系统(4人)(A级) (13)题目二十六:学生信息管理系统(2人)(C级) (13)题目二十七:学生成绩管理系统(2人)(C级) (13)题目二十八:小型字符串类(2人)(B级) (14)题目二十九:分数计算器(2人)(B级) (14)题目二十九:复数计算器(1人)(C级) (14)题目三十:无符号大整数计算器(2人)(B级) (15)题目三十一:超市密码存储箱系统(2人)(A级) (15)题目一、单链表(1人)(C级)建立一个单链表类,该链表类能够实现以下功能:(1)有合理的构造函数,能够由用户输入数据,创建链表,如果用户输入的数据不合理,能够给出提示信息(2)能够实现单链表元素的遍历(3)能够在指定位置插入一个元素(4)能够删除指定位置的元素(5)能够统计单链表中的元素个数并输出题目二:一元多项式求和(1人)(B级)编写一个程序用单链表存储一元多项式,并实现以下功能:(1)能够运行用户合理输入两个的多项式(2)能够实现两个多项式相加(3)能够将相加的结果输出(4)能够对常见的错误进行正确的处理和输出题目三:快餐店点餐系统(3人)(B级)快餐店点餐系统一般具有高效、便捷的特点。
面向对象程序设计(Java) 课程设计总体要求及题目说明
《面向对象程序设计(Java) 》课程设计题目说明上海电力学院计算机与信息工程学院指导教师:曹渝昆、张维、杜海舟、张挺2012年6月目录题目1:出租车计费系统 (2)题目2:学生综合测评系统 (2)题目3:旅馆预订系统 (3)题目4:简单的学籍管理系统 (4)题目5:商场库存管理系统 (4)题目6:小型图书管理系统 (5)题目7:小型婴儿出生信息登记系统 (5)题目8:学校档案管理系统 (6)题目9:小型学籍与成绩管理软件 (6)题目10:公交线路管理系统 (7)题目11:实验设备管理系统 (7)题目12:职工工资管理系统 (8)题目13:学校人事管理系统 (8)题目14:家庭财务管理系统 (8)题目15:教师工资管理系统 (9)题目16:教师工作量管理系统 (9)题目17:租车管理系统 (10)题目1:出租车计费系统1、需求分析设计界面友好的出租车计费系统,通过现成的自动测路程的仪器将出租车行驶的公里数传达到出租车计费系统,按一定比例折合成RMB费用,方便出租车司机准确快速计算当天出行驶费用。
2、程序的基本功能1)界面的标题为出租车计费系统。
2)创设一个可以计费的系统,可以根据行驶公里的长短计算出相应的金额。
3)界面上有0-9以及清空按钮方便输入及清空。
4)界面中有时间,可以设定当天的日期。
题目2:学生综合测评系统1、需求分析:每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、高等数学、物理、英语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
2、程序的基本功能:1.学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)
《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单选题 (请将答案填在下表中,共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10C A B B AD A D A A11 12 13 14 15 16 17 18 19 20A C C C D D D A D C21 22 23 24 25D A A A A1、Observer模式不适用于()。
A.当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立的改变和复用B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少个对象有待改变时C.当一个对象必须通知其它对象,而它又不能假定其它对象是谁,也就是说你不希望这些对象是紧耦合的D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作2、顺序图由类角色,生命线,激活期和()组成。
A.关系B.消息C.用例D.实体3、UML中类的有三种,下面哪个不是其中之一()A.实体类B.抽象类C.控制类D.边界类4、如果用例A与用例B相似,但A的功能较B多,A的动作序列是通过在B的动作序列中的某些执行点上插入附加的动作序列而构成的,则称()。
A.用例A实现用例BB.用例A继承用例BC.用例A扩展用例BD.用例A包括用例B5、()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。
A.泳道B.分叉汇合C.分支D.转移6、关于继承表述错误的是:()。
A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类7、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。
面向对象程序设计题目库
题目模板课程名称:面向对象程序设计层次:高起专题目阶段:阶段性作业1(阶段性作业1-4只包含客观题,每套作业的题量为20-30小题)一、单选题1. 下列关于栈的叙述正确的是_(1)_(A):栈是非线性结构(B):栈是一种树状结构(C):栈具有先进先出的特征(D):栈具有后进先出的特征答案B2. 已知,int m=10,在下列表示引用的方法中正确的是_(2)_(A):int &x=m (B): int &y=10 (C): int &z (D): float &t=&m答案A3. 结构化程序设计所规定的三种基本控制结构是_(3)_(A):输入、处理、输出(B): 树形、网形、环形(C):顺序、选择、循环(D): 主程序、子程序、函数答案C4. 结构化程序设计的一种基本方法是_(4)_(A):筛选法(B): 递归法(C): 归纳法(D): 逐步求精法答案D5. C++语言的跳转语句中,对于break和continue说法正确的是_(5)_(A):break语句只应用与循环体中(B): continue语句只应用与循环体中(C): break是无条件跳转语句,continue不是(D): break和continue的跳转范围不够明确,容易产生问题答案B6. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是_(6)_(A):test(5) (B): test(5,8) (C): test(6,"#") (D): test(0,0,"*")答案C7. C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是_(7)_(A):面向过程(B): 面向对象(C): 安全性(D): 复用性答案B8. 关于delete运算符的下列描述中,_(8)_是错误的。
面向对象程序设计习题
第6章面向对象程序设计一. 选择题1.下面有关类和对象的说法中, 不对的的是【】。
A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2. 面向对象的特点重要概括为【】。
A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D) 抽象性、继承性和封装性3. 要使一个类能被同一命名空间中的其他类访问, 但不能被这个命名空间以外的类访问, 该类可以【】。
A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4. 在C#中, 【】访问修饰符修饰的字段只能由当前程序集访问。
A) private B) public C) protected D) internal5. 类的字段和方法的默认访问修饰符是【】。
A) public B) private C) protected D) internal6. 下列关于构造函数的描述中, 不对的的是【】。
A) 构造函数中, 不可以包含return语句B) 一个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7. 下列关于构造函数的描述中, 【】是对的的。
A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8. 下列的【】不是构造函数的特性。
A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9. 类ClassA有一个名为M1的方法, 在程序中有如下一段代码, 假设该段代码是可以执行的, 则声明M1方法时一定使用了【】修饰符。
ClassA Aobj=new ClassA();ClassA.M1();A) public B) public static C) private D) virtual10. 在C#中, 从属性的读写特性上来进行分类, 可以划分为以下3种, 除了【】。
c面向对象程序设计试题和答案
一、填空题(每空1分,共14分)1、观看以下程序:class point{public:void show() {cout<<”point”<<endl;}};void main(){point p1;point *p;p=&p1;_______________//通过对象p1访问show函数______________//通过指针p访问show函数}2、在C++类中可以包含______________、______________和______________三种具有不同访问控制权的成员。
3、定义类时,在类头中将使用关键字_____________来表示类定义的开始。
4、如果一个类中至少有一个纯虚函数,则该类称为________________。
5、C++类的组成包括数据成员和______________,友元_____(是、不是)该类的成员函数。
6、友员函数是用关键字____________修饰的非成员函数。
7、若有:int i;int &j=i;i=10;j=i+1;则i=__________,j=__________。
8、 new的功能是____________________,delete的功能是____________________。
二、选择题(每小题1.5分,共30分)1、下列特性中不是面向对象程序设计语言所特有的是()。
(A)数据封装(B)继承(C)多态性(D)模板2、()是给变量取一个别名,它引入了变量的同意词。
(A)指针(B)引用(C)枚举(D)结构3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。
(A)share (B)public (C)private (D)protected4、关于构造函数,下列说法不正确的是()。
(A)构造函数名字和类名相同(B)构造函数在创建对象时自动执行(C)构造函数无任何函数返回类型(D)构造函数有且只有一个5、派生类可以访问其基类的()。
面向对象程序设计(C )课程设计任务书及题目
上海电机学院课程设计任务书指导教师(签名):王中华系主任(签名):2014年5月20日年月日附:课程设计题目1.有理数运算问题描述2有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。
在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。
对有理数的各种操作都可以用重载运算符来实现。
基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。
写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d(4)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
对于判断两个有理数是否相等,由于在对有理数进行各种运算后都对其进行优化,所以判定两个有理数是否相等只需判定它们两个的分子和分母分别相等即可。
选做内容重载插入(<<)和提取(>>)运算符,使得对有理数可以直接输入输出。
设有理数输入格式为:整数1 整数2 //整数1为分子,整数2为分母有理数输出格式为:分子/分母2.通讯录管理问题描述编写一个简单的通讯录管理程序。
通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
面向对象程序设计考试模拟题(附参考答案)
面向对象程序设计考试模拟题(附参考答案)一、单选题(共10题,每题1分,共10分)1、下面关于javac命令作用的描述中,正确的是()。
A、可以执行java程序B、可以将编写好的Java文件编译成.class文件C、可以把文件压缩D、可以把数据打包正确答案:B答案解析:javac命令将java文件编译成java字节码文件。
2、下列关于构造方法的描述,错误的是()A、在构造方法中不能使用return语句返回一个值,但是可以单独使用return作为方法的结束B、一个类中只能定义一个空参数的构造方法C、构造方法的方法名前面没有返回值类型的声明D、一个类中可以定义多个构造方法正确答案:B3、以下关于成员属性与成员方法的描述中,错误的是()A、成员属性我们也叫成员变量,它就是描述对象的特征。
它可以定义在类中,也可以定义在方法中B、成员方法用于描述对象的行为C、在类中定义的变量,我们称为成员变量D、在类中定义的方法,我们称变成员方法正确答案:A答案解析:类中可以定义成员变量和成员方法,其中成员变量用于描述对象的特征,也被称作属性,成员方法用于描述对象的行为,可简称为方法。
定义在类中的变量被称为成员变量,定义在方法中的变量被称为局部变量。
4、FileWriter类的write(int c)方法的作用是()A、写出单个字符B、写入多个C、写入一个整形数据D、写入单个字符正确答案:D答案解析:write(int c)方法用于写入单个字符。
5、下列关于集合的描述中,哪一个是错误的()A、集合按照存储结构可以分为单列集合Collection和双列集合Map。
B、List集合的特点是元素有序、元素可重复。
C、Set集合的特点是元素无序并且不可重复。
D、集合存储的对象必须是基本数据类型。
正确答案:D答案解析:集合可以存储多种数据类型的数据,包括引用数据类型。
6、下列关键字中,哪个不能修饰接口中的成员变量?()A、publicB、staticC、finalD、private正确答案:D答案解析:接口中的成员变量其实是一个常量,用public static final 修饰,所以,用private修饰是错误的。
面向对象的程序设计试题库
面向对象的程序设计一、单项选择题1、下面那种结构不是C++的控制结构()A 顺序结构B 选择结构C 循环结构D 判断结构答: D2、下列是C++语言中合法标识符的是()。
A.3three B.ifC._1oneD.while答:C3、下列是合法的C++语言语句的是()。
A.if(x>0) then x=x-1;else x=x+1;B.if(x>0) x=x-1;else x=x+1;C.if x>0 x=x-1;else x=x+1;D.if x>0 x=x-1;答:B4、下面那一种不是计算机内部表示整数的方法()A 二进制码B原码C 补码D反码答:A5、在C++语言中,下列数为合法的实数的是()。
A.5E-3B.5E-3.5C. E5D.-3.5E答:A6、C++语言中数据类型最大的是()A longB floatC intD char7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为()。
A.函数声明B.嵌套函数C.定义函数D.递归函数答:D8、表达式0x55^0xB4的结果为()。
A.0xF5B.0x15C.0xE1D.0x1E答:C9、C++中,源代码文件后缀为()A .cppB .objC .exeD .c答: A10、0X5A&0XB7结果是()A 0X13B 0X12C 0X14D 0X15答: B二、填空题1、程序的基本控制结构包括()、()和()。
答:顺序结构,选择结构,循环结构2、用来解决问题的,与有限多个步骤组成的具体过程称为()。
答:算法3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。
答:4,11,10)。
答:警告信息,致命错误5、计算机中的数据可以分为()和()两大类。
答:数值型、字符型6、字符型数据有两种编码方法:()和()答:有美国国家标准局制定的ASCII码、IBM公司提出的EBCDIC码7、通过C++ 语言中的()机制,可以从现存类中构建其子类。
面向对象分析与设计(UML)课程大作业题目及要求
《面向对象分析与设计(UML)课程大作业》题目一、课程大作业目的和要求1.初步了解UML语言的概念、结构、语义与表示方法;2.掌握UML建模工具Rational Rose的使用方法;3.给出某个简单系统的模型,能够熟练地使用Rose工具表达;二、课程大作业主要内容及要求课程设计的主要任务:1.根据所收集的简单需求,利用UML和Rational Rose工具对系统进行建模;2.根据前述需求的分析,进行需求建模,绘制系统的用例图和活动图;3.根据用例模型,进行架构建模,绘制系统的时序图,状态图,类图和交互图;4.绘制系统中某些重要功能的对象图;5.绘制系统的组件图和部署图;6.程序实现(选做)选题如下:1.网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。
同样,通过业务层,这些操作结果存入到数据库中。
2.设计运动会的计分系统本运动会在若干各会场进行,每个会场进行若干个项目。
有若干支运动队参赛,每支运动队有数名运动员。
各赛事分预决赛,预赛成绩部分带入决赛。
成绩由裁判员给出,计分员记录。
要求在比赛结束后,产生各队排名表及运动员的详细成绩表。
3. 试题管理系统其中试题分正式试题和临时试题,出题人设置课程名和试卷难度等内容后,系统自动出卷。
对试题要进行管理,并提供查询功能。
4. 工资管理系统一个公司下分若干部门,每个部门有若干名职员和经理,每个部门经销若干种产品。
工资由基本工资、产品销售业绩、若干种保险的扣除等组成。
其中的销售业绩:职员按其完成额5%提成,经理按该部门的完成额的1%提成。
每个月要生成一个工资表,每年末再按个人的总销售额发放1%的奖金。
5.宿舍楼管理系统该系统涉及到的事物有:宿舍楼、楼层、房间、家具;室长、楼长、保洁员、学生;学生所属的系。
面向对象程序设计课程设计题目及要求
面向对象程序设计课程设计要求及题目学期:2010-2011-02 专业:软件工程课程设计选题要求:1、每个学生从下面16个题目中选择3个题目来进行课程设计,3个题目的选择遵循下面的原则:第一个题目从1-3号题目中选,第二个题目从4-9号题目中选,第三个题目从10-16号题目(使用文件)中选。
2、选好题目后,每个学生根据题目的内容填写任务书(课程设计说明书中),其中“已知技术参数和设计要求”项,直接将题目中“要求”部分复制过去。
注意:一个题目对应一份任务书!3、请认真阅读课程设计指导书(附件1),提前做好课程设计准备。
1复数类要求:1)该系统主要处理复数的相关信息。
2)完成以下的操作:初始化复数、求其绝对值、复数的加、减、乘、除、乘方、自加、自减等。
提示:1)建立数据类、复数类2)数据、复数信息的初始化3)复数信息的输出4)求复数的绝对值5)实现复数的加、减、乘、除、乘方、自加、自减等运算2字符串类要求:1)该系统主要处理字符串的相关信息。
2)完成以下的操作:初始化字符串、获得字符串长度、在字符串中查找一个字符、在字符串中查找另一个字符串、字符串连接、字符串比较等。
提示:1)建立数据类、字符串类2)数据、字符串信息的初始化3)字符串信息的输出4)获得字符串长度5)在字符串中查找一个字符6)在字符串中查找另外一个字符串7)比较字符串3日期类要求:1)该系统主要处理时间的相关信息。
2)完成以下的操作:日期的设置、显示、实现在某一个日期上(月、日、年)加减一个天数的功能、计算两个日期间隔天数提示:1)建立日期类2)日期类的初始化3)按某个固定格式(如:yyyy-MM-dd)一次性的设置某个日期对象4)以固定格式显示某个日期5)在日期上加一天6)在日期上减一天7)输入两个日期,然后输出日期的间隔天数4学生成绩管理系统要求:1)该系统主要处理学生的成绩信息。
2)学生信息主要包括:学号、班级、姓名、科目1、科目2、科目3等内容。
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
C++面向对象-课程设计题目(2018版)
C++面向对象-课程设计题目(2018版)《C++面向对象程序设计》课程设计任务书2018/2019学年第1学期班级:2018级软件工程、网络工程一、设计目的《面向对象程序设计》是一门实践性较强的软件基础课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。
本课程设计的目的就是要达到理论与实际应用相结合,使同学们能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,能够运用面向对象的原理和方法解决简单的实际问题,逐步培养学生良好的程序设计能力。
二、设计要求通过这次设计,要求在逻辑特性和结构的设计及其实现等方面中加深对课程基本内容的理解。
在程序结构与功能上,充分运用面向对象的思想和方法,包括信息封装、继承、多态以及文件的操作。
在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
三、设计内容(任意选1个,1难度系统高,2-4难度系数较高,其余一般。
程序中必须有类的实现及使用,否则不合格。
可以2个人同选一个题目,验收时必须熟练应答)。
(一)快乐七巧板(3人)少儿在玩七巧板积木时,不知道如何拼图,对照图纸很麻烦。
该软件要求利用图形界面为少儿设计一款七巧板拼图软件,包含基本的7个元素的显示,完成不少于5种图案的拼图展示,并且能够保存和增加新的拼图。
要求用类的继承和多态来实现。
(一)新生基本信息统计软件有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地址,英语入学成绩。
要求设计链表类来实现,并统计学生人数。
文本界面为:1. 新增学生信息2. 删除学生信息3. 导入学生信息(已经保存于的文件信息)4. 学生信息搜索(按姓名)5. 学生信息统计(按专业或性别或年龄---年龄要自动计算)6. 按英语成绩排序7. 学生信息保存8. 退出******请选择:1(二)某公司雇员工资支付软件一般工人(Worker)按每月工作的天数计算工资;销售人员(Salesman)在基本工资基础上每月还有销售提成;经理(Manager)每月按固定工资支付,临时工(Floater )按小时支付。
《面向对象程序设计》习题答案2008-c++部分
(3) 静态成员属于 类 ,而不属于 对象 ,它由同一个类的所有对象共 同维护,为这些对象所共享。静态函数成员可以直接引用该类的 静态 数据 和函数成员,而不能直接引用 非静态数据成员 。对于公有的静 态函数成员,可以通过 类名 或 对象名 来调用;而一般的非静态函 数成员只能通过对象名来调用。 (4) 在实际程序设计中,一个源程序可划分为三个文件: 类声明文件 、类 实现文件 、 和 类的使用文件 。
面向对象程序设计习题
3-3 阅读程序题 (1) 以下是一个类中包含另一个类对象成员(类的组合) 的例子,试分析并给出以下程序的运行结果。
面向对象程序设计习题
void print() {cout<<“ 父 亲 的 年 龄 是 : "<<age<<endl; } Son &gets1() { cout<<"第一个"; return s1; } Son &gets2() { cout<<"第二个"; return s2; } }; void main() { Father f(10,5,38); f.print(); f.gets1().print(); f.gets2().print(); }
}
面向对象程序设计习题
void main() {
student stu[]={student("王红",18),student("吴伟",19),student("李丽",17)};
int i,min=0,max=0; for(i=1;i<3;i++) { if(compare(stu[max],stu[i])==-1) max=i; else if(compare(stu[max],stu[i])==1) min=i; } cout<<"最大年龄:"<<stu[max].get_age() <<",姓名:"<<stu[max].get_name()<<endl; cout<<"最小年龄:"<<stu[min].get_age() <<",姓名:"<<stu[min].get_name()<<endl;
《面向对象课程设计课程设计》题目
附录1:《面向对象程序设计课程设计》题目本课程设计提供了6个设计题目,学生任意选作一题,独立完成。
可使用C++或JA V A 两种面向对象程序设计语言。
题目1:一个简单的算法演示程序(JA V A语言实现)功能要求:1. 选择一个算法(提供选择见下),利用各种方法(图形、动画等)演示算法的演示过程。
2. 可以进行手动演示,也可以自动步进式演示。
3. 允许用户设置算法的各个输入参数,以及自动步进式演示中的时间间隔。
4. 不同的算法输入要求见下。
界面要求:1. 尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
2. 如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。
其他要求:1. 标识符命名遵循Windows命名规范。
2. 能够注意各种异常处理,注重提高程序运行效率。
提交内容:1. 全部源代码。
2. 软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档)参考算法:1. 最小生成树算法:Prim算法、Kruskal算法。
允许以下方式输入一个图形:绘制图形、输入邻接矩阵、输入边及其关联的顶点。
要求在图形方式下进行演示算法执行步骤。
2. 单源最短路算法:Dijkstra算法。
允许以下方式输入一个图形:绘制图形、输入邻接矩阵、输入边及其关联的顶点。
要求在图形方式下进行演示算法执行步骤。
3. 最优编码算法:Huffman编码算法。
允许用户输入一段英文文字,或者打开一个txt 文档(英文内容),据此文档内容进行编码。
要求动态列出每个字符的出现概率统计结果以及对应编码。
4. 其他可供演示的具有一定难度的算法,如关键路径问题、有向图的极大连通分支等。
题目2:一个简单的网络聊天程序(JA V A语言实现)功能要求:1. 实现类似与飞鸽的功能,自动侦测局域网内部启动该软件的用户,并显示在用户列表中。
2. 可以进行两个人之间的私聊。
3. 可以群聊。
4. 可以发送文件。
界面要求:1. 尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计课程设计题目设计说明1. 每人一组,每组选择一个题目;如果列出多个版本,只需要完成其中一个版本即可。
2. 由学习委员负责统计各组员及其题目,以电子档模式提交题目列表名单。
3. 每组必须给出相应的UML类图,可用Visio或者其他类似的工具完成。
设计要求1.编码规范要求遵循Java编码规范,参见附录。
2.知识点要求项目应至少覆盖以下知识点:封装、继承与多态等基本概念;方法和数组;输入输出流;使用抽象类、接口;对象组合;异常处理;包的使用。
3.文档打包及提交要求文档打包:以“班级-学号-姓名-题目-设计报告.rar”形式将相关文档打包。
提交要求:统一交至教学平台。
压缩包的内容:1)运行正确的源代码(包括文件夹结构)。
2)设计报告:描述软件功能、和设计方案的UML类图;设计中涉及的主要知识点;运行结果截图;使用帮助文档。
题目列表及说明:1. 打字游戏GUI本地版可根据一片文章自动导入单词整个单词下落或者淡入淡出同时多个单词出现对输入错误的单词分析记忆功能积分2. 文件加密和解密要求:采用图形用户界面1)给定任意一个文本文件,进行加密,生成另一个文件。
2)对加密后的文件还原。
3. 5子棋游戏设计程序,完成下述功能:在大于9条线的方形网格棋盘上,放置黑白两色棋子;两人各执一色,通过网络对弈;可以在任何两条线的交点上放置棋子;同色棋子先同行、同列或者同队角线上5颗连成一条线者获胜。
4. 俄罗斯方块(网络版)设计程序,完成下述功能:完成一个可以两个人通过网络对战的俄罗斯方块游戏,每一方都可以在自己的屏幕上看到对方的当前游戏状况,游戏先结束的一方为失败者。
5. 音乐播放器(JavaGUI本地版)设计程序,完成下述功能:选择各类声音文件进行播放。
完成前进、后退、暂停、回放等控制功能。
6. 电子相册(JavaGUI本地版)设计程序,完成下述功能:选择图形的显示。
完成图形的放大、缩小、剪切、旋转等控制功能。
图片的自动播放功能。
7. 多人聊天室((JavaGUI本地版/WEB版)多人同时上网聊天。
8.扑克游戏(JavaGUI本地版/WEB版)开发具有“升级”功能的4人对战游戏。
“升级”又叫拖拉机。
要求采用Java 网络编程技术。
9.编写一个记事本程序要求:用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。
提示:使用文件输入输出流。
10.模拟龟兔赛跑要求:用图形用户界面实现。
能设置比赛时间,马匹的数量等等。
在任意时间段内马匹的速度是随机的。
开始比赛之后以动画显示赛马过程。
提示:使用多线程11.ATM柜员机模拟程序要求:使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1)查询余额:初始余额为10000元2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3)ATM存款:不能出现负存款。
4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
12.超市收银系统要求:使用图形用户界面。
由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。
从数据库中取出有关价格信息,再把这些信息返回给收银台。
同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。
另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。
如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。
13.扩充的万年历多功能计时功能:当前时间显示;按年月显示日历;调整时间。
备忘录功能:备忘录设置,备忘录删除。
14.网络监听程序使用图形用户界面。
有服务器和客户端,服务器监听客户端的登陆。
即:如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。
绿灯表示连接,红灯表示断线。
提示:socket的监听方法15.全球通计费程序使用图形用户界面。
使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。
能根据输入实现各种用户的话费的计算并显示月实时帐单。
提示:使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。
16.日历记事本要求:带有日程提醒功能的日历。
1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。
2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。
3)查询信息:用户可以查询到某个月的所有的提示信息。
17.电子英汉词典能够编辑词典库中的信息能够实现英译汉,汉译英。
(要考虑一词多义)18.小游戏要求:程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。
(使用图形界面)19.敏感词汇分析要求:任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。
20. 一个简单的学生成绩管理信息系统数据要求:1)建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。
2)至少要有5个班级,每个班级要有10名以上学生。
3)使用.txt格式文本表示各种表。
功能需求:1)能够实现根据以下关键字查询:学生姓名、学号、班级、课程名称。
2)能够实现按照单科成绩、总成绩、平均成绩、学号排序。
3)能够实现学生信息的插入、删除和修改。
4)能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。
5)能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。
界面要求:1)尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。
2)如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。
附录:Java编码规范一、Java 命名约定采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一避免使用长的名字(一般小于15个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)包(Package)采用完整的英文描述符,应该都是由小写字母组成。
对于全局包,将你的Internet 域名反转并接上包名。
例如:java.awt,com.ambysoft.www.persistence类(Class)采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。
Class的名字建议使用名词或者名词短语。
例如:Customer, SavingsAccount,LayoutManager等接口(Interface)接口的名字取决于接口的主要功能和用途。
如果接口是使对象具有某种特定的功能,则接口的名字建议使用可以描述这种功能的形容词(加上-able或者-ible 后缀)例如:Searchable,Sortable,NetworkAccessible等如果接口不是使对象具有某种特定的功能则建议使用名词或者名词短语(同类的命名规则)。
组件/部件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型。
okButton, customerList,fileMenu异常(Exception)通常采用字母 e 表示异常。
类变量字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。
firstName, lastName静态常量字段(static final)全部采用大写字母,单词之间用下划线分隔。
MIN_BALANCE, DEFAULT_DATE方法方法命名采用大小写混合的形式。
以小写字母开头,名字中其他单词的首字母以大写字母开头,所有其它的单词都为小写字母,不要使用下划线分隔单词。
方法的命名应该能描绘出方法的作用和功能,方法的名字建议使用祈使动词或者动词短语。
例如:showStatus(),drawCircle(),addLayoutComponent()成员函数被访问字段名的前面加上前缀get。
getFirstName(), getLastName()布尔型的获取成员函数所有的布尔型获取函数必须用单词is 做前缀。
isPersistent(), isString() ;设置成员函数被访问字段名的前面加上前缀set。
setFirstName(), setLastName(),setWarpSpeed()二、空白的使用相关空行规范空行的使用有益于将代码按照逻辑分段,提高代码的可读性。
在下列情况下建议使用一个空行:●在版权声明块、包声明块、引用声明块之后;●在类的声明之间;●在方法的声明之间;●在类中声明最后一个属性之后,声明第一个方法之前。
空格规范下列情况建议使用单个空格(不是Tab):在一个关键字和它所修饰的块之间。
可用于如下的关键字:catch,for,if,switch,synchronized,while 。
下列关键字的后面不要跟随空格:super ,this 。
在一个参数列表中逗号之后。
空格不应该置于方法名与其左括号之间左括号和后一个字符之间不应该出现空格右括号和前一个字符之间也不应该出现空格例如:public setMethod(int i, String j)缩进规范行的缩进要求是四个空格。
由于在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度,所以请不要使用Tab键。
建议修改各管理工具的设置将Tab字符扩展成4个空格。
三、循环计数器通常采用字母i,j,k 或者counter 都可以接受。
i, j, k, counter四、Java 注释约定一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。
·一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释(建议)对于复杂点的逻辑,注释出为什么做了一些事,而不仅仅是做了什么·示范文档注释在紧靠接口、类、成员函数和字段声明的前面注释它们。
单行在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。
注释符"//"后必须紧跟一个空格,然后才是注释信息。
·注释哪些部分类类的目的、即类所完成的功能,注释出采用的不变量。
接口设置接口的目的、它应如何被使用以及如何不被使用。
成员函数注释对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;普通成员函数内部注释控制结构,代码做了些什么以及为什么这样做,处理顺序等。