KTV点歌管理系统实现歌曲播放文档格式.docx
《KTV点歌管理系统实现歌曲播放文档格式.docx》由会员分享,可在线阅读,更多相关《KTV点歌管理系统实现歌曲播放文档格式.docx(37页珍藏版)》请在冰豆网上搜索。
确定数据表中字段的构成、主键字段和有关字段的约束条件等。
依靠数据表中主键字段建立数据表之间的关系,并由此建立数据表之间的参照完整性约束。
(3)根据功能确定软件模块组成及调用关系。
(4)确定每个模块的数据结构及算法。
3.编码
建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。
4.测试
编写合适的测试用例完成系统的测试工作并分析结果。
5.编写课程设计报告
应提交材料:
1.上交源程序:
学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);
2.课程设计报告的打印稿和电子稿;
四、主要技术路线提示
1.认真阅读相关知识,完成系统的功能分析和系统设计
2.选用ACCESS作为DBMS
五、进度安排
序号
设计内容
天数
1
分析设计内容,给出解决方案
3
2
创建数据库及建表
可视化界面设计
4
对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告
5
指导老师检查设计结果并做成绩评定
总计
14
六、参考资料
[1]张海藩.软件工程导论.北京:
清华大学出版社,2004
[2]陈明.实用软件工程基础.北京:
清华大学出版社,2003
[3]殷人昆.实用软件工程.北京:
指导教师签名日期年月日
系主任审核日期年月日
目录
1前言4
2需求分析5
2.1功能分析5
2.2方案分析5
3概要设计6
3.1数据结构6
3.2逻辑结构与物理结构6
3.3功能模块划分6
3.4抽象数据类定义9
4详细设计9
4.1数据类型定义9
4.2主要模块内部设计10
4.2.1选择歌曲功能模块10
4.2.2查看播放列表功能模块13
4.2.3歌曲播放功能模块14
5实现与调试分析16
5.1实现环境16
5.2语言选择16
5.3调试分析16
6测试分析16
6.1测试用例18
6.2测试结果18
6.3性能分析19
7用户手册20
总结20
参考文献20
1前言
迅速发展的计算机科学技术应用越来越广泛,已经渗透到了人类社会生产和生活的各个领域。
随着生活水平的提高,人们除了注重衣食住行以外,越来越需要一些好的娱乐休闲方式,而卡拉OK起源于日本引入我国,这种娱乐方式很快被大家接受。
这也促进了很多爱好者开发适用于不同应用场合的KTV点歌系统,以便于顾客在KTV中自由点歌而不受其他的影响,同时也节约了很大的成本。
KTV点歌系统以满足用户需求,减轻工作人员的复旦为宗旨。
随着计算机技术的进一步发展和人们生活要求的不断提高,KTV点歌管理系统一定会有更加广阔的应用前景。
在这里,主要实现KTV点歌管理系统的歌曲播放功能(包括歌曲管理和友好的点歌查询界面和歌曲播放功能)。
2需求分析
2.1功能分析
经过综合分析,确定了系统应该包括如下功能:
该KTV点歌管理系统应该实现选择歌曲,查看播放列表,以及简单的播放歌曲功能。
用户可以完全按照菜单的提示对其进行操作,系统对用户的指令做出相应的反应。
●选择歌曲:
通过显示的界面选择歌曲,其中歌曲的查找包括按语种查找,按姓名查找,全部显示。
●查看播放列表:
通过该功能查看,删除已选择的歌曲,增添新的歌曲。
●歌曲播放:
通过该功能实现歌曲的按顺序播放和随机播放。
2.2方案分析
该系统针对的是KTV点歌的用户,用户可以通过该系统对所提供的歌曲进行选择,可惜查看删除播放列表中的歌曲,实现歌曲的按顺序播放和随机播放功能。
图1
3概要设计
3.1数据结构
数据元素:
歌曲库,播放列表,歌曲。
歌曲属性:
歌曲编号,歌曲名,歌手名,时间,语种
图2
3.2逻辑结构与物理结构
通过对上述数据结构的分析,根据课程设计自动选课系统的需求,将以上的E-R图转换为关系模式:
歌曲(歌曲编号,歌曲名,歌手,时长,语种);
供选择的歌曲保存在歌曲库musicbase.txt文件中,
播放列表保存在playlist.txt文件中。
3.3功能模块划分
3.3.1结构框图
图3
3.3.2程序流图
图4
3.3.3模块功能分析及外部设计
以下是对各功能模块主要功能的描述
◆选择歌曲模块:
通过显示的界面选择歌曲,用户可以按几种方式来选择歌曲。
可以按歌曲名查找,按语种选择,按歌手名选择,全部查看,选中的歌曲自动记录至播放列表,以便用户查看进行下一功能的使用。
◆查看播放列表模块:
用户选择该模块即可查看播放列表,播放列表按用户选择顺序默认排序,用户可以在该模块中自行选择增添或者删除播放列表中的歌曲,并可刷新播放列表。
◆歌曲播放模块:
用户选择歌曲至播放列表后,可使用该模块,实现歌曲的播放功能,该模块包括顺序播放和随机播放歌曲两种功能。
外部设计
◆主界面:
列出该系统的各大功能供用户选择,在各模块内部界面也设置有返回
键,基本实现良好的友好界面。
3.4抽象数据类定义
voidparFile();
voidSelectMusics();
//选择歌曲子函数
voidSelectMusicsFrName(charname[64]);
//从歌曲名来查找
voidSelectMusicsFrSinger(charsinger[64]);
//从歌手来查找
voidSelectAllMusics();
//显示全部歌曲
voidAddOneMusicToPList(charcode[64]);
//增加一首歌曲到列表中
voidDelOneMusicToPList(charcode[64]);
voidDispSelMusics();
//查看播放列表自汉书
voidPlayMusics();
//播放子函数
voidwritePlist(charch[256]);
//把选择的歌曲写入播放列表中(全局数组)
voidwritePlistFile();
//把选择的歌曲写入播放列表中(播放列表文件)
voiddeletePlist(charch[256]);
4详细设计
4.1数据类型定义
typedefstruct{
charchcode[64];
charchname[64];
charchsinger[64];
charchtime[64];
charchlanguage[64];
}music_info;
4.2主要模块内部设计
4.2.1选择歌曲功能模块
4.2.1.1模块算法
voidSelectMusics()
{
//intselect;
charchSelect;
charchSel[64];
boolbSelFlag=true;
printf("
\n\t\t\t__________________________\n"
);
\t\t\t||\n"
\t\t\t|a.按照歌曲名查找歌曲|\n"
\t\t\t|_________________________|\n"
\t\t\t|b.按歌手查找歌曲|\n"
\t\t\t|c.显示全部歌曲供选择|\n"
\t\t\t|d.返回上一级菜单|\n"
请选择查找歌曲的方式(a-d):
"
while(bSelFlag)
//scanf("
%d"
&
select);
scanf("
%s"
chSelect);
switch(chSelect)
case'
a'
:
//按照歌曲名查找歌曲
memset(chSel,0,64);
bSelFlag=false;
请输入歌曲名称:
chSel);
SelectMusicsFrName(chSel);
break;
}
b'
//按歌手查找歌曲
请输入歌手名:
SelectMusicsFrSinger(chSel);
c'
//显示全部歌曲供选择
SelectAllMusics();
d'
default:
选择输入错误!
请重新输入输入(a-d):
}
4.2.1.2流程图
图5
4.2.2查看播放列表功能模块
4.2.2.1模块算法
voidDispSelMusics()
charchSel;
charcSel[256];
charchSelect;
for(inti=0;
i<
nplistMusics;
i++)
{
printf("
\n编号:
%s;
歌名:
%15s;
歌手:
%8s;
时间:
语种:
nplistMusic_info[i].chcode,
nplistMusic_info[i].chname,nplistMusic_info[i].chsinger,nplistMusic_info[i].chtime,nplistMusic_info[i].chlanguage);
}
printf("
\n是否删除或增加歌曲(y/n)?
scanf("
if('
y'
==chSelect)
printf("
\n删除歌曲请输入d,增加歌曲请输入a:
scanf("
if('
==chSel)
{
\n输入删除歌曲编号并以,隔开:
memset(cSel,0,256);
scanf("
cSel);
deletePlist(cSel);
}
elseif('
\n输入增加歌曲编号并以,隔开:
writePlist(cSel);
4.2.2.2流程图
图6
4.2.3歌曲播放功能模块
4.2.3.1模块算法
voidPlayMusics()
charcSel;
intnSec;
//charchartmp;
boolbQuit1=false;
boolbQuit2=false;
\n请选择播放模式(1:
顺序播放;
2:
随机播放):
1'
==cSel)
Play
(1)
if('
2'
Play
(2)
4.2.3.2流程图
图7
5实现与调试分析
5.1实现环境
Windows系列系统
开发平台:
vc6.0
5.2语言选择
C程序语言
5.3调试分析
对于所有有返回值的函数,都应该检查返回值,除非你确信这个函数调用绝对不会出错,或者不关心它是否出错。
一些函数返回错误,需要用其他函数获得错误的具体信息。
例如accept返回INVALID_SOCKET表示accept失败,为了查明具体的失败原因,应该立刻用WSAGetLastError获得错误码,并针对性的解决问题。
有些函数通过异常机制抛出错误,应该用TRY-CATCH语句来检查错误.程序员对于能处理的错误,应该自己在底层处理,对于不能处理的,应该报告给用户让他们决定怎么处理。
如果程序出了异常,却不对返回值和其他机制返回的错误信息进行判断,只能是加大了找错误的难度。
6测试分析
6.1测试用例
测试结果测试1:
名称:
歌曲选择功能模块测试
目的:
测试歌曲选择功能。
内容:
进入主界面,按提示,选择1,进入选择歌曲界面,选择a,按歌
曲名查找歌曲
输入数据:
历史的天空。
预期输出结果:
历史的天空歌曲的相关信息;
测试结果测试2:
进入主界面,按提示,选择1,进入选择歌曲界面,选择b,按歌
手名查找歌曲
周杰伦。
周杰伦的所有歌曲;
测试结果测试3:
进入主界面,按提示,选择1,进入选择歌曲界面,选择c,显示
全部歌曲。
c。
显示所有歌曲;
测试结果测试4:
查看播放列表功能模块测试
测试查看播放列表功能。
进入主界面,按提示,选择2,进入查看播放列表界面,选择c,
显示全部歌曲。
2。
已选择的歌曲;
测试结果测试5:
播放歌曲功能模块测试
测试播放歌曲功能。
进入主界面,按提示,选择3,进入查看播放列表界面,选择1。
u,d,q。
按顺序播放歌曲,并且可以实现上一曲下一曲以及退出;
测试结果测试6:
进入主界面,按提示,选择3,进入查看播放列表界面,选择2。
按随机播放歌曲,并且可以实现上一曲下一曲以及退出;
6.2测试结果
图8
图9
图10
图11
图12
6.3性能分析
此处采用的是黑盒测试法,及主要测试系统的每个功能是否能正确运作。
以下为接受测试的各个功能模块描述:
选择歌曲:
实现了用户对歌曲选择的功能的需求。
查看播放列表:
实现了查看,删除已选择的歌曲,增添新的歌曲。
歌曲播放:
实现了歌曲的按顺序播放和随机播放,以及上一曲,下一曲。
7用户手册
此次开发的KTV点歌管理系统比较简单,容易上手,用户只需根据提示输入自己的选择即可,方便快捷。
总结
该KTV点歌管理系统我是完成的实现歌曲播放的功能,由于对可视化界面以及数据库的不熟悉,所以采用了最原始的办法完成了这个系统,基本上实现了所要求的功能。
为了对以后的实际开发有所帮助,总结一下本次课程设计:
1,对基础知识掌握仍有欠缺,不能达到熟练运用。
2,没合理安排好时间,导致进度有所偏差。
3珍惜每次课程设计,因为总的来说,收获不小。
参考文献
编号
书名
作者
出版社
出版日期
软件工程导论
张海藩
清华大学出版社
2004
实用软件工程基础
陈明
2003
实用软件工程
殷人昆
#include<
stdio.h>
iostream.h>
windows.h>
iostream>
fstream>
time.h>
conio.h>
/*******************************************/
/*1、歌曲存放在musicbase.txt文件中
/*2、播放列表文件为playlist.txt
********************************************/
//定义结构
charchcode[64];
charchname[64];
charchsinger[64];
charchtime[64];
charchlanguage[64];
//函数定义
//全局变量定义
music_infonMusic_info[1000];
//歌曲库中的歌曲信息数组
intnMusics;
//歌曲库总共的歌曲数
music_infonplistMusic_info[1000];
//播放列表中的歌曲信息数组
intnplistMusics;
//播放列表中的歌曲数
//主函数
voidmain()
intselect;
boolexitFlag=false;
//退出标志位
system("
cls"
//清屏
parFile();
//解析歌曲库文件
nplistMusics=0;
//最初播放列表中没有歌曲
while
(1)
\n\t\t\t_____________________________\n"
\t\t\t|点歌系统|\n"
\t\t\t|_____________________________|\n"
\t\t\t|1.选择歌曲|\n"
\t\t\t|2.查看播放列表|\n"
\t\t\t|3.播放|\n"
\t\t\t|4.退出|\n"
请您按菜单指示选择(1-4):
switch(select)
case1:
{
SelectMusics();
break;
}
case2:
DispSelMusics();
case3:
PlayMusics();
case4:
printf("
已退出点歌系统!
\n"
exitFlag=true;
default:
选择输入错误!
请重新输入(1-4)!
}
if(exitFlag)
break;
//退出主菜单循环,进而退出点歌系统
//选择歌曲子函数
voidSelectMusics