java基础练习
- 数据类型
- 控制语句
- 循环语句
- 数组(一)
- 数组(二)+ 方法
- 面向对象 - 类与对象
- 面向对象 - 对象的使用、类的封装
- 面向对象 - 继承和多态
- 项目:图书管理系统(简易版)
答案在每小节的末尾!!!!!!!!!!!!!!!!!!!
数据类型
- 新建一个JAVA工程HelloJava,创建一个test包,新建一个FristDemo类,写一个main方法,定义两个int 类型的变量 a 和 b ,分别打印输出a与b的‘加/减/乘/除/取余’的结果
- 在test包下继续创建一个SecondDemo类,写一个main方法,定义一个int类型的变量 i ,输出这个变量的3次方的结果。
- 在test包下继续创建一个ThirdDemo类,写一个main方法,定义两个double类型的变量df和ds,分别将他们的‘加/减/乘/除的结果赋值给一个新的变量res,并打印输出每一个结果。
- 新建一个工程MyProject,创建一个demo包,新建一个TestOne类,在main方法中定义两个boolean 类型的变量flag和mark ,将他们的“短路与”和“短路或”的逻辑运算结果赋值给新的变量result,并打印输出这两个结果。
- 在demo包下继续新建一个TestTwo类,在main方法中定义三个int类型的变量 x y z,任意赋值,判断(x+y)与 z 的关系是“大于”时的结果,“小于”时的结果,“等于”时的结果,将三个结果赋值给一个变量res,并打印输出每一个结果。
- 在demo包下继续新建一个TestThree类,在main方法中定义三个 int类型变量 x, y, z,求出三个数中最小的那个数是多少,打印输出。(用三元运算符)。
- 在MyProject这个工程中创建一个hello包,新建一个TestSwap类,在main方法中任意定义两个int类型的变量a=13和b=7,交换a和b的值,并打印交换后的结果(两种方法)
【 数据类型 】答案参考:点这里
控制语句
- 商品换购系统
满100元可参与换购
手动输入本次消费的金额:满100元可
选项一: +1元换购鼠标
选项二: +5元换购键盘
选项三: +10元换购充电宝
选项四: +20元换购移动硬盘
根据输入的选项来判断换购的物品,并显示最终消费
否则直接结算显示消费金额。 - 机票订购系统
假设机票的原价是1000元。
根据淡季,旺季 以及 头等舱 经济舱 来判断机票的最终价格。
首先用户输入选择旅游的时间 :1淡季 2旺季
然后继续输入选择舱位:1头等舱 2经济舱
最后显示最终的机票价格
若输入其他数字则提示信息输入有误并结束程序
注: 5 6 7月, 9 10 11月为旺季,其他为淡季,
淡季经济舱打6折 ,头等舱打7折
旺季经济舱打8折,头等舱打9折 - 猜拳游戏
玩家出拳 判断出拳文字 (判断玩家输入有误情况)
电脑出拳 判断出拳的文字
判断胜负
【 控制语句 】答案参考:点这里
循环语句
- 直角三角形1
- 直角三角形2
偶数行打印o,奇数行打印z - 等腰三角形1
思路:
先用循环做出左边白色部分的三角形,再做出右边部分的三角形(下面几题均适用)
- 等腰三角形2
偶数行打印z,奇数行打印o - 菱形
- 九九乘法表
【 循环语句 】答案参考:点这里
数组(一)
- 创建一个int类型的一维数组,将里面的每一个元素 复制 给另一个数组,并且遍历出来。
- 创建一个int类型的一维数组,根据键盘输入一个数,将这个数加到这个数组的末尾,并遍历出这个新的数组。
- 将星期一到星期日放进数组中,根据键盘输入一个数字,来对应打印星期数。
- 随机10个(1-100之间)的整数,放进数组中,将角标为奇数的元素的值翻倍,然后遍历出来
- 一维打地鼠
初始化char类型的一维数组 O O O O O 五个洞
游戏循环10次
随机角标地鼠随机出现 O O O X O
提示玩家击打
判断是否打中
击中得2分,未击中扣1分(乱输入也视为没打中)
游戏结束,统计击中次数,未击中次数 和最后的得分
【 数组(一) 】答案参考:点这里
数组(二)+ 方法
- 在main方法中根据键盘输入一个1-100之间的数字n,另外写一个方法showLove,传入这个n,循环n次"我爱你"
- 在main方法中随便定义一个字符串,另外写一个方法printString,传入这个字符串,此方法专门负责将字符串打印出来。
- 在main方法中定义一个数组,写一个方法showIntArr,专门用来遍历int类型的一维数组。
- 写一个方法showCharArr,专门用来遍历char类型的一维数组。
- 写一个方法showStringArr,专门用来遍历String类型的一维数组。
- 写一个方法专门showCharArr2,用来遍历char类型的二维数组
- 在main方法中有一个int类型一维数组,写一个方法getMax,用于获取数组中的最大值,调用方法之后将返回的最大值赋值给一个变量a,把a打印出来。
- 根据键盘输入一个数字(1-7),写一个方法getWeek,传入这个数字,专门来获取这个数字所对应的星期几字符串,之后调用这个方法来获取返回的字符串并赋值给s,打印出这个s。
- 在main方法中定义一个int类型的一维数组,根据键盘输入一个数字,
写一个方法addNum,传入这个数字和数组,把这个数字加到这个数组的末尾。之后在main方法中调用addNum的方法把返回出来的数组赋值给原来的数组,并遍历原来的数组。 - 写一个方法sortMethod1,用于对int类型一维数组进行选择排序;写一个方法sortMethod2,用于对int类型一维数组进行冒泡排序。
- 二维打地鼠
0. 打包4个方法:欢迎的方法,遍历地洞数组的方法,随机出现敌人的方法,显示游戏结束统计的方法。 1. 打包4个方法:欢迎的方法,遍历地洞数组的方法,随机出现敌人的方法,显示游戏结束统计的方法。
- 初始化char类型的二维数组,每个洞都是 O
- 游戏循环10次
- 地鼠随机出现在二维数组中的某个元素位置,X
- 提示玩家击打
- 判断是否打中
- 击中得2分,未击中扣1分
- 游戏结束,统计击中次数,未击中次数 和最后的得分。
- 按99重新开始(数据还原),按88退出游戏
【 数组(二)+ 方法 】参考答案:点这里
面向对象 - 类与对象
一.、基础
1.创建一个 学生类 Student,属性:姓名,年龄,学号,手机号
2.学生有一个自我介绍的方法showMe,(我的名字叫XX,我XX岁)
3.将自己本排的6位同学创建出来,分别调用他们各自的自我介绍的方法
4.将本排的同学放进数组中,遍历出他们的学号和姓名。
二、猜拳游戏(面向对象版)
1.将猜拳游戏改造成面向对象版:玩家类,机器人类,裁判类,运行类,专门写main的类
2.玩家类:玩家姓名,出拳数,出拳的方法
3.机器人类:名字,出拳数,出拳的方法
4.裁判类:名字,玩家得分,电脑得分,判断胜负的方法
5.运行类Game:start(),承载main方法的类 Test
6.要求一开始玩家输入姓名开始游戏(s.next()方法输入字符串 )
7.赢一局得2分,先到10分者获胜(判断特殊情况)
8.8-重新开始,0-退出游戏
【 面向对象 - 类与对象 】参考答案:点这里
面向对象 - 对象的使用、类的封装
一、打地鼠(封装版)
- 1.将打地鼠游戏进行面向对象处理,分为:洞穴类,玩家类,地鼠类,裁判类,游戏运行类,main方法类。
2.洞穴类:参考属性:洞穴的类型O,方法:打印洞穴的方法
3.玩家类:属性:玩家输入的行与列,方法:玩家击打的方法
4.地鼠类:属性:地鼠出现的行与列,地鼠的价值分数,方法:地鼠出现的方法
5.裁判类:属性:游戏次数,得分,击中次数,未击中次数,方法:判断打中的方法
6.游戏运行的类: 写start()方法
7.游戏循环10次,统计得分,击中,未击中
8.99-重新开始,88-退出游戏
【面向对象 - 对象的使用、类的封装】参考答案:点这里
面向对象 - 继承和多态
- 打地鼠(多敌人)
1.将打地鼠游戏进行面向对象处理,分为:洞穴类,玩家类,地鼠类,裁判类,游戏运行类,main方法类。
2.洞穴类:参考属性:洞穴的类型O,方法:打印洞穴的方法
3.玩家类:属性:玩家输入的行与列,方法:玩家击打的方法
4.地鼠类:属性:地鼠出现的行与列,地鼠的价值分数,方法:地鼠出现的方法X
5.裁判类:属性:游戏次数,得分,击中次数,未击中次数,方法:判断打中的方法
6.游戏运行的类: 写start()方法
7.游戏循环10次,统计得分,击中,未击中
8.99-重新开始,88-退出游戏
9.使用继承多态出现不同的敌人,敌人属性:敌人类型M 10,S 20,W 30 每次出现一只
10.Mouse全局出现,Snake只出现在前两列,Wolf只出现在后两行
【面向对象 - 继承和多态】参考答案:点这里
项目:图书管理系统(简易版)
- 用到的知识点:封装,多态,集合,异常
0.构建模拟数据库类,用数组存储数据(用户和图书)
1.一级菜单显示:登录 注册 退出系统
2.登录成功去二级菜单
3.注册成功回到一级菜单
4.二级菜单显示:查看所有图书,新增图书,修改图书价格,删除图书,注销
5.遍历所有图书信息
6.新增图书:将图书加入数据库的数组中
7.修改图书价格:先输入图书编号,再修改
8.删除图书:先输入图书编号,在删除
9.注销:回到一级菜单
10.使用集合存储 用户 和图书 ,接口修改,实现类
11.处理系统中所有的异常(一二级菜单 价格输入)
【 图书管理系统(简易版 】参考答案:(BookManager_V3.0)可下载 https://github.com/wengdemo/BookManager.git