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