Java每日一练(6)

1、定义管理员类

训练要点: 定义类的属性,定义类的方法

需求说明: 编写管理员类

实现思路: 1、定义管理员类Administrator

                     2、定义其属性和方法

package com.etc.six.day;

public class Administrator {
	private String name;
	private int password;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getPassword() {
		return password;
	}

	public void setPassword(int password) {
		this.password = password;
	}

}
package com.etc.six.day;

public class TestAdministrator {

	public static void main(String[] args) {
		Administrator ad = new Administrator();
		ad.setName("jim");
		ad.setPassword(123456);
		System.out.println("管理员账号为:");
		System.out.println(ad.getName());
		System.out.println("管理员密码为:");
		System.out.println(ad.getPassword());
	}

}

 2、定义客户类

需求说明: 编写客户类

        属性:积分、卡类型

        方法:show(),显示客户信息

        提示: 定义客户类Customer,定义属性和方法

import com.etc.test.util.JudgeNumber;

public class Customer {
	private int piont;
	private String card;
	private String name;
	int i = 0;
	String[] names = new String[10];
	String[] cards = new String[10];
	int[] pionts = new int[10];

	public void getName() {
		for (int j = 0; j < names.length; j++) {
			if (names[j] != null) {
				System.out.print(names[j] + " ");
			}
		}
	}

	public String setName(String name) {
		return this.name = name;
	}

	public void getPiont() {
		for (int j = 0; j < pionts.length; j++) {
			if (pionts[j] != 0) {
				System.out.print(pionts[j] + " ");
			}
		}
	}

	public int setPiont(int piont) {
		return this.piont = piont;
	}

	public void getCard() {
		for (int j = 0; j < pionts.length; j++) {
			if (cards[j] != null) {
				System.out.print(cards[j] + " ");
			}
		}
	}

	public String setCard(String card) {
		return this.card = card;
	}

	public void show() {
		Customer cu = new Customer();
		JudgeNumber jd = new JudgeNumber();
		System.out.println("请输入账户姓名:");
		names[i] = cu.setName(jd.name());
		System.out.println("请输入卡的类型:");
		cards[i] = cu.setCard(jd.name());
		System.out.println("请输入账户积分:");
		pionts[i] = cu.setPiont(jd.judge());
		i++;
		return;
	}

}
import com.etc.test.util.JudgeNumber;

public class TestCustomer {

	public static void main(String[] args) {
		Customer cu = new Customer();
                //JudgeNumber与Scanner效果相同,是我自己设置的一个类
		JudgeNumber jd = new JudgeNumber();
		int number = 0;
		System.out.println("请输入录入信息人数:");
		number = jd.judge();
		for (int i = 0; i < number; i++) {
			cu.show();
		}
		System.out.println("输入的姓名如下所示:");
		cu.getName();
		System.out.println("\n卡的类型为:");
		cu.getCard();
		System.out.println("\n积分为:");
		cu.getPiont();
	}

}

3、创建管理员对象 

训练要点: 使用类创建对象,引用对象的属性和方法

需求说明: 创建两个管理员类对象,输出他们的相关信息

实现思路: 1、创建两个管理员类的对象

                     2、给两个对象赋值并调用显示方法

import com.etc.test.util.JudgeNumber;

public class AdministratorTwo {
	private String name;
	private String password;
	String[] names = new String[10];
	String[] passwords = new String[10];
	JudgeNumber jd = new JudgeNumber();
	int i = 0;

