设计.docx

上传人:b****7 文档编号:23525340 上传时间:2023-05-17 格式:DOCX 页数:17 大小:19.23KB
下载 相关 举报
设计.docx_第1页
第1页 / 共17页
设计.docx_第2页
第2页 / 共17页
设计.docx_第3页
第3页 / 共17页
设计.docx_第4页
第4页 / 共17页
设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

设计.docx

《设计.docx》由会员分享,可在线阅读,更多相关《设计.docx(17页珍藏版)》请在冰豆网上搜索。

设计.docx

设计

安徽建筑工业大学

课程设计报告

 

课程名称:

java课程设计

题目:

java小程序

院系:

数理系

专业:

信息与计算科学

班级:

12信息专升本

(1)班

学号:

122072101361220721013912207210148

姓名:

杨敏敏张会蔡会丽

时间:

2013年11月21日

 

一.设计题目根据系统提示从键盘输入相关内容。

二.设计要求可以使用类似命令行的方式来实现。

程序运行后提示用户可以执行的操作类型,并要求用户输入一种选择。

根据用户的选择,提示用户输入相关信息(根据不同选择,输入不同信息),最后在屏幕上输出这些信息。

可以使用循环来完成,以接受用户的多次输入。

当用户选择退出时,程序结束。

对于不合要求的输入,给出提示,允许再重新输入。

对于不同类型的输入信息,需要使用分支结构判别

三.学习要点本程序主要练习循环结构和分支结构的使用,掌握从键盘输入及输出的基本语句,学会定义不同的类和实例以及父类和子类等相关内容。

四.设计思路设计书、CD、磁带三个类,每个类含有名字、作者或演唱者、出版社或唱片社、价格、出版日期等相关信息。

1.由于这三个类有共同的内容,可以设计一个父类,父类中含有公共信息。

publicclassMyMedia{

StringmediaName;//出版物名称

floatprice;//出版物价格

Stringpress;//出版社(磁带发行商)

Stringartist;//作者(演唱者)

//出版物名称输入成员函数

voidmediaNameInput(){}

//出版物价格输入成员函数

voidmediaPriceInput(){}

//出版社(磁带发行商)输入成员函数

voidmediaPressInput(){}

//作者(演唱者)输入成员函数

voidartisInput(){}

}

2.然后分别为书、CD、和磁带定义三个子类,各子类中新增加的成员变量如下:

//书子类

classMyBookextendsMyMedia{

Stringeditor;//书的责任编辑

DatepublishDate=null;//出版日期你

StringbookISBN;//书的ISBN

//构造函数

MyBook(Stringbn,floatbp,Stringbpr,Stringba,Stringbi,Stringbe){}

//书相关信息的输入成员函数

publicvoidbookOtherInfo(){}

//输出书的相关信息

publicvoidgetbookInfo(){}

}

3.//CD子类

