c语言课程设计ktv点歌系统_第1页
c语言课程设计ktv点歌系统_第2页
c语言课程设计ktv点歌系统_第3页
c语言课程设计ktv点歌系统_第4页
c语言课程设计ktv点歌系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

年4月19日c语言课程设计ktv点歌系统文档仅供参考沈阳航空航天大学课程设计学号班级04070101姓名指导教师年9月28日沈阳航空航天大学课程设计任务书学院:自动化学院专业:测控技术与仪器班级:04070101学号: 题目:KTV点歌系统模拟(2)一、课程设计时间~第1学期第4周,共计1周,20学时。二、课程设计内容请你模范ktv点歌系统,用C语言编写软件完成以下任务:1.读取功能:从song.txt文件中读取歌曲的信息;2.查看功能:允许用户浏览所用的歌曲,查看某个歌手演唱的所用歌曲;3.删除功能:删除歌曲。三、课程设计要求1.程序质量:贯彻结构化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括:“读取”、“查看”、“删除”、“退出”4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师:________学生签名:________五、成绩六、教师评语目录TOC\o"1-3"\h\z一、需求分析 1二、设计分析 2三、主要界面截图 5四、技术要点 7五、个人总结 8六、参考文献 8七、源程序 8需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。该系统是一个常见的ktv点歌系统,能够让用户根据自己的喜好进行添加、查看、删除等操作。系统应该具有便捷、稳定、功能齐全的特点。1.便捷性分析系统管理的歌曲涉及到歌曲的各种信息,数据量较大且是一种基础性数据,能够为用户提供许多快捷操作,且操作方便。2.稳定性分析该系统比较稳定,也比较人性化,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3.主要功能分析(1)歌曲的添加:允许用户输入添加歌曲的数量、歌曲名、歌手名、专辑名、歌曲流派。同时,系统会自动把添加歌曲信息保存下来。用户由于疏忽录入的非法数据,能够及时提示并更正。(2)歌曲的查看:用户能够根据自己的需求,输入歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其查看自己想要的歌曲。(3)歌曲的删除:用户在查看歌曲之后,能够根据自己的喜好,删除系统原有的歌曲。用户只需输入歌曲名就能够删除歌曲。删除之后系统自动更新歌曲库。二、设计分析主要有5个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:1、程序总体结构图图1程序总体结构图2、主要功能模块框图(1)读取歌曲函数choice图2读取流程图(2)添加歌曲函数add图3添加流程图(3)删除歌曲函数dele图4删除流程图三、主要界面截图图1程序主界面图2数据修改界面四、技术要点1、结构体的应用用结构体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。具体的定义如下:structsong_info{ intsongnum; charsongname[15]; charsongername[15]; charablumname[15]; chartype[10];};所定义的结构体主要用于定义数组。2、文件操作包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修改的数据。3、多分支选择结构在主函数中使用switch语句,利用自定义函数,实现查看、添加、删除歌曲的功能。五、个人总结刚开始做的时候,我基本上摸不找头脑,不知道从何处下手。后来,我经过查资料和请教老师,慢慢地学会许多,开始自己做。虽然这期间,我遇到了很多很多的困难,但我收获很多。这次课程设计使我对C语言有了更深的理解,使我知道原来日常生活中的许多系统都是以C语言为基础的,C语言在生产生活应用十分广泛。同时她也锻炼我的逻辑思维能力,提高我解决实际问题的能力。六、参考文献1谭浩强.C程序设计.北京:清华大学出版社,七、源程序#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#defineN30inti,j,k;FILE*fp; structsong_info{ intsongnum; charsongname[15]; charsongername[15]; charablumname[15]; chartype[10];};typedefstructsong_infoSINFO;SINFO*pso;voidchoice(SINFO*pso){ chara[15]; intq,t; FILE*fp; printf("请输入要查看歌手的名字:");scanf("%s",a);fp=fopen("d:\\song.txt","rt");if(fp==NULL) { printf("thefile:song.txtnotfound!"); 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);}voidadd(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");}voidshow(SINFO*pso){ FILE*fp; fp=fopen("d:\\song.txt","rt");if(fp==NULL) { printf("thefile:song.txtnotfound!"); 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"); } }voiddele(SINFO*pso){ chara[15]; intq; FILE*fp; printf("请输入要删除歌曲的名字:");scanf("%s",a);fp=fopen("d:\\song.txt","rt");if(fp==NULL) { printf("thefile:song.txtnotfound!"); 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");}voidout(){ chara; 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)

温馨提示

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

评论

0/150

提交评论