Java语言课程设计报告 0808010106.docx

上传人:b****3 文档编号:4128679 上传时间:2023-05-06 格式:DOCX 页数:43 大小:3.63MB
下载 相关 举报
Java语言课程设计报告 0808010106.docx_第1页
第1页 / 共43页
Java语言课程设计报告 0808010106.docx_第2页
第2页 / 共43页
Java语言课程设计报告 0808010106.docx_第3页
第3页 / 共43页
Java语言课程设计报告 0808010106.docx_第4页
第4页 / 共43页
Java语言课程设计报告 0808010106.docx_第5页
第5页 / 共43页
Java语言课程设计报告 0808010106.docx_第6页
第6页 / 共43页
Java语言课程设计报告 0808010106.docx_第7页
第7页 / 共43页
Java语言课程设计报告 0808010106.docx_第8页
第8页 / 共43页
Java语言课程设计报告 0808010106.docx_第9页
第9页 / 共43页
Java语言课程设计报告 0808010106.docx_第10页
第10页 / 共43页
Java语言课程设计报告 0808010106.docx_第11页
第11页 / 共43页
Java语言课程设计报告 0808010106.docx_第12页
第12页 / 共43页
Java语言课程设计报告 0808010106.docx_第13页
第13页 / 共43页
Java语言课程设计报告 0808010106.docx_第14页
第14页 / 共43页
Java语言课程设计报告 0808010106.docx_第15页
第15页 / 共43页
Java语言课程设计报告 0808010106.docx_第16页
第16页 / 共43页
Java语言课程设计报告 0808010106.docx_第17页
第17页 / 共43页
Java语言课程设计报告 0808010106.docx_第18页
第18页 / 共43页
Java语言课程设计报告 0808010106.docx_第19页
第19页 / 共43页
Java语言课程设计报告 0808010106.docx_第20页
第20页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

Java语言课程设计报告 0808010106.docx

《Java语言课程设计报告 0808010106.docx》由会员分享,可在线阅读,更多相关《Java语言课程设计报告 0808010106.docx(43页珍藏版)》请在冰点文库上搜索。

Java语言课程设计报告 0808010106.docx

Java语言课程设计报告0808010106

(此文档为word格式,下载后您可任意编辑修改!

 

Java语言课程设计报告

 

题目:

KTV点歌系统

班级:

软件工程0801班

学号:

姓名:

王夕楠

 

2011年1月

 

目录

1设计题目及具体要求………………………………………………………3

1.1题目需求……………………………………………………………3

1.2实现环境及工具简介………………………………………………3

2总体设计……………………………………………………………………4

2.1系统基本功能描述…………………………………………………4

2.2数据库设计说明书…………………………………………………6

2.3界面设计……………………………………………………………6

3详细设计与实现……………………………………………………………11

3.1事件跟踪图…………………………………………………………11

3.2系统类图……………………………………………………………12

3.3输入/输出数据……………………………………………………12

3.4代码实现…………………………………………………………13

4系统测试………………………………………………………………22

4.1管理员……………………………………………………………22

4.2消费者……………………………………………………………23

4.3容错性测试………………………………………………………26

5设计小结…………………………………………………………………26

6参考文献…………………………………………………………………27

1设计题目及具体要求

1.1题目需求

1.1.1选题目的及意义

近些年人们生活水平提高很快,人们除了注重衣食住行以外,越来越需要一种好的娱乐休闲方式,而卡拉OK起源于日本然后引入我国。

这种娱乐方式很快被大家所接受。

而且非常受人们的欢迎,不管男女老少都能唱上几句。

现在大街上KTV包房很多,但它们的点歌系统并不先进,自动化程度不高,使用起来很不方便。

所以现在正需要一种功能强大,自动化程度高,成本低廉KTV包房点歌系统。

本学期,我选择这个题目作为课程设计的题目有以下两个原因:

一是本学期学习了Java程序设计和Oracle数据库两门课程,老师说过Java和Oracle数据库是最佳搭档,因此我想通过这次课程设计将所学运用于实际,也通过这次实际应用加强自身能力,为以后的就业打下坚实的基础。

因为以后的工作都是面对实际的问题,解决实际问题的能力才是我们真正需要的。

二是因为我比较喜欢去KTV唱歌,因此对于这个题目非常感兴趣,一直想找机会做一个相关的项目;对于KTV的点歌系统我也比较熟悉。

凭借平时去KTV的经历和个人想法,我想做出一套属于自己的KTV点歌系统,于是选择了这个题目。

1.1.2本KTV点歌系统在功能上要求完成以下基本功能:

a).消费者、管理员登陆;

