老师布置的题目,不会做啊,请大家帮忙啊

时间:2021-06-29 21:59:32
设计题目:模拟简单的信息录入系统。设计书、CD、磁带三个类,每个类含有名字、作者或演唱者、出版社或唱片社、价格、出版日期等相关信息。根据系统提示从键盘输入相关内容。

设计要求:可以使用类似命令行的方式来实现。程序运行后提示用户可以执行的操作类型,并要求用户输入一种选择。根据用户的选择,提示用户输入相关的信息(根据不同选择,输入不同的信息),最后在屏幕上输出这些信息。

   可以使用循环来完成,以接受用户的多次输入。当用户选择退出,程序结束。对于不合要求的输入,给出提示,允许再重新输入。对于不同类型的输入信息,需要使用分支结构判别。

提示:由于书、CD、磁带有共同的内容,可以设计一个父类,父类中包含公共信息。
class MyMedia{
String mediaName;       //出版物名称
float price;              //出版物价格
String press;             //出版社(磁带发行商)
String artist;             //作者(演唱者)
void mediaNameInput(){}   //出版物名称输入成员函数
void mediaPriceInput(){}    //价格输入成员函数
void mediaPressInput(){}    //出版社(磁带发行商)输入成员函数
void artistInput(){}         //作者(演唱者)输入成员函数
}         

6 个解决方案

#1


汗一个。。。。。
请问书、CD、磁带这三个类有不同信息吗?
如果没有不同信息的话,一个类就OK了,何必要三个?????

#2


同意用一个类。
楼主的类里再加一个变量:
String className;//表示是CD、书、磁带,或者其他东东。

#3


按照你的要求代码会有些冗余,不过可以写
以下是父类

import java.io.*;
import java.util.Date;
import java.text.*;
//出版物父类
class MyMedia
{String mediaName;
float price;
String press;
String artist;
void mediaNameInput()
{try
{InputStreamReader ir=new InputStreamReader(System.in);
     BufferedReader in=new BufferedReader(ir);
 boolean b=true;
 while(b){
 mediaName=in.readline();
 if (mediaName.matchea("")) System.out.println("名字不能为空!请重试:");
 else  b=false;}
 
}
catch (Exception e)
{System.out.println(e);
}
}
//出版物价格输入成员函数
void mediaPriceInput(){
try
{String p=new String();
InputStreamReader ir=new InputStreamReader(System.in);
     BufferedReader in=new BufferedReader(ir);
 boolean b=true;
 while(b){
 p=in.readline();
 try{
 price=Float.parseFloat(p);
 if (price<0) {System.out.println("不能为负数!请重试:");
 else  b=false; }
      catch(NumberFormatException e){
  System.out.println("非数字!请重试:");
  }
 }
 }
catch (Exception e)
{System.out.println(e);
}
}
//出版社(磁带发行商)输入成员函数
void mediaPressInput(){
try{
String mp=new String();
           InputStreamReader ir=new InputStreamReader(System.in);
           BufferedReader in=new BufferedReader(ir);
   mp=in.readLine();
   press=mp;
}catch (Exception e)
{System.out.println(e);
}
}
//作者(演唱者)输入成员函数
void artistInput(){
try{
         String ma=new String();
           InputStreamReader ir=new InputStreamReader(System.in);
           BufferedReader in=new BufferedReader(ir);
   ma=in.readLine();
   artist=ma;
}catch (Exception e)
{System.out.println(e);
}
}
}
再写三个子类即可

#4


谢谢,我会先试再给你分的.呵呵~!

#5


楼上的楼上 好强阿 学习一下

#6


书、CD、磁带三个类可以继承自同一个父类。。。。

#1


汗一个。。。。。
请问书、CD、磁带这三个类有不同信息吗?
如果没有不同信息的话,一个类就OK了,何必要三个?????

#2


同意用一个类。
楼主的类里再加一个变量:
String className;//表示是CD、书、磁带,或者其他东东。

#3


按照你的要求代码会有些冗余,不过可以写
以下是父类

import java.io.*;
import java.util.Date;
import java.text.*;
//出版物父类
class MyMedia
{String mediaName;
float price;
String press;
String artist;
void mediaNameInput()
{try
{InputStreamReader ir=new InputStreamReader(System.in);
     BufferedReader in=new BufferedReader(ir);
 boolean b=true;
 while(b){
 mediaName=in.readline();
 if (mediaName.matchea("")) System.out.println("名字不能为空!请重试:");
 else  b=false;}
 
}
catch (Exception e)
{System.out.println(e);
}
}
//出版物价格输入成员函数
void mediaPriceInput(){
try
{String p=new String();
InputStreamReader ir=new InputStreamReader(System.in);
     BufferedReader in=new BufferedReader(ir);
 boolean b=true;
 while(b){
 p=in.readline();
 try{
 price=Float.parseFloat(p);
 if (price<0) {System.out.println("不能为负数!请重试:");
 else  b=false; }
      catch(NumberFormatException e){
  System.out.println("非数字!请重试:");
  }
 }
 }
catch (Exception e)
{System.out.println(e);
}
}
//出版社(磁带发行商)输入成员函数
void mediaPressInput(){
try{
String mp=new String();
           InputStreamReader ir=new InputStreamReader(System.in);
           BufferedReader in=new BufferedReader(ir);
   mp=in.readLine();
   press=mp;
}catch (Exception e)
{System.out.println(e);
}
}
//作者(演唱者)输入成员函数
void artistInput(){
try{
         String ma=new String();
           InputStreamReader ir=new InputStreamReader(System.in);
           BufferedReader in=new BufferedReader(ir);
   ma=in.readLine();
   artist=ma;
}catch (Exception e)
{System.out.println(e);
}
}
}
再写三个子类即可

#4


谢谢,我会先试再给你分的.呵呵~!

#5


楼上的楼上 好强阿 学习一下

#6


书、CD、磁带三个类可以继承自同一个父类。。。。