使用JAVA基礎語法做一個簡易的發票管理系統
阿新 • • 發佈:2020-12-21
技術標籤:java
發票管理系統
分為查詢發票、開具發票、刪除發票、待稽核發票、稽核發票五大模組
Scanner scanner = new Scanner(System.in);
String[] BuyerNameArray = {"胡一","胡二","胡三","胡四"};
int[] BuyerPhoneArray = {110,120,119,991};
String[] BuyerAddressArray = {"北京","上海" ,"杭州","鄭州"};
String[] InvoiceStateArray = {"已開票","已開票","已開票","已開票"};
int num ;
do {
System.out.println("********************************");
System.out.println("-->歡迎進入HPU發票管理系統<--" );
System.out.println("1.查詢發票");
System.out.println("2.開具發票");
System.out.println("3.刪除發票");
System.out.println("4.發票進入異常狀態");
System.out.println("5.稽核發票狀態");
System.out.println( "6.退出系統");
System.out.println("請按照1-6選擇輸入:");
num = scanner.nextInt();
switch (num){
case 1:
System.out.println("-->開始查詢發票");
System.out.println("編號\t\t購方名\t購方電話\t購方地址\t發票狀態");
for (int i = 0; i < BuyerNameArray.length; i++) {
//判斷為空則不輸出
if (BuyerNameArray[i]!=null){
System.out.println((i+1)+"\t\t"+BuyerNameArray[i]+"\t\t"+BuyerPhoneArray[i]+"\t\t"+BuyerAddressArray[i]+"\t\t"+InvoiceStateArray[i]);
}
}
System.out.println("-->輸入0返回上一級:");
num = scanner.nextInt();
break;
case 2:
System.out.println("-->提交開具發票");
String[] newBuyerNameArray = null;
int[] newBuyerPhoneArray = null;
String[] newBuyerAddressArray = null;
String[] newInvoiceStateArray = null;
if (BuyerNameArray[BuyerNameArray.length-1]!=null){
//複製老陣列中的資料,並且新陣列長度加1
newBuyerNameArray = Arrays.copyOf(BuyerNameArray,BuyerNameArray.length+1);
newBuyerPhoneArray =Arrays.copyOf(BuyerPhoneArray,BuyerPhoneArray.length+1);
newBuyerAddressArray = Arrays.copyOf(BuyerAddressArray,BuyerAddressArray.length+1);
newInvoiceStateArray = Arrays.copyOf(InvoiceStateArray,InvoiceStateArray.length+1);
newInvoiceStateArray[newInvoiceStateArray.length-1] = "已開具";
int Phone;
String Address;
//寫入購方姓名
System.out.println("請輸入購方姓名:");
String Name = scanner.next();
newBuyerNameArray[newBuyerNameArray.length-1] = Name;
//寫入購方手機號
System.out.println("請輸入購方手機號:");
Phone = scanner.nextInt();
newBuyerPhoneArray[newBuyerPhoneArray.length-1] = Phone;
//寫入購方地址
System.out.println("請輸入購方地址:");
Address = scanner.next();
newBuyerAddressArray[newBuyerAddressArray.length-1] = Address;
//將新生成的資料地址給初始化的陣列
BuyerNameArray = newBuyerNameArray;
BuyerPhoneArray = newBuyerPhoneArray;
BuyerAddressArray = newBuyerAddressArray;
InvoiceStateArray = newInvoiceStateArray;
System.out.println(Name+"已經提交成功");
}else {
//尋找資料中第一個為null的下標
int index = 0;
for (int i = 0; i < BuyerNameArray.length; i++) {
if (BuyerNameArray[i]==null){
index = i;
break;
}
}
//寫入購方姓名
System.out.println("請輸入購方姓名:");
String Name = scanner.next();
//寫入購方手機號
System.out.println("請輸入購方手機號:");
int Phone = scanner.nextInt();
//寫入購方地址
System.out.println("請輸入購方地址:");
String Address = scanner.next();
BuyerNameArray[index] = Name;
BuyerPhoneArray[index] = Phone;
BuyerAddressArray[index] = Address;
InvoiceStateArray[index] = "已開具";
System.out.println(Name+"已經提交成功");
}
System.out.println("-->輸入0返回上一級:");
num = scanner.nextInt();
break;
case 3:
System.out.println("-->刪除發票");
System.out.println("請輸入要刪除訂單的購方名:");
String Name = scanner.next();
boolean flag = false;
int index = 0;
//判斷購方名是否存在
for (int i = 0; i < BuyerNameArray.length; i++) {
if (Name.equals(BuyerNameArray[i])){
flag = true;
index = i;
break;
}
}
if (flag){
//將陣列元素向前移動一位
for (int i = index ; i <BuyerNameArray.length-1 ; i++) {
BuyerNameArray[i] = BuyerNameArray[i+1];
BuyerPhoneArray[i] = BuyerPhoneArray[i+1];
BuyerAddressArray[i] = BuyerAddressArray[i+1];
InvoiceStateArray[i] = InvoiceStateArray[i+1];
}
//若不將陣列中最後一位置空,會導致最後一位還是原來的值
BuyerNameArray[BuyerNameArray.length-1] = null;
BuyerPhoneArray[BuyerPhoneArray.length-1] = 0;
BuyerAddressArray[BuyerAddressArray.length-1] = null;
InvoiceStateArray[InvoiceStateArray.length-1] = null;
System.out.println("刪除資料成功");
}else {
System.out.println("此購方名不存在,請輸入0");
}
System.out.println("-->輸入0返回上一級:");
num = scanner.nextInt();
break;
case 4:
System.out.println("-->發票進入異常狀態");
System.out.println("請輸入要異常訂單的購方名:");
Name = scanner.next();
flag = false;
index = 0;
//判斷購方名是否存在
for (int i = 0; i < BuyerNameArray.length; i++) {
if (Name.equals(BuyerNameArray[i])){
flag = true;
index = i;
break;
}
}
if (flag){
//
if ("異常".equals(InvoiceStateArray[index])){
System.out.println("發票本身就為異常狀態!");
}else {
InvoiceStateArray[index] = "異常";
System.out.println("發票進入異常狀態!");
}
}else {
System.out.println("該訂單不存在!");
}
System.out.println("-->輸入0返回上一級:");
num = scanner.nextInt();
break;
case 5:
System.out.println("-->稽核發票");
System.out.println("請輸入要稽核異常訂單的購方名:");
Name = scanner.next();
flag = false;
index = 0;
//判斷購方名是否存在
for (int i = 0; i < BuyerNameArray.length; i++) {
if (Name.equals(BuyerNameArray[i])){
flag = true;
index = i;
break;
}
}
if (flag){
//
if ("已開具".equals(InvoiceStateArray[index])){
System.out.println("發票處於已開具狀態!");
}else {
InvoiceStateArray[index] = "已開具";
System.out.println("發票稽核成功,已開具狀態!");
}
}else {
System.out.println("該訂單不存在!");
}
System.out.println("-->輸入0返回上一級:");
num = scanner.nextInt();
break;
case 6:
System.out.println("-->推出系統");
break;
}
}while (num==0);
查詢發票:
開具發票:
刪除發票:
進入異常狀態:
稽核異常狀態:
注:此為雛形,後期隨緣改動!