报告模板ktv.docx

上传人:b****8 文档编号:28357682 上传时间:2023-07-10 格式:DOCX 页数:20 大小:65.01KB
下载 相关 举报
报告模板ktv.docx_第1页
第1页 / 共20页
报告模板ktv.docx_第2页
第2页 / 共20页
报告模板ktv.docx_第3页
第3页 / 共20页
报告模板ktv.docx_第4页
第4页 / 共20页
报告模板ktv.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

报告模板ktv.docx

《报告模板ktv.docx》由会员分享,可在线阅读,更多相关《报告模板ktv.docx(20页珍藏版)》请在冰豆网上搜索。

报告模板ktv.docx

报告模板ktv

 

滨州学院计算机科学技术系

《Java语言程序设计》课后作业

 

题目

姓名学号

专业班级

 

年月日

 

成绩教师签名

问题描述及分析

(根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么)

1.模拟ktv点歌系统做基于java控制台的程序。

2.将歌曲的名字,歌手名字,歌曲内容保存。

3.能够从文件中读取大量歌曲的信息,并保存。

4.对歌曲能够按歌名排名,也能按歌手名字保存。

5.能通过歌名查找相关信息,也能按歌手查找相关信息。

6.能添加歌曲。

设计思路描述

调试过程中遇到的问题及解决办法

(调试过程中遇到的主要问题及解决方法,得到的结论)

问题1:

歌名和歌手字符串不能比较。

解决办法:

转换成char类型数组,逐个比较,并比较ACSII的值。

classMusicNameComparatorimplementsComparator

{

@Override

publicintcompare(Musicarg0,Musicarg1){

//TODOAuto-generatedmethodstub

charname1[]=arg0.GetMusName().toCharArray();

charname2[]=arg1.GetMusName().toCharArray();

inti=0;

while(name1[i]==name2[i]&&i

returnname1[i]-name2[i];

}

}

结论:

字符串转换成char类型数组,逐个比较,并比较ACSII的值。

问题2:

文件读取时,信息分类

解决办法:

publicvoidAddByFile(ListallMusic){

Stringmusname,lyric,singer;

try{BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream("123.txt")));

Stringdata=null;

data=br.readLine();

while(data!

=null){

Musicmusic=newMusic();

for(intj=0;j<3;j++)

{

if(j%3==0){

musname=data;

music.SetMusName(musname);}

elseif(j%3==1){

singer=data;

music.SetSinger(singer);}

elseif(j%3==2){

lyric=data;

music.SetLyric(lyric);

allMusic.add(music);}

data=br.readLine();

}

}

Collections.sort(allMusic,newMusicNameComparator());

}

 

catch(IOExceptionioe)

{ioe.toString();}

}

结论:

用BufferedReader.readline();从文件里一行一行读取。

 

总结

(对结果进行分析,设计心得,重点突出特色及改进设想)

1.加深对java集合框架的理解。

2.加深对comparator接口的练习,对Collections.sort(Listlist,Comp

arator

SuperT>);的使用

3.对String.indexof();的使用。

可以返回字符串是否存在相应的字串。

4.加深了对面向对象思想的理解。

和接触面向接口的思想。

附录

(参考资料等)

 

importjava.util.Comparator;

 