	public void getName() {
		for (int i = 0; i < names.length; i++) {
			if (names[i] != null) {
				System.out.println(names[i] + "\t");
			}
		}
		return;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void getPassword() {
		for (int i = 0; i < passwords.length; i++) {
			passwords[i] = jd.name();
			if (passwords[i] != null) {
				System.out.println(passwords[i] + "\t");
			}
		}
		return;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String[] inputName(String name) {
		System.out.println("请输入账户名:");
		names[i] = jd.name();
		i++;
		return names;

	}
	
	public String[] inputPassword(String password){
		System.out.println("请输入密码:");
		passwords[i]=jd.name();
		i++;
		return passwords;
	}

}
import java.util.Scanner;

import com.etc.test.util.JudgeNumber;

public class TestAdministratorTwo {

	public static void main(String[] args) {
		AdministratorTwo at = new AdministratorTwo();
		int number = 0;
		String[] names = new String[10];
		String[] passwords = new String[10];
		String name = "";
		String password = "";
		JudgeNumber jd = new JudgeNumber();
		System.out.println("请输入管理员数目:");
		number = jd.judge();
		for (int i = 0; i < number; i++) {
			names = at.inputName(name);
			passwords = at.inputPassword(password);
		}
		System.out.println();
		for (int i = 0; i < names.length; i++) {
			for (int j = i; j < passwords.length; j++) {
				if (names[i] != null && passwords[j] != null) {
					System.out.println("姓名:" + names[i] + "\t" + "密码:" + passwords[j]);
				}
			}

		}
	}
}

4、更改管理员密码

训练要点: 使用类创建对象,while循环

需求说明: 输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新的密码,进行更新

实现思路: 1、创建管理员类的对象

                     2、利用while实现循环执行

public class ChangePassword {
	private String name;
	private String password;

	public String getName() {
		name="li";
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		password="111111";
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}
}
import java.util.Scanner;

import com.etc.test.util.JudgeNumber;

public class TestChangePassword {
	public static void main(String[] args) {

		ChangePassword cp = new ChangePassword();
		JudgeNumber jd = new JudgeNumber();
		String name = "";
		String password = "";
		String password2 = "";
		int i = 0;
		Scanner input = new Scanner(System.in);
		while (true) {
			System.out.println("请输入用户名:");
			name = jd.name();
			System.out.println("请输入密码:");
			password = jd.name();
			if (cp.getName().equals(name) && cp.getPassword().equals(password)) {
				while (true) {
					System.out.println("请输入新密码:");
					password = jd.name();
					System.out.println("请再次输入新密码:");
					password2 = jd.name();
					if (password2.equals(password)) {
						System.out.println("修改密码成功,您的新密码为:" + password);
						break;
					} else {
						System.out.println("您两次输入的密码不一致,请从新输入");
						i++;
					}
					if (i == 3) {
						break;
					}
				}
				break;
			}
		}
	}
}

5、客户积分回馈

需求说明: 实现积分回馈功能,金卡客户积分大于1000分或普卡客户积分大于5000,获得回馈积分500分;创建客户对象输出他得到的回馈积分

import com.etc.test.util.JudgeNumber;

public class CustomerTwo {
	private int piont;
	private String card;
	private String name;
	int i = 0;
	String[] names = new String[10];
	String[] cards = new String[10];
	int[] pionts = new int[10];

	public void getName() {
		for (int j = 0; j < names.length; j++) {
			if (names[j] != null) {
				System.out.print(names[j] + " ");
			}
		}
	}

	public String setName(String name) {
		return this.name = name;
	}

	public void getPiont() {
		for (int j = 0; j < pionts.length; j++) {
			if (pionts[j] != 0) {
				System.out.print(pionts[j] + " ");
			}
			if (pionts[j] > 500) {
				System.out.println("回馈积分500分");
			}
		}
	}

	public int setPiont(int piont) {
		return this.piont = piont;
	}

	public void getCard() {
		for (int j = 0; j < pionts.length; j++) {
			if (cards[j] != null) {
				System.out.print(cards[j] + " ");
			}
		}
	}

	public String setCard(String card) {
		return this.card = card;
	}

	public void show() {
		Customer cu = new Customer();
		JudgeNumber jd = new JudgeNumber();
		System.out.println("请输入账户姓名:");
		names[i] = cu.setName(jd.name());
		System.out.println("请输入卡的类型:");
		cards[i] = cu.setCard(jd.name());
		System.out.println("请输入账户积分:");
		pionts[i] = cu.setPiont(jd.judge());
		i++;
		return;
	}

}
import com.etc.test.util.JudgeNumber;

public class TestCustomerTwo {

	public static void main(String[] args) {
		CustomerTwo ct = new CustomerTwo();
		JudgeNumber jd = new JudgeNumber();
		int number = 0;
		System.out.println("请输入录入信息人数:");
		number = jd.judge();
		for (int i = 0; i < number; i++) {
			ct.show();
		}
		System.out.println("输入的姓名如下所示:");
		ct.getName();
		System.out.println("\n卡的类型为:");
		ct.getCard();
		System.out.println("\n积分为:");
		ct.getPiont();
	}

}

6、计算平均分和总成绩

训练要点: 方法的定义和调用

需求说明: 从键盘接收三门课分数,计算三门课的平均分和总成绩,编写成绩计算类实现功能

实现思路: 1、创建类 ScoreCalc

                     2、编写方法实现各功能

                     3、编写测试类

难点指导: 面向对象编程思维

public class ScoreCalc {
	private String name;
	private double score;
	double[] scores = new double[99];

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public double getScore() {
		return score;
	}

	public void setScore(double score) {
		this.score = score;
	}
}
import com.etc.test.util.JudgeNumber;

public class TestScoreCalc {

	public static void main(String[] args) {
		ScoreCalc sc = new ScoreCalc();
		JudgeNumber jd = new JudgeNumber();
		System.out.println("请输入Java成绩:");
		int scorejava = jd.judge();
		sc.setScore(scorejava);
		System.out.println("请输入C#成绩:");
		int scorec = jd.judge();
		sc.setScore(scorec);
		System.out.println("请输入DB成绩:");
		int scoredb = jd.judge();
		sc.setScore(scoredb);
		System.out.println("总成绩为:");
		System.out.println(scorejava + scorec + scoredb);
		System.out.println("平均成绩为:");
		System.out.println((scorejava + scorec + scoredb) / 3);
	}
}

7、实现菜单的级联效果

训练要点: 方法的定义和调用,循环结构

需求说明: 实现MyShopping菜单,输入菜单项编号,可以自由切换各个菜单;编写类StartSMS,实现输入用户名和密码,符合条件的进入系统

实现思路: 1、创建菜单类Menu

                     2、编写方法实现各功能

                     3、编写测试类

public class Menu {
	public void show(){
		System.out.println("\t\t欢迎使用我行我素购物管理系统");
		System.out.println();
		System.out.println("\t\t1.登录系统");
		System.out.println();
		System.out.println("\t\t2.退出");
		System.out.println();
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("请输入数字:");
	}
	public void show2(){
		System.out.println("\t\t我行我素购物管理系统");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println();
		System.out.println("\t\t1.顾客信息管理");
		System.out.println();
		System.out.println("\t\t2.真情回顾");
		System.out.println();
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("请选择,输入数字或按0返回上一级菜单:");
	}
	public void show3(){
		System.out.println("\t\t我行我素购物管理系统");
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println();
		System.out.println("\t\t1.幸运大放送");
		System.out.println();
		System.out.println("\t\t2.幸运抽奖");
		System.out.println();
		System.out.println("* * * * * * * * * * * * * * * * * * * * * * * *");
		System.out.println("请选择,输入数字或按0返回上一级菜单:");
	}
	public void show4(){
		System.out.println("请输入用户名:");
	}
}
import java.util.Scanner;

import com.etc.test.ui.Menu;

public class StartSMS {
	JudgeNumber jd=new JudgeNumber();
	Menu me =new Menu();
	String name="JadeBird";
	String[] name2=new String[10];
	public void name(){
		String names =jd.name();
		name2[1]=names;
		System.out.println("请输入密码:");
			password();
		
	}
	
	
	public void password(){
		String passwprd="0000";
		String passwords=jd.name();
		if(name.equals(name2[1])&&passwprd.equals(passwords)){
			System.out.println("@@登陆成功:"+name+"@@");
		}
		else{
			System.out.println("@@您没有权限进入系统,请重新登陆。@@");
			me.show4();
			name();
		}
	}
}
import java.util.Scanner;

import com.etc.test.ui.Menu;
import com.etc.test.util.JudgeNumber;
import com.etc.test.util.StartSMS;

public class MyShopping {
	public static void main(String[] args) {
		Menu me = new Menu();
		JudgeNumber jd = new JudgeNumber();
		StartSMS st = new StartSMS();
		int number = 0;
		while (true) {
			me.show();
			number = jd.judge();
			switch (number) {
			case 1:
				me.show4();
				st.name();
				me.show2();
				while (true) {
					int number2 = jd.judge();
					switch (number2) {
					case 1:
						break;
					case 2:
						me.show3();
						break;
					case 0:
						break;
					default:
						System.out.println("请输入正确数字!");
					}
					break;
				}
				continue;
			case 2:
				break;

			default:
				System.out.println("请输入正确数字!");
			}
			break;
		}
	}
}

8.查找客户姓名

需求说明: 根据需要,查找客户姓名,给出查找结果

import com.etc.test.util.Input;
import com.etc.test.util.JudgeNumber;

public class Search {
	Input in = new Input();
	JudgeNumber jd = new JudgeNumber();

	public void NewinputName() {
		String name = "";
		String answer = "y";
		String[] names = new String[10];
		while (answer.equalsIgnoreCase("y")) {
			System.out.println("请输入顾客姓名:");
			name = jd.name();
			names = in.inputName(name);
			in.answer();
			answer = jd.name();
		}
		System.out.println("************************");
		System.out.println("\t客户姓名列表:");
		System.out.println("************************");
		for (int i = 0; i < names.length; i++) {
			if (names[i] != null) {
				System.out.print(names[i] + " ");
			}
		}
		in.getname();
		in.search(names);

	}

	public static void main(String[] args) {
		new Search().NewinputName();
	}

}
import java.util.Scanner;

import com.etc.six.day.Search;

public class Input {
	JudgeNumber jd = new JudgeNumber();
	String[] names = new String[10];
	int i = 0;

	public String[] inputName(String name) { // 输入姓名
		names[i] = name;
		i++;
		return names;
	}

	public boolean search(String[] names) {
		System.out.println("\n请输入要查找的客户:");
		String name2 = jd.name();
		System.out.println("*****查找结果******");
		for (int i = 0; i < names.length; i++) {
			if (names[i] != null) {
				if (names[i].equals(name2)) {
					System.out.println("找到了!");
					return true;
				} else {
					System.out.println("对不起查无此人!");
					return false;
				}
			} else {
				return false;
			}
		}
		return false;
	}

	public void getname() {
		for (int j = 0; j < names.length; j++) {
			if (names[j] != null)
				System.out.println(names[j] + " ");
		}
	}

	public void answer() {
		System.out.println("请问继续输入么?");
	}

}

 

  • 11
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值