b).管理员添加歌手信息入库;

c).管理员添加歌曲入库;

d).消费者查看包厢资费信息;

e).消费者选择包厢;

f).根据歌曲首字母选歌;

g).根据歌手名首字母选歌;

h).根据语种选歌;

i).查看已点歌曲;

j).删除、优先已点歌曲;

k).操作已点歌曲(播放、暂停、停止、切歌);

l).酒水服务;

m).歌曲排行

1.1.3系统实现重难点分析

本系统通过JDBC实现前后台数据的联系,前台操作界面使用Java编写,后台连接Oracle数据库存放相关数据。

基本上实现了一个KTV点歌系统所具备的基本功能。

本系统把使用者分为两类:

管理员和消费者,对两种用户分别设计了各自的主界面,以便更好的实现操作的方便性。

管理员可以通过用户名和密码验证后登录,进行对数据库的操作,实现添加歌手信息和添加歌曲的功能;消费者可以在登录时了解包间资费来选择需要的包间,随后可进行选歌和演唱等具体操作。

本系统的实现主要有以下重点:

1.前台用户界面编写:

系统界面较多,要求美观且界面友好,方便用户操作;

2.前台用户操作事件的响应:

要求操作简单易懂;

3.后台数据库的使用:

需要使用数据表和序列;

4.前台界面查询控制与后台数据库的链接:

需要响应及时且准确。

1.2实现环境及工具简介

1.2.1系统概述

本图书管理系统采用面向对象的分析方法进行分析,然后用面向对象的设计方法进行设计,最后用面向对象语言Java进行实现,后台数据库使用Oracle,连接方式为JDBC。

Java中GUI程序设计是界面程序设计,用它设计出来的界面不但美观,而且使用方便,使用者只需点几次鼠标,就能根据提示进行正确的操作,实现了KTV点歌和管理的便捷程度;

由于Java代码重用性非常好,且数据包十分强大。

只需简单的调用即可实现想要的功能,大大提高了开发新产品的效率,利用大部分时间在系统的设计上而不是编码实现的过程,因此可以实现降低代码量的目的;

Oracle数据库以功能强大和简单易用著称,它从发布以来,正逐步成为数据库的领导者,并且拥有广泛的用户。

“KTV点歌系统”是充分结合实际工作需求编制的应用软件。

它具有功能强,便于操作等特点。

这套系统的应用将减轻工作人员的工作强度,使顾客更为方便的在KTV包房自由的歌唱无外界打扰,并且节约了很大的成本而且非常方便。

1.2.2开发环境及工具

中央处理器:

IntelCorei3;

内存:

2GB;

主频:

2.13GHz;

开发平台:

Eclipse;

数据库:

Oracle9i

运行平台:

Windows7

1.2.3关键技术

本KTV点歌系统所使用的关键技术有:

JDBC,JavaGUI程序设计技术(MVC概念设计),数据库增加、查找技术,面向对象程序设计技术(类的继承和派生技术)。

2总体设计

2.1系统基本功能描述

2.1.1基本系统模型

图2-1KTV点歌系统基本系统模型

通过图2-1.,我们可以发现该系统的数据源是歌曲库管理员和消费者;管理员处理的事务有添加歌手和添加歌曲;消费者处理的事物有选歌、演唱操作等;数据终点是消费者,消费者可以查看数据库内存放的歌曲信息,并进行选择、播放等操作。

2.1.2KTV点歌系统数据流图

图2-2KTV点歌系统数据流图

2.1.3KTV点歌系统的系统层次结构图

图2-3KTV点歌系统层次结构图

2.1.4KTV点歌系统的用例图

图2-4KTV点歌系统用例图

2.2数据库设计说明书

2.2.1概念结构设计

本系统连接使用的数据库是Oracle9i,用的方式是JDBC,因此数据库设计尤为重要;

本系统E-R图如下:

图2-5歌手表和歌曲表的E-R图

图2-6管理员表的E-R图

