ktv点歌系统的设计与实现毕业论文

ktv点歌系统的设计与实现毕业论文

ID:14771200

大小:3.01 MB

页数:35页

时间:2018-07-30

上传者:U-10017
ktv点歌系统的设计与实现毕业论文_第1页
ktv点歌系统的设计与实现毕业论文_第2页
ktv点歌系统的设计与实现毕业论文_第3页
ktv点歌系统的设计与实现毕业论文_第4页
ktv点歌系统的设计与实现毕业论文_第5页
资源描述:

《ktv点歌系统的设计与实现毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

KTV点歌系统的设计与实现摘要随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同时,随着生活节奏的加快,每个人都处于忙碌繁乱的社会当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。在工作之余,找到一种能够缓解压力,释放疲劳的娱乐方式,已成为大家共同的愿望。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞。因为去KTV既方便省事,又能更好更快地愉悦心情。为了满足广大消费者的需求,进一步完善和加快娱乐业管理信息化进程,针对我国娱乐业的特点和需求,结合以往娱乐软件的开发经验,以娱乐业管理科学化规范化为出发点,开发了这一个具有实用性、高效性、功能划分细致及较高的灵活性和可扩充性的KTV点歌系统。论文详细论述了系统总体设计思想、数据库设计以及功能模块设计等,给出了自动点歌系统一般流程。该系统主要包括:按拼音点歌、按数字点歌、按歌名点歌、按歌星点歌等四大点歌模块。关键词:娱乐;自动点歌;模块 ThedesignandimplementationoftheKTVclassicssystemABSTRACTNowwitheconomicandculturalleveloftheimprovedsignificantlyandpeopletothequalityoflifeandworkingenvironmentrequestmoreandmoreisalsohigh.Atthesametime,alongwiththespeedingupofthepaceoflife,everyoneinthesocietyofbusy,bothinthefamily,theworkplace,orschool,alwaysfulloflifeandthepressureinstudy.Intheinterim,findacanrelievepressure,releasefatigueofentertainment,hasbecomeacommondesire.However,byworkingconditionsandtimelimit,moreandmorepeoplechosetotheKTVsingsinganddance.BecausetotheKTV,whichisconvenientforsavetrouble,andcanbetterandfastercheerfulmood.Inordertomeettheneedsoftheconsumers,tofurtherimprovetheentertainmentindustryandtospeeduptheprocessofinformationmanagement,inviewofthecharacteristicsandneedsoftheentertainmentindustry,combiningwiththedevelopmentoftheentertainmentsoftwarepastexperience,withthescientificmanagementoftheentertainmentindustrystandardizationasthestartingpoint,thedevelopmentofthisispractical,highefficiency,functionaldivisionmeticulousandhighflexibilityandscalabilityofKTVthesongsystem.Paperdiscussestheoveralldesignthought,systemfunctionmoduledesigndatabasedesign,andetc,andgivesthegeneralflowsystemtothesong.Thesystemmainlyinclude:thepinyin,accordingtothesong,accordingtothetitlesongdigitalsongbysongsinger,andsoonfourbigsongmodule.Keywords:entertainment;automatic;songmodule 目录摘要IABSTRACTII第一章绪论11.1研究背景11.2国内外现状分析11.3主要研究内容21.4论文结构2第二章系统开发技术与工具32.1C/S结构简介32.2MicrosoftVisualStudio2010简介32.3C#简介4第三章可行性研究52.21技术可行性52.22经济可行性5第四章需求分析64.1系统功能需求64.2系统功能结构6第五章系统总体设计95.1软件结构设计95.2数据库设计10第六章系统的详细设计与实现136.1管理员功能136.2用户登录26总结30参考文献31致谢32 第一章绪论1.1研究背景娱乐是人的一生中不可或缺的部分,随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。同事,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。因此娱乐业在服务行业中占有越来越重要的地位。然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞或者在自己家中自娱自乐KTV点歌系统也因此有了广阔的发展前景但是随着计算机的发展,现在基本每个人家中都用台电脑,现在也可以在家里自己的电脑上安装一套效果和歌厅里一模一样的KTV点歌系统。1.2国内外现状分析卡拉OK在中国大陆发展到今天,已经变幻出多种形式,百花齐放的蓬勃发展着. 包括以下几种类型:量贩式卡拉OK:量贩一词意为批发商或批发商场。这种做法最早出现于商业竞争惨烈的日本。他们发现人们的日常生活用品是购买频率最高的,于是这些批发商就遵循大进大出、薄利多销的原则,以“打”为销售单位销售日用品,这种成打出售的做法很快风靡日本,并迅速传到中国台湾。现在就成了量贩式的用法之一了.有北京某同行说是按照不同时段收费的就是量贩式,实际上就孤陋寡闻了.香港量贩式的收费算法就和台湾的有很大不同.夜总会式:最古老的卡拉OK形式之一。目前在南方还广泛存在,远远胜过量贩式卡拉OK的数量。特别依附高档酒店而存在。  恋歌房式:许多低档的卡拉OK在北方也叫练歌房,练歌坊。在北方地区很流行这种叫法。实际上在长江以南基本上没有这种说法。  酒吧式:酒吧里有卡拉OK,也算是混合经营了吧。酒吧的数量和类型,比卡拉OK要多得多了。  RTV式:台湾传过来的。“R”代表“Relax”(放松)和“Resterant”(餐饮),是R和卡拉OK的结合。RTV可以唱K、休闲,还可以品尝美食。广州的金矿是代表,在厦门更是随处可见。  大部分的KTV点歌系统适用于娱乐场(卡拉OK包厢、卡拉OK餐厅包间、酒店卡拉OK、夜总会、会所、卡拉OK歌厅、歌舞厅等)娱乐服务系统。因此本课题直接适用于个人电脑,大大节约了用户的消费,又能满足用户的需求。 1.3主要研究内容本课题主要研究如何设计和实现一个KTV点歌系统。系统要具备以下功能:1、用户访问:1)直接访问2)点歌类型:歌手点歌,拼音点歌、分类点歌、语种点歌,其他点歌歌手点歌:男歌星、女歌星、港台男星、港台女星分类点歌:流行、红歌、合唱、民歌、摇滚、DJ  语种点歌:国语、粤语、韩语、日语、英语3)点播曲目管理:选中的曲目排队/选中的曲目优先被点唱4)歌曲播放的管理:选中的曲目暂停/选中的曲目停止/选中的曲目的下一曲/选中的曲目的上一曲2、系统管理:1)管理员登录2)管理歌曲信息:添加歌曲、删除歌曲1.4论文结构本文详细介绍了KTV点歌系统的分析、设计和实现。论文的主要结构和内容如下:第一章:绪论。介绍论文的研究背景,国内外发展的现状,研究意义和所运用到的工具。第二章:分别介绍了本系统所采用的系统开发工具,并阐述了原因。第三章:从技术与经济两方便探索系统可行性。第四章:对本系统做了功能需求分析并结合依据分析结果做了数据流图。第五章:系统的实现,对系统的具体实现做了阐述。第六章:结论,总结系统设计的经验与不足,展望今后的工作。 第二章系统开发技术与工具2.1C/S结构简介(Client/Server或客户/服务器模式):Client和Server常常分别处在相距很远的两台计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。C/S结构的基本原则是将计算机应用任务分解成多个子任务,由多台计算机分工完成,即采用“功能分布”原则。客户端完成数据处理,数据表示以及用户接口功能;服务器端完成DBMS(数据库管理系统)的核心功能。这种客户请求服务、服务器提供服务的处理方式是一种新型的计算机应用模式。C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。具体表现在以下两点:(1)应用服务器运行数据负荷较轻。最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。(2)数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,并且通常把那些不同的(不管是已知还是未知的)前台应用所不能违反的规则,在服务器程序中集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。2.2MicrosoftVisualStudio2010简介VisualStudio是微软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview--CTP),并且支持开发面向Windows7的应用程序。除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库 MicrosoftVisualStudio2010具有如下特点:(1)C#4.0中的动态类型和动态编程;(2)多显示器支持;(3)使用VisualStudio2010的特性支持TDD;(4)支持Office;(5)QuickSearch特性;(6)C++0x新特性;(7)IDE增强;(8)使用VisualC++2010创建Ribbon界面;(9)新增基于.NET平台的语言F#;2.3C#简介C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。“它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言[5]。”C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。 第三章可行性研究2.21技术可行性该点歌系统采用的是VisualStudio2010作为开发工具,,它是一种可视化的,面向对象的数据库开发工具。VisualStudio2010能够迅速有效的编制程序的界面,这种快速程序开发环境在程序开发和界面设计中是非常有效的。VisualStudio2010的数据窗口大大地简化了数据库应用程序的开发,是设计数据库应用程序的首选,是极好前台工具。VisualStudio2010易学易用,提供了大量的控件,我们不仅可以利用这些控件进行系统界面设计,它还可以在一定程度上最大限度地减少编程人员的工作量。基于以上各种优点,该系统决定采用VisualStudio2010作为开发工具。系统的后台数据库使用的是SQLServer2008。VisualStudio2010不但是一个高效快速开发数据库应用程序的强大工具,而且也是方便快捷地开发功能完善的Windows应用程序的工具之一。通过VisualStudio2010来访问数据库并对其进行各种操作。与数据库接口相连,建立连接后,通过SQLServer2008语句或数据窗口与数据窗口控件一起将数据库中的数据信息显示出来。综上所述,开发该管理软件具有一定的技术可行性。2.22经济可行性随着人们生活水平的不断提高,如今社会的工作压力越来越大,根据这个趋势,就需要一些娱乐设施使人们在闲暇之余,能有一个放松的空间,减缓压力。同时还能丰富大众的业余生活,增添生活情趣。综上,开发点歌系统是一个很好的方法,它可以以较低的成本达到人们满意的一个效果。本软件的成本费用:目前,在市场上购买一台卡拉OK普通PC机大约需要3000-4000元左右,而此卡拉OK系统开发工作人员的研发工资大约要10000元。加上系统调研及各种资料费等等,各种费用大约需要5000元左右,而电费等其他各种的费用大约需要1000元左右。卡拉OK自动点歌系统是我根据调查如今人们生活的实际情况,在考虑到系统的可行性,包括技术可行性,方案和目标的可行性,经济方面的可行性等因素的基础上进行开发的。此系统针对的是管理中的实际情况,从而能够解决一些实际的问题,它能对各种歌曲信息以及歌手信息进行管理,条理清晰而有序,便于用户操作,而且克服了购买现成软件存在的专用性漏洞的问题。当然,它肯定也会存在一些不足之处,还需要不断的调试与完善。 第四章需求分析软件项目的需求分析是软件项目开发的基础,需求分析直接影响着软件项目产品的质量,有效的需求分析是软件开发项目中关键的成功因素。软件系统的需求一般可以分为功能性需求和非功能性需求。软件项目开发的最终目标在于满足系统的功能性需求和非功能性需求。功能性需求是系统需要实现的,提供给用户使用的具体的功能。非功能性需求是为了满足用户对系统功能的需求,系统正常工作所应当具备的系统的特定特性,如性能、安全性、可用性、可扩展性等等,功能性需求决定着非功能性需求,非功能需求又影响着功能需求。软件项目的需分析是在项目开发的第一个周期内开始进行的。4.1系统功能需求要设计一个完备的点歌系统,需涉及大量的信息。为了简化本系统的设计,只选取了一些基本的与点歌相关的明星信息、歌曲信息、歌曲类型信息、用户信息以及基本点歌等。具体规划的模块如下:1、明星信息:包括添加、修改和删除等数据维护操作。2、歌曲信息:包括添加、修改和删除等数据维护操作。3、歌曲类型信息:包括添加、修改和删除等数据维护操作。4、用户信息:包括添加、修改和删除等数据维护操作。5、基本点歌:包括数字点歌、拼音点歌、歌名点歌、明星点歌等功能。4.2系统功能结构根据功能的关联关系,将系统功能细化如图4-1所示的功能结构图。其业务流程如图4-2所示,此系统有两种合法用户身份,一是管理员身份,可以进入后台数据维护和前台点歌,一是客户身份,只可直接进入前台点歌界面。 点歌系统登录界面后台数据维护前台点歌歌曲信息增删改明星信息增删改歌曲类型信息增删改管理员信息增删改明星点歌歌名点歌数字点歌拼音点歌图4-1系统功能结构图后台数据维护前台点歌登录否是合法用户管理员客户前台点歌图4-2业务流程图 第五章系统总体设计5.1软件结构设计一般来说,程序中的一个模块对应一个子功能。我们应当将模块组合成协调的多层次系统,顶层模块调用下层模块以实现程序的完整功能,各下层模块再调用更下层的模块,进而完成程序的各个子功能,最底层的模块实现最具体的功能。这里用层次图来展示软件结构。后台数据维护模块主要有四个子模块:明星信息、歌曲信息、歌曲类型信息、用户管理,均可进行添加、修改、删除,最后用户管理保存。下图所示为后台数据维护模块层次图(下图显示的为主要功能,还有部分功能未显示):图5-1后台数据维护层次图系统点歌模块主要有七个子模块:数字点歌、拼音点歌、明星点歌、歌名点歌,点歌模块均有查询确定、取消以及选择、播放、退出。下图所示为点歌模块层次图:图5-2系统点歌层次图 5.2数据库设计以下数据库设计建立在之前所作需求分析确定的系统数据需求的基础上。5.21管理员数据表管理员事体E-R图:图5-3管理员E-R图根据E-R图管理员表设计如下:图5-4管理员表设计图5.22歌手信息表歌手事体E-R图:图5-5歌手信息表E-R图 根据歌手E-R图设计歌手表如下:图5-6歌手信息设计表5.23歌曲信息表歌曲事体E-R图:图5-7歌曲事体E-R图根据歌曲事体E-R图设计歌曲表如下:图5-8歌曲设计表 5.24歌曲类型表歌曲类型E-R图:图5-9歌曲类型E-R图根据歌曲类型E-R图设计歌曲类型表如下:图5-10歌曲类型设计表 第六章系统的详细设计与实现6.1管理员功能下图为登录界面,输入名称admin,密码admin,下拉选择后台数据维护,点击确定进入后台维护界面。图6-1登陆界面图6-2后台管理界面登录后显示以上界面,从上侧功能栏可以看出能够进行歌手管理、歌曲管理、用户管理等相关操作。点击即可跳转到相关实例进行操作,例如新增歌手:  FrmAddSingerfrm=newFrmAddSinger();frm.MdiParent=this; frm.Show();图6-3添加歌手信息生成新增窗口类,并实现相应的功能主要代码有:/单击浏览上传文件privatevoidbtnSee_Click(objectsender,EventArgse){if(this.openFileDialog1.ShowDialog()==DialogResult.OK){stringfilePath=this.openFileDialog1.FileName;stringnow=DateTime.Now.ToString("yyyymmddhhmmss");stringext=Path.GetExtension(filePath);this.avatarFileName=now+ext;stringnewFilePath=this.singerAvatarFolder+"\"+this.avatarFileName;File.Copy(filePath,newFilePath,false);this.picAvatar.Image=Image.FromFile(newFilePath);}} //添加privatevoidbtnAdd_Click(objectsender,EventArgse){stringsingerName=string.Empty;stringletter=string.Empty;intsexID=-1;intareaID=-1;stringnote=string.Empty;singerName=txtSingerName.Text.Trim();letter=txtLetter.Text.Trim().ToUpper();sexID=(int)cmbSex.SelectedValue;areaID=(int)cmbArea.SelectedValue;//avatarPath=txtAvatarPath.Text.Trim();note=txtNote.Text.Trim();if(singerName==string.Empty||singerName==null){MessageBox.Show("请填写歌手姓名!");return;}elseif(letter==string.Empty||letter==null){MessageBox.Show("请填写歌手姓名拼音缩写!");return;}elseif(sexID==-1){MessageBox.Show("请选择歌手类型!");return;}elseif(areaID==-1){MessageBox.Show("请选择歌手所属地区!");return;}elseif(this.avatarFileName==string.Empty||this.avatarFileName==null) {MessageBox.Show("请上传歌手头像!");return;}else{stringcheckSql=string.Format("selectcount(*)fromSingerwhereSingerName='{0}'",singerName);if(Dao.GetScalar(checkSql)>0){MessageBox.Show("该歌手已经存在!");return;}stringsql=string.Format("insertintoSingervalues('{0}','{1}','{2}','{3}','{4}','{5}')",singerName,letter,sexID,areaID,this.avatarFileName,note);intresult=Dao.Mofidy(sql);if(result>0){MessageBox.Show("增加信息成功");}else{MessageBox.Show("增加信息失败");}}}} 图6-4歌手信息查询为歌手信息查询,其中包括歌手姓名、拼音缩写、性别、地区查询//查询privatevoidbtnSelect_Click(objectsender,EventArgse){DataTabledt=newDataTable();stringsingerName=string.Empty;stringletter=string.Empty;intsexID=-1;intareaID=-1;singerName=txtSingerName.Text.Trim();letter=txtLetter.Text.Trim().ToUpper();sexID=(int)cmbSex.SelectedValue;areaID=(int)cmbArea.SelectedValue;stringsql="selectSingerID歌手编号,SingerName歌手姓名,Letter缩写,SexName性别,AreaName地区,Avatar头像文件,Note描述fromSinger"+"innerjoinSexonSinger.Sex=Sex.SexID"+"innerjoinAreaonSinger.AreaID=Area.AreaID";stringcondition=string.Empty;#region查找条件if(singerName!=string.Empty&&singerName!=null) {if(condition==string.Empty){condition+=string.Format("whereSingerNamelike'%{0}%'",singerName);}else{condition+=string.Format("andSingerNamelike'%{0}%'",singerName);}}if(letter!=string.Empty&&letter!=null)//缩写{if(condition==string.Empty){condition+=string.Format("whereSinger.Letterlike'%{0}%'",letter);}else{condition+=string.Format("andSinger.Letterlike'%{0}%'",letter);}}if(sexID!=-1)//性别{if(condition==string.Empty){condition+=string.Format("whereSinger.Sex={0}",sexID);}else{condition+=string.Format("andSinger.Sex={0}",sexID);}}if(areaID!=-1)//地区{if(condition==string.Empty) {condition+=string.Format("whereSinger.AreaID={0}",areaID);}else{condition+=string.Format("andSinger.AreaID={0}",areaID);}}#endregionif(condition!=string.Empty){sql+=condition;}dt=Dao.GetDataTable(sql);this.dataGridView1.DataSource=dt;}//修改privatevoidModifyMenuItem_Click(objectsender,EventArgse){if(this.dataGridView1.SelectedRows.Count>0){SingerInfosingerInfo=newSingerInfo();singerInfo.SingerID=(int)this.dataGridView1.SelectedRows[0].Cells["歌手编号"].Value;singerInfo.SingerName=this.dataGridView1.SelectedRows[0].Cells["歌手姓名"].Value.ToString();singerInfo.Letter=this.dataGridView1.SelectedRows[0].Cells["缩写"].Value.ToString();singerInfo.SexName=this.dataGridView1.SelectedRows[0].Cells["性别"].Value.ToString();stringsql=string.Format("selectSexIDfromSexwhereSexName='{0}'",singerInfo.SexName);singerInfo.SexID=Dao.FindID(sql);singerInfo.AreaName=this.dataGridView1.SelectedRows[0].Cells["地区"].Value.ToString();sql=string.Format("selectAreaIDfromAreawhereAreaName='{0}'",singerInfo.AreaName);singerInfo.AreaID=Dao.FindID(sql); singerInfo.Avatar=this.dataGridView1.SelectedRows[0].Cells["头像路径"].Value.ToString();singerInfo.Note=this.dataGridView1.SelectedRows[0].Cells["描述"].Value.ToString();FrmModifySingerfrm=newFrmModifySinger(singerInfo);frm.Show();}else{MessageBox.Show("请选择一行");}}//删除privatevoidDeleteMenuItem_Click(objectsender,EventArgse){if(this.dataGridView1.SelectedRows.Count>0){intsingerID=(int)this.dataGridView1.SelectedRows[0].Cells["歌手编号"].Value;stringsql=string.Format("deletefromSingerwhereSingerID={0}",singerID);intresult=Dao.Mofidy(sql);if(result>0){//this.dataGridView1.SelectedRows[0].}else{MessageBox.Show("删除失败!");}}else{MessageBox.Show("请选择一行");} 图6-5修改歌手信息主要代码://填充原始数据privatevoidfillOriginData(){if(this.singerInfo.SingerID<=0){return;}this.txtSingerID.Text=this.singerInfo.SingerID.ToString();this.txtSingerName.Text=this.singerInfo.SingerName;this.txtLetter.Text=this.singerInfo.Letter;this.cmbArea.SelectedValue=this.singerInfo.AreaID;this.cmbSex.SelectedValue=this.singerInfo.SexID;this.txtNote.Text=this.singerInfo.Note.ToString();this.avatarFileName=this.singerInfo.Avatar;this.picAvatar.Image=Image.FromFile(this.singerAvatarFolder+"\"+this.avatarFileName);} //修改privatevoidbtnModify_Click(objectsender,EventArgse){intsingerID=singerInfo.SingerID;stringsingerName=string.Empty;stringletter=string.Empty;intsexID=-1;intareaID=-1;stringnote=string.Empty;singerName=txtSingerName.Text.Trim();letter=txtLetter.Text.Trim().ToUpper();sexID=(int)cmbSex.SelectedValue;areaID=(int)cmbArea.SelectedValue;note=txtNote.Text.Trim();if(singerName==string.Empty||singerName==null){MessageBox.Show("请填写歌手姓名!");return;}elseif(letter==string.Empty||letter==null){MessageBox.Show("请填写歌手姓名拼音缩写!");return;}elseif(sexID==-1){MessageBox.Show("请选择歌手类型!");return;}elseif(areaID==-1){MessageBox.Show("请选择歌手所属地区!");return;}elseif(this.avatarFileName==string.Empty||this.avatarFileName==null){ MessageBox.Show("请上传歌手头像!");return;}else{stringsql=string.Format("updateSingersetSingerName='{0}',Letter='{1}',Sex='{2}',AreaID='{3}',Avatar='{4}',Note='{5}'"+"whereSingerID={6}",singerName,letter,sexID,areaID,this.avatarFileName,note,singerID);intresult=Dao.Mofidy(sql);if(result>0){MessageBox.Show("信息修改成功");}else{MessageBox.Show("信息修改失败");}}}} 图6-6添加歌曲信息图6-7修改歌曲信息在此由于歌曲和歌手的实现差不多,在此不多做介绍 图6-8语种管理与此图相同的性别管理、主题管理、地区管理不多做介绍主要代码:privatevoidbtnAdd_Click(objectsender,EventArgse){stringlanguageName=txtLanguage.Text.Trim();stringchkSql=string.Format("selectcount(*)fromLanguagewhereLanguageName='{0}'",languageName);if(Dao.GetScalar(chkSql)>0){MessageBox.Show("该语种已经存在!");return;}stringaddSql=string.Format("insertintoLanguagevalues('{0}')",languageName);if(Dao.Mofidy(addSql)>0){MessageBox.Show("添加语种成功!");}else{ MessageBox.Show("添加语种失败!");}}6.2用户登录图6-9用户登陆界面(1)点歌主要代码:主要代码:privatevoidtimer1_Tick(objectsender,EventArgse){stringcurrentSongName="";stringnextSongName="";stringcurrentSongSingerName="";stringnextSongSingerName="";stringcurrent="无";stringnext="无";if(FrmPlayer.CurrentSong.SongID>0){currentSongName=FrmPlayer.CurrentSong.SongName;currentSongSingerName=FrmPlayer.CurrentSong.SingerName; current=currentSongSingerName+"-"+currentSongName;}if(FrmPlayer.NextSong.SongID>0){nextSongName=FrmPlayer.NextSong.SongName;nextSongSingerName=FrmPlayer.NextSong.SingerName;next=nextSongSingerName+"-"+nextSongName;}this.lblPlaying.Text=string.Format("正播:{0}下一首:{1}",current,next);this.lblPlaying.Left-=2;if(this.lblPlaying.Right<0){this.lblPlaying.Left=pnlPlaying.Width;}this.lblPlayed.Text=PlayedList.PlayedSongList.Count().ToString();this.lblOrdered.Text=OrderedList.OrderedSongList.Count().ToString();}(2)已唱privatestringGetSongState(SongInfosongInfo){stringstateString=string.Empty;switch(songInfo.SongState){caseSongState.Playing:stateString="正播";break;caseSongState.Played:stateString="已播";break;caseSongState.Ordered:stateString="已点";break;caseSongState.UnOrder:stateString="";break;default:stateString=""; break;}returnstateString;}privatevoidtimer1_Tick(objectsender,EventArgse){stringcurrentSongName="";stringnextSongName="";stringcurrentSongSingerName="";stringnextSongSingerName="";stringcurrent="无";stringnext="无";if(FrmPlayer.CurrentSong.SongID>0){currentSongName=FrmPlayer.CurrentSong.SongName;currentSongSingerName=FrmPlayer.CurrentSong.SingerName;current=currentSongSingerName+"-"+currentSongName;}if(FrmPlayer.NextSong.SongID>0){nextSongName=FrmPlayer.NextSong.SongName;nextSongSingerName=FrmPlayer.NextSong.SingerName;next=nextSongSingerName+"-"+nextSongName;}this.lblPlaying.Text=string.Format("正播:{0}下一首:{1}",current,next);this.lblPlaying.Left-=2;if(this.lblPlaying.Right<0){this.lblPlaying.Left=pnlPlaying.Width;}this.lblPlayed.Text=PlayedList.PlayedSongList.Count().ToString();this.lblOrdered.Text=OrderedList.OrderedSongList.Count().ToString(); }(3)顶歌//置顶privatevoidpicPushToFirst_Click(objectsender,EventArgse){PictureBoxpicPushToFirst=(PictureBox)sender;SongInfosongInfo=newSongInfo();songInfo.SongID=Convert.ToInt32(picPushToFirst.Tag.ToString().Trim());foreach(SongInfosongIteminsongInfoList)//通过歌曲的ID获取歌曲信息{if(songInfo.SongID==songItem.SongID){songInfo=songItem;break;}}OrderedList.pushToFirst(songInfo);fillSongList();}(4)删除已选歌曲://删除已点歌曲privatevoidpicDelete_Click(objectsender,EventArgse){PictureBoxpicDelete=(PictureBox)sender;SongInfosongInfo=newSongInfo();songInfo.SongID=Convert.ToInt32(picDelete.Tag.ToString().Trim());foreach(SongInfosongIteminsongInfoList)//通过歌曲的ID获取歌曲信息{if(songInfo.SongID==songItem.SongID){songInfo=songItem;break;}}OrderedList.deleteSongItem(songInfo); fillSongList();}总结从开始接到论文题目到设计的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,使自己非常作品一步步完善起来,每一次改进都是我学习的收获。虽然我的论文作品还有很多不足之处,但我可以自豪的说,这里面的每一个功能,都有我的劳动。当看着自己的系统可以完善的运行起来,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。由于技术和时间的限制,最后做出来的成品与开始时设想的效果还有着不小的差距,这也表明了学习是永无止境的。虽然毕业设计就此结束,但对于这个系统的版本更新与功能完善还将会持续下去。 参考文献[1]温怀玉.C#技术开发综合应用[M].北京:清华大学出版社,2010.[2]李乃文.C#2008程序设计实践教程[M].北京:清华大学出版社,2009[3]杨强.基于.NET的C#网络数据传输[M],计算机应用,2008.[4]陈佛敏.C#程序设计简明教程[M].北京:人民邮电出版社,2008.[5]梅晓冬.VisualC#网络编程技术[M].北京:清华大学出版社,2008.[6]金华.C#网络编程技术教程[M].北京:人民邮电出版社,2008.[7]李增民.C#程序开发全程演练[M].北京:清华大学出版社,2009.[8]周鸿旋.数据库原理与SQL语言[M].北京:清华大学出版社,2011[9]邹梓秀.关系数据库与SQL语言[M].上海:上海交通大学出版社,2009[10]王珊.数据库系统概论[M].北京:高等教育出版社,2010[11]赵杰.数据库原理与应用[M].北京,人民邮电出版社,2002 致谢通过这次的毕业设计,我巩固了大学四年来学习的知识,同时接触了很多新知识,使得自己的技能有了一定的提高。在毕业设计期间,老师给我进行了很多相关的指导,要求我毕业设计按照学院规定严格来进行。另外,在遇到问题的时候,我也会寻求同学的帮助,很多同学也乐意帮助我,给了我很多有帮助的建议。在即将离开学校之际,在此感谢所有帮助过我的老师和同学。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