[Java基础练习-002]综合应用(基础进阶),如果你会做,那说明你java入门了,

news2024/10/5 21:15:36

本篇的练习是一个综合性的练习,结合了各个知识点,比如选择结构、循环结构、数组等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();
	}
	
	
	

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/510208.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SELinux详解

文章目录 SELinux详解什么是SELinux当初设计的目标&#xff1a;避免资源的误用传统的文件权限与账号主要的关系&#xff1a;自主访问控制(DOC)以策略规则制定特定进程读取特定文件&#xff1a;强制访问控制(MAC) SELinux的运行模式安全上下文进程与文件SELinux类型字段的相关性…

QQ邮箱 网易邮箱及企业邮箱开通SMTP/POP3及设置授权码

一 、什么是 POP3/IMAP/SMTP 服务 POP3 &#xff08;Post Office Protocol - Version 3&#xff09;协议用于支持使用电子邮件客户端获取并删除在服务器上的电子邮件。 IMAP &#xff08;Internet Message Access Protocol&#xff09;协议用于支持使用电子邮件客户端交互式存…

Windows Nvm+Node.js安装

前言 在windows系统下安装的是nvm-windows&#xff0c;nvm只支持安装在在Linux和Mac系统下。之前在Linux上安装过&#xff0c;最近在Windows上安装&#xff0c;特记录一下。 下载 下载地址&#xff1a;传送门 安装Nvm 双击exe文件&#xff0c;选定安装路径&#xff0c;下…

最新|事件相机SLAM综述

Arxiv链接:https://arxiv.org/abs/2304.09793 Github 链接:https://github.com/kun150kun/ESLAM-survey 视觉SLAM (vSLAM)是指移动机器人通过相机感知外部世界并估计机器人的位姿和重建周围环境的三维地图。vSLAM在各种应用中扮演着不可或缺的角色,包括自动驾驶,机器人导航…

【华为云服务器使用ftp21端口进行连接】

[使用ftp21端口连接华为云linux服务器] 华为云服务器使用ftp21端口进行连接 说明: 我们在操作linux服务器时, 经常想可视化的操作文件, 单使用命令行操作不友好。本文旨在使用ftp工具可视化的连接华为云服务器 1.安装vsfftpd 1.1 检查vsfftpd是否已安装 执行以下命令可以看…

网安笔记04 公钥密码体制

公钥密码体制 公钥密码体制的基本概念 保密性&#xff1a;确保信息只被授权的人访问 认证&#xff1a;确认某实体/数据源的真实性 保密性需要考虑到 不可否认性数据完整性 保密系统要考虑 达到实际上不可破 接获密文、某些明文密文对&#xff0c;决定密钥或者明文是不可…

没计算机基础,就是评职称用的,软考中级哪个好考啊?

那必须把系统集成项目管理工程师安排上&#xff01; 题目也不难&#xff0c;主要弄清楚47个过程的输入输出&#xff0c;还有工具的使用&#xff0c;几乎很多题都是按照这逻辑来的。 建议可以去网上、刷题APP上&#xff0c;多薅点资料和真题&#xff0c;集成是热门科目&#x…

Centos7.6华为云服务器安装FineBI

一、首先申请一个云端服务器 配置可根据自己需求申请,建议内存在16G以上 CPU 4核 内存 8GiB 系统盘 40GiB 带宽 1Mbit/s 二、在FineBI官网上查看安装方法,截图如下 下载后,直接根据上述步骤安装即可,一般不需要添加其余软件 在安装中遇到问题有以下几点 1.解压后,文件夹名…

一个网站引发的程序猿的牢骚,哈哈哈

2013年大学毕业后&#xff0c;参加工作做的第一个前端项目&#xff0c;北京服装学院&#xff0c;今天调研一个关于iframe的需求&#xff0c;突然想试试&#xff0c;以前那些做IE6兼容的项目是否还在使用&#xff0c;就默默的点开了。十年了&#xff0c;他们没有换网站&#xff…

Python中因为软拷贝导致调用face_recognition.encodings(img)出现的典型问题