2.2.2逻辑结构设计

根据上述E-R模型,我们可以得到该系统的数据库应该包括三个表,分别是:

歌手信息表、歌曲信息表、管理员信息表;下面是这三个表的详细属性信息(下划线的是该表的主键):

歌手信息表:

歌手编号、歌手姓名、歌手地区、歌手名缩写、歌手图片存放路径

歌曲信息表:

歌曲编号、歌曲名、演唱歌手、歌曲语言、歌曲名缩写、歌曲风格、歌曲存放路径

管理员表:

账户名、密码

2.2.3物理结构设计

一般数据库的物理结构设计包括两个方面:

为关系模式选择存取方法和设计关系、索引等数据库文件的物理存储结构。

本系统没有建立任何索引。

2.2.4其他数据库对象设计

本系统除使用了数据库表外,还使用了序列。

序列是数据库对象之一,用来产生一系列的唯一整数。

当应用向一个表插入一条新纪录时,应用只要简单的使用序列的下一个可用值作为新行的主键即可。

序列号可以用于生产唯一的主码,本系统创建了两个序列分别生成歌手编号和歌曲编号作为主键。

2.3界面设计

通过以上的分析,我将这个系统分为以下10个模块,它们分别是登录模块、歌曲库管理模块、主操作模块、分类点歌模块(拼音点歌模块、歌手点歌模块、语别点歌模块)、已点歌曲模块、歌曲排行模块、酒水服务模块。

2.3.1登录模块

从需求规格说明书中,我们已经知道本系统将使用者分为两类:

管理员和消费者。

而且他们的权限和使用目的各不相同,故需要为他们设计各自的登录界面。

图2-7为管理员登录界面设计:

图2-7管理员登录界面

图2-8为消费者登录界面设计:

图2-8为消费者登录界面

2.3.2歌曲库管理模块

管理员需输入用户名和密码,才可登录歌曲库管理界面。

登录后可进行【添加歌手】、【添加歌曲】的操作。

图为歌曲库管理界面设计:

图2-9添加歌曲界面图2-10添加歌手界面

2.3.3主操作模块

消费者登录时,可查看【包厢资费】并根据需要选择包厢类型,之后便可进入主操作界面【开始唱歌】。

图2-11为主操作界面设计:

图2-11主操作界面

2.3.4分类点歌模块

主操作界面提供四项服务:

分类点歌、已点歌曲、歌曲排行、酒水服务。

消费者可根据需要进行选择。

图2-12为分类点歌界面设计:

图2-12主操作界面

2.3.5拼音点歌模块、歌手点歌模块、语别点歌模块

【分类点歌】界面包含三种点歌方式:

拼音点歌、歌手点歌、语别点歌。

消费者可根据不同的点唱方式进行歌曲选择。

【拼音点歌】:

点击字母按钮,输入想要演唱歌曲的拼音首字母,输入过程中系统连接数据库进行实时查找,即可列出所有符合要求的歌曲,双击歌曲名即可将该歌曲加入已点歌曲清单。

【歌手点歌】:

点击字母按钮,输入歌手名首字母,系统将列出所有符合要求的歌手名。

单击要选择的歌手名可查看歌手图片;双击歌手名将列出该歌手所有的演唱歌曲,双击歌曲名即可将该歌曲加入已点歌曲清单。

【语别点歌】:

可通过选择语言,系统将列出该语言的所有歌曲,消费者便可在其中进行歌曲查找。

双击歌曲名即可将该歌曲加入已点歌曲清单。

图15为拼音点歌、歌手点歌、语别点歌的界面设计

图2-13拼音点歌界面图2-14歌手点歌界面

图2-15语别点歌界面

2.3.6已点歌曲模块

【已点歌曲】中包含消费者所选择的歌曲,可通过按钮控制歌曲的开始、停止、播放、暂停、切歌、调整音量等操作,也可通过单击右键进行歌曲的优先、删除操作;

该界面还包含已唱歌曲的清单,可选择【已唱歌曲】标签查看所有演唱过的歌曲。

图2-16为已点歌曲界面设计:

图2-16已点歌曲界面

2.3.7歌曲排行模块

【歌曲排行】模块根据系统中每首歌曲的点唱次数进行排行,消费者可查看热门点唱歌曲并可选择其中歌曲直接加入【已点歌曲】。

