面向对象程序设计实验+Java语言程序设计实验题目
要求:
1、从基础题中任选五题或者从综合题中任选一题,完成相应代码。
2、格式要求:①所选题目
②代码,要求有注释语句。
③结果的截图,截取整个eclipse界面(如实验指导书上的截图)
④结果分析
3、将结果写在word文档中,以学号+姓名的方式命名,如1308610101张三
4、上交时间:第19周周一(2014年7月7日)之前
5、杜绝抄袭,如有雷同,以0分处理。
一、基础题
1、猜数游戏(掌握程序结构及随机方法应用)
程序说明:游戏的开始由机器产生一个随机数(1~100之间,用Math.random()),然后游戏者在程序的提示下猜数,若输入的数比这个数大,程序提示:Your answer is HIGH,try again. ,否则,程序提示:Your answer is LOW,try again.,直到猜对为止。程序可实现连续猜数,直到游戏者退出。
程序输出要求:累计游戏者猜对一个数所需次数n,当n<=7时,给出“Congratulation”字样;当7<n<15时,给出“I can bet you can do it better.”;当n>=15时,用System.exit(0)退出程序。
2、百钱百鸡(穷举算法)
我国古代数学家张丘键在《算经》中出了一道题“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
注:穷举法是最简单、最常见的一种程序设计方法。它充分利用了计算机处理的高速特性。使用穷举法的关键是确定正确的穷举范围,即不能过分扩大、也不能过分缩小穷举的范围。
3、简单计算器
请编写一个程序计算表达式:data1 op data2的值。其中,op为运算符+、-、*、/。
4、打印出所有的“水仙花数”
所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为:153=13+53+33。
5、字符串处理方法
编写两个方法,不用系统提供的方法,自己实现如下功能:求字符串长度方法(方法原型为:int length()),字符串比较方法(方法原型为:boolean equals()。)。
6、编一程序,实现将输入的一个无符号整数转换为二进制和八进制表示,分别存入字符
数组中并输出。(提示:算法采用模拟人工法。)
注:计算机模拟人工是编程中常用的方法,这种方法要求编程者首先分析在人工方式下解决问题的过程,从中找出步骤和规律,然后编写程序,按照人工解决问题的步骤和规律进行操作。
7、判断一个数是否是数组中的成员(用二分法查找)
已知数据a中一共有10个已排序的整数(由小到大排列)。现在从键盘上输入一个数,判断这个数是否是数组a中的数,如果是的话,打印出此数在数组a中的位置来,否则打印“找不到“。
(提示:①设待查找的数为x,设三个位置变量l、m、h分别代表查找范围的顶部、中间位置和底部,m=(l+h)/2,把数分成以a[m]为中点的两段范围。②判断x 是否等于a[m],若是,则找到。③若大于a[m],则x必在后半段范围,即在a[m+1]至a[h]。则舍弃前半段,再在后半段重新划分两段范围,定出l、m和h,重复以上步骤,逐步缩小查找范围。)
8、位数大小排序(掌握数值排序算法)
程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数。
9、请编写方法fun,方法的功能是求出二维数组周边元素之和,作为方法值返回。二维数组中的值在主方法中赋予。
10、矩阵乘法(数值求解算法)
编写一个方法实现矩阵A(2行3列)与矩阵B相乘(3行2列),乘积放在C数组中。
要求:通过键盘自主对两个矩阵赋值
11、求所有不超过200的N值,N的平方是具有对称性质的回文数。回文数就是将一个数从左向右读是一样的,如满足题意要求的数有:N=11,112=121。
12、插入后自动排序(掌握用穷举法进行比较、交换)
把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列。
13、计算分数的精确值
使用数组精确计算M/N(0 注:由于计算机内字长有限,常规的浮点运算都有精度限制,为了得到高精度的计算结果,就必须自行设计算法。 提示:可将商存放在一维数组中,进行除法运算时,可模拟人的手工操作,即每次求出商的一位后,将余数乘以10,再计算商的下一位。若某次余数为0,则为有限不循环小数。若某次计算后的余数与前面的某个余数相同时,则M/N是无限循环小数。 14、马克思手稿中的数学题(穷举算法) 马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆吃 饭共花了50先令:每个男人花3先令,每个女人花2先令,每个小孩花1先令,问男人、女人、小孩各有几人? 15、用梯形法求定积分(数值求解算法) 用梯形法编程求方法f(x)=x2+2x+1的定积分 的值。 2 ) (dx x f 提示:把积分区间[a,b]等分为n等分(a,b,n的值由程序输入。),可得到若干个小梯形,积分面积就近似为这些小梯形面积之和。 16、小孩吃梨问题:小孩买了一些梨,当即吃了一半,还不过瘾,又多吃了一个,第二天早上又将剩下的梨吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半,并又多吃了一个。到第18天只剩下一个梨了,问小孩共买了多少梨? (提示:据初始条件,用倒推法。) 17、一个奇异的三位数(穷举算法) 一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码顺序正好相反,求这个三位数。 18、约瑟夫问题(掌握一维数组的用法)。15个基督徒和15个异教徒在海上遇险,必须将一半的人投入大海,其余的人才能幸免于难,于是想了一个办法:30个人围成一个圆圈,从第一个人开始依次报数,每数到第9个人就将他扔入大海,如此循环直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是异教徒。 提示:①30个人顺序编号,自增量k报数,k%9==0时,此人投入大海。投入大海标志为置数组元素值为0(或-1)。投入大海的人不再报数。 程序输出要求:程序运行后,显示原始顺序,每次投入大海的人的信息及剩下人的顺序。 19、回文数的形成:任取一个十进制整数,将其倒过来后与原来的整数相加,得到一个新的整数后重复以上步骤,则最终可得到一个回文数。请编程验证。(回文数就是将一个数从左向右读是一样的,如121,11等)。(注:回文数不超过2147483647) 回文数的这一形成规则目前还属于一个猜想,尚未获得数学上的验证,有些回文数要经历上百个步骤才能获得,请编程验证,打印形成过程。如输入整数78,则形成回文数的过程为:78+87=165,165+561=726,726+627=1353,1353+3531=4884。 提示:一个方法用来求反序数,另一个方法判断是否为回文数,在主方法中输入输出。 20、人机猜数游戏 由计算机“想”一个四位数,请人猜这个四位数是多少。人输入这个四位数后,计算机首先判断这四个数中有几个猜对了,并且在猜对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数为止。请编程实现该游戏,游戏结束时,显示人猜一个数用了几次。 21、求转置矩阵 编写一个程序,求3×4数组的转置矩阵。要求用户通过键盘自主对矩阵赋值,在change 方法里把矩阵转置。 23、取子串方法 编写求子串方法s.subString(n1,n2),在串s中从n1位置开始取n2-n1个字符的子串 24、输出九九乘法口决表(循环结构的应用,表的格式自己设定) 25、设计一个方法,对n个字符串按由小到大的顺序排序,n由程序读入,字符串的输入和输出都在main方法中进行。 26、输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开)。若一个单词恰好在行末结束,则下一行的开头应有空格,句号和逗号后面也应有空格。 27、计算字符串中子串出现的次数 程序说明:利用输入方法输入任意两个字符串,请你编写程序求出第二个字符串在第一个字符串中出现的次数,即在第一个字符串中有几个第二个字符串。 28、递归算法 用递归算法编写求1~n的累加和。在主方法中调用。 二、综合题 1、学生成绩管理系统设计(数组、方法、算法、流程结构的综合应用) 程序说明:有N个学生,每个学生的数据包含学号(不重复)、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能: (1)主菜单 (2)各菜单项功能 成绩录入:输入学生的学号、姓名及三门课的成绩; 成绩查询:(至少一种查询方式)。 按学号查询学生记录。 查询不及格学生的记录。 ③成绩统计: 计算学生的平均分; 根据学生的平均分高低,对学生的数据进行排序后输出; 对学生单科成绩排序,输出学生姓名与该科成绩; ④退出系统:退出整个系统(即主菜单)。 2、图书信息管理系统设计 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 系统以菜单方式工作 图书信息录入功能(图书信息用文件保存) 图书信息浏览功能 查询和排序功能:(按书名查询或者按作者名查询) 图书信息的删除与修改(可选项) 3、学生信息管理系统设计 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存) 学生信息浏览功能 查询、排序功能(按学号查询或者姓名查询) 学生信息的删除与修改(可选项) 4、通信录管理系统 用java语言设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 (一)功能要求 (1)查看功能:选择此功能时,列出下列三类选择。 A 办公类 B 个人类 C 商务类,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如 杨春 135******** 商务类 chuny@https://www.doczj.com/doc/c58691654.html, 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。 5、车票管理系统 一车站每天有n个发车班次,每个班次都有一班次号(1、2、3…n),固定的发车时间, 固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如 班次发车时间起点站终点站行车时间额定载量已定票人数 1 8:00 上海南杭州 2 45 30 2 6:30 嘉兴杭州 0.5 40 40 3 7:00 嘉兴杭州 0.5 40 20 4 10:00 嘉兴杭州 0. 5 40 2 … (一)功能要求:用java语言设计一系统,能提供下列服务: (1)录入班次信息(信息用文件保存),可不定时地增加班次数据 (2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。 (3)查询路线:可按班次号查询 ,可按终点站查询 (4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数 B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 6、单项选择题标准化考试系统 功能要求: (1)用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案) (2)试题录入:可随时增加试题到试题库中 (3)试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入) (4)答题:用户可实现输入自己的答案 (5)自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。 7、其他题目: (1)计算24游戏 要求:输入四个数通过加减乘除计算出24,显示计算过程,并提示成功信息。 (2)模拟汉诺塔移动 输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子,A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C柱上,显示出盘子在几个柱之间的移动过程。 8、多功能计算器 功能要求:该程序显示GUI用户界面,能实现整数的加、减、乘、除、乘方、立方、n次放、开平方、开n次方、倒数、三角方法、反三角方法运算。 界面要示:用图形界面实现。 9、ATM柜员机模拟程序 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: ○1查询余额:初始余额为10000元 ○2 ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 ○3 ATM存款:不能出现负存款。 ○4修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 界面要示:用字符界面实现、也可用图形界面实现。 10、超市收银系统 要求:使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。 界面要示:用字符界面实现、也可用图形界面实现。 11、万年历 功能要求:实现日期与星期的查询 界面要示:用图形界面实现。 12、日历记事本 要求:使用图形用户界面,能显示月历,用户可以更改月份和年份,带有日程提醒功能的日历。 ○1显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。 ○2定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 ○3查询信息:用户可以查询到某个月的所有的提示信息。 ○4能够显示系统时间。能够设置闹钟。能够查询若干国际大城市(分布在不同时区)的时间。 13、电子英汉词典 功能要求: ○1能够编辑词典库中的信息 ○2能够实现英译汉,汉译英。(要考虑一词多义) 14、学生成绩管理 功能要求: ①. 输入若干同学的学号,姓名,四科成绩(应用数学、大学英语、Java程序设计、计算 机应用基础),存储入数据库中。 ②. 计算出平均成绩。以平均成绩降序输出成绩表。 ③. 输出全组各科平均分,最高分和最低分。 ④. 输入姓名查询成绩 界面要示:无。 15、对对碰游戏 功能要求:该程序显示GUI用户界面,界面中随机安排10对图片,背面向上,当翻开的2张图片相同时就消失,不相同时重新翻回背面,最终显示用时和分数(=400-翻的次数)。 界面要示:图形界面实现。 16、绘图板 功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小也可在界面中设定)。 界面要求:图形界面实现。 17、五子棋 功能要求:可两人对下(用鼠标操作),判断胜负。 界面要求:美观简洁,有简单操作说明。 18、其他题目: ①. 如扫雷、红心大战等游戏程序的设计; ②. 学生信息管理系统、试题管理系统等综合系统; ③. 动画制作及媒体播放器,根据所学知识编制一些多媒体程序; ④. 文件加密解密、相册管理等应用型系统; ⑤. 网络聊天、局域网管理等网络系统。