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("请问继续输入么?");
}
}