实现了一个初级的档案管理雏形,有很多BUG, 比如说只能输入英文名字。。。
同时,这也是我第一次有意识地去将功能分割为不同的方法,进行组合。果然维护、修改更加方便了。
package com.test;
import java.util.Scanner;
public class Register {
public static String[] name = new String[100];
public static String[] sex = new String[100];
public static int[] age = new int[100];
public static int[] tall = new int[100];
public static int[] weight = new int[100];
public static boolean[] judge = new boolean[100];//老办法,通过boolean数组判断对应数组有无数值
static{
for(int i = 0;i<judge.length;++i){
judge[i] = false;
}
}//初始化boolean数组
public void AddNew(){
Scanner inputAddNew = new Scanner(System.in);
System.out.println("请输入要新增的姓名:");
String addNew = inputAddNew.next();
for(int i = 0 ; i<name.length ; ++i){
if(addNew.equals(name[i])){
System.out.println("查询到已有同名档案,是否跳转?");
System.out.println("输入Y or N");
String yon = inputAddNew.next();
if("Y".equals(yon)){
Register Jump = new Register();
Jump.Already(i , addNew);
}else{
AddNew();
}
}
}
for(int i = 0 ; i<judge.length ; ++i){
if(judge[i] == false){
name[i] = addNew;
judge[i] = true;//存入名字后将对应数组状态改为true
System.out.println("请输入性别:");
sex[i] = inputAddNew.next();
System.out.println("请输入年龄");
age[i] = inputAddNew.nextInt();
System.out.println("请输入身高");
tall[i] = inputAddNew.nextInt();
System.out.println("请输入体重");
weight[i] = inputAddNew.nextInt();
System.out.println("录入完成,返回主程序");
main(null);//录入完成后回到main方法
}
}
}
public void Already(int i , String Alreadyname){
System.out.println("姓名:" + name[i] + ",性别:" + sex[i] + ",年龄:" + age[i] + "岁,身高:" + tall[i] + "cm,体重:" + weight[i] + "斤");
}//新建档案但名字已经存在时调用该方法
public void Search(){
Scanner inputSearch = new Scanner(System.in);
System.out.println("请输入要查询的姓名:");
String Search = inputSearch.next();
for(int i = 0 ; i<name.length; ++i){
if(judge[i] == true){
if(name[i].equals(Search)){
System.out.println("你查询的" + Search + "资料为:");
System.out.println("姓名:" + name[i] + ",性别:" + sex[i] + ",年龄:" + age[i] + "岁,身高:" + tall[i] + "cm,体重:" + weight[i] + "斤");
System.out.println("查询完毕,返回主程序");
main(null);
}
}
}
System.out.println("你查询的人不存在,是否新建档案?");
System.out.println("Y or N");
String yon = inputSearch.next();
if("Y".equals(yon)){
Register Jump = new Register();
Jump.AddNew();
}
System.out.println("请重新查询");
Search();
}
public void Rewrite(){
Scanner inputRewrite = new Scanner(System.in);
System.out.println("请输入要修改档案的姓名:");
String Rewrite = inputRewrite.next();
for(int i = 0 ; i<name.length ; ++i){
if(judge[i] == true){
if(name[i].equals(Rewrite)){
System.out.println("请输入你想修改" + Rewrite + "的信息类别:");
System.out.println("1.姓名 2.性别 3.年龄 4.身高 5.体重");
int myRewrite = inputRewrite.nextInt();
switch(myRewrite){
case 1:
System.out.println("请输入新姓名:");
String newName = inputRewrite.next();
Register Jump1 = new Register();
Jump1.Rewrite1(i , newName);
case 2:
System.out.println("请输入新性别:");
String newSex = inputRewrite.next();
Register Jump2 = new Register();
Jump2.Rewrite2(i , newSex);
case 3:
System.out.println("请输入新年龄:");
int newAge = inputRewrite.nextInt();
Register Jump3 = new Register();
Jump3.Rewrite3(i , newAge);
case 4:
System.out.println("请输入新身高:");
int newTall = inputRewrite.nextInt();
Register Jump4 = new Register();
Jump4.Rewrite4(i , newTall);
case 5:
System.out.println("请输入新身高:");
int newWeight = inputRewrite.nextInt();
Register Jump5 = new Register();
Jump5.Rewrite5(i , newWeight);
}//通过加入switch开关来调用每个功能对应的方法
}
}
}
System.out.println("无" + Rewrite + "的档案,是否新增?");
System.out.println("Y or N");
String yon = inputRewrite.next();
if("Y".equals(yon)){
Register Jump = new Register();
Jump.AddNew();
}
System.out.println("请重新修改");
Rewrite();
}
public void Rewrite1(int i , String newName){
Scanner inputRewrite1 = new Scanner(System.in);
System.out.println("您即将把" + name[i] + "的姓名改为" + newName + ",是否确认?");
System.out.println("Y or N");
String agree = inputRewrite1.next();
if("Y".equals(agree)){
name[i] = newName;
System.out.println("修改成功,返回主程序");
main(null);
}
System.out.println("取消修改,回到主程序");
main(null);
}
public void Rewrite2(int i , String newSex){
Scanner inputRewrite2 = new Scanner(System.in);
System.out.println("您即将把" + name[i] + "的性别从 " + sex[i] + " 改为 " + newSex + ",是否确认?");
System.out.println("Y or N");
String agree = inputRewrite2.next();
if("Y".equals(agree)){
sex[i] = newSex;
System.out.println("修改成功,返回主程序");
main(null);
}
System.out.println("取消修改,回到主程序");
main(null);
}
public void Rewrite3(int i , int newAge){
Scanner inputRewrite3 = new Scanner(System.in);
System.out.println("您即将把" + name[i] + "的年龄从 " + age[i] + " 岁改为 "+ newAge + " 岁,是否确认?");
System.out.println("Y or N");
String agree = inputRewrite3.next();
if("Y".equals(agree)){
age[i] = newAge;
System.out.println("修改成功,返回主程序");
main(null);
}
System.out.println("取消修改,回到主程序");
main(null);
}
public void Rewrite4(int i , int newTall){
Scanner inputRewrite4 = new Scanner(System.in);
System.out.println("您即将把" + name[i] + "的身高从 " + tall[i] + " cm改为 "+ newTall + " cm,是否确认?");
System.out.println("Y or N");
String agree = inputRewrite4.next();
if("Y".equals(agree)){
tall[i] = newTall;
System.out.println("修改成功,返回主程序");
main(null);
}
System.out.println("取消修改,回到主程序");
main(null);
}
public void Rewrite5(int i , int newWeight){
Scanner inputRewrite5 = new Scanner(System.in);
System.out.println("您即将把" + name[i] + "的体重从 " + weight[i] + " 斤改为 "+ newWeight + " 斤,是否确认?");
System.out.println("Y or N");
String agree = inputRewrite5.next();
if("Y".equals(agree)){
weight[i] = newWeight;
System.out.println("修改成功,返回主程序");
main(null);
}
System.out.println("取消修改,回到主程序");
main(null);
}
public static void main(String[] args) {
Scanner inputMain = new Scanner(System.in);
System.out.println("请输入要进行的操作:");
System.out.println("1.添加新档案 2.查询档案 3.修改档案 4.退出");
int main = inputMain.nextInt();
switch(main){
case 1:
Register Jumpa = new Register();
Jumpa.AddNew();
case 2:
Register Jumpb = new Register();
Jumpb.Search();
case 3:
Register Jumpc = new Register();
Jumpc.Rewrite();
case 4:
System.exit(0);
}
}
}