郑州大学现远程教育《面向对象程序设计》.docx

上传人:b****6 文档编号:7706871 上传时间:2023-05-11 格式:DOCX 页数:16 大小:69.63KB
下载 相关 举报
郑州大学现远程教育《面向对象程序设计》.docx_第1页
第1页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第2页
第2页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第3页
第3页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第4页
第4页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第5页
第5页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第6页
第6页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第7页
第7页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第8页
第8页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第9页
第9页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第10页
第10页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第11页
第11页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第12页
第12页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第13页
第13页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第14页
第14页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第15页
第15页 / 共16页
郑州大学现远程教育《面向对象程序设计》.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

郑州大学现远程教育《面向对象程序设计》.docx

《郑州大学现远程教育《面向对象程序设计》.docx》由会员分享,可在线阅读,更多相关《郑州大学现远程教育《面向对象程序设计》.docx(16页珍藏版)》请在冰点文库上搜索。

郑州大学现远程教育《面向对象程序设计》.docx

郑州大学现远程教育《面向对象程序设计》

郑州大学现代远程教育《面向对象程序设计》

(计算机科学与技术本科)

课程作业

请保存为WORD格式的文档,登陆学习平台(

要求:

建议1-3选一题,4-7选一题,8-10任选一题,且所有学生题目要相同。

1、编写一个程序模拟超市的收银系统。

具体要求如下:

(1)提示输入顾客买的商品名称和单价(以元为单位),直到所有购买商品输入完毕(空格键表示输入完毕)。

(2)在屏幕上输出顾客购买的所有商品的名称和单价,每种商品的总价,顾客应付钱数;(3)提示输入实际交的钱数,计算应找钱数并显示。

(4)按回车键返回第一步,按ESC键推出程序运行。

程序运行结果如下所示:

输入商品名称:

薯片

输入单价:

1.00

输入数量:

10

输入商品名称:

洗衣粉

输入单价:

9.8

输入数量:

1

(按空格键,退出输入过程)

商品名称单价数量总价

薯片1.001010

洗衣粉9.819.8

应付:

19.8(元)

输入实际付:

20元

找零:

0.2元

(按回车键返回第一行)

商品名称:

×××

(按ESC则退出)

2、编写一个程序实现24小时计时转换为12进制计时。

具体要求:

以四位整数表示24小时计时法时间,pm表示下午,am表示上午

运行示例:

例1:

输入24小时计时法时间:

1743

12小时计时法时间:

1743是5.43p.m.

例2:

输入24小时计时法时间:

0904

12小时计时法时间:

0904is9.04a.m.

3、编写一个简单的加密程序:

输入四位整数,按照以下加密算法处理后,生成加密后的四位整数输出。

加密算法:

(每一位的数字+8)mod10,处理后的数字中第1位和第四位交换,第2位和第3位交换。

运行示例:

输入四位整数:

7523

加密后的四位整数是:

1035

4、编写一个简单的学生成绩管理系统。

具体要求如下:

建立两个类StudentList和StudentListTester.StudentList类用数组存放一组Student对象,记录当前数组中记录的学生数量。

.设计方法:

在数组中增加一个Student对象;检查数组是否已满,是否空;获得数组中某个位置的Student对象,获得Student对象的众数。

其他具体内容请看下图:

StudentListTester类用于测试StudentList类.

程序首先提示输入数组大小,然后创建指定大小的StudentList类。

程序允许用户从下面的菜单中连续选择:

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

如果选择1,提示用户输入学生的姓名,学号,以及数学,英语和程序设计三门课的成绩。

如果选择2,显示当前数组中所有学生的名字,数量,每个人的各门课程的成绩和平均成绩

如果选择3和4显示那些满足条件的学生的情况。

选择5,显示退出信息后退出程序。

程序运行示例:

输入学生最大数量:

3

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

1

输入学生名字:

张三

输入学号:

9908

输入张三的成绩

数学?

48

英语?

62

程序设计?

55

***张三已经加入学生名单***

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

1

输入学生名字:

李四

输入学号:

9904

输入李四的成绩

数学?

67

英语?

53

程序设计?

75

***李四已经加入学生名单***

输入选择[1-5]:

1

输入学生名字:

人似惊鸿

输入学号:

9811

输入人似惊鸿的成绩

数学?

25

英语?

30

程序设计?

35

***人似惊鸿已经加入学生名单***

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

1

***不能增加,学生数量已满***

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

2

***学生信息***

张三:

9908

数学:

48英语:

62程序设计:

55平均成绩:

55.0

李四:

9904

数学:

67英语:

53程序设计:

75平均成绩:

65.0

人似惊鸿:

9811

数学:

25英语:

30程序设计:

35平均成绩:

30.0

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

3

***学生信息***

人似惊鸿:

9811

数学:

25英语:

30程序设计:

35平均成绩:

30.0

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

4

***学生信息***

张三:

9908

数学:

48英语:

62程序设计:

55平均成绩:

55.0

[1]增加一个学生

[2]显示数组中所有的学生以及他们的成绩

[3]显示数组中平均成绩<40的学生以及他们的成绩

[4]显示数组中姓张的学生以及他们的成绩

[5]退出

输入选择[1-5]:

5

***再见***

5、编写一个自动点歌系统

具体要求:

创建两个类PlayList和JukeBox.。

PlayList类用数组放一组字符串,还记录了当前字符串的个数。

这个类中要设计方法完成以下功能:

增加一个字符串,删除一个字符串,获得指定位置的字符串,获得当前字符串的个数,检查字符串数组是否为空,是否已满。

其他内容见UML图:

JukeBox类用来测试PlayList类,,它模拟点歌操作。

每一个字符串代表歌名。

程序首先提示用户输入歌曲的最大个数,然后创建Pllayist对象。

接着程序允许用户选择:

[1]增加一首歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选项1,输入歌曲的名字和歌手的名字

选项2显示第一首歌的名字,然后删除

选项3显示当前所有歌曲列表

选项4:

显示:

再见,退出程序

程序运行示例:

***点歌台***

歌曲最大个数:

2

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

3

***没有歌曲***

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

1

输入歌曲名称和歌手名字–周杰伦:

听妈妈的话

***加入歌曲***

周杰伦:

听妈妈的话

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

1

输入歌曲名称和歌手名字–S.H.E:

SuperStar

***加入歌曲***

S.H.E:

SuperStar

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

1

***不能增加,歌曲表已满***

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

2

***现在播放***

周杰伦:

听妈妈的话

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

3

***当前歌曲列表***

S.H.E:

SuperStar

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

1

输入歌曲名称和歌手名字–周杰伦:

发如雪

***加入歌曲***

周杰伦:

发如雪

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

3

***当前歌曲列表***

S.H.E:

SuperStar

周杰伦:

发如雪

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

2

***现在播放***

S.H.E:

SuperStar

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

6

***无效操作***

[1]增加歌曲

[2]播放第一首

[3]显示歌曲列表

[4]退出

选择[1-4]:

4

***欢迎再次光临,再见***

6、编写一个简单的工资管理系统。

具体要求:

设计三个类Employee类,Manager类和HourlyWorker类。

Manager类和HourlyWorker类是Employee类的子类。

Emloyee类记录职工的姓名和编号,Manager类增加了经理的工资属性;Hwourlyworker记录钟点工每小时的工资数和一个月的工作小时数。

每一个类中必须包含构造函数,析构函数,修改和获取所有数据成员的函数,计算职工工资,显示职工姓名和编号的虚函数。

主函数中设计一个数组存放所有职工对象。

提示用户选择:

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

选择1时,输入职工名字,编号,职工类别,工资情况

选择2时,显示数组中所有职工的姓名,编号和工资

选择3时,显示数组中所有经理的姓名,编号和工资

选择4时,显示数组中所有钟点工的姓名,编号和工资

选择5,提示“谢谢使用,再会”后,退出。

程序运行示例:

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

1

输入职工信息:

姓名:

张三

编号:

9904

类别:

经理

月工资:

2000

***增加一个职工***

张三99042000

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

1

输入职工信息:

姓名:

李四

编号:

9905

类别:

经理

月工资:

1000

***增加一个职工***

李四99051000

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

1

输入职工信息:

姓名:

王五

编号:

9906

类别:

钟点工

小时工资:

10

月工作小时数:

50

***增加一个职工***

王五9906小时工资:

10,月工作小时数:

50

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

2

***职工工资表***

张三99042000

李四99051000

王五9906500

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

3

***经理工资表***

张三99042000

李四99051000

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

4

***钟点工工资表***

王五99061050500

 

[1]增加一个职工

[2]显示数组中所有的职工以及他们的工资

[3]显示数组中所有的经理以及他们的工资

[4]显示数组中钟点工以及他们的工资

[5]退出

输入选择:

5

***谢谢使用,再会***

 

7、定义如下整数链表的函数成员

classLIST{

structNODE{

intvalue;

NODE*next;

NODE(int,NODE*);

}*head;

public:

LIST(void);

LIST(constLIST&);

intfind(intvalue)const;//查找元素value,若找到返回1,否则返回0

intoperator[](intk)const;//取表的第k个元素

virtualLISToperator+(constLIST&);//表的合并运算

virtualLISToperator+(intvalue);//插入一个元素

virtualLISToperator-(intvalue);//删除一个元素

virtualLIST&operator+=(constLIST&);//表的合并运算

virtualLIST&operator+=(intvalue);//插入一个元素

virtualLIST&operator-=(intvalue);//输出一个元素

virtualLIST&operator=(constLIST&);//赋值

virtual~LIST(void);

}

 

8、定义如下集合类的函数成员

classSET{

int*elem;存放集合元素的动态内存

intcount,total;目前元素个数及最大元素个数

public:

SET(inttotal);

SET(constSET&);

intfind(intval)const;//查找元素val,若找到返回1,否则返回0

intfull(void)const;//集合满时返回1,否则返回0

intempty(void)const;//集合空时返回1,否则返回0

virtualSEToperator+(constSET&);//集合的并集

virtualSEToperator-(constSET&);//集合的差集

virtualSEToperator*(constSET&);//集合的交集

virtualSEToperator<<(intvalue);//增加一个元素

virtualSEToperator>>(intvalue);//删除一个元素

virtualSET&operator+=(constSET&);//集合的并集

virtualSET&operator-=(constSET&);//集合的差集

virtualSET&operator*=(constSET&);//集合的交集

virtualSET&operator<<=(constSET&);//增加一个元素

virtualSET&operator>>=(constSET&);//删除一个元素

virtualSET&operator=(constSET&);

virtual~SET(void);

}

9、定义类描述有限状态自动机,状态的输入和输出关系可以描述为链表数据成员:

classSTATE;

classLIST{

LIST*next;

charinput;

STATE*output;

LIST(charin,STATE*out);//私有,仅供STATE使用

~LIST();

friendSTATE;

}

classSTATE{

char*name;//状态名

LIST*list;//输入及输出列表

staticSTATE*error;//自动机陷阱

public:

voidenlist(charin,STATE*out);//插入list

constSTATE*next(charin)const;//输入in转移到下一个状态

constSTATEstart(char)const;//启动有限自动机

STATE(char*name);

~STATE();

}

使用有限自动机编程解决如下问题:

有一人带着狼,羊和草来到河的左岸,左岸只有一条无人摆渡的船。

这个人要从左岸过河到右岸,可是这条船最多只能装一个人河其他三者之一,否则便会沉没。

如果没有人看管,狼会吃掉羊,或者羊会吃掉草。

问如何过河才能保证羊和草的安全。

提示:

作为有限状态自动机的输入,人单独过河用字符m表示,人带狼过河用字符w表示,人带羊过河用字符s表示,人带草过河用字符g表示,声明有限自动机夫人start,stop以及error状态对象,如果start.start(“smwsgms”)=&stop,则过河成功,否则如果start.start(“smwsgms”)=&error,则过河失败。

10、在二维坐标系上定义GRAPH抽象类,该类具有基点坐标和图形显示等纯虚函数。

从该类派生出三角形,圆形,和四边形等特定图形类,从圆类和三角形类派生出圆内接三角形类,并为特定图形类定义相应纯虚函数。

定义每一个类的构造函数,析构函数,绘图函数以及相应的数据成员。

设计Draw类,其中设计一个数组数据成员存放各种图形对象,设计一个方法绘出每个图形的形状。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2