问题描述 在使用face_recognition时&#xff0c;在对np.array格式图片使用形如new_img img[x:y, a:b]进行裁剪后&#xff0c;因为是软拷贝&#xff0c;导致前后图片其实引用了同一个face_locations, 从而导致莫名其妙的错误。 问题代码 检测一张照片里的人脸&#xff0c;并…

深度解耦:使用Jetpack新技术Hilt实现依赖注入

注入解耦是一种软件设计模式&#xff0c;旨在将应用程序的不同组件解耦。通过采用依赖注入、控制反转、面向接口编程等技术&#xff0c;注入解耦模式可以帮助开发人员将应用程序分解为可重用和可扩展的组件。这样做可以减少代码的耦合度&#xff0c;提高模块化和可测试性&#…

Java并发编程实践学习笔记(三)——共享对象之发布和异常

目录 1 公共静态变量逸出 2 非私有方法逸出私有变量 3 this引用逸出 4 构造函数中的可覆盖方法调用逸出 发布&#xff08;publishing&#xff09;一个对象的意思是&#xff1a;使对象能够在当前作用域之外的代码中使用。例如&#xff0c;将一个指向该对象的引用保存到其他代…

奖品收到了

质量一流&#xff01;物流速度快&#xff01;下次继续努力&#xff01; 开心

抽象、封装、继承、多态

抽象 抽象是从众多的事物中抽取出共同的、本质性的特征&#xff0c;而舍弃其非本质的特征的过程。 下面是抽象到封装的过程 如果不考虑实际的情况下 人的定义&#xff1a;有嘴、有脚、有眼睛、有耳朵、会吃饭、会跑。 动物的定义&#xff1a;有嘴、有脚、有眼睛、有耳朵、会…

2023年网红经济研究报告

第一章 行业概况 随着社交媒体和移动互联网的普及&#xff0c;网红经济迅速崛起。网红经济&#xff0c;是指以网络为平台&#xff0c;通过网红的影响力、热度和传播力&#xff0c;形成的一种以流量变现为主的商业模式。网红经济涉及到的行业非常广泛&#xff0c;如美妆、时尚、…

ai聊天机器人chatgpt收费版

AI聊天机器人的功能通常包括以下几个方面&#xff1a; 自然语言理解。该功能可以识别并理解用户输入的自然语言&#xff0c;如文本、语音等&#xff0c;以便进行后续的处理和回复。 对话管理。该功能可以管理对话的上下文和流程&#xff0c;并根据用户的输入和意图来产…

Linux系统查看CPU信息命令cat /proc/cpuinfo详细说明

Linux操作系统服务器如何查看CPU处理器信息&#xff1f;使用命令cat /proc/cpuinfo可以查看CPU详细信息&#xff0c;包括CPU核数、逻辑CPU、物理CPU个数、CPU是否启用超线程等&#xff0c;阿里云服务器网分享Linux服务器查看CPU信息命令&#xff1a; 目录 Linux服务器查看CPU…

JavaWeb12-三大组件之监听器-Listener

1. 官方文档 文档&#xff1a;java_ee_api_中英文对照版.chm 2. Listener 监听器介绍 Listener 监听器它是 JavaWeb 的三大组件之一。JavaWeb 的三大组件分别是&#xff1a;Servlet 程序、Listener 监听器、Filter 过滤器Listener 是 JavaEE 的规范&#xff0c;就是接口监听…

(附源码)计算机毕业设计Java动物在线领养网站

项目运行 &#x1f345;包售后&#xff0c;包调试&#xff0c;包讲解&#x1f345; &#x1f345;获取方式1:文章末尾获取联系&#x1f345; &#x1f345;获取方式2:点我进入&#xff0c;文章末尾获取联系&#x1f345; &#x1f345;包售后&#xff0c;包调试&#xff0c;包讲…

WX小程序 - 2

条件渲染&#xff1a; wx:if "{{ newlist.length 0 }}" wx:else 跳路由&#xff1a;绑定点击事件&#xff0c;执行跳转页面 bindtap data-id"{{ item.id }}" 添加id wx.navigateTo 跳路由并传参&#xff0c; 下一个路由 onLoad生命周期可以获得参数…