C#点歌系统.doc_第1页
C#点歌系统.doc_第2页
C#点歌系统.doc_第3页
C#点歌系统.doc_第4页
C#点歌系统.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

郑州科技学院c#课程设计报告书设计(论文)题目: 点歌系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班 学 生 姓 名: 赵乾坤 学 号: 201015074 指 导 教 师: 目录第一章 需求分析21.1 开发背景31.2 详细需求分析3第二章 系统功能分析42.1 系统功能设计及目标422 系统总体结构52.2.1 模块描述52.2.2 系统总体流程图6第三章 数据库设计63.1 数据库需求分析63.2 数据库物理结构设计7第四章 主要窗体及代码设计84.1 登录模块设计及代码94.2后台数据库维护模块设计124.2.1窗体设计及代码124.3 系统点歌设计模块234.3.1 窗体设计及代码234.4 添加歌曲类型模块设计274.4.1 窗体设计及代码27第五章 设计总结30【参考文献】30第一章 需求分析1.1 开发背景随着生活水平的不断提高,人们的业余生活也发生了也发生了巨大的变化,近些年来人们的业余生活变得越来越丰富多彩,去卡拉ok歌房唱歌便成了很多人在工作之余的娱乐方式。传统的点歌系统一直使用着vcd光盘来为顾客播放顾客所选的歌曲,由于光盘上存放的歌曲数量有限,而且播放器来很不方便,当顾客想唱的歌曲不在光盘上时便无法点播,本系统将使用c#技术制作一个点歌系统来满足消费者的多种需求,本系统以数据库acess作为后台支撑,用来添加,修改,删除歌曲,并提供了数字点歌,拼音点歌,明星点歌,歌名点歌方便消费者的使用。本系统界面设计简洁,美观大方,操作简单,快捷方便,数据存储安全,可靠,并提供了多种类型的点歌操作功能,操作方便简单。对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。1.2 详细需求分析本点歌系统主要包括系统点歌和后台数据维护两大子系统,业务编码有明星编号,管理员编号,歌曲编号,歌曲类型编号。数据库采用microsoftaccess作为后台数据库,数据库名为db_diange.mdb,在数据库中创建了4个数据库表,用于存储不同的信息,为了节省资源,实现代码重用,可以在系统中设计了一些公共类。登录模块的设计主要用于进入点歌系统的用户进行安全检查,以防止非法用户进入系统,同时系统还根据登录用户选择登陆界面进入不同界面进行不同的操作。后台数据库维护模块用于对整个系统进行维护,主要对明星信息数据,歌曲类型信息数据,歌曲信息数据和用户信息数据进行添加,删除,修改操作。明星模块主要功能对明星进行信息管理。例如,记录明星的编号,姓名,出生日期等信息。系统点歌模块用于不同的点歌方式选择需要的歌曲并进行播放。点歌方式包括数字点歌,拼音点歌,明星点歌和歌名点歌。 第二章 系统功能分析2.1 系统功能设计及目标根据要求分析的描述,以及与用户的沟通,现制定系统实现目标如下:1 界面设计简单,友好,美观大方。2 操作简单,快捷方便。3 数据存储安全,可靠。4 信息分类清晰,准确。5 灵活,方便的维护后台数据信息。6 提供多种类型的点歌操作系统功能,并且操作方便简单。7 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为错误。22 系统总体结构2.2.1 模块描述点歌系统功能结构主要包括系统点歌和后台数据维护两大模块点歌系统的功能模块如下图(2-1)所示图2-1系统总体结构图点歌系统系统点歌后台数据维护明星信息管理歌曲类型信息管理歌名点歌选择歌曲拼音点歌数字点歌明星点歌歌曲信息管理用户管理播放歌曲系统数据备份与还原第三章 数据库设计3.1 数据库需求分析根据业务分析,系统设计了能够满足用户需求的各类实体之间的关系图。本系统设计规划出的主要实体,歌曲信息实体,明星信息实体,歌曲类型信息实体,管理员信息实体3.2 数据库物理结构设计得到上面的数据项和数据结构后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。 明星信息实体e-r图明星信息表录入时间明星性别出生日期国籍类型拼音縮写明星名字备注图3-1 (2)歌曲信息实体e-r图歌曲信息表录入时间歌手姓名歌曲类型语种文件路径歌名拼音縮写歌曲名称备注图3-2(3)管理员信息实体e-r图管理员信息表用户名密码编号图3-3(4)歌曲类型信息实体e-r图歌曲类型信息表编号备注类别名称图3-4第四章 主要窗体及代码设计在这次课程设计中,将主要主窗体及其代码展示如下:4.1 登录模块设计登录模块主要- 8 -用于对进入点歌系统的用户进行身份验证,以防止非法用户进入系统,如图4-1所示:图4-1 登陆系统主界面using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using ktv.ktvclass;namespace ktv public partial class frmlogin : form public frmlogin() initializecomponent(); private void combobox1_selectedindexchanged(object sender, eventargs e) private void bntok_click(object sender, eventargs e) tb_computer computer = new tb_computer(); if(txtuser.text=) messagebox.show(登录名称不能为空!); txtuser.focus(); return; if(txtpwd.text=) messagebox.show(登录密码不能为空!); txtpwd.focus(); return; if(cmblogin.text=) messagebox.show(请选择登录界面); cmblogin.focus(); return; computer.strcmp_name=txtuser.text; computer.strcmp_paww=txtpwd.text; if (computer.tb_computerlogin(computer, 2) = 1) if (cmblogin.text = 后台数据维护) frmmain frm = new frmmain(); frm.show(); this.hide(); if (cmblogin.text = 系统点歌) frmdaige daige = new frmdaige(); daige.show(); this.hide(); else messagebox.show(登录失败!); txtpwd.text = ; txtuser.text = ; cmblogin.text = ; txtuser.focus(); private void bntesce_click(object sender, eventargs e) this.close(); private void frmlogin_load(object sender, eventargs e) private void txtpwd_textchanged(object sender, eventargs e) 4.2 后台数据库维护模块设计4.2.1窗体设计 图4-2 后台数据库维护模块using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.configuration;using system.data.oledb;using ktv.ktvclass;namespace ktv public partial class frmmain : form public frmmain() initializecomponent(); frmdictionarymenthod frmdictyin = new frmdictionarymenthod(); tb_authorinfomenthod tbauto = new tb_authorinfomenthod(); tbmusicnfomenthod tbmuseic = new tbmusicnfomenthod(); tb_computer computer = new tb_computer(); private void frmmain_load(object sender, eventargs e) frmdictyin.dictionaryfind(2,lvditcy); tbauto.tb_authorinfofill(2, lvauton); tbmuseic.tbmusicnfofill(lvmuscie); computer.tbmusicnfofill(lvuser); private void button3_click(object sender, eventargs e) frmdictionary dictory = new frmdictionary(1,); dictory.owner = this; dictory.showdialog(); private void button2_click(object sender, eventargs e) if (strname = null) messagebox.show(请选择要修改的内容!); return; else frmdictionary dictory = new frmdictionary(2, strname); dictory.owner = this; dictory.showdialog(); public string strname = null; private void lvditcy_click(object sender, eventargs e) strname = lvditcy.selecteditems0.subitems0.text; private void button1_click_1(object sender, eventargs e) if (strname = null) messagebox.show(请选择要删除的内容!); return; else frmdictyin.dictionarydelete(strname); messagebox.show(删除成功!); frmdictyin.dictionaryfind(2, lvditcy); private void bntaut_click(object sender, eventargs e) frmauton frmauadd = new frmauton(1,); frmauadd.owner = this; frmauadd.showdialog(); public string strnameauton = null; private void lvauton_click(object sender, eventargs e) strnameauton=lvauton.selecteditems0.subitems0.text; private void bntauupdate_click(object sender, eventargs e) if (strnameauton != null) frmauton frmauadd = new frmauton(2,strnameauton); frmauadd.owner = this; frmauadd.showdialog(); else messagebox.show(请选择要修改的内容!); return; private void bntaudelete_click(object sender, eventargs e) if (strnameauton != null) tbauto.dictionarydelete(strnameauton); messagebox.show(删除成功); tbauto.tb_authorinfofill(2, lvauton); else messagebox.show(请选择要删除的内容!); return; public string strmusename = null; private void lvmuscie_mouseclick(object sender, mouseeventargs e) strmusename = lvmuscie.selecteditems0.subitems0.text; private void bntmuserupdate_click(object sender, eventargs e) if (strmusename != null) frmmusicinfo frminfo = new frmmusicinfo(2,strmusename); frminfo.owner = this; frminfo.showdialog(); else messagebox.show(选择要修改歌典); private void bntmuserdelete_click(object sender, eventargs e) if (strmusename != null) if (tbmuseic.tbmusicnfodelete(strmusename) = 1) messagebox.show(删除成功); tbmuseic.tbmusicnfofill(lvmuscie); else messagebox.show(删除失败); tbmuseic.tbmusicnfofill(lvmuscie); else messagebox.show(选择要删除歌典); private void bntmuseradd_click(object sender, eventargs e) frmmusicinfo frminfo = new frmmusicinfo(1, ); frminfo.owner = this; frminfo.showdialog(); private void button4_click(object sender, eventargs e) dialogresult diaol = messagebox.show(是否要退出后台管理系统!, 提示, messageboxbuttons.yesno, messageboxicon.information); if(diaol=dialogresult.yes) application.exit(); public string struser = null; private void lvuser_click(object sender, eventargs e) struser = lvuser.selecteditems0.subitems0.text; if (struser != null) fillscoure(); public void fillscoure() oledbdatareader dr = computer.tbfill(struser); dr.read(); if (dr.hasrows) txtuser.text = dr1.tostring(); txtuser.enabled = false; private void bntuseradd_click(object sender, eventargs e) intfalg = 1; txtpassword.text = ; txtuser.text = ; txtuser.enabled = true; bntuseradd.enabled = true; bntuserdelete.enabled = false; bntuserupdate.enabled = false; private void bntuserupdate_click(object sender, eventargs e) intfalg = 2; bntuseradd.enabled = false; bntuserdelete.enabled = false; bntuserupdate.enabled = true; private void bntuserdelete_click(object sender, eventargs e) intfalg =3; bntuseradd.enabled = false; bntuserdelete.enabled = true; bntuserupdate.enabled = false; public int intfalg; private void bntsave_click(object sender, eventargs e) if (txtuser.text = ) messagebox.show(用户名不能为空!); txtuser.focus(); return; if (intfalg != 3) if (txtpassword.text = ) messagebox.show(用户密码不能为空!); txtpassword.focus(); return; if (intfalg = 1) computer.strcmp_id = computer.getsellid(); computer.strcmp_name = txtuser.text; computer.strcmp_paww = txtpassword.text; computer.strcmp_datatime = datetime.now.date.tostring(); computer.strcmp_falg = 0; if (computer.tb_computerlogin(computer, 1) = 1) messagebox.show(此用户名已被占用); txtuser.text = ; txtuser.focus(); txtpassword.text = ; return; if (computer.tb_computeradd(computer) = 1) messagebox.show(添加成功!, 提示); computer.tbmusicnfofill(lvuser); txtuser.enabled = true; txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; else messagebox.show(失败失败!, 提示); txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; if (intfalg = 2) if (struser = null) messagebox.show(选择要修改的用户); return; else computer.strcmp_id = struser; computer.strcmp_name = txtuser.text; computer.strcmp_paww = txtpassword.text; computer.strcmp_datatime = datetime.now.date.tostring(); computer.strcmp_falg = 0; if (computer.tb_computerupdate(computer) = 1) messagebox.show(修改成功!, 提示); computer.tbmusicnfofill(lvuser); txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; else messagebox.show(修改失败!, 提示); txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; if (intfalg = 3) if (struser = null) messagebox.show(选择要删除的用户); return; else computer.strcmp_id = struser; computer.strcmp_falg = 1; if (computer.tb_computerdelete(computer) = 1) messagebox.show(删除成功!, 提示); computer.tbmusicnfofill(lvuser); txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; else messagebox.show(删除失败!, 提示); txtpassword.text = ; txtuser.text = ; bntuseradd.enabled = true; bntuserdelete.enabled = true; bntuserupdate.enabled = true; private void frmmain_formclosed(object sender, formclosedeventargs e) application.exit(); private void label1_click(object sender, eventargs e) private void lvuser_selectedindexchanged(object sender, eventargs e) private void label2_click(object sender, eventargs e) 4.3 系统点歌模块设计系统点歌模块用于通过不同的点歌方式选择需要的歌曲,如图所示:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using ktv.ktvclass;namespace ktv public partial class frmdaige : form public frmdaige() initializecomponent(); private void tabpage1_click(object sender, eventargs e) private void bntnumber_click(object sender, eventargs e) frmnumber frm1 = new frmnumber(1); frm1.owner=this; frm1.showdialog(); private void bntautor_click(object sender, eventargs e) frmnumber frm3 = new frmnumber(3); frm3.owner = this; frm3.showdialog(); private void bntname_click(object sender, eventargs e) frmnumber frm4 = new frmnumber(4); frm4.owner = this; frm4.showdialog(); private void frmdaige_load(object sender, eventargs e) private void bntesce_click(object sender, eventargs e) dialogresult diaol = messagebox.show(是否要退出系统!, 提示, messageboxbuttons.yesno, messageboxicon.information); if (diaol = dialogresult.yes) appl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论