本篇的练习是一个综合性的练习,结合了各个知识点,比如选择结构、循环结构、数组等java基础知识。综合性运用比较强。
目录
1、进阶练习一、学习网站(主要考察选择结构、输入语句)
2、进阶练习二(选择结构、循环)
3、进阶练习三(数组、输入、数组遍历)
4、进阶练习四(循环、数组、选择结构)--!!!!
5、练习五;
1、进阶练习一、学习网站(主要考察选择结构、输入语句)
请使用现有的java基础知识开发一个学习网站主要实现如下功能:
(1)、显示第一层登录菜单,选择登录后再显示第二层主菜单,否则退出系统,显示欢迎下次使用
(2)、进入主菜单后可以根据菜单选择对应功能,输出对应功能名称即可
package com.demo9;
import java.util.Scanner;
//菜单案例
public class Menu {
public static void main(String[] args) {
//创建对象
Menu menu = new Menu();
//展示登录菜单
int choose = menu.loginMenu();
//选择菜单
switch (choose){
case 1:
//1根据选择显示主菜单
int ch = menu.mainMenu();
switch(ch){
case 1:
System.out.println("查看消息");
break;
case 2:
System.out.println("个人中心");
break;
case 3:
System.out.println("内容管理");
break;
case 4:
System.out.println("我的学习");
break;
case 5:
System.out.println("我的订单");
break;
case 6:
System.out.println("注销功能");
break;
}
break;
case 2:
//2退出系统
System.out.println("欢迎下次使用");
break;
default:
System.out.println("输入的数字无效,请重新确认");
}
}
//展示主菜单
public int mainMenu(){
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎进入程序员学习网站");
System.out.println("***********************");
System.out.println("\t 1、查看消息");
System.out.println("\t 2、个人中心");
System.out.println("\t 3、内容管理");
System.out.println("\t 4、我的学习");
System.out.println("\t 5、我的订单");
System.out.println("\t 6、注销");
System.out.println("***********************");
System.out.println("请进行功能选择【输入序号】:");
int choose = scanner.nextInt();//读取控制台输入的整数
return choose;//返回用户选择结果
}
//展示登录菜单
public int loginMenu(){
Scanner scanner = new Scanner(System.in);
System.out.println("***********************");
System.out.println("\t 1、系统登录");
System.out.println("\t 2、退出系统");
System.out.println("***********************");
System.out.println("请进行功能选择【输入序号】:");
int choose = scanner.nextInt();//读取控制台输入的整数
return choose;//返回用户选择结果
}
}
2、进阶练习二(选择结构、循环)
使用所学知识做一个超市系统,有查询营业额、查询营业额、进货、售货、退出功能
(1)显示一个主菜单,用户可以不断的选择对应的功能,直到退出
参考答案:
package com.demo9;
import java.util.Random;
import java.util.Scanner;
public class GoodStore {
/**
* 商品营业
* @param args
*/
public static void main(String[] args) {
//定义一个原来的营业额
int banlance = 100000;
Scanner scanner = new Scanner(System.in);
GoodStore good = new GoodStore();
//显示菜单
good.showMenu();
//循环选择
int choose;
do{
System.out.println("请选择对应的功能:");
choose = scanner.nextInt();
//实现各种功能
switch(choose){
case 1:
good.queryBalance(banlance);
break;
case 2:
banlance = good.withDrawal(banlance);
break;
case 3:
banlance = good.depost(banlance);
break;
case 0:
System.out.println("退出");
break;
}
}while(choose!=0);
}
//存款
public int depost(int balance){
Scanner scanner = new Scanner(System.in);
System.out.println("输入卖出货物的金额:");
int money = scanner.nextInt();
balance+=money;
System.out.println("卖货成功");
return balance;
}
//取款
public int withDrawal(int balance){
Scanner scanner = new Scanner(System.in);
System.out.println("输入进货花掉的金额:");
int money = scanner.nextInt();
balance-=money;
System.out.println("进货成功");
return balance;
}
//查询余额
public void queryBalance(int balance){
System.out.println("您的营业额为:"+balance);
}
public void showMenu(){
System.out.println("***********************");
System.out.println("\t 1、查询营业额");
System.out.println("\t 2、进货");
System.out.println("\t 3、售货");
System.out.println("\t 4、退出");
System.out.println("***********************");
}
}
3、进阶练习三(数组、输入、数组遍历)
编写JAVA程序,输入本部门五位同学的姓名和成绩,输出五位同学的姓名以及成绩(输出的成绩在原来的成绩基础上提高20%)。
答案参考:
package com.demo10; import java.util.Scanner; public class StudentArr3 { public static void main(String[] args) { // 创建输入对象和数组 Scanner scanner = new Scanner(System.in); int[] salary = new int[5]; String[] names = new String[5]; //循环输入五位学生的信息 for (int i = 0; i < salary.length; i++) { System.out.printf("请输入第%d个学生的姓名:",i+1); names[i] = scanner.next(); System.out.printf("请输入第%d个学生的成绩:",i+1); salary[i] = scanner.nextInt(); } // 输出 System.out.println("姓名\t成绩"); for (int i = 0; i < salary.length; i++) { System.out.printf("%s\t%.2f\n",names[i],salary[i]*1.2); } } }
4、进阶练习四(循环、数组、选择结构)--!!!!
随着学校规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,学生信息管理工作变得更加复杂。
现在,需要你来开发一套规范的学生信息管理系统来提高工作效率。具体要求如下:
(1)制作程序主菜单,如下图所示
(2)制作【1】增加 功能,至少能录入10条数据。录入后应能显示出当前所有学员的信息,并在按下任意键后返回到主菜单。
(3)制作【2】查询功能,输入学号后,显示出所查询的学员的信息,并在按下任意键后返回到主菜单。特别地,如果所查询的学员不存在,则提示【找不到该学员】。
*(4)制作【3】显示所有学员 功能。要求输出共有学员X人,并按列表的形式将结果显示。列表应该显示整齐,并在按下任意键后返回到主菜单。
(5)制作【4】退出 功能。选择此功能后,程序退出
参考答案:
package com.project;
import java.util.Scanner;
/**
* 学生信息管理系统
*
*
*/
public class StudentSystem {
Scanner in = new Scanner(System.in);
//生命并创建数组
String[] ids = new String[40];//学号
String[] names = new String[40];//姓名
int[] ages = new int[40];//年龄
int[] sexs = new int[40];//性别
String[] phones = new String[40];//电话
String[] births = new String[40];//籍贯
public static void main(String[] args) {
// 创建对象
StudentSystem sts = new StudentSystem();
// 调用start方法
sts.start();
}
/**
* 开始
*/
public void start() {
int choose;
do {
// (1) 制作程序主菜单,
choose = mainMenu();
switch (choose) {
case 1:
// (2) 制作【1】增加 功能,
add();
break;
case 2:
// (3) 制作【2】查询功能
searchOne();
break;
case 3:
// (4) 制作【3】显示所有学员 功能
show();
break;
case 4:
// (5) 制作【4】退出 功能。
System.out.println("-------欢迎下次使用--------");
break;
}
} while (choose != 4);
}
/**
* 查询
*/
public void searchOne() {
System.out.print("请输入要查询的学员学号");
String id = in.next();
System.out.println("学员详细信息如下:");
System.out.println("-----------------");
int index = searchIndex();
boolean f = false;
for(int i=0;i<index;i++) {//便利学号的数组
if(ids[i].equals(id)) {
f = true;
System.out.println("学号:"+ids[i]);
System.out.println("姓名:"+names[i]);
//处理性别
//处理性别
String sex = "男";
if(sexs[i]==1) {
sex = "女";
}
System.out.println("性别:"+sex);
System.out.println("年龄:"+ages[i]);
System.out.println("电话:"+phones[i]);
System.out.println("籍贯:"+births[i]);
}
}
if(f==false) {
System.out.println("查询不到该学元信息");
}
System.out.println("\t按任意键返回主菜单");
new Scanner(System.in).nextLine();
}
/**
* 增加
*/
private void add() {
System.out.print("请输入学员人数:");
int num = in.nextInt();
int index = searchIndex();
int count=1;
for(int i=index;i<num+index;i++) {
System.out.printf("请输入%d位学员的信息\n",count);
System.out.print("学号:");
ids[i] = in.next();//存入数组
System.out.print("姓名:");
names[i] = in.next();//存入数组
System.out.print("性别(0-男 1-女):");
sexs[i] = in.nextInt();//存入数组
System.out.print("年龄:");
ages[i] = in.nextInt();//存入数组
System.out.print("电话:");
phones[i] = in.next();//存入数组
System.out.print("籍贯:");
births[i] = in.next();//存入数组
count++;
}
System.out.printf("成功录入%d个学员信息",num);
//显示信息
show();
System.out.println("\t按任意键返回主菜单");
new Scanner(System.in).nextLine();
}
/**
* 制作【3】显示所有学员 功能
*/
public void show() {
//查询第一次值是null的元素的下标
int index = searchIndex();
System.out.printf("共有%d个学员,列表如下\n",index);
System.out.println("序号\t学号\t姓名\t 性别 \t年龄");
System.out.println("---\t---\t---\t ---\t---");
for(int i=0;i<index;i++) {
//处理性别
String sex = "男";
if(sexs[i]==1) {
sex = "女";
}
System.out.printf("%s\t%s\t%S\t%s\t%s\n",i+1,ids[i],names[i],sex,ages[i]);
}
System.out.println("\t按任意键返回主菜单");
new Scanner(System.in).nextLine();
}
/**
* //查询第一次值是null的元素的下标
* @return
*/
private int searchIndex() {
//遍历数组
for(int i=0;i<ids.length;i++) {
if(ids[i]==null) {
return i;
}
}
return ids.length;
}
/**
* 制作程序主菜单,
*
* @return
*/
private int mainMenu() {
System.out.println("-------学生信息管理系统-------");
System.out.println();
System.out.println("以下为系统主菜单,请选择功能");
System.out.println("【1】增加");
System.out.println("【2】查询(学号)");
System.out.println("【3】显示所有信息");
System.out.println("【4】退出");
System.out.println("键入菜单功能前的数字,按回车键继续");
int choose = in.nextInt();
return choose;
}
}
5、练习五(选择结构、if语句)
题目:
模拟游戏登录和游戏菜单选择功能。要求:讲各种业务功能模块分别定义方法实现。
效果如图:
(1)显示登录菜单选择,选择1进行输入账号和密码登录,输入完成之后显示欢迎该登陆者得语句,显示主菜单
(2)根据菜单进行相应功能得选择,只要不选择退出,那么救恩那个一直显示功能
参考答案:
package studentproject;
import java.util.Scanner;
public class Prectice3 {//复习
Scanner in = new Scanner(System.in);
int choose;
String user=null;
String pwd=null;
public static void main(String[] args) {
Prectice3 prectice = new Prectice3();
prectice.start();
}
/**
* 开启
*/
private void start() {
//登录界面
choose = login();
//主菜单
mainMenu(choose);
//重复选择,直到选择注销
}
/**
* 主菜单
*/
private void mainMenu(int choose) {
switch(choose) {
case 1:
//登录进入得系统
loging();
//主菜单
showMenu();
break;
case 2:
//游客进入系统
showMenu2();
break;
default:
break;
}
}
/**
* 游客菜单
*/
private void showMenu2() {
String line;
do {
System.out.println("**************************");
System.out.println("\t1、选游戏角色");
System.out.println("\t2、登录");
System.out.println("\t0、退出");
System.out.println("**************************");
System.out.println("键入菜单功能前得数字后,按照enter健:_");
Scanner in = new Scanner(System.in);
line = in.nextLine();
//Scanner in2 = new Scanner(line);
//菜单选择功能
switch(line) {
case "1":
System.out.println("正在选游戏角色");
break;
case "2":
loging() ;//调用登录得方法
break;
case "0":
System.out.println("正在退出。。");
break;
}
}while(!line.equals("0"));
}
/**
* 展示菜单,登录
*/
private void showMenu() {
String line;
do {
System.out.println("**************************");
System.out.println("\t1、选游戏角色");
System.out.println("\t2、修改账号");
System.out.println("\t3、查看皮肤库");
System.out.println("\t4、退出");
System.out.println("**************************");
System.out.println("键入菜单功能前得数字后,按照enter健:_");
line = in.next();
//Scanner in2 = new Scanner(line);
//菜单选择功能
switch(line) {
case "1":
System.out.println("正在选游戏角色");
break;
case "2":
System.out.println("正在修改账号");
break;
case "3":
System.out.println("正在查看");
break;
case "4":
System.out.println("正在退出。。");
break;
}
}while(!line.equals("4"));
}
/**
* 登录账号和密码
*/
private void loging() {
System.out.println("请输入账号:");
user = in.next();//账号
System.out.println("请输入密码:");
pwd = in.next();//密码
System.out.printf("欢迎[%s]进入王者荣耀",user);
}
/**
* 用户登录
*/
private int login() {
// TODO Auto-generated method stub
System.out.println("********欢迎进入王者荣耀*******");
System.out.println("\t1、登录账号");
System.out.println("\t2、游客身份");
System.out.println("***************************");
System.out.println("请选择:");
return in.nextInt();
}
}