C语言课设之卡拉OK点歌系统.docx
- 文档编号:25414131
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:29
- 大小:124.11KB
C语言课设之卡拉OK点歌系统.docx
《C语言课设之卡拉OK点歌系统.docx》由会员分享,可在线阅读,更多相关《C语言课设之卡拉OK点歌系统.docx(29页珍藏版)》请在冰豆网上搜索。
C语言课设之卡拉OK点歌系统
沈阳工程学院
信息学院
C语言程序设计实践
课程设计
设计题目:
卡拉ok点歌系统
系别班级
学生姓名
学号
指导教师职称副教授/讲师
起止日期:
2016年12月16日起——至2017年01月06日止
沈阳工程学院信息学院
C语言程序设计实践课程设计成绩评定表
系(部):
班级:
学生姓名:
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评阅教师签名:
年月日
答辩小组评审意见
评价内容
具体要求
权重
评分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院信息学院
C语言程序设计实践课程设计成绩评定表
系(部):
班级:
学生姓名:
指导教师评审意见
评价内容
具体要求
权重
评分
加权分
调研
论证
能独立查阅文献,收集资料;能制定课程设计方案和日程安排。
0.1
5
4
3
2
工作能力
态度
工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,
0.2
5
4
3
2
工作量
按期圆满完成规定的设计任务,工作量饱满,难度适宜。
0.2
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.5
5
4
3
2
指导教师评审成绩
(加权分合计乘以8)
分
加权分合计
指导教师签名:
年月日
评阅教师评审意见
评价内容
具体要求
权重
评分
加权分
查阅
文献
查阅文献有一定广泛性;有综合归纳资料的能力
0.2
5
4
3
2
工作量
工作量饱满,难度适中。
0.5
5
4
3
2
说明书的质量
说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。
0.3
5
4
3
2
评阅教师评审成绩
(加权分合计乘以4)
分
加权分合计
评阅教师签名:
年月日
答辩小组评审意见
评价内容
具体要求
权重
评分
加权分
学生汇报
汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。
0.5
5
4
3
2
答辩
思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。
0.5
5
4
3
2
答辩小组评审成绩
(加权分合计乘以8)
分
加权分合计
答辩小组教师签名:
年月日
课程设计总评成绩
分
沈阳工程学院信息学院
《C语言程序设计实践》
课程设计任务书
课程设计题目:
卡拉OK点歌系统
系别班级
学生姓名
学号
指导教师职称副教授、讲师
课程设计进行地点:
实训楼F六楼机房
任务下达时间:
2016年12月14日
起止日期:
2016年12月16日起——至2017年01月06日止
系主任2016年12月09日批准
一、课程设计的原始资料及依据
查阅有关资料,进一步理解面向对象程序设计的思想,并编写一个简单的应用程序系统。
通过本设计可以加深理解使用结构化程序设计思想开发一个系统的方法,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求
设计内容:
1.歌曲信息:
歌曲序号,歌曲名称,歌手名,专辑名,歌曲流派
structsong_info{
intsongnum;
charsongname[15];
charsongername[15];
charablumname[15];
chartype[10];
};
2.系统功能:
点播歌曲,查看歌曲信息,添加歌曲,退出系统。
设计要求:
1.要求利用结构化的方法完成系统的设计;
2.要求在设计的过程中建立清晰度层次结构;
3.设计功能满足要求、易于操作的友好界面;
4.界面中需有菜单;
5.在系统的设计中,至少要建立5个以上独立函数;
6.要求操作简单,用户界面友好。
7.运行程序,检查结果是否和理论值一致。
8.在完成该题目时,小组人员进行详细的任务分工,并要在报告中体现出来。
三、对课程设计说明书撰写内容、格式、字数的要求
1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:
设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。
一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
4.课程设计说明书手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求
1.完成“任务书”中指定的功能,运行结果正确。
2.课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤
2
第2天
需求分析
3
第3天
概要设计
4
第4-5天
详细设计
5
第5—8天
编码、调试
6
第9-10天
程序答辩,撰写课程设计报告
六、主要参考资料(文献)
[1]谭浩强.《C程序设计》(第三版).北京:
清华大学出版社.2006
[2]陈天洲.《C语言高级程序设计》.北京:
人民邮电出版社.2002
[3]杨旭.《C语言程序设计案例教程》.北京:
人民邮电出版社.2005
[4]郭翠英.《程序设计案例经典》.中国水利电力出版社.2004
[5]谭浩强.《程序设计基础》.北京:
清华大学出版社.2004
[6]张翔.《C语言函数大全》电子工业出版社.2005
[7]王为青.《C语言高级编程及实例剖析》.北京:
人民邮电出版社.2008.02
[8]徐慧.《C语言实例解析精粹》.北京:
人民邮电出版社.2006.04
[9]姚大鹏栾好利张翼英等编著.《C语言程序设计教程习题与上机实训指导》.中国水利水电出版社.2005
课程设计任务分工
组长姓名
题目
卡拉OK点歌系统
项目组成员
个人任务描述
自我评定
负责资料的收集与整合,参与程序的编写与调试,提供硬件设备
负责资料的查找与应用,参与程序的编写与调试,报告的编写与排版
第1章绪论
程序设计过程有如解决一个实际问题,从解决实际问题的角度,我们可以这样来看:
首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;其次,从问题的要害入手,从前到后的解决问题的每个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、指针、链表、命令、函数,然后确定处理过程--算法。
可得最后结果。
随着社会的发展,人类的进步,21世纪人们的生活水平有所提高,为了满足们对生活的需要,丰富的业余生活,就需要有一些娱乐的设施来弥补这些空所以开发了自动点歌系统。
迅速发展的计算机科学技术应用越来越广泛,已经渗透到了人类社会生产和生活的各个领域。
数据库技术是计算机科学技术的一个重要分支,是现代化管理的重要手段,是研究数据共享的一门科学。
近年来,人们利用数据库技术对海量的数据进行处理,然后结合其他技术开发除了各种软件,为人类生活提供了便利。
娱乐是人的一生中不可或缺的部分。
随着现如今经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
同事,随着生活节奏的加快,每个人都处于忙碌繁乱的社会的那个当中,不论是在家庭,工作场所,或是学校中,无时无刻充满着生活和学习上的压力。
工作之余,找到一种能够换季压力,释放疲劳的娱乐方式,已成为大家共同的愿望。
因此娱乐业在服务行业中占有越来越重要的地位。
然而,受到工作条件和时间的限制,越来越多的人们选择了去KTV唱唱卡拉OK,跳跳舞或者在自己家中自娱自乐。
卡拉OK点歌系统也因此有了广阔的发展前景。
随着KTV行业的迅猛发展,卡拉OK点歌系统在KTV里的重要性越来越大,特别是在面向普通消费者的量版式,投资方在选系统的时候无不练就一双金睛火眼,千挑万选,而且更是在配套设备上重金投入,确保为消费者营造出一个更好的消费环境。
卡拉OK点歌系统被广泛应用于KTV、酒店、酒吧等娱乐场所中。
第2章系统功能分析
2.1主要功能分析
(1)点歌:
用户可以根据自己的喜好点播歌曲.
(2)歌曲的查看:
用户可以根据自己的需求,输入歌曲名、歌手名、专辑名、歌曲流派中的一项或几项其查看自己想要的歌曲。
(3)添加歌曲:
用户可以根据自己的需要添加歌曲
(4)退出:
用户可以随时的退出该卡拉ok点歌系统
2.2系统功能需求
2.2.1
便捷性分析
系统管理的歌曲涉及到歌曲的各种信息,数据量较
大且是一种基础性数据,
能够为用户提供许多快捷操作,
且操作方便。
2.2.2
稳定性分析
该系统比较稳定,也比较人性化,只要是用户的合
理操作,系统都应给出合理正确的回应,而不是出现令
用户感到意外的系统错误或系统崩溃。
2.3设计分析
主要有3个功能模块,每个模块对应一个C语言自定义函数。
这些函数原型及其功能简述如下:
2.3.1:
程序总体机构图
图一:
.程序总体结构图:
(1)选择函数chioce:
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 {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); } 图二: 选择流程图 (2)添加歌曲函数add: voidadd(SINFO*pso){ FILE*fp; fp=fopen("d: \\song.txt","a+"); printf("请你输入要增添歌曲的数量: "); scanf("%d",&j); fflush(stdin); for(i=0;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"); } 图3添加流程图 (3): 退出函数 voidout() { chara; printf("确认退出系统? (y/n)"); scanf("%c",&a); if('y'==a) exit(0); } 3.主要界面截图 图4开始界面 图5歌手查找界面 图6: 歌曲查看界面 图7: 歌曲添加界面 图8: 退出界面 4.技术要点 4.1、结构体的应用 用结构体来定义描述歌曲编号、歌曲名、歌手名、专辑名、歌曲流派。 具体的定义如下: structsong_info{ intsongnum; charsongname[15]; charsongername[15]; charablumname[15]; chartype[10]; };所定义的结构体主要用于定义数组。 4.2、文件操作 包括了文件的写入和读取两个方面。 文件的写入操作,用于保存录入的歌曲的有关数据,也用于保存所修改的数据。 4.3、多分支选择结构 在主函数中使用switch语句,利用自定义函数,实现点歌、查看歌曲、添加歌曲、退出的功能。 switch(i){ case1: choice(pso); gotoloop; break; case2: add(pso); gotoloop; break; case3: show(pso); gotoloop; break; case4: out(); gotoloop; break; default: printf("输入错误! 请重新选择! \n"); gotoloop; } 5.源程序 #include #include #include #include #defineN30 inti,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 { 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 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 {printf("%03d%20s%20s%15s%15s",pso[i].songnum,pso[i].songname,pso[i].songername,pso[i].ablumname,pso[i].type); 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("请选择功能: "); scanf("%d",&i); fflush(stdin); pso=(SINFO*)malloc(N*sizeof(SINFO)); memset(pso,0,(N*sizeof(SINFO))); system("cls"); switch(i){ case1: choice(pso); gotoloop; break; case2: add(pso); gotoloop; break; case3: show(pso); gotoloop; break; case4: out(); gotoloop; break; default: printf("输入错误! 请重新选择! \n"); gotoloop; } } 6.个人总结 刚开始做程序的时候,我基本上摸不找头脑,一点不知道从何处下手。 后来,我通过查找大量的资料和请教
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 卡拉 OK 点歌 系统