KTV点歌系统—歌曲管理查询_第1页
KTV点歌系统—歌曲管理查询_第2页
KTV点歌系统—歌曲管理查询_第3页
KTV点歌系统—歌曲管理查询_第4页
KTV点歌系统—歌曲管理查询_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、西华大学课程设计报告 数学与计算机学院课程设计说明书课 程 名 称: 软件工程课程设计 课 程 代 码: 8404131 题 目: KTV点歌系统歌曲管理查询 年级/专业/班: 09软件4班 学 生 姓 名: 学 号: 开 始 时 间: 2011 年 05 月 25 日完 成 时 间: 2011 年 06 月 5 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日软件工程 课程设计任务书学院名称: 数学与计算机学院 课程代码:_8404131_专业: 软件工程 年级: 2009

2、级 一、设计题目 KTV点歌管理系统二、主要内容本课程设计完成一KTV自动点歌管理系统,本系统包括歌曲管理和点歌查询界面等功能。三、具体要求及应提交材料具体要求:本课程设计要求学生运用软件工程的思想,严格按照软件生命周期各阶段的目的和任务,完成对系统的分析、设计、编码、及测试。1完成系统的需求分析2完成系统的设计: 针对分析阶段提出的软件要求,给出实现的方案和具体细节的说明。(1)导出系统的数据流程图和功能模块图。(2)设计数据库。使用Microsoft Access创建数据库。确定数据库中数据表的组成。确定数据表中字段的构成、主键字段和有关字段的约束条件等。依靠数据表中主键字段建立数据表之间

3、的关系,并由此建立数据表之间的参照完整性约束。(3)根据功能确定软件模块组成及调用关系。(4)确定每个模块的数据结构及算法。3编码建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。4. 测试编写合适的测试用例完成系统的测试工作并分析结果。5编写课程设计报告应提交材料:1上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中);2课程设计报告的打印稿和电子稿;四、主要技术路线提示1认真阅读相关知识,完成系统的功能分析和系统设计2选用ACCESS作为DBMS五、进度安排序号设计内容天数1分析设计内容,给出解决方案32创

4、建数据库及建表33可视化界面设计34对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告35指导老师检查设计结果并做成绩评定2总 计14六、参考资料1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003指导教师 签名日期 年 月 日系 主 任 审核日期 年 月 日目 录1 前言52 需求分析52.1 功能分析52.2 方案分析53 概要设计63.1 数据结构63.2 逻辑结构与物理结构73.3 功能模块划73.4抽象数据类定义84 详细设计94.1 数据类

5、型定义94.2 主要模块内部设计94.2.1 tianjia()模块设计94.2.2 liulan()模块设计114.2.3 chaxun()模块设计125 实现与调试分析165.1 实现环境165.2 语言选择165.3 调试分析166 测试分析166.1 测试用例166.2 测试结果166.3 性能分析177用户手册17总 结17参考文献17附录171 前言KTV系统发展至今,已经非常成熟,用户需求不同,方案各异,由此而来的整个系统造价也是相距甚大。花少量的钱,办尽量多的事。KTV系统宏观分为有盘系统与无盘系统,有盘系统每点有单独的歌库,造价高且不便于维护。无盘系统是基于网络版点歌系统的,

6、基本为C/S结构,即由一台服务器(Server)为客户机(Client)并发提供点歌信息和歌曲。无盘系统客户机用户操作与有盘系统完全相同,但造价经济,宜于维护,且宜于整个KTV系统升级。2 需求分析2.1 功能分析 KTV点歌系统主要分为歌曲的查询与管理,管理主要包括歌曲的添加,删除,分类;查询可以按照歌手查询,歌曲类型查询,歌曲名查询。l 添加:根据用户需求管理员为用户添加歌曲的基本信息(包括歌曲编号,歌曲名,歌手等)l 删除:管理员对过时的或者错误的歌曲进行删除操作l 查询1. 按照歌手查询:根据歌手来分类查找想要的歌2. 歌曲类型查询:按照歌曲的类型(流行,民歌,情歌等)查询3. 歌曲名

7、查询:根据名字查询2.2 方案分析KTV点歌系统可以方便商家更好的对歌曲管理,也方便用户更加快捷的选歌,有极大的便利。歌曲管理分为歌曲的添加,删除,浏览。歌曲查询可按照不同的条件查找,给予了用户很大的方便,节约时间。3 概要设计 3.1 数据结构 数据元素 包括商家管理人员,顾客,歌曲管理人员: 添加,删除歌曲,给歌曲分类顾客: 选择歌曲歌曲: 歌曲编号,歌曲名,歌曲类型,歌手 数据字典:名字: 歌曲别名:描述:歌曲=编号+歌曲名+歌曲类型+歌手名位置:输出到选择界面管理员歌曲用户查询管理编号歌曲名类型歌手 系统E-R图3.2 逻辑结构与物理结构逻辑结构:通过对上述数据结构的分析,根据KTV自

