报告模板ktv.docx
- 文档编号:28357682
- 上传时间:2023-07-10
- 格式:DOCX
- 页数:20
- 大小:65.01KB
报告模板ktv.docx
《报告模板ktv.docx》由会员分享,可在线阅读,更多相关《报告模板ktv.docx(20页珍藏版)》请在冰豆网上搜索。
报告模板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(List 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 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; privateList publicList { returnthis.allMusic; } publicMusicManner(Stringname) { this.PlayLsit=name; allMusic=newArrayList AddByFile(allMusic); } publicvoidAddByFile(List { 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("歌曲不存在! "); } publicList List for(Musictempmusic: this.allMusic){ if(tempmusic.GetMusName().indexOf(keyword)! =-1){ list.add(tempmusic); } } printmusiclistbyname(list); returnlist; } publicvoidprintmusiclistbyname(List { for(Musicmusic: list) System.out.println(music.GetMusName()+"\n"); } publicList List for(Musictempmusic: this.allMusic){ if(tempmusic.GetSinger().indexOf(keyword)! =-1){ list.add(tempmusic); } } printmusiclistbysinger(list); returnlist; } publicvoidprintmusiclistbysinger(List { 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(); } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 报告 模板 ktv