classMyCDextendsMyMedia{

StringcdISRC;//CD的ISRC

Stringcdpublisher;//CD发行商

//构造函数

MyCD(Stringcn,floatcp,Stringcpr,Stringca,Stringci,Stringcpl){}

//CD相关信息的输入成员函数

publicvoidcdOtherInfo(){}

//输出CD的相关信息

publicvoidgetcdInfo(){}

4.//磁带子类

classMyTapeextendsMyMedia{

StringtapeISRC;//磁带的ISRC

//构造函数

MyTape(Stringtn,floattp,Stringta,Stringti,Stringtpr){}

//磁带相关信息的输入成员函数

publicvoidtapeOtherInfo(){}

//输出磁带的相关信息

publicvoidgettapeInfo(){}

}

5.当然,各子类的成员函数也会相应变化。

主程序中用下述语句输出选项,供用户选择

System.out.println("\n请选择你要进行的操作(请输入1--4中的任一数字):

\n"

+"1:

输入书的信息:

\n"

+"2:

输入CD的信息:

\n"

+"3:

输入磁带的信息:

\n"

+"4:

退出系统:

\n");

用户的输入保存在choice中,根据它的值分以下几种情况处理switch(choice){

case1:

//选择为书处理书的相关信息

break;

case2:

//选择为CD

break;

case3:

//选择为磁带处理磁带相关信息

break;

default:

//选择错误;

continu_e=false

}

6.设计实现,参考程序源代码如下

importjava.io.*;

importjava.util.Date;

importjava.text.*;

//出版物父类

publicclassMyMedia{

StringmediaName;//出版物名称

floatprice;//出版物价格

Stringpress;//出版社(磁带发行商)

Stringartist;//作者(演唱者)

//出版物名称输入成员函数

voidmediaNameInput(){

try{

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

//判断输入出版物名称是否为空

booleanb=true;

while(b){

mediaName=in.readLine();

if(mediaName.matches(""))

System.out.println("名字不能为空请重试:

");

elseb=false;

}

}catch(Exceptione){

System.out.println(e);

}

}

//出版物价格输入成员函数

voidmediaPriceInput(){

try{

Stringp=newString();

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

//判断输入价格是否为数字或非负数字

booleanb=true;

L2:

while(b){

p=in.readLine();

try{

price=Float.parseFloat(p);

if(price<=0)

System.out.print("负数请重试");

elseb=false;

}catch(NumberFormatExceptione){

System.out.print("非数字请重试:

");

continueL2;

}

}

}catch(Exceptione){

System.out.print(e);

}

}

//出版社(磁带发行商)输入成员函数

voidmediaPressInput(){

try{

Stringmp=newString();

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

mp=in.readLine();

press=mp;

}catch(Exceptione){

System.out.println(e);

}

}

//作者(演唱者)输入成员函数

voidartisInput(){

try{

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

Stringma=in.readLine();

artist=ma;

}catch(Exceptione){

System.out.print(e);

}

}

}

//书子类

classMyBookextendsMyMedia{

Stringeditor;//书的责任编辑

DatepublishDate=null;//出版日期你

StringbookISBN;//书的ISBN

//构造函数

MyBook(Stringbn,floatbp,Stringbpr,Stringba,Stringbi,Stringbe){

mediaName=bn;

price=bp;

press=bpr;

artist=ba;

bookISBN=bi;

editor=be;

}

//书相关信息的输入成员函数

publicvoidbookOtherInfo(){

try{

Stringboi=newString();

Stringboe=newString();

Stringbpds=newString();

DateFormatbpddf=DateFormat.getDateInstance();

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

System.out.print("请输入书的ISBN");

boi=in.readLine();

System.out.print("请输入书的编辑:

");

boe=in.readLine();

bookISBN=boi;

editor=boe;

//书的出版日期的输入,并判断输入格式是否正确

booleanb=true;

L3:

while(b){

System.out.print("请输入书的出版日期(yyy-mm-dd):

");

bpds=in.readLine();

try{

publishDate=bpddf.parse(bpds);

b=false;

}catch(Exceptione){

System.out.print("输入日期不正确!

请重试:

\n");

}

}

}catch(Exceptione){

System.out.print(e);

}

}

//输出书的相关信息

publicvoidgetbookInfo(){

//出版日期

intyear,month,day;

year=publishDate.getYear()+1900;

//函数getYear()的返回值是与1900比较后的值,故要加1900

month=publishDate.getMonth()+1;

//函数getMonth()的返回值为0~11,所以要加1

day=publishDate.getDate();

System.out.println();

System.out.println("您输入了如下信息:

\n"

+"书的名称是:

"+mediaName

+"\n书的价格是:

"+price

+"\n书的作者是:

"+artist

+"\n书的ISBN是:

"+bookISBN

+"\n书的出版社是:

"+press

+"\n书的编辑室:

"+editor

+"\n书的出版日期是:

"+year

+"年"+month

+"月"+day+"日");

System.out.println();

}

}

//CD子类

classMyCDextendsMyMedia{

StringcdISRC;//CD的ISRC

Stringcdpublisher;//CD发行商

//构造函数

MyCD(Stringcn,floatcp,Stringcpr,Stringca,Stringci,Stringcpl){

mediaName=cn;

price=cp;

press=cpr;

artist=ca;

cdISRC=ci;

cdpublisher=cpl;

}

//CD相关信息的输入成员函数

publicvoidcdOtherInfo(){

try{

Stringcdi=newString();

Stringcdp=newString();

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

System.out.print("请输入CD的ISRC:

");

cdi=in.readLine();

System.out.print("请输入CD的发行商:

");

cdp=in.readLine();

cdISRC=cdi;

cdpublisher=cdp;

}catch(Exceptione){

System.out.print(e);

}

}

//输出CD的相关信息

publicvoidgetcdInfo(){

System.out.println();

System.out.println("您输入了如下信息:

\n"

+"CD的名称是:

"+mediaName

+"\nCD的价格是:

"+price

+"\nCD的出版社是:

"+press

+"\n唱片的演唱者是:

"+artist

+"\nCD的ISRC是:

"+cdISRC

+"\nCD的发行商是:

"+cdpublisher);

System.out.println();

}

}

//磁带子类

classMyTapeextendsMyMedia{

StringtapeISRC;//磁带的ISRC

//构造函数

MyTape(Stringtn,floattp,Stringta,Stringti,Stringtpr){

mediaName=tn;

price=tp;

artist=ta;

tapeISRC=ti;

press=tpr;

}

//磁带相关信息的输入成员函数

publicvoidtapeOtherInfo(){

try{

Stringtai=newString();

InputStreamReaderir=newInputStreamReader(System.in);

BufferedReaderin=newBufferedReader(ir);

System.out.print("请输入磁带的ISRC:

");

tai=in.readLine();

tapeISRC=tai;

}catch(Exceptione){

System.out.print(e);

}

}

//输出磁带的相关信息

publicvoidgettapeInfo(){

System.out.println();

System.out.println("您输入了如下信息:

"

+"\n磁带的名称是:

"+mediaName

+"\n磁带的价格是:

"+price

+"\n磁带的演唱者是:

"+artist

+"\n磁带的ISRC是:

"+tapeISRC

+"\n磁带的发行商是:

"+press);

System.out.println();

}

}

classMediaMain{

publicstaticvoidmain(String[]args)//程序入口

{

intchoice=0;

booleancontinu_e=true;

InputStreamReaderir;

BufferedReaderin;

Strings=newString();

//用户选择界面

while(continu_e){

System.out.println("\n请选择你要进行的操作(请输入1--4中的任一数字):

\n"

+"1:

输入书的信息:

\n"

+"2:

输入CD的信息:

\n"

+"3:

输入磁带的信息:

\n"

+"4:

退出系统:

\n");

//由用户输入选择,并判断输入选择是否正确

booleanb=true;

try{

ir=newInputStreamReader(System.in);

in=newBufferedReader(ir);

while(b){

s=in.readLine();

try{

choice=Integer.parseInt(s);

if(choice<1||choice>4){

System.out.println("输入错误!

请重试:

");

continue;

}

b=false;

}catch(NumberFormatExceptione){

System.out.println("非数字请重试:

");

continue;

}

}

}catch(IOExceptione){

System.out.println(e);

}

//各个子类的初始化

MyBookmb=newMyBook("",0.0f,"","","","");

MyCDmc=newMyCD("",0.0f,"","","","");

MyTapemt=newMyTape("",0.0f,"","","");

switch(choice){

case1:

//选择为书

System.out.print("请输入书的名字:

");

mb.mediaNameInput();

System.out.print("请输入书的价格:

");

mb.mediaPriceInput();

System.out.print("请输入书的出版社:

");

mb.mediaPressInput();

System.out.print("请输入书的作者:

");

mb.artisInput();

//输入其他信息

mb.bookOtherInfo();

//输出用户输入的内容;

mb.getbookInfo();

break;

case2:

//选择为CD

System.out.print("请输入CD的名字:

");

mc.mediaNameInput();

System.out.print("请输入CD的价格:

");

mc.mediaPriceInput();

System.out.print("请输入CD的出版社:

");

mc.mediaPressInput();

System.out.print("请输入CD的演唱者:

");

mc.artisInput();

//输入其他信息

mc.getcdInfo();

break;

case3:

//选择为磁带

System.out.print("请输入磁带的名字:

");

mt.mediaNameInput();

System.out.print("请输入磁带的价格:

");

mt.mediaNameInput();

System.out.print("请输入磁带的发行商");

mt.mediaPressInput();

System.out.print("请输入磁带的演唱者");

mt.artisInput();

//输入其他信息

mt.tapeOtherInfo();

//输出用户输入内容

mt.gettapeInfo();

break;

default:

//选择错误;

continu_e=false;

}

}

System.out.println("再见!

\n");

}

}

五、设计心得体会

本次Java课程设计我们准备做的课题是java小程序,刚开始拿到题目我们组员都不知如何下手,经过小组成员一起查找资料,并且开会讨论,我们确定了设计的设计目标以及具体实现方式,包括如何将Java的思想运用到实际系统的详细设计之中。

实验过程中,首先要将系统要实现的功能分为几大模块,然后每个组员分别完成,在此过程中使我加深了对Java的理解,以及如何进行团队工作的划分,学会发现各组员的长处并将其发挥出来。

虽然大家没怎么学过Java,但大家都有C++程序设计基础,所以通过努力实验,进一步培养我们利用Java语言进行编程和调试程序的能力,同时使我们能够学会将C++与Java语言结合起来编写较复杂具有实际

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 营销活动策划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1