对课前测试程序的总结与修改
通过建民老师对编程思路的讲解,我将在程序设计中的不足进行了改正。
不足主要有以下几个方面:
1.程序重复使用某一功能,应将改功能整合为一个函数。减少程序的重复度。
2.程序的逻辑性稍弱。
3.程序结构层次不明显。应将各个功能分别作为一个方法来写。使用目录方法进行调用。
修改后的代码如下:
package yanhao;
import java.util.Scanner;
import java.util.Stack;
public class WarehouseManagement {
public static int cnt=0;
public static WarehouseInformation Mes[]=new WarehouseInformation[5];
public static void mainmenu(){
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n" +
"***********************************************************\n" +
" 1、商品入库管理\n" +
" 2、商品信息修改\n"+
" 3、商品出库管理\n" +
" 4、仓库盘点管理\n" +
" 5.退出系统\n" +
"**********************************************************");
Scanner input=new Scanner(System.in);
int key=input.nextInt();
switch (key){
case 1:{
AddGood();
mainmenu();
return;
}
case 2:{
ChangeGood();
mainmenu();
return;
}
case 3:{
OutGood();
mainmenu();
return;
}
case 4:{
ShowGood();
mainmenu();
return;
}
case 5:{
return;
}
}
}
public static void AddGood(){
Scanner input=new Scanner(System.in);
String id,iname,sname,wtime,wnumber,wplace;
int inumber,flag=0;
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n"+
"***********************************************************");
System.out.print(" 商品编号:");
id=input.next();
if(id.length()!=8)
flag=1;
System.out.print(" 商品名称:");
iname=input.next();
System.out.print(" 供货商信息:");
sname=input.next();
System.out.print(" 入库时间:");
wtime=input.next();
if(wtime.length()!=8)
flag=1;
System.out.print(" 存放仓库号:");
wnumber=input.next();
if(wnumber.length()!=3)
flag=1;
System.out.print(" 存放位置信息:");
wplace=input.next();
if(wplace.length()!=8)
flag=1;
System.out.print(" 入库商品数量:");
inumber=input.nextInt();
if(flag==1){
System.out.println(" 录入有误,请重新输入");
AddGood();
return;
}
else{
Mes[cnt]=new WarehouseInformation(id,iname,sname,wtime,wnumber,wplace,inumber);
System.out.print(" 商品编号:");
System.out.println(Mes[cnt].getItemno());
System.out.print(" 商品名称:");
System.out.println(Mes[cnt].getItemname());
System.out.print(" 供货商信息:");
System.out.println(Mes[cnt].getSuppliername());
System.out.print(" 入库时间:");
System.out.println(Mes[cnt].getWarehousingtime());
System.out.print(" 存放仓库号:");
System.out.println(Mes[cnt].getWarehousenumber());
System.out.print(" 存放位置信息:");
System.out.println(Mes[cnt].getWarehouseplace());
System.out.print(" 入库商品数量:");
System.out.println(Mes[cnt].getItemnumber());
Mes[cnt].setAllnumber(inumber);
cnt++;
return;
}
}
public static void ChangeGood(){
Scanner input=new Scanner(System.in);
String id;
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022\n"+
"***********************************************************");
System.out.print(" 请输入商品编号:");
id=input.next();
int i=0;
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n"+
"***********************************************************");
i=iDisplay(id);
while(i<1) {
System.out.println(" 该商品不存在");
ChangeGood();
return;
}
if(i>=1){
int num=0;
System.out.print(" 请选择需要修改的信息编号(1-7):");
int key=input.nextInt();
for ( int j = 0; j < 5; j++) {
if(Mes[j].getItemno().compareTo(id)==0) {
num=j;
break;
}
else break;
}
switch(key){
case 1: {
String c,yn;
System.out.print(" 请输入修改后的商品编号:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setItemno(c);
Display(num);
return;
}
else if (yn.equals("N")){
return;
}
}
case 2: {
String c,yn;
System.out.print(" 请输入修改后的商品名称:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setItemname(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
case 3:{
String c,yn;
System.out.print(" 请输入修改后的供货商信息:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setSuppliername(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
case 4:{
String c,yn;
System.out.print(" 请输入修改后的入库时间:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setWarehousingtime(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
case 5:{
String c,yn;
System.out.print(" 请输入修改后的存放仓库号:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setWarehousenumber(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
case 6:{
String c,yn;
System.out.print(" 请输入修改后的存放位置信息:");
c= input.next();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setWarehouseplace(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
case 7:{
int c;
String yn;
System.out.print(" 请输入修改后的商品数量:");
c= input.nextInt();
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setItemnumber(c);
Display(num);
return;
}
else if(yn.equals("N")){
return;
}
}
default:{
System.out.println(" 该选项不存在");
return;
}
}
}
}
public static void OutGood(){
Scanner input=new Scanner(System.in);
String id;
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n" +
"***********************************************************");
System.out.print(" 请输入商品编号:");
id= input.next();
System.out.println("**********************************************************");
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n" +
"***********************************************************");
int i;
i=iDisplay(id);
while(i<1) {
System.out.println(" 该商品不存在,请重新输入:");
ChangeGood();
return;
}
if(i>=1){
int num=0;
String stime,yn;
int onum;
for ( int j = 0; j < 5; j++) {
if(Mes[j].getItemno().compareTo(id)==0) {
num=j;
break;
}
else break;
}
System.out.print(" 8.出库时间:");
stime= input.next();
System.out.print(" 9.出库数量:");
onum= input.nextInt();
System.out.println("**********************************************************");
System.out.print(" 是否确认?(Y/N):");
yn=input.next();
if(yn.equals("Y")){
Mes[num].setShipmenttime(stime);
Mes[num].setOutnumber(onum);
int ty;
ty=Mes[num].getAllnumber();
Mes[num].setAllnumber(ty-onum);
Display(num);
System.out.println(" 8.出库时间"+Mes[num].getShipmenttime());
System.out.println(" 9.出库数量"+Mes[num].getOutnumber());
return;
}
else if (yn.equals("N")){
OutGood();
return;
}
}
}
public static void ShowGood(){
System.out.println("***********************************************************\n"+
" 石家庄铁道大学前进22软件开发有限公司\n" +
" 仓库管理系统2022版\n"+
"***********************************************************");
System.out.println("1、商品编号:"+Mes[0].getItemno()+"、 商品名称:"+Mes[0].getItemname()+"、库存数量:"+Mes[0].getAllnumber());
System.out.println("2、商品编号:"+Mes[1].getItemno()+"、 商品名称:"+Mes[1].getItemname()+"、库存数量:"+Mes[1].getAllnumber());
System.out.println("3、商品编号:"+Mes[2].getItemno()+"、 商品名称:"+Mes[2].getItemname()+"、库存数量:"+Mes[2].getAllnumber());
System.out.println("4、商品编号:"+Mes[3].getItemno()+"、 商品名称:"+Mes[3].getItemname()+"、库存数量:"+Mes[3].getAllnumber());
System.out.println("5、商品编号:"+Mes[4].getItemno()+"、 商品名称:"+Mes[4].getItemname()+"、库存数量:"+Mes[4].getAllnumber());
System.out.print("**********************************************************");
}
public static void Display(int i){
System.out.println(" 1、商品编号:" +Mes[i].getItemno()+
"\n 2、商品名称:"+Mes[i].getItemname() +
"\n 3、供货商信息:"+Mes[i].getSuppliername() +
"\n 4、入库时间:" +Mes[i].getWarehousingtime()+
"\n 5、存放仓库号:" +Mes[i].getWarehousenumber()+
"\n 6、存放位置信息:"+Mes[i].getWarehouseplace() +
"\n 7、入库商品数量:" +Mes[i].getItemnumber());
}
public static int iDisplay(String id){
int i;
int flag=0;
for ( i = 0; i < 5; i++) {
if(Mes[i].getItemno().compareTo(id)==0) {
System.out.println(" 1、商品编号:" +Mes[i].getItemno()+
"\n 2、商品名称:"+Mes[i].getItemname() +
"\n 3、供货商信息:"+Mes[i].getSuppliername() +
"\n 4、入库时间:" +Mes[i].getWarehousingtime()+
"\n 5、存放仓库号:" +Mes[i].getWarehousenumber()+
"\n 6、存放位置信息:"+Mes[i].getWarehouseplace() +
"\n 7、入库商品数量:" +Mes[i].getItemnumber());
flag=1;
break;
}
else
flag=0;
}
return flag;
}
public static void main(String[] args) {
mainmenu();
}
}
class WarehouseInformation{
private String itemno;
private String itemname;
private String suppliername;
private String warehousingtime;
private String shipmenttime;
private String warehousenumber;
private String warehouseplace;
private int itemnumber;
private int outnumber;
private int allnumber;
public WarehouseInformation(String id, String iname, String sname, String wtime, String wnumber, String wplace, int inumber) {
itemno=id;
itemname=iname;
suppliername=sname;
warehousingtime=wtime;
warehousenumber=wnumber;
warehouseplace=wplace;
itemnumber=inumber;
allnumber=inumber;
}
public int getAllnumber() {
return allnumber;
}
public void setAllnumber(int allnumber) {
this.allnumber = allnumber;
}
public String getItemno() {
return itemno;
}
public void setItemno(String itemno) {
this.itemno = itemno;
}
public int getItemnumber() {
return itemnumber;
}
public void setItemnumber(int itemnumber) {
this.itemnumber = itemnumber;
}
public int getOutnumber() {
return outnumber;
}
public void setOutnumber(int outnumber) {
this.outnumber = outnumber;
}
public String getItemname() {
return itemname;
}
public void setItemname(String itemname) {
this.itemname = itemname;
}
public String getSuppliername() {
return suppliername;
}
public void setSuppliername(String suppliername) {
this.suppliername = suppliername;
}
public String getWarehousingtime() {
return warehousingtime;
}
public void setWarehousingtime(String warehousingtime) {
this.warehousingtime = warehousingtime;
}
public String getShipmenttime() {
return shipmenttime;
}
public void setShipmenttime(String shipmenttime) {
this.shipmenttime = shipmenttime;
}
public String getWarehousenumber() {
return warehousenumber;
}
public void setWarehousenumber(String warehousenumber) {
this.warehousenumber = warehousenumber;
}
public String getWarehouseplace() {
return warehouseplace;
}
public void setWarehouseplace(String warehouseplace) {
this.warehouseplace = warehouseplace;
}
}

浙公网安备 33010602011771号