c语言课程设计ktv点歌系统.docx

上传人:b****1 文档编号:519265 上传时间:2023-04-29 格式:DOCX 页数:11 大小:41.39KB
下载 相关 举报
c语言课程设计ktv点歌系统.docx_第1页
第1页 / 共11页
c语言课程设计ktv点歌系统.docx_第2页
第2页 / 共11页
c语言课程设计ktv点歌系统.docx_第3页
第3页 / 共11页
c语言课程设计ktv点歌系统.docx_第4页
第4页 / 共11页
c语言课程设计ktv点歌系统.docx_第5页
第5页 / 共11页
c语言课程设计ktv点歌系统.docx_第6页
第6页 / 共11页
c语言课程设计ktv点歌系统.docx_第7页
第7页 / 共11页
c语言课程设计ktv点歌系统.docx_第8页
第8页 / 共11页
c语言课程设计ktv点歌系统.docx_第9页
第9页 / 共11页
c语言课程设计ktv点歌系统.docx_第10页
第10页 / 共11页
c语言课程设计ktv点歌系统.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计ktv点歌系统.docx

《c语言课程设计ktv点歌系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计ktv点歌系统.docx(11页珍藏版)》请在冰点文库上搜索。

c语言课程设计ktv点歌系统.docx

c语言课程设计ktv点歌系统

沈阳航空航天大学

课程设计

学号

班级04070101

姓名

指导教师

2011年9月28日

沈阳航空航天大学

课程设计任务书

学院:

自动化学院专业:

测控技术与仪器班级:

04070101

KTV点歌系统模拟

(2)

一、课程设计时间

2011~2012第1学期第4周,共计1周,20学时。

二、课程设计内容

请你模范ktv点歌系统,用C语言编写软件完成以下任务:

1.读取功能:

从song.txt文件中读取歌曲的信息;

2.查看功能:

允许用户浏览所用的歌曲,查看某个歌手演唱的所用歌曲;

3.删除功能:

删除歌曲。

三、课程设计要求

1.程序质量:

●贯彻结构化的程序设计思想。

●用户界面友好,功能明确,操作方便。

●用户界面中的菜单至少应包括:

“读取”、“查看”、“删除”、“退出”4项。

●代码应适当缩进,并给出必要的注释,以增强程序的可读性。

2.课程设计说明书:

课程结束后,上交课程设计说明书和源程序。

课程设计说明书的格式和内容参见提供的模板。

四、指导教师和学生签字

指导教师:

________学生签名:

________

五、成绩

六、教师评语

一、需求分析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程序设计.北京:

清华大学出版社,2005

七、源程序

#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");

}

}

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

if(!

strcmp(a,pso[q].songname))

memset(&pso[q],0,sizeof(SINFO));

fp=fopen("d:

\\song.txt","w+");

for(k=0;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){

case1:

choice(pso);

gotoloop;

break;

case2:

add(pso);

gotoloop;

break;

case3:

show(pso);

gotoloop;

break;

case4:

dele(pso);

gotoloop;

break;

case5:

out();

gotoloop;

break;

default:

printf("输入错误!

请重新选择!

\n");

gotoloop;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2