收藏 分销(赏)

报告模板-ktv.doc

上传人:Fis****915 文档编号:555795 上传时间:2023-12-11 格式:DOC 页数:12 大小:101KB
下载 相关 举报
报告模板-ktv.doc_第1页
第1页 / 共12页
报告模板-ktv.doc_第2页
第2页 / 共12页
报告模板-ktv.doc_第3页
第3页 / 共12页
报告模板-ktv.doc_第4页
第4页 / 共12页
报告模板-ktv.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、滨州学院计算机科学技术系Java语言程序设计课后作业题目 姓名 学号 专业 班级 年 月 日 成绩 教师签名 问 题 描 述 及 分 析(根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么)1 模拟ktv点歌系统做基于java控制台的程序。2 将歌曲的名字,歌手名字,歌曲内容保存。3 能够从文件中读取大量歌曲的信息,并保存。4 对歌曲能够按歌名排名,也能按歌手名字保存。5 能通过歌名查找相关信息,也能按歌手查找相关信息。6 能添加歌曲。设计思路描述N打印列表模糊查找返回到主面板Y播放精确查找根据歌手查找歌曲根据歌名查找歌曲点歌面板4.退出3.删除歌曲2.添加歌曲1.点歌主控制面板调试

2、过程中遇到的问题及解决办法(调试过程中遇到的主要问题及解决方法,得到的结论)问题1:歌名和歌手字符串不能比较。解决办法:转换成char类型数组,逐个比较,并比较ACSII的值。class MusicNameComparator implements ComparatorOverridepublic int compare(Music arg0, Music arg1) / TODO Auto-generated method stubchar name1=arg0.GetMusName().toCharArray();char name2=arg1.GetMusName().toCharArr

3、ay();int i=0;while(name1i=name2i&iname1.length&iname2.length)i+;return name1i-name2i;结论:字符串转换成char类型数组,逐个比较,并比较ACSII的值。问题2:文件读取时,信息分类解决办法:public void AddByFile (List allMusic)String musname,lyric,singer;tryBufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(123.txt);Stri

