收藏 分销(赏)

c语言专业课程设计ktv点歌系统.doc

上传人:w****g 文档编号:2727395 上传时间:2024-06-05 格式:DOC 页数:20 大小:125.54KB
下载 相关 举报
c语言专业课程设计ktv点歌系统.doc_第1页
第1页 / 共20页
c语言专业课程设计ktv点歌系统.doc_第2页
第2页 / 共20页
c语言专业课程设计ktv点歌系统.doc_第3页
第3页 / 共20页
c语言专业课程设计ktv点歌系统.doc_第4页
第4页 / 共20页
c语言专业课程设计ktv点歌系统.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

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

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

3、点。1. 便捷性分析系统管理歌曲包含到歌曲多种信息,数据量较大且是一个基础性数据,能够为用户提供很多快捷操作,且操作方便。2. 稳定性分析该系统比较稳定,也比较人性化,只要是用户合理操作,系统全部应给出合理正确回应,而不是出现令用户感到意外系统错误或系统瓦解。3. 关键功效分析(1)歌曲添加:许可用户输入添加歌曲数量、歌曲名、歌手名、专辑名、歌曲流派。同时,系统会自动把添加歌曲信息保留下来。用户因为疏忽录入非法数据,能够立即提醒并更正。(2)歌曲查看:用户能够依据自己需求,输入歌曲名、歌手名、专辑名、歌曲流派中一项或几项其查看自己想要歌曲。(3)歌曲删除:用户在查看歌曲以后,能够依据自己喜好,

4、删除系统原有歌曲。用户只需输入歌曲名就能够删除歌曲。删除以后系统自动更新歌曲库。二、设计分析 关键有5个功效模块,每个模块对应一个C语言自定义函数。这些函数原型及其功效简述以下:1、程序总体结构图图1程序总体结构图2、关键功效模块框图(1)读取歌曲函数choice图2读取步骤图(2)添加歌曲函数add 图3 添加步骤图(3)删除歌曲函数dele 图4删除步骤图三、关键界面截图图1 程序主界面图2 数据修改界面四、技术关键点1、结构体应用用结构体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。具体定义以下:struct song_infoint songnum;char songname1

5、5;char songername15;char ablumname15;char type10; 所定义结构体关键用于定义数组。2、文件操作包含了文件写入和读取两个方面。文件写入操作,用于保留录入歌曲相关数据,也用于保留所修改数据。3、多分支选择结构在主函数中使用switch语句,利用自定义函数,实现查看、添加、删除歌曲功效。五、个人总结 刚开始做时候,我基础上摸不找头脑,不知道从何处下手。以后,我经过查资料和请教老师,慢慢地学会很多,开始自己做。即使这期间,我碰到了很多很多困难,但我收获很多。这次课程设计使我对C语言有了更深了解,使我知道原来日常生活中很多系统全部是以C语言为基础,C语言在

6、生产生活应用十分广泛。同时她也锻炼我逻辑思维能力,提升我处理实际问题能力。六、参考文件1 谭浩强C程序设计北京:清华大学出版社,七、源程序#include#include#include#include#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

7、 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(&psok,sizeof(SINFO),1,fp);fclose(fp);t=0; for(q=0;qk;q+)if(!strcmp(a,psoq.songername)if(t=0)printf(该歌手有以下歌曲:n);t+;printf(%sn,psoq.songname);i

8、f(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;ij;i+)printf(这是要增添第%d首歌信息:n,i+1);printf(歌曲编号是:);scanf(%d,&psoi.songnum);fflush(stdin);printf(歌曲名字是:);gets(psoi.songname);fflush(stdin);printf(歌手名字是

9、:);gets(psoi.songername);fflush(stdin);printf(专辑名字是:);gets(psoi.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 file :song.txt n

10、ot 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=0;ik-1;i+)printf(%03d%20s%20s%15s%15s,psoi.songnum,psoi.songname,psoi.songername,psoi.ablumname,psoi.type);printf(n);void dele(SINFO *

11、pso)char a15;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(&psok,sizeof(SINFO),1,fp);fclose(fp);for(q=0;qk;q+)if(!strcmp(a,psoq.songname)memset(&psoq,0,sizeof(SINFO);fp=fopen(d:song.txt,

12、w+);for(k=0;kq;k+)fwrite(&psok,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(%

13、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;

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服