图2-17为歌曲排行界面设计:

图2-17歌曲排行界面

2.3.8酒水服务模块

【酒水服务】模块包含KTV提供的食品和酒水饮料,可选择购买。

且可通过【请求服务】呼叫服务员,【收费标准】查看包厢收费,【查看消费时间】查看娱乐时间。

图2-18为酒水服务界面设计:

图2-18酒水服务界面

3详细设计与实现

3.1事件跟踪图

3.1.1管理员添加歌手、歌曲信息的事件跟踪图

图3-1管理员添加歌手、歌曲信息的事件跟踪图

3.1.2消费者点歌的事件跟踪图

图3-2消费者点歌的事件跟踪图

3.2系统类图

图3-3KTV点歌系统类图

3.3输入/输出数据

下面用IPO表分别写出对上述模块的功能要求进行定性和定量的叙述:

(输入数据包括选择的数据)

3.3.1登录模块

操作名称

输入数据

处理过程

输出数据

登录模块(管理员)

管理员账号,密码

调用数据库数据进行验证

登录模块(消费者)

选择包厢类型

系统接收信息并开始记录消费时间

表3-1登陆模块IPO表

3.3.2歌曲库管理模块

操作名称

输入数据

处理过程

输出数据

歌曲库管理(添加歌手)

歌手名、歌手地区、歌手名缩写、图片存放路径

输入格式标准验证,添加入数据库

添加成功或失败提示

歌曲库管理(添加歌曲)

歌曲名、演唱者、歌曲语种、歌曲风格、歌曲名缩写、存放路径

输入格式标准验证,添加入数据库

添加成功或失败提示

表3-2歌曲库管理模块IPO表

3.3.3主操作模块

操作名称

输入数据

处理过程

输出数据

选择应用

选择的应用模块

系统响应

表3-3主操作模块IPO表

3.3.4分类点歌模块

操作名称

输入数据

处理过程

输出数据

拼音点歌模块

歌曲名拼音首字母

进入数据库查找所有符合条件的歌曲

符合输入拼音的所有歌曲

歌手点歌模块

歌手名拼音首字母

进入数据库查找所有符合条件的歌曲

符合输入拼音的所有歌手名

语别点歌模块

歌曲语种

进入数据库查找所有符合条件的歌曲

符合该语种的所有歌曲

表3-4分类点歌模块IPO表

3.3.5已点歌曲模块

操作名称

输入数据

处理过程

输出数据

查看已点歌曲

对已点歌曲的操作

系统响应

查看已唱歌曲

表3-5已点歌曲模块IPO表

3.3.6歌曲排行模块

操作名称

输入数据

处理过程

输出数据

查看点唱歌曲排行

根据歌曲点唱次数,排列热门歌曲

歌曲排行榜

表3-6歌曲排行模块IPO表

3.3.8酒水服务模块模块

操作名称

输入数据

处理过程

输出数据

查看食品列表

所有食品名称、价格

查看酒水列表

所有酒水品名、价格

查看消费时间

计算使用时间

使用系统时间

表3-7酒水服务模块IPO表

由于本系统为管理系统,系统包含类较多,且方便用户使用为系统设计重点,因此操作界面设计十分重要,

3.4代码实现

本系统编码设计采用的是JavaMVC设计模式。

MVC是一种流行的软件设计模式,它把系统分为以下3个模块:

1、Model(模型),可以分为业务模型和数据模型,它们代表应用程序的业务逻辑和状态

2、View(视图),提供可交互的客户界面,向客户显示模型数据

3、Controller(控制器),响应客户的请求,根据客户的请求来操作模型,并把模型的响应结果经由视图展现给客户

以下为KTV点歌系统的代码实现,由于篇幅有限,只列出编码大致框架。

3.4.1访问数据库工具类{JDBCTool}

该系统访问数据库使用的方式是JDBC,为了方便使用,编写一个类专门用于访问Oracle数据库,该类的代码如下:

publicclassJDBCTool

