设计要求:
1. 设计实现一个出版物的输入输出系统,出版物包括书,CD和磁带,用户选择对某一个出版物输入相关信息,并将输入的信息显示。
2. 各类出版物信息包括名字,作者或演唱者,出版社或唱片社,价格,出版日期等相关信息。
3. 使用循环来完成,以接受用户的循环操作。
4. 对于不合要求的输入,给出提示,允许再重新输入。
5. 当用户选择退出时,程序结束。
设计思路:
设计书,CD,磁带三个类,每个类含有名字,作者或演唱者,出版社或唱片社,价格,出版日期等相关信息。
由于这三个类又相关的相同内容,故可设计一个含有公共信息的父类。
class MyMedia{
String mediaName; //出版物名称
float price; //出版物价格
String press; //出版社(磁带发行商)
String artist; //作者(演唱者)
void mediaNameInput() //出版物名称输入
void mediaPriceInput(){ //出版物价格输入
void mediaPressInput(){ //出版社(磁带发行商)输入
void artistInput(){ //作者或演唱者输入
然后分别定义书,CD,磁带三个子类,并在各个子类中添加新的成员变量。
class MyBook extends MyMedia{ //书子类
String editor; //书的编辑
Date publishDate=null; //出版日期
String bookISBN; //书的ISBN
}
class MyCD extends MyMedia{ //CD子类
String cdISRC; //CD的ISRC
String cdPublisher; //CD的发行商
}
class MyTape extends MyMedia{ //磁带子类
String tapeISRC;
}
相应改变各个子类中的成员函数。
主程序中用下述语句输出选项供用户选择:
System.out.println("\n请选择你要进行的操作(请输入1-4中人一个数字):\n"
+"1:输入书的信息;\n"
+"2:输入CD的信息;\n"
+"3:输入磁带的信息;\n"
+"4:退出系统;\n");
用户输入的值保存于变量choice中,程序根据它的值分情况处理:
switch(choice){
case 1: //选择为书
//要求输入书的名称,价格等信息的输入相关信息,然后程序输出这些信息
break;
case 2: //选择为CD
//要求输入CD的名称,价格等信息的输入相关信息,然后程序输出这些信息
break;
case 3: //选择为磁带
//要求输入磁带的名称,价格等信息的输入相关信息,然后程序输出这些信息
break;
default: //选择错误
continue_e=false;
}
1