KTV点歌系统报告(共10页).doc

上传人:飞****2 文档编号:14158276 上传时间:2022-05-03 格式:DOC 页数:10 大小:37.50KB
返回 下载 相关 举报
KTV点歌系统报告(共10页).doc_第1页
第1页 / 共10页
KTV点歌系统报告(共10页).doc_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《KTV点歌系统报告(共10页).doc》由会员分享,可在线阅读,更多相关《KTV点歌系统报告(共10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精选优质文档-倾情为你奉上程序设计基础综合实验实验报告题目名称:KTV点歌系统班级: CE 姓名: 叶欣怡 学号: 合作者: 卓艺暖 日期: 2019.5.22 KTV点歌系统一、选题随着社会的不断发展进步,人们的经济文化水平得到了显著的提高。所以人们在追求物质生活富足之余,对精神文化的需求也不断攀升。尤其是随着当代社会节奏的不断加快,人们在学习工作之余更加渴求用多样化的娱乐方式来陶冶情操、缓解压力。在众多娱乐消费方式中,KTV以其价格合理、花样繁多、受众范围广等特点受到了广泛追捧。为了进一步降低KTV娱乐行业的成本,更好地提升消费者的娱乐体验,在给消费者带来更多实惠便捷的同时为经营者带来更多

2、的利润。我们针对KTV点歌系统的特点和需求,结合以往的开发经验,开发了这样一个操作便捷、界面简单、高效灵活的KTV点歌系统。二、需求分析(一)功能需求为满足用户需求,点歌系统首先应当具备多样便捷的点歌功能。基于系统操作的便捷性和用户群体的习惯性,本系统提供了最传统和便捷的两种检索方式歌名点歌和歌手名点歌。此外,该点歌系统还应面具备增删歌曲的功能,以便系统管理员更好地开发管理曲库。 (二)性能需求1.操作便捷、高效2.占用资源少、对硬件要求低3.系统安全、稳定4.界面简洁、大方(三)测试用例1.歌名点歌:1.1歌曲存在输入:用户歌名点歌再见 输出:再见的歌词:我们的照片 记录幸福到永远只是再幸福

3、的画面 只停格在一瞬间那些最煽情的电影情节 都说爱能超越生死离别曾经我们都很坚决 爱了就不改变1.2歌曲不存在输入:用户歌名点歌童年 输出:未查询到此歌曲2.歌手名点歌2.1曲库中此歌手的歌曲数大于一输入:用户歌手名点歌 2输出:泡沫的歌词: 阳光下的泡沫 是彩色的就像被骗的我 是幸福的追究什么对错 你的谎言 基于你还爱我美丽的泡沫 虽然一霎花火你所有承诺 全部都太脆弱2.2曲库中此歌手的歌曲数为一输入:用户歌手名点名田馥甄Yes输出:小幸运的歌词 原来你是我最想留住的幸运原来我们和爱情曾经靠的那么近那为我对抗世界的决定 那陪我淋的雨一幕幕都是你 一尘不染的坚定2.3未检索到此歌手 输入:用户

4、歌手名点名周杰伦 输出:未查询到此歌手3.添加 输入:管理员添加歌曲1童年罗大佑池塘边的榕树上知了在声声叫着夏天# 输出:曲库文件(KTV.txt)中新增了该歌曲的歌曲名(童年)、歌手名(罗大佑)和歌词文件名(童年.txt),歌词文件(童年.txt)中又存放着歌词“池塘边的榕树上知了在声声叫着夏天”。4.删除 输入:管理员删除歌曲1童年 输出:曲库文件(KTV.txt)中删除了该歌曲的歌曲名(童年)、歌手名(罗大佑)和歌词文件名(童年.txt),歌词文件(童年.txt)也被删除。三、概要设计 设计方案的论证。如:该题目可采用的设计方案有哪些,其优缺点是什么;最终方案选取的依据和原则等;(一)

5、设计方案方案一:关于删除模块, 数据结构的设计。要求给出数据结构的C语言描述,并针对要解决的具体问题做相应说明; 各模块的描述:包括功能、参数、调用关系; 软件结构图:画出整体软件的结构框图。四、详细设计1. 歌手名点歌void Find_singer(int t) int i,j=0,num100,p,n,m=0; char singermax,ch; scanf(%s,singer); FILE *fp; printf(该歌手的歌曲有:n); for(i=0;i1)/在结构体中检索到一首以上该歌手的歌曲 printf(请输入所选歌曲的序号:n); scanf(%d,&n); p=numn-

6、1;/将所选歌曲在结构体中的序号从num数组中取出 printf(%s的歌词:n,xp.name); if(fp=fopen(xp.filename,r)=NULL)/打开歌词文件并使fp指向此文件 printf(Can not find this file!n); exit(0); while(!feof(fp)/如果未遇到歌词文件的结束标志 ch=fgetc(fp);/从歌词文件读入一个字符,赋给变量ch putchar(ch);/将ch显示到屏幕上 fclose(fp); else/未在结构体中检索到该歌手 printf(未查询到此歌手!n);2.歌曲名点歌void Find_song(

7、int t) FILE *fp; int i,j,flag=0; char ch; char songmax; scanf(%s,song); getchar();/消化换行符 for(i=0;it;i+) if(strcmp(xi.name,song)=0)/与结构体中的歌名进行匹配 flag=1; j=i;/将该歌曲在结构体中的序号赋值给j break; if(flag=1)/匹配到该歌曲 printf(%s的歌词:n,xj.name); if(fp=fopen(xj.filename,r)=NULL)/打开歌词文件并使fp指向此文件 printf(Can not find this fi

8、le!n); exit(0); while(!feof(fp)/如果未遇到歌词文件的结束标志 ch=fgetc(fp);/从歌词文件读入一个字符,赋给变量ch putchar(ch);/将ch显示到屏幕上 fclose(fp); else/未匹配到该歌曲 printf(未查询到此歌曲!n);3.添加void add(int num)/添加歌曲 int n,i,y=0; char strMAX,ch,a9=.txt ,bmax=0,m= ; FILE *fp,*fp1; printf(请输入要添加歌曲的数量:n); scanf(%d,&n);getchar();/消化换行符 for(i=0;in

9、;i+) printf(请输入您要添加的第%d首歌曲的信息:n,i+1); printf(请输入歌曲名:n); gets(xnum+i.name);/将歌曲名存入结构体 printf(请输入歌手名:n); gets(xnum+i.singer); printf(请输入歌词:(以#结尾)n); for(y=0;(ch=getchar()!=#;y+) stry=ch; getchar();/消化换行符 strcpy(b,xnum+i.name);/将歌曲名保存在字符数组中 strcpy(xnum+i.filename,strcat(xnum+i.name,a);/将歌曲名加上文件类型后缀作为歌词

10、所在文件名 fp=fopen(xnum+i.filename,w);/新建文本文档并打开fputs(str,fp);/将歌词放入文本文档 fclose(fp);/ 关闭歌词文本文档 fp1=fopen(KTV.txt,a);/打开KTV.txt ,追加内容 if(fp1=NULL) printf(can not open the file.n); exit(0); fputs(b,fp1);/将歌名存入KTV.txtfputc(m,fp1);fputs(xnum+i.singer,fp1);/将歌手信息存入KTV.txtfputc(m,fp1);fputs(xnum+i.filename,fp

11、1);fprintf(fp1,n);/将存放歌词的文件名存入KTV.txt fclose(fp1);/关闭文件 printf(添加歌曲成功!n);4.删除void dele(int num) FILE *fp;char strmax; int i,j,a,t,flag=0; printf(请输入需要删除歌曲的数量:n); scanf(%d,&a); getchar();/消化换行符 for(j=1;j=a;j+) printf(请输入需要删除的歌曲名%d:n,j); gets(str); if(fp=fopen(KTV.txt,r)=NULL) printf(Can not find this

12、 file!n); exit(0); for(i=0;inum;i+) if(strcmp(xi.name,str)=0) flag=1; t=i; break; fclose(fp);if(flag) num-; remove(xt.filename);/删除歌词文件 for(i=t;inum;i+) strcpy(xi.name,xi+1.name); strcpy(xi.singer,xi+1.singer); strcpy(xi.filename,xi+1.filename); remove(KTV.txt); if(fp=fopen(KTV.txt,w)=NULL) printf(C

13、an not find this file!n); exit(0); for(i=0;inum;i+) fprintf(fp,%s %s %sn,xi.name,xi.singer,xi.filename); printf(删除成功!n); fclose(fp);else printf(Not found!n); 五、调试分析 要求详细写出调试过程中逻辑错误的分析及解决方法。六、使用说明 说明运行环境、使用方法。七、测试结果 按照选取的测试用例(3组以上)进行测试,对测试结果分析其正确、合理性。 附相应截图。八、附录 源程序清单,应有必要的注释。其中注释应符合软件设计的基本规范。如有电子版,该部分可省略。专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