{

static

{

StringdriverName="oracle.jdbc.driver.OracleDriver";

try

{

Class.forName(driverName);

}

catch(ClassNotFoundExceptione)

{

e.printStackTrace();

}

}

publicstaticConnectiongetConnection()

{

StringjdbcString="jdbc:

oracle:

thin:

@localhost:

1521:

ORACLE";

StringnamesString="scott";

StringpasssString="tiger";

try

{

returnDriverManager.getConnection(jdbcString,namesString,passsString);

}

catch(SQLExceptione)

{

e.printStackTrace();

returnnull;

}

}

publicstaticvoidclose(ResultSetresultSet,Statementstatement,Connectionconnection)

{

try

{

resultSet.close();

statement.close();

connection.close();

}

catch(SQLExceptione)

{

e.printStackTrace();

}

}

}

3.4.2Model(模型)包

3.4.2.1歌手类{Player}

publicclassPlayer

{

privateStringnameString;

privateStringareasString;

privateStringaddressString;

publicPlayer(StringnameString,StringareasString,StringaddressString)

{

//构造函数初始化歌手对象

}

//设置歌手名、歌手地区、存储路径

publicStringgetNameString(){}

......

//获得歌手名、歌手地区、存储路径

publicvoidsetNameString(StringnameString){}

......

//返回歌手信息

publicStringtoString()

{

returnnameString+""+areasString;

}

}

3.4.2.2歌曲类{Song}

publicclassSong

{

privateStringsongNameString;

privateStringplayerNameString;

privateStringlanguageString;

privateStringstyleString;

privateStringaddressString;

publicSong(StringsongNameString,StringplayerNameString,StringlanguageString,StringstyleString,StringaddressString)

{

//构造函数初始化歌曲对象

}

//获得歌曲名、演唱者、歌曲语言、歌曲风格、存储路径的方法

publicStringgetSongNameString(){}

......

//设置歌曲名、演唱者、歌曲语言、歌曲风格、存储路径的方法

publicvoidsetSongNameString(StringsongNameString){}

......

//返回歌曲信息的方法

publicStringtoString()

{

returnsongNameString+""+playerNameString+""+styleString+""+languageString;

}

}

3.4.3View(视图)包

3.4.3.1登录类{Player}

importtool.JDBCTool;

publicclassLoginextendsJDialogimplementsActionListener

{

privateString[]strings3={"用户名","密码","包厢选择"};

privateString[]strings2={"登录","开始唱歌","收费标准","退出"};

privateString[]strings={"玲珑包","小包","中包","大包","商务包","总统包"};

privateStringsqlString="selectadm_name,adm_passwordfromktv_adm";

publicLogin()

{

//登录界面布局

}

publicstaticvoidmain(String[]args)//主函数创建登录窗口对象

{

login=newLogin();

}

//添加按钮响应事件

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==jButtons[0])//响应管理员【登录】按钮

{

//连接数据库验证用户名、密码是否正确

}

if(e.getSource()==jButtons[1])//响应消费者【开始唱歌】按钮

{

//进入主操作界面

}

if(e.getSource()==jButtons[2])//响应【包厢收费】按钮显示收费信息

{

JOptionPane.showMessageDialog(this,"玲珑包:

30/小时\n小包:

50/小时\n中包:

60/小时\n大包:

70/小时\n商务包:

100/小时\n总统包:

150/小时");

}

if(e.getSource()==jButtons[3])//响应【取消】

{

//关闭登录窗口

}

}

}

3.4.3.2添加歌手、歌曲类{Add}

packageview;

publicclassAddextendsJDialogimplementsActionListener

{

publicAdd()

{

//初始化添加界面界面布局

}

//添加按钮响应事件

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==jButtons[0])//【添加歌手】

{

//判断添加条件是否满足

JOptionPane.showMessageDialog(this,"\"歌手名\"不能为空!

");

......

if(条件满足)

{

//添加入歌曲库

......

JOptionPane.showMessageDialog(this,"添加成功!

已加入歌手库~~");

}

}

if(e.getSource()==jButtons[1])//【添加歌曲】

{

//判断添加条件是否满足

......

if(条件满足)

{

//添加入歌曲库

......

JOptionPane.showMessageDialog(this,"添加成功!

已加入歌曲库~~");

}

}

if(e.getSource()==jButtons[2])//响应添加歌手【浏览】

{

//获得歌手图片存放路径

}

if(e.getSource()==jButtons[3])//响应添加歌曲【浏览】

{

//获得歌曲存放路径

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2