4、ng data = null;data=br.readLine();while(data!=null)Music music=new Music();for(int j=0;j3;j+)if(j%3=0)musname=data;music.SetMusName(musname);else if(j%3=1)singer=data;music.SetSinger(singer);else if(j%3=2)lyric=data;music.SetLyric(lyric);allMusic.add(music);data=br.readLine();Collections.sort(allMus

5、ic, new MusicNameComparator();catch(IOException ioe)ioe.toString();结论:用BufferedReader.readline();从文件里一行一行读取。总 结(对结果进行分析,设计心得,重点突出特色及改进设想)1.加深对java集合框架的理解。2.加深对 comparator接口的练习,对Collections.sort(List list,Comparator);的使用3.对String.indexof();的使用。可以返回字符串是否存在相应的字串。4.加深了对面向对象思想的理解。和接触面向接口的思想。附 录(参考资料等)imp

6、ort java.util.Comparator;public class Music private String Number;private String MusName;private String Singer;private String Lyric;public Music()this.MusName=Null;this.Singer=Null;this.Lyric=Null;public Music(String musName,String singer,String lyric)this.MusName=musName;this.Singer=singer;this.Lyr

7、ic=lyric;public void SetMusName(String name)this.MusName=name;public void SetSinger(String singer)this.Singer=singer;public void SetLyric(String lyric)this.Lyric=lyric;public String GetMusName()return this.MusName;public String GetSinger()return this.Singer;public String GetLyric()return this.Lyric;

8、public String toString()return n歌名:+this.MusName+n歌手:+this.Singer+n歌词:+this.Lyric;public void play()System.out.println(正在播放。n+this.Lyric);class HappyMusic extends Musicpublic HappyMusic(String musName, String singer, String lyric) super(musName, singer, lyric);/ TODO Auto-generated constructor stubc

9、lass MusicNameComparator implements ComparatorOverridepublic int compare(Music arg0, Music arg1) / TODO Auto-generated method stubchar name1=arg0.GetMusName().toCharArray();char name2=arg1.GetMusName().toCharArray();int i=0;while(name1i=name2i&iname1.length&iname2.length)i+;return name1i-name2i;clas

10、s MusicSingerComparator implements ComparatorOverridepublic int compare(Music o1, Music o2) / TODO Auto-generated method stubchar singer1=o1.GetSinger().toCharArray();char singer2=o2.GetSinger().toCharArray();int i=0;while(singer1i=singer2i&isinger1.length&isinger2.length)i+;return singer1i-singer2i

11、;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;import java.util.List;import java.util.Scanner;public class MusicManner private String PlayLsit;pr

12、ivate List allMusic;public List GetallMusic()return this.allMusic;public MusicManner(String name)this.PlayLsit=name;allMusic=new ArrayList();AddByFile(allMusic);public void AddByFile (List allMusic)String musname,lyric,singer;tryBufferedReader br = new BufferedReader(new InputStreamReader(new FileIn

13、putStream(123.txt);String data = null;data=br.readLine();while(data!=null)Music music=new Music();for(int j=0;j3;j+)if(j%3=0)musname=data;music.SetMusName(musname);else if(j%3=1)singer=data;music.SetSinger(singer);else if(j%3=2)lyric=data;music.SetLyric(lyric);allMusic.add(music);data=br.readLine();

14、Collections.sort(allMusic, new MusicNameComparator();catch(IOException ioe)ioe.toString();public void AddByUser()Music music=new Music();Scanner input=new Scanner(System.in);System.out.println(输入歌名:);music.SetMusName(input.next();System.out.println(输入歌手:);music.SetSinger(input.next();System.out.prin

15、tln(输入歌词:);music.SetLyric(input.next();this.allMusic.add(music);public void SortMusicByName()Collections.sort(this.allMusic, new MusicNameComparator();public void SortMusicBySinger()Collections.sort(this.allMusic, new MusicSingerComparator(); public Music GetMusicByName(String name) Music music=null

16、; for(Music tempmusic:this.allMusic) if(tempmusic.GetMusName().equals(name) music=tempmusic; break; return music; public Music GetMusicBySinger(String singer)Music music=null;for(Music tempmusic:this.allMusic)if(tempmusic.GetSinger().equals(singer)music=tempmusic;break;return music;public void DeleB

17、yUser(String name)Music music;if(music=GetMusicByName(name)!=null)allMusic.remove(music);System.out.println(删除成功!);else System.out.println(歌曲不存在!); public List IndexMusicOfName(String keyword) List list=new ArrayList(); for(Music tempmusic:this.allMusic) if(tempmusic.GetMusName().indexOf(keyword)!=-

18、1) list.add(tempmusic); printmusiclistbyname(list); return list; public void printmusiclistbyname(List list) for(Music music:list) System.out.println(music.GetMusName()+n); public List IndexMusicOfSinger(String keyword) List list=new ArrayList(); for(Music tempmusic:this.allMusic) if(tempmusic.GetSi

19、nger().indexOf(keyword)!=-1) list.add(tempmusic); printmusiclistbysinger(list); return list; public void printmusiclistbysinger(List list) for(Music music:list) System.out.println(music.GetSinger()+n); import java.util.Scanner;public class MusicTest public static void main(String args) / TODO Auto-g

20、enerated method stubMusicManner ktv=new MusicManner(大家乐);Scanner input=new Scanner(System.in);int command;while( command=read1(input)!=4)switch(command)case 1:Music music;while(command=read2(input)!=3)switch(command)case 1:ktv.printmusiclistbyname(ktv.GetallMusic();System.out.println(请输入歌名:);String

21、name=input.next();if(music=ktv.GetMusicByName(name)!=null)System.out.println(music.toString();music.play();elseSystem.out.println(很抱歉,没有找到相应的歌。正在查找相似的歌名.);ktv.IndexMusicOfName(name);System.out.println(希望有您要找的结果.);continue;continue;case 2:ktv.printmusiclistbysinger(ktv.GetallMusic();System.out.printl

22、n(请输入歌手:);String singer=input.next();if(music=ktv.GetMusicBySinger(singer)!=null)System.out.println(music.toString();music.play();elseSystem.out.println(很抱歉,没有找到相应的歌。正在查找相似的歌手.);ktv.IndexMusicOfSinger(singer);System.out.println(希望有您要找的结果.);continue;continue;case 2:ktv.AddByUser();System.out.println(

23、step2);continue;case 3:System.out.println(step3);System.out.println(请输入要删除歌曲的名字:);String name=input.next();ktv.DeleByUser(name);continue;case 4:System.out.println(quit);return;default:System.out.println(default);System.out.println(欢迎下次光临。);public static int read1(Scanner input)System.out.println(欢迎来到:大家乐点歌系统!请选择:1.点歌 2.添加歌曲 3.删去歌曲 4.退出);return input.nextInt();public static int read2(Scanner input)System.out.println(请选择:1.歌名 2.歌手 3.返回);return input.nextInt();11

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 行业资料 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服