8、动选歌系统的需求,将以上的E-R图转换为关系模式:歌曲(编号,歌名,类型,歌手);物理结构:采用顺序存储的方式存储所有的数据。3.3 功能模块划3.3.1结构框图编号查询歌名查询歌手查询类型查询KTV点歌系统歌曲查询歌曲浏览歌曲添加歌曲删除退出3.3.2程序流图开始选择功能文件存在执行功能结束FT3.3.3模块功能分析及外部设计l 增加歌曲功能:l 浏览歌曲功能;l 删除歌曲功能:l 按歌曲类型查询功能:l 按歌手名查询功能:l 按歌名查询功能l 按歌曲编号查询功能:l 退出:3.4抽象数据类定义ADT S_C数据对象:D=ai|ai<ElemSet,i=1,2,,n,n>=0数据

9、操作:R1=<ai-1,ai>|ai-1,ai<D,i=2,,n基本操作: void putout()操作结果:输出用户界面。 int myread(classin s20)操作结果:输出所有课程的完整信息。 void myfind(classin s20)操作结果:按指定的课程编号输出该课程的完整信息。 int selection(in s)操作结果:选课,并把选课记录保存在Lessoninfo.txt文件中。int output(in s)操作结果:输出选课记录。int mymodify(in s) 操作结果:修改选课记录。ADT S_C4 详细设计4.1 数据类型定义s

