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

下载本文档

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

文档简介

1、沈阳航空航天大学课程设计学号班级 04070101姓名指导教师 2022年9月28 日沈阳航空航天大学课程设计任务书学院:自动化学院 专业:测控技术与仪器班级:04070101KTV点歌系统模拟2一、课程设计时间20222022第1学期第4周,共计 1周, 20学时。二、课程设计内容请你模范 ktv 点歌系统,用 C 语言编写软件完成以下任务:1. 读取功能:从 song.txt 文件中读取歌曲的信息;2. 查看功能:允许用户浏览所用的歌曲,查看某个歌手演唱 的所用歌曲;3. 删除功能:删除歌曲。三、课程设计要求1. 程序质量: 贯彻结构化的程序设计思想。 用户界面友好,功能明确,操作方便。

2、用户界面中的菜单至少应包括:“读取“、查看、“删除、 “退出 4 项。 代码应适当缩进,并给出必要的注释,以增强程序的可 读性。2. 课程设计说明书: 课程结束后, 上交课程设计说明书和源程序。课程设计 说明书的格式和内容参见提供的模板。四、指导教师和学生签字指导教师: 学生签名: 五、成绩六、教师评语目录一、需求分析 1二、设计分析 2三、主要界面截图 5四、技术要点 7五、个人总结 8六、参考文献 8七、源程序 8一、需求分析根据任务书给定的“课程设计内容和“课程设计 要求作如下的需求分析。该系统是一个常用的 ktv 点歌系统,可以让用户根 据自己的喜好进行添加、查看、删除等操作。系统应该

3、 具有便捷、稳定、功能齐全的特点。1. 便捷性分析系统管理的歌曲涉及到歌曲的各种信息,数据量较 大且是一种根底性数据, 能够为用户提供许多快捷操作, 且操作方便。2. 稳定性分析该系统比拟稳定,也比拟人性化,只要是用户的合 理操作,系统都应给出合理正确的回应,而不是出现令 用户感到意外的系统错误或系统崩溃。3. 主要功能分析1歌曲的添加:允许用户输入添加歌曲的数量、 歌曲名、歌手名、专辑名、歌曲流派。同时,系统会自动把添加歌曲信息保存下来。用户由于疏忽录入的非法 数据,能够及时提示并更正。2歌曲的查看: 用户可以根据自己的需求, 输入 歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其 查看自己

4、想要的歌曲。3歌曲的删除: 用户在查看歌曲之后, 可以根据 自己的喜好,删除系统原有的歌曲。用户只需输入歌曲 名就可以删除歌曲。删除之后系统自动更新歌曲库。二、设计分析主要有 5个功能模块,每个模块对应一个 C 语言自定 义函数。这些函数原型及其功能简述如下: 1、程序总体结构图图1程序总体结构图2、主要功能模块框图1读取歌曲函数choice图2读取流程图2添加歌曲函数addFtr.i:*fp:*i-nprEtfT磁足要壇牵?图3添加流程图3删除歌曲函数dele图4删除流程图三、主要界面截图欢送僅用KTJ选歌系乍 i.&?r2-塹増歌呻一. 乳去書就曲宿息4-也布就曲 s JEi请选择

5、功能:歌手专辑 歌拙tQnihi456吓a 三R 号AA一 息11.曲曲曲P 亂可ST.可- B » . n I"咛12 3 4 5图2数据修改界面四、技术要点1、结构体的应用用结构体来定义描述歌曲编号、歌曲名、歌手名、 专辑名、歌曲流派。具体的定义如下 :struct song_infoint songnum;char songname15;char songername15;char ablumname15;char type10; 所定义的结构体主要用于定义数组。2、文件操作包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修

6、改的数据。3、多分支选择结构在主函数中使用 switch 语句,利用自定义函数,实 现查看、添加、删除歌曲的功能。五、个人总结刚开始做的时候, 我根本上摸不找头脑, 不知道 从何处下手。后来,我通过查资料和请教老师,慢慢地 学会许多,开始自己做。虽然这期间,我遇到了很多很 多的困难,但我收获很多。这次课程设计使我对 C 语言 有了更深的理解,使我知道原来日常生活中的许多系统 都是以 C 语言为根底的, C 语言在生产生活应用十分广 泛。同时他也锻炼我的逻辑思维能力,提高我解决实际 问题的能力。六、参考文献1 谭浩强 C 程序设计北京:清华大学出版社, 2005七、源程序#include<

7、stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>#define N 30int i,j,k;FILE *fp;struct song_infoint songnum;char songname15; char songername15;char ablumname15;char type10;typedef struct song_info SINFO;SINFO *pso;void choice(SINFO *pso)char a15;int q,t;FILE *fp;prin

8、tf(" 请输入要查看歌手的名字: "); 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(&psok,sizeof(SINFO),1,fp); fclose(fp);t=0;for(q=0;q<k;q+)if(!strcmp(a,psoq.songername)if(t

9、=0)printf(" 该歌手有以下歌曲: n"); t+; printf("%sn",psoq.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&

10、lt;j;i+)printf("这是要增添的第d首歌的信息:n",i+1);printf(" 歌曲编号是: ");scanf("%d",&psoi.songnum);fflush(stdin); printf(" 歌曲名字是: ");gets(psoi.songname);fflush(stdin); printf(" 歌手名字是: ");gets(psoi.songername);fflush(stdin); printf(" 专辑的名字是: ");gets(pso

11、i.ablumname);fflush(stdin); printf(" 歌曲流派是: ");gets(psoi.type);fflush(stdin);system("cls");fwrite(&psoi,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 fil

12、e :song.txt not found!"); exit(-1);printf(" 所有歌曲信息如下: n"); for(k=0;!feof(fp);k+) fread(&psok,sizeof(SINFO),1,fp); fclose(fp);printf("%s%15s%20s%15s%15s"," 歌曲编号 "," 歌名 "," 歌手 "," 专辑"," 歌曲流派 ");printf("n"); for(i=

13、0;i<k-1;i+) printf("%03d%20s%20s%15s%15s",psoi.songnum,psoi.songname,psoi.songername,psoi.ablumname,psoi.type)Jprintf("n");void dele(SINFO *pso)char a15;int q;FILE *fp;printf(" 请输入要删除歌曲的名字: "); scanf("%s",a);fp=fopen("d:song.txt","rt");i

14、f(fp=NULL)printf("the file :song.txt not found!");exit(-1);for(k=0;(!feof(fp);k+)fread(&psok,sizeof(SINFO),1,fp);fclose(fp);for(q=0;q<k;q+) if(!strcmp(a,psoq.songname) memset(&psoq,0,sizeof(SINFO); fp=fopen("d:song.txt","w+"); for(k=0;k<q;k+) fwrite(&p

15、sok,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;printf("欢送使用KTV选歌系统n")printf("1.选歌n");printf("2.新增歌曲n");printf("3.查看歌曲信息n");printf("4.删除歌曲n");printf("5.退出n");printf("请选择功能: ");scanf("%d",&i);loop:fflush(stdin);pso=(SINFO*)malloc(N*sizeof(SINFO); memset(pso,0,(N*sizeof(SINFO);system

温馨提示

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

最新文档

评论

0/150

提交评论