版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-PAGE . z.沈 阳 航 院 设 计 用 纸 阳 航 空 航 天 大 学 课程设计 学 号 20 班 级 04070101 姓 名 指导教师 2011 年 9 月 28 日-. z.航空航天大学课程设计任务书学院:自动化学院 专业:测控技术与仪器 班级:04070101*:20 题目:KTV点歌系统模拟2一、课程设计时间20112012第1学期第4周,共计1周,20学时。二、课程设计容请你模ktv点歌系统,用C语言编写软件完成以下任务:1.读取功能:从song.t*t 文件中读取歌曲的信息;2.查看功能:允许用户浏览所用的歌曲,查看*个歌手演唱的所用歌曲;3.删除功能:删除歌曲。三、课程
2、设计要求1.程序质量:贯彻构造化的程序设计思想。用户界面友好,功能明确,操作方便。用户界面中的菜单至少应包括:读取、查看、删除、退出4项。代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2.课程设计说明书:课程完毕后,上交课程设计说明书和源程序。课程设计说明书的格式和容参见提供的模板。四、指导教师和学生签字指导教师:_ 学生签名:_五、成绩六、教师评语-. z.目录 TOC o 1-3 h z HYPERLINK l _Toc270531969一、需求分析 PAGEREF _Toc270531969 h 1HYPERLINK l _Toc270531970二、设计分析 PAGEREF
3、_Toc270531970 h 2HYPERLINK l _Toc270531971三、主要界面截图 PAGEREF _Toc270531971 h 5HYPERLINK l _Toc270531972四、技术要点 PAGEREF _Toc270531972 h 7HYPERLINK l _Toc270531973五、个人总结 PAGEREF _Toc270531973 h 8HYPERLINK l _Toc270531974六、参考文献 PAGEREF _Toc270531974 h 8HYPERLINK l _Toc270531975七、源程序 PAGEREF _Toc270531975
4、h 8-. z.需求分析根据任务书给定的课程设计容和课程设计要求作如下的需求分析。该系统是一个常用的ktv点歌系统,可以让用户根据自己的喜好进展添加、查看、删除等操作。系统应该具有便捷、稳定、功能齐全的特点。1. 便捷性分析系统管理的歌曲涉及到歌曲的各种信息,数据量较大且是一种根底性数据,能够为用户提供许多快捷操作,且操作方便。2. 稳定性分析该系统比拟稳定,也比拟人性化,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。3. 主要功能分析1歌曲的添加:允许用户输入添加歌曲的数量、歌曲名、歌手名、专辑名、歌曲流派。同时,系统会自动把添加歌曲信息保存
5、下来。用户由于疏忽录入的非法数据,能够及时提示并更正。2歌曲的查看:用户可以根据自己的需求,输入歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其查看自己想要的歌曲。3歌曲的删除:用户在查看歌曲之后,可以根据自己的喜好,删除系统原有的歌曲。用户只需输入歌曲名就可以删除歌曲。删除之后系统自动更新歌曲库。二、设计分析 主要有5个功能模块,每个模块对应一个C语言自定义函数。这些函数原型及其功能简述如下:1、程序总体构造图图1程序总体构造图2、主要功能模块框图1读取歌曲函数choice图2读取流程图2添加歌曲函数add 图3 添加流程图3删除歌曲函数dele 图4删除流程图三、主要界面截图图1 程序主界
6、面图2 数据修改界面四、技术要点1、构造体的应用用构造体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。具体的定义如下:struct song_infoint songnum;char songname15;char songername15;char ablumname15;char type10; 所定义的构造体主要用于定义数组。2、文件操作包括了文件的写入和读取两个方面。文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修改的数据。3、多分支选择构造在主函数中使用switch语句,利用自定义函数,实现查看、添加、删除歌曲的功能。五、个人总结刚开场做的时候,我根本上摸不找头脑
7、,不知道从何处下手。后来,我通过查资料和请教教师,慢慢地学会许多,开场自己做。虽然这期间,我遇到了很多很多的困难,但我收获很多。这次课程设计使我对C语言有了更深的理解,使我知道原来日常生活中的许多系统都是以C语言为根底的,C语言在生产生活应用十分广泛。同时他也锻炼我的逻辑思维能力,提高我解决实际问题的能力。六、参考文献1 谭浩强C程序设计:清华大学,2005七、源程序#include#include#include#include#define N 30int i,j,k;FILE *fp;struct song_infoint songnum;char songname15;char son
8、gername15;char ablumname15;char type10;typedef struct song_info SINFO;SINFO *pso;void choice(SINFO *pso)char a15;int q,t;FILE *fp;printf(请输入要查看歌手的名字:); scanf(%s,a); fp=fopen(d:song.t*t,rt); if(fp=NULL)printf(the file :song.t*t not found!);e*it(-1);for(k=0;(!feof(fp);k+)fread(&psok,sizeof(SINFO),1,fp
9、);fclose(fp);t=0; for(q=0;qk;q+)if(!strcmp(a,psoq.songername)if(t=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.t*t,a+);printf(请你输入要增添歌曲的数量:);scanf(%d,&j);fflush(stdin);for(i=0;ij;i+)printf(这是要增添的第%d首歌的信息:n
10、,i+1);printf(歌曲编号是:);scanf(%d,&psoi.songnum);fflush(stdin);printf(歌曲名字是:);gets(psoi.songname);fflush(stdin);printf(歌手名字是:);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);
11、fclose(fp);printf(歌曲增添成功!n);void show(SINFO *pso)FILE *fp;fp=fopen(d:song.t*t,rt); if(fp=NULL)printf(the file :song.t*t not found!);e*it(-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+)pri
12、ntf(%03d%20s%20s%15s%15s,psoi.songnum,psoi.songname,psoi.songername,psoi.ablumname,psoi.type);printf(n);void dele(SINFO *pso)char a15;int q;FILE *fp;printf(请输入要删除歌曲的名字:); scanf(%s,a); fp=fopen(d:song.t*t,rt); if(fp=NULL)printf(the file :song.t*t not found!);e*it(-1);for(k=0;(!feof(fp);k+)fread(&psok
13、,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.t*t,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)e*it(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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二四万科高品质住宅区商品房买卖合同3篇
- 2024年首席运营官COO岗位聘任协议3篇
- 二零二四学校食堂特色菜系承包与研发合同3篇
- 2025年度企业并购重组财务尽职调查合同2篇
- 二零二五版矿产资源中介服务合同范本6篇
- 二零二五版个人与个人间消费信贷合同样本3篇
- 2025年投标员实习报告撰写与实习反馈优化合同3篇
- 2024离婚协议范本:离婚法律事务处理参考样式18篇
- 2025版旅行社民俗文化体验游合同样本3篇
- 年度调直机市场分析及竞争策略分析报告
- 建设项目施工现场春节放假期间的安全管理方案
- TSEESA 010-2022 零碳园区创建与评价技术规范
- GB/T 19867.5-2008电阻焊焊接工艺规程
- 2023年市场部主管年终工作总结及明年工作计划
- 第三章旅游活动的基本要素课件
- 国有资产出租出借审批表(学校事业单位台账记录表)
- 安全生产风险分级管控实施细则
- 30第七章-农村社会治理课件
- 考研考博-英语-东北石油大学考试押题三合一+答案详解1
- 出国学生英文成绩单模板
- 植物细胞中氨基酸转运蛋白的一些已知或未知的功能
评论
0/150
提交评论