当前位置:文档之家› 课程设计 KTV卡拉OK点歌管理系统

课程设计 KTV卡拉OK点歌管理系统

课程设计课程设计名称:卡拉OK点歌管理系统专业班级: 10级计科2班学生姓名:冰学号: 204指导教师:玉摘要迅速发展的计算机科学技术应用越来越广泛,已经渗透到了人类社会生产和生活的各个领域。

数据库技术是计算机科学技术的一个重要分支,是现代化管理的重要手段,是研究数据共享的一门科学。

近年来,人们利用数据库技术对海量的数据进行处理,然后结合其他技术开发除了各种软件,为人类生活提供了便利。

娱乐是人的一生中不可或缺的部分。

随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。

同事,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。

工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

因此娱乐业在服务行业中占有越来越重要的地位。

然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞或者在自己家中自娱自乐KTV点歌系统也因此有了广阔的发展前景。

随着KTV行业的迅猛发展,点歌系统在KTV里的重要性越来越大,特别是在面向普通消费者的量版式KTV,投资方在选系统的时候无不练就一双金睛火眼,千挑万选,而且更是在配套设备上重金投入,确保为消费者营造出一个更好的消费环境。

KTV点歌系统被广泛应用于KTV、酒店、酒吧等娱乐场所中。

目录1.引言 ................................. 错误!未定义书签。

1.1问题的提出 ............................................. 错误!未定义书签。

1.2课题的研究目的 (1)1.3课题的研究意义 ..................................... 错误!未定义书签。

2.概要设计 (2)2.1设计目的 (2)2.2设计内容 ................................................. 错误!未定义书签。

3.系统分析 .......................... 错误!未定义书签。

3.1需求分析 ................................................. 错误!未定义书签。

3.2可行性分析 (3)4.系统设计 .......................... 错误!未定义书签。

4.1系统运行环境 ......................................... 错误!未定义书签。

4.2系统设计 (5)4.3概念结构设计 (5)4.4窗体设计 (7)5.主要功能模块设计 ........... 错误!未定义书签。

5.1用户基本信息窗体 ................................. 错误!未定义书签。

5.2歌手信息窗体 (20)5.3歌曲信息窗体 (24)5.4点歌查询窗体 (25)总结 (30)参考文献 (31)1.引言时代的快速发展,经济的增长让人类不仅仅追求于物质方面的满足,精神方面现在也逐渐的进入人们的世界。

伴随着迅速发展的计算机科学技术应用的广泛,已经渗透到了人类社会生产和生活的各个领域。

数据库技术是计算机科学技术的一个重要分支,是现代化管理的重要手段,是研究数据共享的一门科学。

近年来,人们利用数据库技术对海量的数据进行处理,然后结合其他技术开发除了各种软件,为人类生活提供了便利。

1.1问题的提出随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。

同事,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。

工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

因此娱乐业在服务行业中占有越来越重要的地位。

然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞或者在自己家中自娱自乐KTV点歌系统也因此有了广阔的发展前景。

并且,现在顾客的期望值越来越高,顾客需要更好的服务(产品及个性化服务)。

而目前各企业之间的竞争已逐渐从产品的竞争转变为服务的竞争,因此中小企业要发展就必须需要进一步优化业务流程以提高企业竞争能力。

因此,加强卡拉OK系统管理是KTV发展的必然,通过计算机来大量完成本来由工作人员手工完成的工作,真正达到合理和充分利用现有资源,减轻工作压力,提高精神方面的追求,满足人们全面的需要。

1.2课题的研究目的研究该课题是为了通过对“卡拉OK点歌管理系统”的设计与实现,熟悉这类的信息管理系统的开发原理及流程。

在设计过程,能够深入地理解面向对象设计方法的优越性,获得这些方面的相关经验。

对一个即将毕业的计算机科学与技术专业本科生来说,又想在软件行业领域里有所发展,研究并应用面向对象设计方法是百益无一害的,可以使其走向社会后能够快速地适应行业需求。

