上次我提了一个问题没人给我回答,现在有人帮我解决了这个问题,我想让人帮我改进下这程序,或者是都给注释一下!~~
我上次的问题如下:
假设你在业余时间经营一个会员制的CD出租销售店,需要一个管理程序:
增加、删除会员
出租、销售CD
进货、统计
请设计适当的功能,并实现这个程序
提示:
BufferedReader stdin =new BufferedReader(new InputStreamReader( System.in));
System.out.print("Enter a line:");
System.out.println(stdin.readLine()); 解决的程序如下:
//程序功能:CD出租销售:1.增加、删除会员
2.出租、销售CD
3.进货、统计
import java.util.*;
import java.io.*;
/*vip的数据类型和单个的输入与输出*/
class VIPdate{
String name;
String email;
int num;
int CDPrice;
VIPdate(String Name1,int Num1,int CDPrice1,String Email1){
name=Name1; num=Num1;CDPrice=CDPrice1;email=Email1;
}
public String toString(){
return "Name:"+name+" VIPNumber:"+num+" Price:"+CDPrice+" Email:"+email;
}
}
/*对vip进行的插入删除和打印的操作*/
class MVIP{
VIPdate vip[]=new VIPdate[100]; //为将插入的会员分配空间
public boolean insertVip(VIPdate v){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]==null){
vip[i]=v;
return true;
}
}
return false;
}
public boolean deleteVip(int vipNum){
int i;
for(i=0;i<vip.length;i++){
if(vip[i].num==vipNum){
vip[i]=null;
return true;
}
}
return false;
}
public void printVip(){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]!=null){
System.out.println(vip[i].toString());
}
}
}
}
/*cd的数据类型和单个的输入与输出*/
class CdData{
String cdName;
int cdNum;
int cdPrice;
CdData(String cdname,int cdnum,int cdprice){
cdName=cdname; cdNum=cdnum; cdPrice=cdprice;
}
public String tostring(){
return "cdname: "+cdName+", "+"cdnum: "+cdNum+", "+"cdprice: "+cdPrice;
}
}
/*对cd进行的插入删除和打印的操作*/
class MCD{
/*cd类型的数组用来盛放插入的数据*/
CdData cd[]=new CdData[1000];
/*实现cd类型的数据的插入*/
public boolean cdInsert(CdData data){
int i;
for(i=0;i<cd.length;i++){
if(cd[i]==null){
cd[i]=data;
return true;
}
}
return false;
}
/*可能出现异常,没有值时也要删除*/
public boolean cdDelete(int cdnum){
int i;
for(i=0;i<cd.length;i++){
if(cd[i].cdNum==cdnum){
cd[i]=null;
return true;
}
}
return false;
}
/*为什么返回值为BOOLEAN时出现异常 ,不能够正常输出*/
public void cdPrint(){
int i;
for(i=0;i<cd.length;i++){
if(cd[i]!=null){
System.out.println(cd[i].tostring()); //如果不加上tostring(),会出现异常
}
}
}
} /*实现了对会员和cd的操作*/
public class Manager{
MVIP mvip=new MVIP();
MCD mcd=new MCD();
public static void main(String[] args){
Manager manager=new Manager();
VIPdate vip1=new VIPdate("VIP1",1,100,"[email protected]");
manager.mvip.insertVip(vip1);
VIPdate vip2=new VIPdate("VIP2",2,200,"[email protected]");
manager.mvip.insertVip(vip2);
CdData cd1=new CdData("cd1",1,10);
manager.mcd.cdInsert(cd1);
CdData cd2=new CdData("cd2",2,15);
manager.mcd.cdInsert(cd2);
String result = null;
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
try{
outer:
while(true){
System.out.println("请选择数字进行操作");
System.out.println("1 vip 操作 ");
System.out.println("2 cd 操作 ");
System.out.println("3 exit ");
result=bufferReader.readLine();
int m=Integer.parseInt(result);
switch(m){
case 1:
while(true){
System .out.println("1 vipPrint");
System.out.println("2 vipDelete");
System.out.println("3 vipInsert");
System.out.println("4 Exit");
result=bufferReader.readLine();
int vipm=Integer.parseInt(result);
switch(vipm){
case 1:
System.out.println("Enter switch 1.");
manager.mvip.printVip();
break;
case 2:
System.out.println("enter the vipNum,select 1 view the vipdate");
result=bufferReader.readLine();
int k=Integer.parseInt(result);
manager.mvip.deleteVip(k);
break;
case 3:
System.out.println("enter the vipdate,Name,Num,CDprice,Email");
System.out.println("enter the name");
result=bufferReader.readLine();
String name=result;
System.out.println("enter the num");
result=bufferReader.readLine();
int num=Integer.parseInt(result);
System.out.println("enter the cdPrice");
result=bufferReader.readLine();
int cdPrice=Integer.parseInt(result);
System.out.println("enter the email");
result=bufferReader.readLine();
String email=result;
VIPdate vip=new VIPdate(name,num,cdPrice,email);
manager.mvip.insertVip(vip);
System.out.println("name "+ name+","+"num "+ num+","+"cdPrice "+ cdPrice+","+"email "+email);
break;
case 4:
continue outer;
}
}
case 2:
while(true){
System.out.println("1 cdDelete");
System.out.println("2 cdInsert");
System.out.println("3 cdPrint");
System .out.println("4 exit");
result=bufferReader.readLine();
int cdm=Integer.parseInt(result);
switch(cdm){
case 1:
System.out.println("input the cdNum");
result=bufferReader.readLine();
int cdN=Integer.parseInt(result);
manager.mcd.cdDelete(cdN);
// System.out.println(manager.mcd.cdDelete(cdN));
break;
case 2:
System.out.println("input the cdName");
result=bufferReader.readLine();
String cdNm=result;
System.out.println("input the cdNum");
result=bufferReader.readLine();
int cdNumber=Integer.parseInt(result);
System.out.println("inout the cdPrice");
result=bufferReader.readLine();
int cdP=Integer.parseInt(result);
CdData cd=new CdData(cdNm,cdNumber,cdP);
manager.mcd.cdInsert(cd);
System.out.println("cdnm "+cdNm+" cdnumber "+cdNumber+" cdp "+cdP);
// System.out.println(manager.mcd.cdInsert(cd));
break;
case 3:
manager.mcd.cdPrint();
//System.out.println(manager.mcd.cdPrint());
break;
case 4:
continue outer;
}
}
case 3:
System.exit(0);
}
}
}catch(IOException e){
System.err.println(e);
System.exit(0);
}catch(NumberFormatException e2){
System.out.println("Please input Number!!!");
System.exit(0);
}
}
}
我上次的问题如下:
假设你在业余时间经营一个会员制的CD出租销售店,需要一个管理程序:
增加、删除会员
出租、销售CD
进货、统计
请设计适当的功能,并实现这个程序
提示:
BufferedReader stdin =new BufferedReader(new InputStreamReader( System.in));
System.out.print("Enter a line:");
System.out.println(stdin.readLine()); 解决的程序如下:
//程序功能:CD出租销售:1.增加、删除会员
2.出租、销售CD
3.进货、统计
import java.util.*;
import java.io.*;
/*vip的数据类型和单个的输入与输出*/
class VIPdate{
String name;
String email;
int num;
int CDPrice;
VIPdate(String Name1,int Num1,int CDPrice1,String Email1){
name=Name1; num=Num1;CDPrice=CDPrice1;email=Email1;
}
public String toString(){
return "Name:"+name+" VIPNumber:"+num+" Price:"+CDPrice+" Email:"+email;
}
}
/*对vip进行的插入删除和打印的操作*/
class MVIP{
VIPdate vip[]=new VIPdate[100]; //为将插入的会员分配空间
public boolean insertVip(VIPdate v){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]==null){
vip[i]=v;
return true;
}
}
return false;
}
public boolean deleteVip(int vipNum){
int i;
for(i=0;i<vip.length;i++){
if(vip[i].num==vipNum){
vip[i]=null;
return true;
}
}
return false;
}
public void printVip(){
int i;
for(i=0;i<vip.length;i++){
if(vip[i]!=null){
System.out.println(vip[i].toString());
}
}
}
}
/*cd的数据类型和单个的输入与输出*/
class CdData{
String cdName;
int cdNum;
int cdPrice;
CdData(String cdname,int cdnum,int cdprice){
cdName=cdname; cdNum=cdnum; cdPrice=cdprice;
}
public String tostring(){
return "cdname: "+cdName+", "+"cdnum: "+cdNum+", "+"cdprice: "+cdPrice;
}
}
/*对cd进行的插入删除和打印的操作*/
class MCD{
/*cd类型的数组用来盛放插入的数据*/
CdData cd[]=new CdData[1000];
/*实现cd类型的数据的插入*/
public boolean cdInsert(CdData data){
int i;
for(i=0;i<cd.length;i++){
if(cd[i]==null){
cd[i]=data;
return true;
}
}
return false;
}
/*可能出现异常,没有值时也要删除*/
public boolean cdDelete(int cdnum){
int i;
for(i=0;i<cd.length;i++){
if(cd[i].cdNum==cdnum){
cd[i]=null;
return true;
}
}
return false;
}
/*为什么返回值为BOOLEAN时出现异常 ,不能够正常输出*/
public void cdPrint(){
int i;
for(i=0;i<cd.length;i++){
if(cd[i]!=null){
System.out.println(cd[i].tostring()); //如果不加上tostring(),会出现异常
}
}
}
} /*实现了对会员和cd的操作*/
public class Manager{
MVIP mvip=new MVIP();
MCD mcd=new MCD();
public static void main(String[] args){
Manager manager=new Manager();
VIPdate vip1=new VIPdate("VIP1",1,100,"[email protected]");
manager.mvip.insertVip(vip1);
VIPdate vip2=new VIPdate("VIP2",2,200,"[email protected]");
manager.mvip.insertVip(vip2);
CdData cd1=new CdData("cd1",1,10);
manager.mcd.cdInsert(cd1);
CdData cd2=new CdData("cd2",2,15);
manager.mcd.cdInsert(cd2);
String result = null;
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
try{
outer:
while(true){
System.out.println("请选择数字进行操作");
System.out.println("1 vip 操作 ");
System.out.println("2 cd 操作 ");
System.out.println("3 exit ");
result=bufferReader.readLine();
int m=Integer.parseInt(result);
switch(m){
case 1:
while(true){
System .out.println("1 vipPrint");
System.out.println("2 vipDelete");
System.out.println("3 vipInsert");
System.out.println("4 Exit");
result=bufferReader.readLine();
int vipm=Integer.parseInt(result);
switch(vipm){
case 1:
System.out.println("Enter switch 1.");
manager.mvip.printVip();
break;
case 2:
System.out.println("enter the vipNum,select 1 view the vipdate");
result=bufferReader.readLine();
int k=Integer.parseInt(result);
manager.mvip.deleteVip(k);
break;
case 3:
System.out.println("enter the vipdate,Name,Num,CDprice,Email");
System.out.println("enter the name");
result=bufferReader.readLine();
String name=result;
System.out.println("enter the num");
result=bufferReader.readLine();
int num=Integer.parseInt(result);
System.out.println("enter the cdPrice");
result=bufferReader.readLine();
int cdPrice=Integer.parseInt(result);
System.out.println("enter the email");
result=bufferReader.readLine();
String email=result;
VIPdate vip=new VIPdate(name,num,cdPrice,email);
manager.mvip.insertVip(vip);
System.out.println("name "+ name+","+"num "+ num+","+"cdPrice "+ cdPrice+","+"email "+email);
break;
case 4:
continue outer;
}
}
case 2:
while(true){
System.out.println("1 cdDelete");
System.out.println("2 cdInsert");
System.out.println("3 cdPrint");
System .out.println("4 exit");
result=bufferReader.readLine();
int cdm=Integer.parseInt(result);
switch(cdm){
case 1:
System.out.println("input the cdNum");
result=bufferReader.readLine();
int cdN=Integer.parseInt(result);
manager.mcd.cdDelete(cdN);
// System.out.println(manager.mcd.cdDelete(cdN));
break;
case 2:
System.out.println("input the cdName");
result=bufferReader.readLine();
String cdNm=result;
System.out.println("input the cdNum");
result=bufferReader.readLine();
int cdNumber=Integer.parseInt(result);
System.out.println("inout the cdPrice");
result=bufferReader.readLine();
int cdP=Integer.parseInt(result);
CdData cd=new CdData(cdNm,cdNumber,cdP);
manager.mcd.cdInsert(cd);
System.out.println("cdnm "+cdNm+" cdnumber "+cdNumber+" cdp "+cdP);
// System.out.println(manager.mcd.cdInsert(cd));
break;
case 3:
manager.mcd.cdPrint();
//System.out.println(manager.mcd.cdPrint());
break;
case 4:
continue outer;
}
}
case 3:
System.exit(0);
}
}
}catch(IOException e){
System.err.println(e);
System.exit(0);
}catch(NumberFormatException e2){
System.out.println("Please input Number!!!");
System.exit(0);
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货