C语言课程设计歌曲信息管理系统.docx
- 文档编号:1442404
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:27
- 大小:511.21KB
C语言课程设计歌曲信息管理系统.docx
《C语言课程设计歌曲信息管理系统.docx》由会员分享,可在线阅读,更多相关《C语言课程设计歌曲信息管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
C语言课程设计歌曲信息管理系统
C语言课程设计实习报告
专业:
学号:
班级序号:
姓名:
指导教师:
C语言程序设计报告
(实习日期:
2010-8至2010-9)
一、C语言课程设计的目的:
高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二、题目:
歌曲信息管理系统
需求分析:
制作一个歌曲信息管理系统使之有以下功能
1歌曲信息包括歌曲名,作者,演唱者,发行年月等。
2可以对歌曲信息进行输入,删除,浏览。
3可以查询歌曲名,作者,演唱者信息。
4可以提供按作者显示功能。
5用文件存储信息。
三、总体设计
根据分析,整个系统可设计为以下4个模块:
信息输入模块,删除模块,浏览模块。
查找模块。
(图1)
信息输入:
依次按顺序结构输入歌曲名,作者,演唱者,发行年月。
(图2)
信息删除:
根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项
(图3)
信息浏览:
可以直接浏览歌曲,作者,演唱者,发行年月。
(图4)
信息查找:
可以查找歌曲,作者等。
并且可以选择查找的方式:
按作曲者、按演唱者、按歌曲名字。
(图5)
退出模块点击直接退出
四详细设计
1结构体
#include
#include
#include
#include
inti=0;
structsystem
{
charauthor[20];
charsinger[20];
chartime[20];
charname[20];
}dan[100];
2主函数
主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。
其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。
voidmain()
{
voidmenu();
voidfunction1();
voidfunction2();
voidfunction3();
voidfunction4();
menu();
return;
}
题目对应具体的程序如下:
main()
{
inta;
while
(1)
{
printf("\t\tWelcometothesong'system!
------bylong\n");
printf("\t\t******************^o^MENU^o^*******************\n\n");
printf("\t\t\t
(1).Enter\n");
printf("\t\t\t
(2).Delete\n");
printf("\t\t\t(3).Browse\n");
printf("\t\t\t(4).Search\n");
printf("\t\t\t(0).exit\n");
printf("\t\t*************************************************\n");
printf("\n\t\t\tPleasechoosethenumber(0-4):
");
scanf("%d",&a);
if(a==0)break;
switch(a)
{
case1:
enter();break;
case2:
delete();break;
case3:
browse();break;
case4:
search();break;
}
}
}
主函数的流程图如图6
(图6)
3各功能模块设计
(1)输入模块
voidenter()
{
intj;
charc[2];
FILE*fp;
if((fp=fopen("data.txt","w"))==NULL)
{
printf("Cannotopenthefile!
\n");
exit(0);
}
for(j=0;j
{
fwrite(&dan[j],sizeof(structsystem),1,fp);
}
while
(1)
{
printf("Pleaseinputtheauthor:
\n");
scanf("%s",dan[i].author);
printf("Pleaseinputthesong'sname:
\n");
scanf("%s",dan[i].name);
printf("Pleaseinputthesinger:
\n");
scanf("%s",dan[i].singer);
printf("Pleaseinputtheoutday:
\n");
scanf("%s",dan[i].time);
if(fwrite(&dan[i++],sizeof(structsystem),1,fp)!
=1)
printf("Filewriteerror\n");
elseprintf("Successful!
\n");
printf("Isthereanymore?
(Yes[y]/No[n])\n");
scanf("%s",c);
if(strcmp(c,"n")==0)break;
}
fclose(fp);
}
(图7)
(图2)
2删除模块:
用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。
[程序]
voiddelete()
{
intj,v,c;
charw[20];
FILE*fp;
printf("Pleaseinputthesong'namewhichyouwanttodelete:
");
scanf("%s",w);
fp=fopen("data.txt","rb");
for(j=0;j<100;j++)
{
if(fread(&dan[j],sizeof(structsystem),1,fp)!
=1)break;
}
v=j;
for(j=0;j { if(strcmp(w,dan[j].name)==0) c=j; } fclose(fp); fp=fopen("data.txt","wb"); for(j=0;j { if(j! =c) fwrite(&dan[j],sizeof(structsystem),1,fp); } fclose(fp); printf("DeleteOK! \n"); i--; } 3·浏览模块: 在用户按下菜单后直接显示出所有歌曲信息。 voidbrowse() { intj; FILE*fp; fp=fopen("data.txt","rb"); for(j=0;j<100;j++) { if(fread(&dan[j],sizeof(structsystem),1,fp)==1) { printf("Name: %s\n",dan[j].name); printf("Author: %s\n",dan[j].author); printf("Singer: %s\n",dan[j].singer); printf("Outday: %s\n",dan[j].time); printf("---------------------------------\n"); } elsebreak; } fclose(fp); } 4·查找模块: 用户输入要查找的歌曲名或歌曲的任意信息,按菜单键。 voidsearch() { intflag,j,x; charw[20]; FILE*fp; charv[20]; printf(" (1)Byauthor\n"); printf(" (2)Bysinger\n"); printf("(3)Byname\n"); printf("Pleasechoosewhichyouwanttosearch: \n"); scanf("%d",&x); if(x==3) { flag=0; printf("Pleaseinputthesong'sname: "); scanf("%s",&w); fp=fopen("data.txt","rb"); for(j=0;j<100;j++) { if(fread(&dan[j],sizeof(structsystem),1,fp)! =1)break; if(strcmp(dan[j].name,w)==0) { printf("Name: %s\n",dan[j].name); printf("Author: %s\n",dan[j].author); printf("Singer: %s\n",dan[j].singer); printf("Outday: %s\n",dan[j].time); printf("---------------------------------\n"); flag=1; } } if(flag==0) printf("Cannotfindthesong! \n"); fclose(fp); } elseif(x==2) { flag=0; printf("Pleaseinputthesinger: "); scanf("%s",&v); fp=fopen("data.txt","rb"); for(j=0;j<100;j++) { if(fread(&dan[j],sizeof(structsystem),1,fp)! =1)break; if(strcmp(dan[j].singer,v)==0) { printf("Name: %s\n",dan[j].name); printf("Author: %s\n",dan[j].author); printf("Singer: %s\n",dan[j].singer); printf("Outday: %s\n",dan[j].time); printf("---------------------------------\n"); flag=1; } } if(flag==0) printf("Cannotfindthesong! \n"); fclose(fp); } e
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 歌曲 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)