10、truct gequ int num;/*编号 char name15;/*名称 char leixing10;/*类型 char geshou15;/*歌手名;4.2 主要模块内部设计4.2.1 tianjia()模块设计模块算法 void tianjia() /*添加歌曲 void menu(); FILE *fp; struct gequ c; if(fp=fopen("gequ.txt","a+")=NULL) printf("cannot open filen"); printf("ntInput g

11、equ's information :n"); printf("tthe format is num name leixing geshou:n"); scanf("%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); fprintf(fp,"%d %s %s %s",c.num,,c.leixing,c.geshou); fclose(fp); menu(); 流程图TF打开歌曲文件输出请输入歌曲基本信息关闭文

12、件输出该文件不存在输入添加歌曲的信息 tianjia() 模块流程图4.2.2 liulan()模块设计 模块算法 void liulan()/*浏览歌曲void menu();FILE *fp;struct gequ c;if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d%s%s%s",&c.num,&,&c.leixing,&am

13、p;c.geshou); printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);fclose(fp); menu(); 模块流程图TF打开歌曲文件输出所有歌曲信息关闭文件输出该文件不存在 liulan()模块流程图4.2.3 chaxun()模块设计 模块算法 void chaxun()/*查询歌曲void menu();FILE *fp;struct gequ c;int bianhao;char mingchen20;char leix10;char ges15;int n;int w

14、=0; printf("ntt PLEASE ENTER A NUMBER FROM 0 TO 4!"); printf("nnnt*MENU*"); printf("ntt 1 - 按编号查找"); printf("ntt 2 - 按名称查找"); printf("ntt 3 - 按类型查找"); printf("ntt 4 - 按歌手查找"); printf("ntt 0 -退出"); printf("nnnt*"); printf

15、("nnnnnnttChoose the number,please:"); scanf("%d",&n); do if(n>4|n<0) printf("nWrong! input again!"); scanf("%d",&n); else w=1;while(w=0); switch(n) case 1:printf("ninput the bianhao you want to search:");scanf("%d",&bianh

16、ao);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if(c.num=bianhao)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break; case 2: pr

17、intf("ninput the name you want to search:");scanf("%s",mingchen);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if( strcmp(,

18、mingchen)=0)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break; case 3:printf("ninput the leixing you want to search:");scanf("%s",leix);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,&quo

19、t;%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if( strcmp(c.leixing,leix)=0)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break;case 4:printf("ninput the geshou you want to serch:");scanf("%s",ges);if(fp=fopen("gequ.txt",&qu

20、ot;r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if( strcmp(c.geshou,ges)=0)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break;case 0:menu();fclose(fp);menu(); void men

21、u() int n,w=0; printf("ntt PLEASE ENTER A NUMBER FROM 0 TO 5!"); printf("nnnt*MENU*"); printf("ntt 1 - 歌曲浏览"); printf("ntt 2 - 歌曲添加"); printf("ntt 3 - 歌曲删除"); printf("ntt 4 - 歌曲查询"); printf("ntt 0 -退出"); printf("nnnt*");

22、 printf("nnnnnnttChoose the number,please:"); scanf("%d",&n); do if(n>5|n<0) printf("nWrong! input again!"); scanf("%d",&n); else w=1; while(w=0); switch(n) case 1:liulan();break; case 2:tianjia();break; /* case 3:shanchu();break; case 4:chaxun()

23、;break; case 0:exit(0); 模块流程图TF打开歌曲文件输出对应歌曲信息关闭文件输出该文件不存在选择查找方式 查询模块流程图5 实现与调试分析5.1 实现环境Windows XP系统操作平台Microsoft Visual C+ 6.05.2 语言选择C语言5.3 调试分析通过对系统的调试,各个模块基本功能都能实现。6 测试分析6.1 测试用例输入数据:1(用户界面的功能选项)预期输出数据:全部歌曲的完整基本信息(包括歌曲编号,歌名,歌曲类型,歌手);输入数据:2(用户界面的功能选项),4(歌曲编号),改变(歌曲名),流行(歌曲类型),王力宏(歌手);预期输出

24、数据:全部歌曲的完整基本信息(包括新添加的信息);输入数据:3(功能选项),(未完成)输入数据:4(功能选项)预期输出数据:出现4个选择功能,分别是(1.按歌曲编号查询)(2.按歌曲名查询)(3.按歌曲类型查询)(4.按歌手查询)6.2 测试结果复制DOS测试过程的窗口内容功能选项界面 查询选项界面6.3 性能分析可扩充性要求 :任何软件都有缺陷,对于学生选课系统但学校的需求发生变化时,增加一个新的功能模块,要求系统能够很好地对其进行扩充,既可补充性。可维护性要求 :当操作系统平台发生变化或者支持软件学生信息管理系统发生变化时,为了适应这些变化必需对系统进行维护,即要求有可维护性。7用户手册该

25、模块分为KTV信息浏览,添加,查询模块组成歌曲浏览: 可以浏览所有歌曲的信息,包括歌曲编号,名称,类型,歌手。添加:添加新的歌曲信息,包括歌曲编号,名称,类型,歌手。歌曲查询:该模块分为4中查询方式,分别是按歌曲编号,名称,类型,歌手查询,方便快速选歌。总 结 开始做这个的时候感觉无从下手的感觉,然后找了一些相关的书看了下,在网上查了下资料,跟同学们商量了下慢慢开始掌握到大概的思路,然后自己开始边想边做,最后还是勉强做了出来。通过做这个课程设计加深了对这门课的一个理解,要注重一个过程的学习而不是仅仅一个结果的学习,要不然到时候做不出自己想要的东西。而且我觉得动手很重要,看着别人的东西感觉很简单

26、,到时候自己去做的时候会是另外一回事情,所以我们应该多多动手实践一下。总体来说。做这个课程设计对我来说是有好处的,加深了对所学的理解,当然自己能做出一点东西出来也感觉有成就感的。通过本次我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。参考文献1 张海藩. 软件工程导论. 北京:清华大学出版社,20042 陈明. 实用软件工程基础. 北京:清华大学出版社,20033 殷人昆. 实用软件工程. 北京:清华大学出版社,2003附录#include <stdio.h>#include&l

27、t;stdlib.h>#include<string.h>struct gequ int num;/*编号 char name15;/*名称 char leixing10;/*类型 char geshou15;/*歌手名;void tianjia() /*添加歌曲 void menu(); FILE *fp; struct gequ c; if(fp=fopen("gequ.txt","a+")=NULL) printf("cannot open filen"); printf("ntInput gequ&

28、#39;s information :n"); printf("tthe format is num name leixing geshou:n"); scanf("%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); fprintf(fp,"%d %s %s %s",c.num,,c.leixing,c.geshou); fclose(fp); menu();void liulan()/*浏览歌曲void menu();FILE *

29、fp;struct gequ c;if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d%s%s%s",&c.num,&,&c.leixing,&c.geshou); printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);fclose(fp);menu();void c

30、haxun()/*查询歌曲void menu();FILE *fp;struct gequ c;int bianhao;char mingchen20;char leix10;char ges15;int n;int w=0; printf("ntt PLEASE ENTER A NUMBER FROM 0 TO 4!"); printf("nnnt*MENU*"); printf("ntt 1 - 按编号查找"); printf("ntt 2 - 按名称查找"); printf("ntt 3 - 按类型

31、查找"); printf("ntt 4 - 按歌手查找"); printf("ntt 0 -退出"); printf("nnnt*"); printf("nnnnnnttChoose the number,please:"); scanf("%d",&n); do if(n>4|n<0) printf("nWrong! input again!"); scanf("%d",&n); else w=1;while(w=0

32、); switch(n) case 1:printf("ninput the bianhao you want to search:");scanf("%d",&bianhao);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&

33、c.geshou); if(c.num=bianhao)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break; case 2: printf("ninput the name you want to search:");scanf("%s",mingchen);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(f

34、p);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if( strcmp(,mingchen)=0)printf("%d %s %s %sn",c.num,,c.leixing,c.geshou);break; case 3:printf("ninput the leixing you want to search:");scanf("%s",leix);if(fp=fopen("gequ.txt","r")=NULL)printf("nCannot open gequ!n");for(;!feof(fp);)fscanf(fp,"%d %s %s %s",&c.num,&,&c.leixing,&c.geshou); if( strcmp(c.l

温馨提示

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

评论

0/150

提交评论