publicclassMusic{

privateStringNumber;

privateStringMusName;

privateStringSinger;

privateStringLyric;

publicMusic()

{

this.MusName="Null";

this.Singer="Null";

this.Lyric="Null";

}

publicMusic(StringmusName,Stringsinger,Stringlyric)

{

this.MusName=musName;

this.Singer=singer;

this.Lyric=lyric;

}

publicvoidSetMusName(Stringname)

{

this.MusName=name;

}

publicvoidSetSinger(Stringsinger)

{

this.Singer=singer;

}

publicvoidSetLyric(Stringlyric)

{

this.Lyric=lyric;

}

publicStringGetMusName()

{

returnthis.MusName;

}

publicStringGetSinger()

{

returnthis.Singer;

}

publicStringGetLyric()

{

returnthis.Lyric;

}

publicStringtoString()

{

return"\n歌名:

"+this.MusName+"\n歌手:

"+this.Singer+"\n歌词:

"+this.Lyric;

}

publicvoidplay()

{

System.out.println("正在播放。

\n"+this.Lyric);

}

}

classHappyMusicextendsMusic

{

publicHappyMusic(StringmusName,Stringsinger,Stringlyric){

super(musName,singer,lyric);

//TODOAuto-generatedconstructorstub

}

}

classMusicNameComparatorimplementsComparator

{

@Override

publicintcompare(Musicarg0,Musicarg1){

//TODOAuto-generatedmethodstub

charname1[]=arg0.GetMusName().toCharArray();

charname2[]=arg1.GetMusName().toCharArray();

inti=0;

while(name1[i]==name2[i]&&i

returnname1[i]-name2[i];

}

}

classMusicSingerComparatorimplementsComparator

{

@Override

publicintcompare(Musico1,Musico2){

//TODOAuto-generatedmethodstub

charsinger1[]=o1.GetSinger().toCharArray();

charsinger2[]=o2.GetSinger().toCharArray();

inti=0;

while(singer1[i]==singer2[i]&&i

returnsinger1[i]-singer2[i];

}

}

 

importjava.io.BufferedReader;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.util.ArrayList;

importjava.util.Arrays;

importjava.util.Collections;

importjava.util.List;

importjava.util.Scanner;

 

publicclassMusicManner{

privateStringPlayLsit;

privateListallMusic;

publicListGetallMusic()

{

returnthis.allMusic;

}

publicMusicManner(Stringname)

{

this.PlayLsit=name;

allMusic=newArrayList();

AddByFile(allMusic);

}

publicvoidAddByFile(ListallMusic)

{

Stringmusname,lyric,singer;

try{

BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream("123.txt")));

Stringdata=null;

data=br.readLine();

while(data!

=null)

{

Musicmusic=newMusic();

for(intj=0;j<3;j++)

{

if(j%3==0)

{

musname=data;

music.SetMusName(musname);

}

elseif(j%3==1)

{

singer=data;

music.SetSinger(singer);

}

elseif(j%3==2)

{

lyric=data;

music.SetLyric(lyric);

allMusic.add(music);

}

data=br.readLine();

}

}

Collections.sort(allMusic,newMusicNameComparator());

}

catch(IOExceptionioe)

{

ioe.toString();

}

}

publicvoidAddByUser()

{

Musicmusic=newMusic();

Scannerinput=newScanner(System.in);

System.out.println("输入歌名:

");

music.SetMusName(input.next());

System.out.println("输入歌手:

");

music.SetSinger(input.next());

System.out.println("输入歌词:

");

music.SetLyric(input.next());

this.allMusic.add(music);

}

publicvoidSortMusicByName()

{

Collections.sort(this.allMusic,newMusicNameComparator());

}

publicvoidSortMusicBySinger()

{

Collections.sort(this.allMusic,newMusicSingerComparator());

}

publicMusicGetMusicByName(Stringname){

Musicmusic=null;

for(Musictempmusic:

this.allMusic){

if(tempmusic.GetMusName().equals(name)){

music=tempmusic;

break;

}

}

returnmusic;

}

publicMusicGetMusicBySinger(Stringsinger)

{

Musicmusic=null;

for(Musictempmusic:

this.allMusic)

if(tempmusic.GetSinger().equals(singer)){

music=tempmusic;

break;

}

returnmusic;

}

publicvoidDeleByUser(Stringname)

{

Musicmusic;

if((music=GetMusicByName(name))!

=null){

allMusic.remove(music);

System.out.println("删除成功!

");

}

else

System.out.println("歌曲不存在!

");

}

publicListIndexMusicOfName(Stringkeyword){

Listlist=newArrayList();

for(Musictempmusic:

this.allMusic){

if(tempmusic.GetMusName().indexOf(keyword)!

=-1){

list.add(tempmusic);

}

}

printmusiclistbyname(list);

returnlist;

}

publicvoidprintmusiclistbyname(Listlist)

{

for(Musicmusic:

list)

System.out.println(music.GetMusName()+"\n");

}

publicListIndexMusicOfSinger(Stringkeyword){

Listlist=newArrayList();

for(Musictempmusic:

this.allMusic){

if(tempmusic.GetSinger().indexOf(keyword)!

=-1){

list.add(tempmusic);

}

}

printmusiclistbysinger(list);

returnlist;

}

publicvoidprintmusiclistbysinger(Listlist)

{

for(Musicmusic:

list)

System.out.println(music.GetSinger()+"\n");

}

}

importjava.util.Scanner;

 

publicclassMusicTest{

 

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

MusicMannerktv=newMusicManner("大家乐");

Scannerinput=newScanner(System.in);

intcommand;

while((command=read1(input))!

=4){

switch(command)

{

case1:

Musicmusic;

while((command=read2(input))!

=3)

switch(command)

{

case1:

ktv.printmusiclistbyname(ktv.GetallMusic());

System.out.println("请输入歌名:

");

Stringname=input.next();

if((music=ktv.GetMusicByName(name))!

=null)

{

System.out.println(music.toString());

music.play();

}

else

{

System.out.println("很抱歉,没有找到相应的歌。

正在查找相似的歌名...");

ktv.IndexMusicOfName(name);

System.out.println("希望有您要找的结果.");

continue;

}

continue;

case2:

ktv.printmusiclistbysinger(ktv.GetallMusic());

System.out.println("请输入歌手:

");

Stringsinger=input.next();

if((music=ktv.GetMusicBySinger(singer))!

=null)

{

System.out.println(music.toString());

music.play();

}

else

{

System.out.println("很抱歉,没有找到相应的歌。

正在查找相似的歌手...");

ktv.IndexMusicOfSinger(singer);

System.out.println("希望有您要找的结果.");

}

continue;

}

continue;

case2:

ktv.AddByUser();

System.out.println("step2");

continue;

case3:

System.out.println("step3");

System.out.println("请输入要删除歌曲的名字:

");

Stringname=input.next();

ktv.DeleByUser(name);

continue;

case4:

System.out.println("quit");

return;

default:

System.out.println("default");

}

}

System.out.println("欢迎下次光临。

");

}

publicstaticintread1(Scannerinput)

{

System.out.println("欢迎来到:

大家乐点歌系统!

请选择:

1.点歌2.添加歌曲3.删去歌曲4.退出");

returninput.nextInt();

}

publicstaticintread2(Scannerinput)

{

System.out.println("请选择:

1.歌名2.歌手3.返回");

returninput.nextInt();

}

}

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

当前位置:首页 > 农林牧渔 > 林学

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

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