这正是本次设计的根本目的所在。

1.3课题的研究意义KTV点歌系统主要用于KTV内选歌的各种方式,例如有数字点歌、拼音点歌、明星点歌、歌曲点歌选择方式,便于在点歌时对歌曲的掌握,以及能迅速选择到自己喜欢的音乐,同时减少了传统的一个一个的按顺序去查找。

节省了时间,使其让更多的时间用在享受上,而不是查找上,提高了查找歌曲的效率。

因此也会有更多的人选择只能化的KTV去消费,直接提高了KTV的收益。

因此KTV点歌系统是企业化、智能化、科学化和正规化不可缺少的管理软件。

本系统的优势及特点本系统采用基础的平台,采用设计模式以及工作流技术的解决方案来进行设计和开发其特点及优势在于:1.采用的平台是目前开发企业级分布式软件应用的最的应用结构之一,它支持简化的、基于组件的开发模式。

2.采用的是分类管理,根据音乐的不同特点,存储音乐,对查找有很好的管理,使得处理起来更加简洁。

3.此系统属于小型KTV点歌系统,为用户提供了一个方便快捷的音乐管理和播放平台。

4.免于用户处在歌海中找歌,犹如大海捞针,为用户省下了宝贵的时间。

2.概要设计2.1设计目的根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。

2.2设计内容题目可根据自己熟悉的某方面的系统进行填充,例如图书进销存系统、电脑设备进销存系统、药品进销存系统等等,下面以卡拉OK点歌系统为例完成功能:1)用户信息、歌曲信息2)明星信息、歌曲查询以上功能可根据自己对不同歌曲主要的管理需求进行调整,可以增加或减少相应功能。

3.系统分析3.1需求分析随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。

工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。

因此娱乐业在服务行业中占有越来越重要的地位。

然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱歌,跳跳舞或者在自己家中自娱自乐KTV点歌系统也因此有了广阔的发展前景。

3.2 可行性分析开发本系统要从它的经济和技术角度全面考虑,要在利用最少的经济条件把系统的功能实现。

1.经济可行性随着人们生活水平的不断提高,工作压力越来越大,根据这个形式,就需要一些娱乐设施来减轻人们的生活负担,同时还能丰富业余生活。

开发点歌系统是一个很好的方法,它以较低的成本达到人们满意的效果。

本软件的成本费用:目前,在市场上购买一台普通PC机大约需要3000-4000元,此系统开发工作人员的三个月工资大约要10000元,做系统调研及各种资料费等各种费用大约需要5000元。

电费等其他各种费用大约需要1000元。

自动点歌系统是我根据现在人们生活的实际情况,在考虑到系统的可行性:目标和方案可行性,技术可行性,经济方面的可行性等。

因素的基础上进行开发的。

它针对管理中的实际情况,能够解决一些实际问题,对各种歌曲信息进行管理,条理非常清晰,用户便于操作。

而且克服了购买现成软件存在的专用性较差的问题。

当然,它也存在一些不足之处,需要不断的完善。

2.技术可行性开发语言该系统前台我使用Visual Studio 2008作为开发工具,后台数据库使用Access,该软件的开发是在XP操作系统下进行,利用Visual Studio 2008工具进行开发,不需要任何大型的系统软件和应用软件来支持。

