c语言课程设计—ktv点歌系统.doc
《c语言课程设计—ktv点歌系统.doc》由会员分享,可在线阅读,更多相关《c语言课程设计—ktv点歌系统.doc(16页珍藏版)》请在咨信网上搜索。
沈 阳 航 空 航 天 大 学 课程设计 学 号 2010040701020 班 级 04070101 姓 名 指导教师 2011 年 9 月 28 日 沈阳航空航天大学 课程设计任务书 学院:自动化学院 专业:测控技术与仪器 班级:04070101 学号:2010040701020 题目:KTV点歌系统模拟(2) 一、课程设计时间 2011~2012第1学期第4周,共计1周,20学时。 二、课程设计内容 请你模范ktv点歌系统,用C语言编写软件完成以下任务: 1.读取功能:从song.txt 文件中读取歌曲的信息; 2.查看功能:允许用户浏览所用的歌曲,查看某个歌手演唱的所用歌曲; 3.删除功能:删除歌曲。 三、课程设计要求 1.程序质量: l 贯彻结构化的程序设计思想。 l 用户界面友好,功能明确,操作方便。 l 用户界面中的菜单至少应包括:“读取”、“查看”、“删除”、“退出”4项。 l 代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2.课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。 四、指导教师和学生签字 指导教师:________ 学生签名:________ 五、成绩 六、教师评语 沈阳航空航天大学设计用纸 目录 一、需求分析 1 二、设计分析 2 三、主要界面截图 5 四、技术要点 7 五、个人总结 8 六、参考文献 8 七、源程序 8 13 一、 需求分析 根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。 该系统是一个常用的ktv点歌系统,可以让用户根据自己的喜好进行添加、查看、删除等操作。系统应该具有便捷、稳定、功能齐全的特点。 1. 便捷性分析 系统管理的歌曲涉及到歌曲的各种信息,数据量较大且是一种基础性数据,能够为用户提供许多快捷操作,且操作方便。 2. 稳定性分析 该系统比较稳定,也比较人性化,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。 3. 主要功能分析 (1)歌曲的添加:允许用户输入添加歌曲的数量、歌曲名、歌手名、专辑名、歌曲流派。同时,系统会自动把添加歌曲信息保存下来。用户由于疏忽录入的非法数据,能够及时提示并更正。 (2)歌曲的查看:用户可以根据自己的需求,输入歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其查看自己想要的歌曲。 (3)歌曲的删除:用户在查看歌曲之后,可以根据自己的喜好,删除系统原有的歌曲。用户只需输入歌曲名就可以删除歌曲。删除之后系统自动更新歌曲库。 二、设计分析 主要有5个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下: 1、程序总体结构图 图1程序总体结构图 2、主要功能模块框图 (1)读取歌曲函数choice 图2读取流程图 (2)添加歌曲函数add 图3 添加流程图 (3)删除歌曲函数dele 图4删除流程图 三、主要界面截图 图1 程序主界面 图2 数据修改界面 四、技术要点 1、结构体的应用 用结构体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。具体的定义如下: struct song_info{ int songnum; char songname[15]; char songername[15]; char ablumname[15]; char type[10]; }; 所定义的结构体主要用于定义数组。 2、文件操作 包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修改的数据。 3、多分支选择结构 在主函数中使用switch语句,利用自定义函数,实现查看、添加、删除歌曲的功能。 五、个人总结 刚开始做的时候,我基本上摸不找头脑,不知道从何处下手。后来,我通过查资料和请教老师,慢慢地学会许多,开始自己做。虽然这期间,我遇到了很多很多的困难,但我收获很多。这次课程设计使我对C语言有了更深的理解,使我知道原来日常生活中的许多系统都是以C语言为基础的,C语言在生产生活应用十分广泛。同时他也锻炼我的逻辑思维能力,提高我解决实际问题的能力。 六、参考文献 1 谭浩强.C程序设计.北京:清华大学出版社,2005 七、源程序 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> #define N 30 int i,j,k; FILE *fp; struct song_info{ int songnum; char songname[15]; char songername[15]; char ablumname[15]; char type[10]; }; typedef struct song_info SINFO; SINFO *pso; void choice(SINFO *pso){ char a[15]; int q,t; FILE *fp; printf("请输入要查看歌手的名字:"); scanf("%s",a); fp=fopen("d:\\song.txt","rt"); if(fp==NULL) { printf("the file :song.txt not found!"); exit(-1); } for(k=0;(!feof(fp));k++) fread(&pso[k],sizeof(SINFO),1,fp); fclose(fp); t=0; for(q=0;q<k;q++) { if(!strcmp(a,pso[q].songername)) { if(t==0) printf("该歌手有以下歌曲:\n"); t++; printf("%s\n",pso[q].songname); } } if(t==0) printf("本系统还无该歌手歌曲,请增添!\n"); fclose(fp); } void add(SINFO *pso){ FILE *fp; fp=fopen("d:\\song.txt","a+"); printf("请你输入要增添歌曲的数量:"); scanf("%d",&j); fflush(stdin); for(i=0;i<j;i++){ printf("这是要增添的第%d首歌的信息:\n",i+1); printf("歌曲编号是:"); scanf("%d",&pso[i].songnum); fflush(stdin); printf("歌曲名字是:"); gets(pso[i].songname); fflush(stdin); printf("歌手名字是:"); gets(pso[i].songername); fflush(stdin); printf("专辑的名字是:"); gets(pso[i].ablumname); fflush(stdin); printf("歌曲流派是:"); gets(pso[i].type); fflush(stdin); system("cls"); fwrite(&pso[i],sizeof(SINFO),1,fp); } fclose(fp); printf("歌曲增添成功!\n"); } void show(SINFO *pso){ FILE *fp; fp=fopen("d:\\song.txt","rt"); if(fp==NULL) { printf("the file :song.txt not found!"); exit(-1); } printf("所有歌曲信息如下:\n"); for(k=0;!feof(fp);k++) { fread(&pso[k],sizeof(SINFO),1,fp); } fclose(fp); printf("%s%15s%20s%15s%15s","歌曲编号","歌名","歌手","专辑","歌曲流派"); printf("\n"); for(i=0;i<k-1;i++) { printf("%03d%20s%20s%15s%15s",pso[i].songnum,pso[i].songname,pso[i].songername,pso[i].ablumname,pso[i].type); printf("\n"); } } void dele(SINFO *pso){ char a[15]; int q; FILE *fp; printf("请输入要删除歌曲的名字:"); scanf("%s",a); fp=fopen("d:\\song.txt","rt"); if(fp==NULL) { printf("the file :song.txt not found!"); exit(-1); } for(k=0;(!feof(fp));k++) fread(&pso[k],sizeof(SINFO),1,fp); fclose(fp); for(q=0;q<k;q++) if(!strcmp(a,pso[q].songname)) memset(&pso[q],0,sizeof(SINFO)); fp=fopen("d:\\song.txt","w+"); for(k=0;k<q;k++) fwrite(&pso[k],sizeof(SINFO),1,fp); fclose(fp); printf("删除信息成功!\n"); } void out(){ char a; printf("确认退出系统?(y/n)"); scanf("%c",&a); if('y'==a) exit(0); } main(){ SINFO *pso; loop: printf(" 欢迎使用KTV选歌系统 \n"); printf(" 1.选歌 \n"); printf(" 2.新增歌曲 \n"); printf(" 3.查看歌曲信息 \n"); printf(" 4.删除歌曲 \n"); printf(" 5.退出 \n"); printf("请选择功能: "); scanf("%d",&i); fflush(stdin); pso=(SINFO*)malloc(N*sizeof(SINFO)); memset(pso,0,(N*sizeof(SINFO))); system("cls"); switch(i){ case 1:choice(pso); goto loop; break; case 2:add(pso); goto loop; break; case 3:show(pso); goto loop; break; case 4:dele(pso); goto loop; break; case 5:out(); goto loop; break; default:printf("输入错误!请重新选择!\n"); goto loop; } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 ktv 点歌 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Fis****915】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Fis****915】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【Fis****915】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【Fis****915】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文