• 655.92 KB
  • 2022-04-22 13:55:00 发布

KTV点歌系统设计开发毕业论文.doc

  • 33页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'KTV点歌系统设计开发毕业论文目录前言I摘要IIABSTRACTIII第一章概述11.1项目背景11.2项目现状与分析11.3研究意义2第二章系统设计32.1系统分析32.1.1需求分析32.1.2开发工具选择32.2系统功能设计42.2.1系统规划42.2.2系统功能结构42.3系统数据库设计与实现52.3.1实体E-R图52.3.2数据库结构设计62.3.3系统数据库实现72.4项目文件夹设计92.4.1创建项目92.4.2创建项目文件夹9第三章详细设计及代码实现113.1界面设计113.1.1登录验证窗体设计113.1.2后台数据维护界面设计123.1.2.1选项卡的设计123.1.3前台点歌系统界面设计133.2公共类的设计153.3代码的实现163.3.1方法的调用和参数的传递163.3.1.1方法的调用163.3.1.2参数的传递173.3.2登录界面的实现173.3.3系统点歌的实现18 第四章系统测试244.1登录测试244.1.1业务流程图244.1.2测试用例254.2前台点歌测试254.2.1业务流程图264.2.2测试用例274.3问题分析28总结29参考文献30致谢31 第一章概述1.1项目背景迅速发展的计算机科学技术应用越来越广泛,已经渗透到了人类社会生产和生活的各个领域。数据库技术是计算机科学技术的一个重要分支,是现代化管理的重要手段,是研究数据共享的一门科学。近年来,人们利用数据库技术对海量的数据进行处理,然后结合其他技术开发出了各种软件,为人类生产生活提供了便利。娱乐是人的一生中不可或缺的部分。随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。在工作之余,找到一种能够缓解压力,释放疲劳的娱乐方式,已成为大家共同的愿望。因此娱乐业在服务行业中占有越来越重要的地位。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌、跳跳舞或者在自己家里自娱自乐。KTV点歌系统也因此有了广阔的发展前景。随着KTV行业的迅猛发展,点歌系统在KTV里的重要性越来越大,特别是在面向普通消费者的量贩式KTV,投资方在选系统的时候无不练就一双金睛火眼,千挑万选,而且更是在配套设备上重金投入,确保为消费者营造出一个更好的消费环境。【1】1.2项目现状与分析自动点歌系统从很早以前就开始进行研发与应用,经过多年的经验摸索,不断地完善改进和升级,使得它更安全、更稳定、更完善。无论夜总会型,还是量贩式型的KTV都可以使用,该系统加上优质的歌库,并与点歌辅助工具和外围歌厅设备一起使用时,可称之为一套功能强大、可靠性高、实用性好、画优音美的全自动卡拉OK点歌系统,绝对领导着KTV点歌设备的新潮流。    全套系统是架构在计算机网络上的,由电脑来自动管理,无需碟机亦无需人员操作,极大地提高了经营效率。该系统从歌曲录制编辑、歌曲库的自动生成、点歌软件的功能、界面的多样性和美观性、客人的使用人性化、前后台管理的多样性和方便性、与各种外围点歌设备的结合、有各类歌曲的提供等方面,形成了完整的解决方案,是一套集大成的全面先进的系统。随着计算机技术的发展,人们不仅使用单一的文字作为信息的载体,还可以通过各种各样的媒体来传递、存储信息。我们通常所说的"媒体"(Media )包括其中的两点含义。一是指信息的物理载体(即存储和传递信息的实体),如书本、挂图、磁盘、光盘、磁带以及相关的播放设备等;另一层含义是指信息的表现形式(或者说传播形式),如文字、声音、图像、动画等。多媒体计算机中所说的媒体,是指后者而言,即计算机不仅能处理文字、数值之类的信息,而且还能处理声音、图形、电视图像等各种不同形式的信息。对各种信息媒体的"处理",是指计算机能够对它们进行获取、编辑、存储、检索、展示、传输等各种操作。一般而言,具有对多种媒体进行处理能力的计算机可称为多媒体计算机。自动点歌系统是一款及多媒体播放,音频消原唱,歌词显示于一体的大众化软件。如果你想在自己的电脑上过把KTV瘾,那么本软件将实现你的愿望。无须复杂的设置,即刻让你感受到在家里演唱卡拉OK的氛围。愿这款软件给你的生活带来一种新的乐趣。【2】1.3研究意义该系统是在实际调研的基础上,针对现在人们现实生活当中需求情况来进行系统开发,因此它具有较强的实用性.该系统有如下特点:1、先进的管理思想——歌曲信息数据集中管理,最大程度上实现高效管理。2、模块化的软件结构——各个模块都可以单独运行。3、提供良好的人机交互界面,操作简单快捷。4、可以对大量歌曲信息进行处理,检索迅速,查找方便,可靠性高。当今社会里人们的生活水平在不断提高,工作压力也越来越大,人们需要有个能够减少压力的环境,唱歌是一个比较好的方式,所以开发了自动点歌系统.该系统实现了对各种歌曲管理,满足人们的点歌要求,这样人们可以点播各种各样的歌曲进行选唱。 第二章系统设计2.1系统分析2.1.1需求分析随着计算机的发展和进步,多媒体应用逐渐深入民心。随着硬件技术的进步,绚丽的多媒体已经走进了大众生活当中。近几年随着网络技术的发展,多媒体应用已经由单机走向了网络。视频播放也采用了网络数字流,即视屏点播(VOD),以快速、灵活的特点逐渐得到了各领域用户的青睐,并逐渐成为时尚潮流。VOD技术已经被用于政府、教育、智能小区、宾馆、KTV等领域。通过实际调查,要求本系统具有以下功能:1、良好的人机界面。2、如果系统的实用对象较多,则要求有较好的权限管理。3、方便的添加、删除和修改数据功能。4、方便的点歌功能。5、其他辅助功能。2.1.2开发工具选择近几年来微软公司不断发布了升级版的VisualStudio.NET开发环境,增强了许多功能。标准化的开发流程、规范化的项目管理、紧密的团队协作、流畅的信息交流是开发现代软件系统的共同要求,VisualStudio2005满足了工业化软件开发要求,它集成了众多适应软件工业化生成的新特性,除此以外更重要的是我们比较熟悉这个环境,运用起来比较方便灵活。后台数据库的开发工具有很多,比如Orcale、SQLServer、MySQL、Access等。这里我们选用了Access来创建后台数据库,它适用于中小型应用系统的开发,能够完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。除此以外,Access使用起来比较方面灵活。其他数据库开发工具功能比较强大,涉及内容较多,占用较多空间浪费不必要的资源。C#是一种简单、现代、面向对象且类型安全的编程语言,C#语言从C和C++语言演化而来,同时C#具备了应用程序快速开发语言的高效率和C++固有的强大能力,并吸收了Java和Delphi等语言的特点和精华,是目前.NET开发的首选语言。C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。综上所述本系统采用了MicrosoftOfficeAccess2003(2007)创建后台数据库,前台开发工具利用VisualStudio2005进行开发,编程语言采用C#,程序架构采用C/S架构。 2.2系统功能设计2.2.1系统规划要设计一个完备的点歌系统,需涉及大量的信息。为了简化本系统的设计,只选取了一些基本的与点歌相关的明星信息、歌曲信息、歌曲类型信息、用户信息以及基本点歌等。具体规划的模块如下:1、明星信息:包括添加、修改和删除等数据维护操作。2、歌曲信息:包括添加、修改和删除等数据维护操作。3、歌曲类型信息:包括添加、修改和删除等数据维护操作。4、用户信息:包括添加、修改和删除等数据维护操作。5、基本点歌:包括数字点歌、拼音点歌、歌名点歌、明星点歌等功能。2.2.2系统功能结构根据功能的关联关系,将系统功能细化如图2-1所示的功能结构图。其业务流程如图2-2所示,此系统有两种合法用户身份,一是管理员身份,可以进入后台数据维护和前台点歌,一是客户身份,只可直接进入前台点歌界面。点歌系统登录界面后台数据维护前台点歌歌曲信息增删改明星信息增删改歌曲类型信息增删改管理员信息增删改明星点歌歌名点歌数字点歌拼音点歌图2-1系统功能结构图 后台数据维护前台点歌登录否是合法用户管理员客户前台点歌图2-2业务流程图2.3系统数据库设计与实现数据库设计的合理与否,对数据的完整性、安全性、程序运行的效率和程序设计的复杂程度等有着十分密切的关系。数据库设计的内容包括数据库管理系统的选择、数据实体的确定和数据库的具体实现。2.3.1实体E-R图根据KTV点歌系统的系统分析与功能设计,KTV点歌系统中主要包括明星信息实体、歌曲类型信息实体、歌曲信息实体、用户信息实体等。下面给出它们的E-R图,如图2-3到2-6所示。明星信息明星编号录入时间拼音码备注所属公司国籍出生年月明星性别明星姓名图2-3明星信息E-R图 歌曲类型信息歌曲类别名称歌曲编号备注图2-4歌曲类型信息E-R图歌曲信息歌曲编号歌曲类型文件名称路径歌曲名称作者语种拼音日期删除标记图2-5歌曲信息E-R图用户信息密码用户名编号标记时间权限图2-6用户信息E-R图2.3.2数据库结构设计KTV点歌系统数据库的名称设置为“db_KTV”,其中包括4个数据表:明星的基本信息表、系统用户的信息表、歌曲类型信息表、歌曲信息表。以下是这些表的结构:1、明星的基本信息表:用于保存所有的明星信息,其结构如图2-7所示。 图2-7明星的基本信息表2、系统用户的信息表:用于保存所有的用户信息,其结构如图2-8所示。图2-8系统用户信息表3、歌曲类型信息表:用于保存所有的歌曲类型信息,其结构如图2-9所示。图2-9歌曲类型信息表4、歌曲信息表:用于保存所有的歌曲信息,其结构如图2-10所示。图2-10歌曲信息表2.3.3系统数据库实现创建数据库,如图2-11: 图2-11创建数据库图打开数据库db_KTV新建表,具体操作流程如图2-12所示:图2-12新建表流程 2.4项目文件夹设计2.4.1创建项目启动程序“MicrosoftVisualStudio2005”创建项目,如图2-17所示。图2-17新建项目图单击“确定”按钮后,出现创建项目的开发环境,如图2-18所示。图2-18项目开发环境2.4.2创建项目文件夹项目文件夹的创建使得项目目录更加清晰,资源放置更加方便,在项目开发环境中,按照图2-19所示创建文件夹结构,用来存放项目中的各种文件。 登录窗体主窗体(后台数据维护窗体)点歌系统窗体存放所有的图片资源存放所有的音乐文件存放所有的公共类存放数据库图2-19项目文件夹结构在开发时只需将相应文件放置到对应文件夹下即可,新建DataBase文件夹用于存放数据库,KTVclass文件夹用于存放所有的公共类,Music文件夹用于存放所有的音乐文件,Resource文件夹用于存放所有的图片资源。 第三章详细设计及代码实现3.1界面设计3.1.1登录验证窗体设计本系统登录验证身份有客户和管理员两种身份,登录验证窗体需要合法用户输入用户名称和密码,当用户输入用户名称时,系统会自动显示其权限,根据其权限选择登录界面,管理员身份可以登录后台数据维护和前台点歌,客户只可进入前台点歌。若输入的用户名和密码在数据库db_KTV的用户信息表(tb_manager)中有记录,则允许用户登录,同时也可以选择操作界面(后台数据维护和前台点歌系统);若输入的信息有误,则提示用户重新输入。登录窗体及主要组件的属性设置如表3-1所示。表3-1登录界面及主要组件的属性设置窗体及组件类型属性名称属性值说明FormNamefrmLogin窗体的名称BackGroundImageKTV/Resources/背景窗体的背景图片Text登录信息窗体的标题TextBoxNametxtUser输入登录用户名txtPwd输入登录密码txtAdmin用户权限PasswordChar*密码代替显示的字符ComboBoxNamecmbLogin组合框的名称DropDownStyleDropDownList组合框的样式Items后台数据维护、点歌系统组合框里项的值ButtonNamebntOK确定按钮名称bntEsce取消按钮名称BackGroundImageKTV/Resources/确定按钮确定按钮图片KTV/Resources/取消按钮取消按钮图片LabelName登录名称:标签名称登录密码:标签名称登录界面标签名称BackColorOliveDrab标签的背景色设置好的登录验证界面窗体如图3-2所示。 图3-2登录验证界面3.1.2后台数据维护界面设计后台数据维护窗体主要是对数据库信息的增删改等操作,也是能够成功实现整个系统的重要依据。在这里主要是对明星信息表、歌曲信息表、歌曲类型信息表和用户信息表四张表的操作。后台数据维护窗体及主要组件属性的设置如表3-3所示。表3-3后台数据维护窗体及主要组件属性的设置窗体及组件类型属性名称属性值说明FormNamefrmMain窗体名称BackGroundImageKTV/Resources/背景图窗体的背景图片Text后台数据维护窗体标题TabControlNametabControl1选项卡名称TabPagestabPages1明星信息tabPages2歌曲信息tabPages3歌曲类型信息tabPages4用户管理ButtonNamebutton4退出系统按钮名称button5返回按钮名称Text退出本系统(&T)文本内容返回登录界面文本内容BackColorOliveDrab背景颜色3.1.2.1选项卡的设计本系统涉及的数据信息量比较大,我选用了选项卡来存放数据信息,使得浏览更加方便,数据存放更加丰富。运用选项卡集合编辑器添加选项卡的项,如图3-4所示。 图3-4选项卡集合编辑器除了放置选项卡控件外,还要在选项卡TabControl的每一个tabPage上放置一个ListView控件和三个按钮,它们分别是lvAuton、lvMuscie、lvDitcy、LvUser四个ListView控件和添加、修改、删除按钮。选项卡的使用可让你打开多个界面,通过点击要查看的选项卡可以切换界面,减少了页面窗体的显示数量,使用起来更加方便灵活。最终设置好的后台数据维护界面如图3-5所示。图3-5后台数据维护界面3.1.3前台点歌系统界面设计前台点歌系统是本系统的核心内容,它包括了数字点歌、拼音点歌、歌名点歌和明星点歌四个子模块。除此以外还有一个播放媒体控件,用于播放歌曲使之更加具有动感。 点歌系统窗体及主要组件属性的设置,如表3-6所示。表3-6点歌系统窗体及主要组件属性的设置窗体及组件类型属性名称属性值说明FormNamefrmDianGe窗体名称BackGroundImageKTV/Resources/背景图窗体的背景图片Text卡拉OK点歌系统窗体的标题StartPositionCenterScreen窗体在屏幕中的位置GroupBoxNamegroupbox1框架名称groupbox2框架名称groupbox2框架名称BackColorTransparent背景颜色Text已点歌曲列表框架标题歌曲播放框架标题全部歌曲列表框架标题ForeColorActiveCaption前景色Font宋体,12pt,style=Bold字体WindowsMediaPlayerNameaxWindowsMediaPlayer1媒体控件名称uiModefullwindowlessvideoFalseListViewNamelvPlay列表名称listView1列表名称ModifiersPublicViewDetailsPictureBoxNamepicturebox1控件名称picturebox2控件名称BackColorTransparent背景颜色ImageKTV/Resources/音乐符背景图片KTV/Resources/条背景图片WindowsMediaPlayer控件的一些常用属性:1、axWindowsMediaPlayer1.URL音乐文件的播放路径。2、axWindowsMediaPlayer1.Ctlcontrols.stop();停止播放。3、axWindowsMediaPlayer1.Ctlcontrols.pause();暂停播放。4、axWindowsMediaPlayer1.Ctlcontrols.play();播放文件。5、axWindowsMediaPlayer1.fullScreen;是否全屏播放,值为bool类型。6、axWindowsMediaPlayer1.Ctlcontrols.PlayCount;文件播放次数。7、axWindowsMediaPlayer1.Ctlcontrols.AutoRewind;是否循环播放。……最后设置好的界面如图3-8所示。 图3-8点歌系统界面3.2公共类的设计公共类的设计是整个项目功能实现的核心和基础,整个公共类分为数据库连接、歌曲信息参数和歌曲信息操作处理三个部分。为了便于后期维护,整个项目基于面向对象的思想,实现了模块化设计功能。1、数据库连接定义类getConnection,此类封装了连接数据库的方法,因为只是对数据库的操作,所以需要引入一些和数据库相关的命名空间,因为所用的数据库是Access,所以引入的命名空间为usingSystem.Data.OleDb。对应的连接方法代码如下:publicOleDbConnectionOledCon(){stringreportPath=Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf("\")).LastIndexOf("\"));reportPath+=@"DataBasedb_KTV.mdb";stringConStr="Provider=Microsoft.Jet.OLEDB.4.0;Datasource="+reportPath;OleDbConnectioncon=newOleDbConnection(ConStr);returncon;}//连接数据库2、歌曲信息参数和歌曲信息处理如表3-9所示。 表3-9歌曲信息参数和歌曲信息处理模块名称实体类类方法(类名)方法名歌曲类型tb_dictionaryfrmdictionaryMenthoddictionaryAdd()dictionaryupdate()dictionaryFind()getSellID()dictionaryDelete()明星信息tb_authorinfotb_authorinfoMethodtb_authorinfoFill()gettb_authorinfoID()AuthAdd()AuthUpdate()AuthFind()AuthDelete()歌曲信息tb_musicinfotbMusicinfoMethodtbMusicnfoAdd()tbMusicnfoUpdate()tbMusicnfoDelete()tbMusicnfoID()tbMusicnfoFill()tbMusicnfoFillReder()tbFill()tbFillName()用户信息tb_manager(实体类、方法类)tb_managerAdd()tb_managerUpdate()tb_managerDelete()getSellID()tbMusicinfoFill()tbFill()tb_managerLogin()3.3代码的实现因为在此项目中我主要负责登录界面和前台点歌系统,所以在代码实现部分就仅对着这两个模块进行详细说明分析。在实现此功能的过程中涉及到了许多方法的调用和参数的传递。3.3.1方法的调用和参数的传递3.3.1.1方法的调用在C#中,方法的调用主要采用以下2中格式。格式一:表达式=方法名(实参列表)。格式二:方法名(实参列表)。 使用带返回值的方法时往往使用格式一来调用方法。如果不需要使用方法的返回值,则可以采用格式二来调用方法,这时将执行方法的所有操作而忽略返回值。不过有一点需要注意的是,在调用返回类型为void的方法时,不能在表达式中或赋值语句中使用其名称来调用它。3.3.1.2参数的传递参数可以分为形参和实参两种。在定义方法时,方法名后面的圆括号中的变量名称为“形参”,在调用方法时,方法名后面圆括号中的表达式称为“实参”。它们的区别是一个表示声明时的参数,另一个表示调用时的参数。从参数的传递机制来说,C#中方法的参数可以有以下4种类型。1、值参数,不含任何修饰符。2、引用型参数,以ref修饰符声明。3、输出参数,以out修饰符声明。4、数组型参数,以params修饰符声明。3.3.2登录界面的实现本系统登录验证身份有客户和管理员两种身份,登录验证窗体需要合法用户输入用户名称和密码,当用户输入用户名称时,系统会自动显示其权限,根据其权限选择登录界面,管理员身份可以登录后台数据维护和前台点歌,客户只可进入前台点歌。若输入的用户名和密码在数据库db_KTV的用户信息表(tb_manager)中有记录,则允许用户登录,同时也可以选择操作界面(后台数据维护和前台点歌系统);若输入的信息有误,则提示用户重新输入。具体的运行流程如图3-10所示。合法用户用户名密码登录失败管理员后台数据维护输入正确错误是否前台点歌前台点歌图3-10登录运行流程图具体的处理流程如图3-11所示。实例化类对象:tb_mangercomputer=newtb_manger(),调用类对象里的变量。 退出系统输入信息computer.strmgr_Name=txtUser.Text;computer.strmgr_Paww=txtPwd.Text;实体类tb_mangercomputer.strmgr_Name=txtUser.Text;computer.strmgr_Paww=txtPwd.Text;选择登录界面数据库表tb_manger表调用方法tb_managerLogin(tb_managercompay,intintFalg)图3-11登录处理流程当管理员输入登录名称和登录密码时,通过实例化tb_manager,调用其中的变量strmgr_Name和strmgr_Paww,将文本框的内容赋值给它们,传递到数据库,将其与数据库表中的记录进行比较。若输入的信息在表tb_manager中有记录,那么输入的信息正确,调用方法tb_managerLogin进行登录界面的选择;若输入的信息在表中没有记录,则提示输入有误,提示重新输入。相关代码如下:tb_managercomputer=newtb_manager();//实例化对象computer.strmgr_Name=txtUser.Text;computer.strmgr_Paww=txtPwd.Text;if(computer.tb_managerLogin(computer,2)==1)//调用方法,传递参数,是否有该用户通过对表达式computer.tb_managerLogin(computer,2)==1的判断,来进行登录界面的选择。3.3.3系统点歌的实现点歌系统包含数字点歌、拼音点歌、歌名点歌和歌星点歌四个模块。当用户选择不同的点歌方式时,系统就会响应用户要求弹出查询选择条件的对话框。在此界面中还涉及到了媒体播放,它包括播放、暂停、停止、上一曲、下一曲和全屏播放。此界面主要分为全部歌曲、已点歌曲、歌曲播放和一些按钮四大块。具体的运行流程如图3-12所示。 点歌系统选择歌曲播放歌曲数字点歌拼音点歌歌名点歌明星点歌下一曲上一曲播放暂停显示全部歌曲弹出选择条件对话框全屏播放图3-12点歌系统运行流程图具体的处理流程如下所述。在此界面中用户可以有多种选择。1、显示全部歌曲点击显示全部歌曲按钮,所有的歌曲信息将会显示在右边的全部歌曲列表中,选中其中任何一首歌之后,点击“播放”按钮即可播放,点击“添加”即可将此歌曲添加到已播放列表。用户既可以选择从右边全部歌曲列表中直接点播放又可以将其添加到已播放列表再播放。利用stringstrAdd="select*fromtb_musicinfo";来对歌曲信息表进行查询。oleRed=oledcmd.ExecuteReader();获取查询的信息。通过如下代码将查询到的前几列记录显示在列表中:……ListViewlv=listView1;//定义ListView对象while(oleRed.Read()){ListViewItemlv1=newListViewItem(oleRed[0].ToString());lv1.SubItems.Add(oleRed[1].ToString());lv1.SubItems.Add(oleRed[2].ToString());lv1.SubItems.Add(oleRed[3].ToString());lv.Items.Add(lv1);}//添加数据信息到对应的单元格……2、数字点歌当点击数字点歌时,将会弹出数字点歌查询条件对话框,若用户输入的条件数据库中没有记录,将会提示“没有查到结果,请重新输入信息!”;若用户输入的条件有记录,那么信息将会被自动添加到已点歌曲列表中。 ……frmDianGedaige=(frmDianGe)this.Owner;if(intFalg==1)//数字点歌{if(tbMusice.tbFill(daige.lvPlay,txtName.Text.Trim(),1)!=0)//传递参数,获取歌曲信息显示在控件中{intFalg=0;//释放空间this.Close();}else{intFalg=1;MessageBox.Show("没有查到结果,请输入其它条件");txtName.Text="";txtName.Focus();}}……3、拼音点歌当点击拼音点歌时,将会弹出拼音点歌查询对话框,此时用户可以通过输入明星的拼音码或歌曲名的拼音码找到对应的歌曲,若用户输入的条件数据库中没有记录,将会提示“没有查到结果,请重新输入信息!”;若用户输入的条件有记录,那么信息将会被自动添加到已点歌曲列表中。……if(intFalg==2)//拼音点歌{if(tbMusice.tbFill(daige.lvPlay,txtName.Text.Trim(),2)!=0){intFalg=0;this.Close();}else{intFalg=2;MessageBox.Show("没有查到结果,请输入其它条件");txtName.Text="";txtName.Focus();}}……4、明星点歌 当点击明星点歌按钮时,将会弹出明星点歌查询条件对话框,用户需要输入明星的中文姓名才可以查询到正确的信息。若用户输入的条件数据库中没有记录,将会提示“没有查到结果,请重新输入信息!”;若用户输入的条件有记录,那么信息将会被自动添加到已点歌曲列表中。……if(intFalg==3)//明星点歌{if(tbMusice.tbFill(daige.lvPlay,txtName.Text.Trim(),3)!=0){intFalg=0;this.Close();}else{intFalg=3;MessageBox.Show("没有查到结果,请输入其它条件");txtName.Text="";txtName.Focus();}}……5、歌名点歌当点击歌名点歌按钮时,将会弹出歌名点歌查询条件对话框,用户需要输入歌曲的具体名称才可查询。若用户输入的条件数据库中没有记录,将会提示“没有查到结果,请重新输入信息!”;若用户输入的条件有记录,那么信息将会被自动添加到已点歌曲列表中。……if(intFalg==4)//歌名点歌{if(tbMusice.tbFill(daige.lvPlay,txtName.Text.Trim(),4)!=0){intFalg=0;this.Close();}else{intFalg=4;MessageBox.Show("没有结查,请输入其它条件n可以断续输入查询条件或退出","查询提示");txtName.Text="";txtName.Focus();}}……不同点歌方式具体的实现流程: 通过窗体的切换实现不同点歌方式,frmNumberfrm1=newfrmNumber(1);frm1.Owner=this;frm1.ShowDialog();不同的点歌方式通过传递的参数不同来实现,这里的“1”就是所传递的参数,将参数传递到类frmNumber。那么又是如何得到不同点歌方式所得到的数据的呢?通过实例化对象tbMusicinfoMenthodtbMusice=newtbMusicinfoMenthod();来引用tbMusicinfoMenthod类中的一些封装的方法。同时实例化窗体frmDianGedaige=(frmDianGe)this.Owner;以便调用此窗体中的一些控件。调用对象tbMusic中tbFill(objectobj,stringstrResult,intintFalg)将所点的歌曲显示到对象daige的列表控件lvPlay中。6、媒体播放①播放播放按钮主要用于播放文件,当用户选中文件之后,点击播放按钮即可播放文件,需要注意的是选择的文件必须是以.mp3、.avi、.mav为后缀名的音乐文件,否则会跳出警告框“您所选择的文件播放格式有误,请重新选择!”。在播放之前必须先选中歌曲,再将选中的信息记录下来传递到后台调用实例化对象tbMusicinfoMenthodtbMend=newtbMusicinfoMenthod();中tbFillName()方法找到歌曲所在的路径,然后将路径值赋给媒体控件的URLthis.axWindowsMediaPlayer1.URL=stringName;实现歌曲的播放。……if(stringName!=null){stringName=tbMend.tbFillName(stringName);MessageBox.Show("选择歌曲<<"+strigName2+">>完成,您确定要播放此歌曲吗!","提示");this.axWindowsMediaPlayer1.URL=stringName;stringName=null;}else{MessageBox.Show("请选择要播放的歌曲!","提示");}……②暂停、继续此按钮主要用于对播放歌曲的人性化控制,当用户需要暂停播放时即可点击暂停,若想继续,点击继续即可。当用户点击此按钮时,按钮上的功能也会随之变化。当按钮btnZan的文本值为“暂停(&K)”时,点击时播放器将暂停播放,btnZan按钮的文本值也将会变成“继续(&K)”;同样,当按钮btnZan的文本值为“继续(&K)”时,点击时播放器将继续播放,btnZan按钮的文本值也将会变成“暂停(&K)”。this.axWindowsMediaPlayer1.Ctlcontrols.pause();//暂停bntZan.Text="继续(&K)";。this.axWindowsMediaPlayer1.Ctlcontrols.play();//继续播放bntZan.Text="暂停(&K)";。③上一曲、下一曲在这一功能中主要涉及到了索引的变化,上一曲播放索引递减,下一曲播放索引递增。当播放上/下一首歌时,需要释放原先选择的歌曲信息,我们用以下语句实现索引的释放lvPlay.Items[index].Selected=false;, 而且所选歌曲的索引不能超出范围,比如选中第一首歌就不能实现上一曲的播放,因为它已经是第一首歌了,而且最大值不能超过lvPlay.Items.Count;同理,选中最后一首歌就不能实现下一曲的播放,而且最大值不能超出lvPlay.Items.Count-1。④全屏播放全屏播放使得系统更加人性化,能够充分满足客户的视觉需求。this.axWindowsMediaPlayer1.fullScreen=true;//全屏播放7、添加和删除添加按钮主要是将右边列表中的信息添加到已点歌曲列表中。删除按钮主要是将不需要的歌曲从已点歌曲列表中删除。通过lvPlay.SelectedItems[0].Remove();来实现删除;通过以下代码实现添加:……ListViewlv=lvPlay;if(listView1.SelectedItems!=null){ListViewItemlv1=newListViewItem(listView1.SelectedItems[0].SubItems[0].Text);lv1.SubItems.Add(listView1.SelectedItems[0].SubItems[1].Text);lv1.SubItems.Add(listView1.SelectedItems[0].SubItems[2].Text);lv1.SubItems.Add(listView1.SelectedItems[0].SubItems[3].Text);lv.Items.Add(lv1);}……如果列表listView1有被选中的项,则将所选中的内容添加到列表lvPlay中。 第四章系统测试系统测试是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试活动。它是系统完成前的一项重要的工作,应该尽可能完整地测试自己的系统,检查所有的代码是否正确规范,文字是否准确,效果是否恰当,功能是否完善。测试要注意的问题:整个系统风格是否一致,包括色彩、字体、链接、菜单等等,单击某一按钮不能有似乎换一个系统的感觉;编码规范是对一个程序员的基本要求,要尽量使系统的代码规范,还要避免冗余,释放系统资源。同时要考虑服务器的承受能力。4.1登录测试本系统登录验证身份有客户和管理员两种身份,登录验证窗体需要合法用户输入用户名称和密码,当用户输入用户名称时,系统会自动显示其权限,根据其权限选择登录界面,管理员身份可以登录后台数据维护和前台点歌,客户只可进入前台点歌。在登录测试中要考虑是否不输入名称和密码也可以进入,当输入错误信息时系统是否会报错,若忘记选择界面是否会弹出提示框。在系统数据库用户信息表中插入两条记录,第一条:用户名称“zy”,用户密码“123”,权限“admin”;第二条:用户名称“gl”,用户密码“111”,权限“user”。4.1.1业务流程图后台数据维护前台点歌登录否是合法用户管理员客户前台点歌图4-1业务流程图登录验证窗体需要合法用户输入用户名称和密码,当用户输入用户名称时,系统会自动显示其权限,根据其权限选择登录界面,管理员身份可以登录后台数据维护和前台点歌,客户只可进入前台点歌。 4.1.2测试用例测试用例(TestCase)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,并形成文档。不同类别的软件,测试用例是不同的。不同于诸如系统、工具、控制、游戏软件,管理软件的用户需求更加不统一,变化更大、更快。笔者主要从事企业管理软件的测试。因此我们的做法是把测试数据和测试脚本从测试用例中划分出来。测试用例更趋于是针对软件产品的功能、业务规则和业务处理所设计的测试方案。对软件的每个特定功能或运行操作路径的测试构成了一个个测试用例。登录测试用例如表4-2所示。表4-2登录测试用例表测试用例ID号场景/条件输入数据预期结果实际结果DLCS1登录失败用户名称:zy用户密码:为空弹出信息对话框“用户密码不能为空!”“用户密码不能为空!”DLCS2登录失败用户名称:为空用户密码:123弹出信息对话框“用户名称不能为空!”“用户名称不能为空!DLCS3登录失败用户名称:zf用户密码:123弹出信息对话框“登录失败无此记录!”“登录失败无此记录!”DLCS4登录成功用户名称:zy用户密码:123结果一:成功登录后台数据维护界面结果二:进入前台点歌结果一:成功登录后台数据维护界面结果二:进入前台点歌DLCS5登录成功用户名称:gl用户密码:111结果一:弹出信息对话框“客户不可进入后台数据维护!”结果二:进入前台点歌结果一:弹出信息对话框“客户不可进入后台数据维护!”结果二:进入前台点歌在上述测试用例中主要是针对于用户名、密码以及权限的测试,测试过程中遇到许多问题,例如因操作者粗心导致的数据为空现象;数据库连接异常导致输入的数据无此记录;不合法的用户身份登录等。经过测试使得登录界面更加完善安全。4.2前台点歌测试 点歌系统包含数字点歌、拼音点歌、歌名点歌和歌星点歌四个模块。当用户选择不同的点歌方式时,系统就会响应用户要求弹出查询选择条件的对话框。在此界面中还涉及到了媒体播放,它包括播放、暂停、停止、上一曲、下一曲和全屏播放。在系统数据库明星信息表和歌曲信息表中插入一些数据,明星信息测试表如图4-3所示,歌曲信息测试表如图4-4所示。图4-3明星信息测试表图4-4歌曲信息测试表4.2.1业务流程图点歌系统选择歌曲播放歌曲数字点歌拼音点歌歌名点歌明星点歌下一曲上一曲播放暂停显示全部歌曲弹出选择条件对话框全屏播放图4-5点歌业务流程图前台点歌系统是本系统的核心,因而它的测试尤为重要。它包含了数字点歌、拼音点歌、歌名点歌、明星点歌四个子模块,还涉及了许多媒体播放功能。 4.2.2测试用例前台点歌测试用例分为选歌用例和播放用例两种形式。选歌用例如表4-6所示,播放用例如表4-7所示。表4-6选歌用例表测试用例ID号场景/条件输入数据预期结果实际结果XGCS1数字点歌失败100弹出对话框“没有查询结果,请输入其他条件!”“没有查询结果,请输入其他条件!”XGCS2数字点歌失败为空提示框“请输入正确的信息!”“请输入正确的信息!”XGCS3数字点歌成功1编号为1的歌曲记录被添加到已点列表中编号为1的歌曲记录被添加到已点列表中XGCS4拼音点歌失败张杰提示框“请输入正确的信息!”“请输入正确的信息!”XGCS5拼音点歌失败为空提示框“请输入正确的信息!”“请输入正确的信息!”XGCS6拼音点歌成功ZJ明星名字的拼音码为ZJ的所有歌都被添加到已点歌曲列表中明星名字的拼音码为ZJ的所有歌都被添加到已点歌曲列表中XGCS7拼音点歌成功ZJSA歌曲拼音码为ZJSA的歌曲被添加到已点歌曲列表中歌曲拼音码为ZJSA的歌曲被添加到已点歌曲列表中XGCS8歌名点歌失败zjsa弹出对话框“没有查询结果,请输入中文信息!”“没有查询结果,请输入中文信息!”XGCS9歌名点歌失败为空提示框“请输入正确的信息!”“请输入正确的信息!”XGCS10歌名点歌成功这就是爱歌曲名为“这就是爱”的歌曲被添加到已点歌曲列表中歌曲名为“这就是爱”的歌曲被添加到已点歌曲列表中XGCS11明星点歌失败zj弹出对话框“没有查询结果,请输入中文信息!”“没有查询结果,请输入中文信息!”XGCS12明星点歌失败为空提示框“请输入正确的信息!”“请输入正确的信息!”XGCS13明星点歌成功张杰明星名字为“张杰”的歌曲被添加到已点歌曲列表中明星名字为“张杰”的歌曲被添加到列表中 在进行播放用例测试前,需要添加几条记录到已点列表中,在这里我们就将歌曲信息表中的四条记录添加到已点列表中。表4-7播放用例表测试用例ID号场景/条件操作预期结果实际结果BFYL1播放失败直接点击“播放”对话框“请选择要播放的歌曲!”“请选择要播放的歌曲!”BFYL2播放成功先选择一条记录,再“播放”对话框“您已经选择了歌曲《这就是爱》,确定要播放此歌曲吗?”“您已经选择了歌曲《这就是爱》,确定要播放此歌曲吗?”BFYL3暂停点击“暂停”歌曲停止播放歌曲停止播放BFYL4上一曲播放失败播放第一首歌曲“这就是爱”提示框“已经是第一首歌!”“已经是第一首歌!”BFYL5上一曲播放成功点击下一首歌“落花”对话框“您已经选择了歌曲《这就是爱》,确定要播放此歌曲吗?”“您已经选择了歌曲《这就是爱》,确定要播放此歌曲吗?”BFYL6下一曲播放失败播放最后一首歌“荷塘月色”提示框“已经是最后一首歌!”“已经是最后首歌!”BFYL7下一曲播放成功点击上一首歌“下个路口见”对话框“您已经选择了歌曲《荷塘月色》,确定要播放此歌曲吗?”“您已经选择了歌曲《荷塘月色》,确定要播放此歌曲吗?”BFYL8全屏播放点击“全屏播放”全屏播放全屏播放在播放测试中遇到的问题,在播放歌曲时,有时可能因为没有选中歌曲就直接播放导致播放失败,有时因播放控件无效导致播放失败。在进行上一曲和下一曲的操作时,有时候因没有及时释放索引记录而导致失败,有时因超出了索引范围而导致失败。4.3问题分析1、问题产生的原因(1)操作者粗心不够认真,例如忘记输入信息、胡乱的点击等。(2)数据库连接异常。(3)SQL语句语法有误(4)相关控件的属性和方法的误用。2、问题处理(1)在编写代码时,进行相关的异常处理,如try……catch。(2)周全考虑,人性化处理,弹出相应的提示信息。 总结通过几个月的毕业设计,我们已经基本完成了KTV点歌系统的所有功能,管理各种歌曲,然后分别按数字点歌,按拼音点歌,按明星点歌,按歌名点歌。实现歌曲的媒体播放功能,包括播放、暂停继续、上一曲和下一曲。本系统并不是十分完美,在以后的学习和工作中,还需要不断的完善和改进。比如在系统中可以加入如下一些功能:在管理员登录的时候能够加入验证信息,使其传递的信息更加的安全。播放器的功能相对较少,点歌时声道切换并不能实现,视频效果也不太清晰。在歌曲的查询方面做的还不够好,现在的消费者都追求简单时尚,如果把查询功能做的更智能、能简练,如只输入歌名的首字母,符合条件的歌曲都罗列出来,供用户选择,并显示歌星的照片,相信系统会变得更加完美。 参考文献【1】扶松柏.深入体验C#项目开发[M].第1版.北京清华大学:清华大学出版社.2011.108-150【2】王小科.吕双.梁冰.C#范例完全自学手册[M].第1版.人民邮电:人民邮电出版社.2009.118-121【3】陈广.C#程序设计基础[M].第1版.北京:北京大学出版社.2008【4】郑耀东等.C#从入门到实践[M].第1版.北京:清华大学出版社.2009【5】[1][2]沈阳航空工业学院.自动点歌系统论文[EB/OL].http://www.docin.com【6】参考网址:http://www.csdn.net 致谢经过这几个月的毕业设计,基本上完成了KTV点歌系统的开发。从可行性分析到需求分析,概要设计,到详细设计和最后阶段的毕业论文的撰写,在整个设计阶段指导老师一直陪伴着我们指导我们。在设计阶段孙老师给了我很多宝贵意见,无论从资料上还是从技术上,孙老师都给了我极大的支持,也给了我很大的启发。从正式开始毕业设计起到现在论文的完成,老师随时关心我的进度。我表示衷心的感谢!孙老师那种认真负责的工作态度,严谨的治学精神也使我受益匪浅,这在我以后工作中会有很大的帮助,再次感谢孙老师﹗非常感谢系里各位老师在毕业设计阶段为我们所做的一切工作,感谢他们为我们提供良好的环境,并对我们的毕业设计进行督促,让我们能按时完成任务。通过此次毕业设计,使我受益匪浅,同时也认识到了自己的不足。在此,再次向全系老师表示我由衷的感谢!'