4.系统设计4.1系统运行环境系统开发平台:Microsoft Visual Studio 2008系统开发语言:C#数据库管理软件:Acess运行平台:Win7运行环境: Framework SDK v2.04.2系统设计4.3概念结构设计C#卡拉OK点歌后台数据点歌系数字点歌拼音点歌明星点歌歌名点歌明星信息歌曲信息歌曲类型用户管理C#KTV点歌管理系统功能结构图用户信息实体E-R 图:歌手序号姓名出生日期姓名拼音发行时间备注出生地性别风格用户编号姓名密码登陆时间状态歌曲信息实体E-R 图:4.4窗体设计登录窗体歌曲编号歌曲名称被选状态发行日期演唱者文件位置拼音类型语言点歌系统登录窗体点歌条件窗体明星信息窗体歌曲信息界面窗体添加歌曲窗体歌曲类型信息窗体添加歌曲类型信息窗体用户管理窗体添加用户管理信息窗体5.主要功能模块设计5.1卡拉OK点歌系统基本信息窗体1.通过对点歌信息的几种方式进行点歌操作,数字点歌,拼音点歌,明星点歌,歌名点歌相关代码如下: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 bntPing_Click(object sender, EventArgs e){frmNumber frm2 = new frmNumber(2);frm2.Owner=this;frm2.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();}2.通过选择点歌的方式,可以知道歌曲的信息,查询可根据很多方面的信息而查到所向知道的歌曲的信息,所一就需要输入查询条件,根据查询条件而知道所向知道的信息,客户通过自己想要的方式查到歌曲的信息,相关的代码如下:public int intFalg = 0;//控件点歌条件private void frmNumber_Load(object sender, EventArgs e){if(intFalg==1)//数字{this.Text = "数字点歌";}if(intFalg==2)//拼音{this.Text = "拼音点歌";}if(intFalg==3)//明星{this.Text = "明星点歌";}if(intFalg==4)//歌名{this.Text = "歌名点歌";}txtName.Focus();}//确定调用查询结果tbMusicnfoMenthod tbMusice = new tbMusicnfoMenthod();//实例方法类private void bntOK_Click(object sender, EventArgs e){if (txtName.Text == ""){MessageBox.Show("输入正确的查询条件!");txtName.Focus();return;}frmDaiGe daige = (frmDaiGe)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();}}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();}}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();}}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();}}}3.如果用户查询到歌曲的信息之后,想做一些的修改删除,添加之类的修改,如果添加歌曲信息的话,则要录入新歌曲的详细信息,如修改的歌曲信息的话可根据某方面的信息进行相关的修该,如删除歌曲信息的话,则要对歌曲的信息进行全部的删除,并相应的保存到数据库里面,方便下次用户对歌曲的信息进行相关的操作,具体修改,删除,添加的操作代码如下:#region 添加public int tbMusicnfoAdd(tb_musicinfo tb_aut){int intResult = 0;try{getConnection getCon = new getConnection();oledCon = getCon.OledCon();oledCon.Open();string strAdd = "insert into tb_musicinfo values ( ";strAdd += "'" + tb_aut.strMusic_code + "','" + tb_aut.strMusicC_name + "',";strAdd += "'" + tb_aut.strMusic_author + "','" + tb_aut.strMusic_Kind + "',";strAdd += "'" + tb_aut.strMusic_chinse + "','" + tb_aut.strMusic_filepath + "',";strAdd += "'" + tb_aut.strMusic_Ping + "','" + tb_aut.daMusic_date + "',";strAdd+="'"+ tb_aut.intMusic_falg+"')";oledcmd = new OleDbCommand(strAdd, oledCon);intResult = oledcmd.ExecuteNonQuery();return intResult;}catch (Exception ee){MessageBox.Show(ee.Message.ToString());return intResult;}}#endregion#region 修改public int tbMusicnfoUpdate(tb_musicinfo tb_aut){int intResult = 0;try{getConnection getCon = new getConnection();oledCon = getCon.OledCon();oledCon.Open();string strAdd = "update tb_musicinfo set ";strAdd += "MusicC_name='" + tb_aut.strMusicC_name + "',";strAdd += "Music_author='" + tb_aut.strMusic_author + "',Music_Kind='" + tb_aut.strMusic_Kind + "',";strAdd += "Music_chinse='" + tb_aut.strMusic_chinse + "',Music_filepath='" + tb_aut.strMusic_filepath + "',";strAdd += "Music_Ping='" + tb_aut.strMusic_Ping + "',Music_date='" + tb_aut.daMusic_date + "',";strAdd += "Music_falg ='" + tb_aut.intMusic_falg + "' where Music_code='" + tb_aut.strMusic_code + "'";oledcmd = new OleDbCommand(strAdd, oledCon);intResult = oledcmd.ExecuteNonQuery();return intResult;}catch (Exception ee){MessageBox.Show(ee.Message.ToString());return intResult;}}#endregion#region 删除public int tbMusicnfoDelete(string tb_aut){int intResult = 0;try{getConnection getCon = new getConnection();oledCon = getCon.OledCon();oledCon.Open();string strAdd = "delete * from tb_musicinfo where ";strAdd += "Music_code='" + tb_aut+ "'";oledcmd = new OleDbCommand(strAdd, oledCon);intResult = oledcmd.ExecuteNonQuery();return intResult;}catch (Exception ee){MessageBox.Show(ee.Message.ToString());return intResult;}}#endregion#region 编号public int tbMusicnfoID(){int intResult = 0;try{getConnection getCon = new getConnection();oledCon = getCon.OledCon();oledCon.Open();string strAdd = "select Max(Music_code) from tb_musicinfo";oledcmd = new OleDbCommand(strAdd, oledCon);oleRed = oledcmd.ExecuteReader();oleRed.Read();if (oleRed.HasRows){if (oleRed[0].ToString() == ""){ intResult = 1; }else{intResult = Convert.ToInt32(oleRed[0].ToString()) + 1;}}return intResult;}catch (Exception ee){MessageBox.Show(ee.Message.ToString());return intResult;}}#endregion#region 查询public void tbMusicnfoFill(object obj){try{getConnection getCon = new getConnection();oledCon = getCon.OledCon();oledCon.Open();string strAdd = "select * from tb_musicinfo ";oledcmd = new OleDbCommand(strAdd, oledCon);oleRed = oledcmd.ExecuteReader();ListView lv = (ListView)obj;lv.Items.Clear();while (oleRed.Read()){ListViewItem lv1 = newListViewItem(oleRed[0].ToString());lv1.SubItems.Add(oleRed[1].ToString());lv1.SubItems.Add(oleRed[2].ToString());lv1.SubItems.Add(oleRed[3].ToString());lv1.SubItems.Add(oleRed[4].ToString());lv1.SubItems.Add(oleRed[5].ToString());lv.Items.Add(lv1);}oleRed.Close();}catch (Exception ee){MessageBox.Show(ee.Message.ToString());}}#endregion5.2明星信息窗体1. 对明星信息的添加,修改,删除,关闭等方面进行相关的操作,即信息初始化,代码如下: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.SelectedItems[0].SubItems[0].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;}}1.1 通过对歌曲的信息录入,并保存到数据库里面,此外应注意的是歌曲的名称,演唱者,歌曲路径是必须的填写的,否则不可以添加并进行相关操作的,如少填写一项,会弹出相应的对话框,代码如下:public string strMuseName = null;//歌曲private void lvMuscie_MouseClick(object sender, MouseEventArgs e){strMuseName = lvMuscie.SelectedItems[0].SubItems[0].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, rmation);if(diaol==DialogResult.Yes){Application.Exit();}}public string strUser = null;private void LvUser_Click(object sender, EventArgs e){strUser = LvUser.SelectedItems[0].SubItems[0].Text;if (strUser != null){ fillScoure(); }}public void fillScoure(){OleDbDataReader dr = computer.tbFill(strUser);dr.Read();if (dr.HasRows){txtUser.Text = dr[1].ToString();txtUser.Enabled = false;}}5.3歌曲类型信息窗体对应放入实现代码如下:{//添加歌曲类别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.SelectedItems[0].SubItems[0].T ext;//当前选择的值5.4用户管理窗体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 = 0;//保存用户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 lvAuton_SelectedIndexChanged(object sender, EventArgs e){}}总结在这个软件设计的最初,我按照老师的要求一步一步往下做,努力作好需求分析。

相关主题