C语言课程设计歌曲信息管理系统Word文档格式.docx
《C语言课程设计歌曲信息管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计歌曲信息管理系统Word文档格式.docx(27页珍藏版)》请在冰豆网上搜索。
2可以对歌曲信息进行输入,删除,浏览。
3可以查询歌曲名,作者,演唱者信息。
4可以提供按作者显示功能。
5用文件存储信息。
三、总体设计
根据分析,整个系统可设计为以下4个模块:
信息输入模块,删除模块,浏览模块。
查找模块。
(图1)
信息输入:
依次按顺序结构输入歌曲名,作者,演唱者,发行年月。
(图2)
信息删除:
根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项
(图3)
信息浏览:
可以直接浏览歌曲,作者,演唱者,发行年月。
(图4)
信息查找:
可以查找歌曲,作者等。
并且可以选择查找的方式:
按作曲者、按演唱者、按歌曲名字。
(图5)
退出模块点击直接退出
四详细设计
1结构体
#include<
stdio.h>
#include<
stdlib.h>
malloc.h>
string.h>
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"
);
\t\t******************^o^MENU^o^*******************\n\n"
\t\t\t
(1).Enter\n"
\t\t\t
(2).Delete\n"
\t\t\t(3).Browse\n"
\t\t\t(4).Search\n"
\t\t\t(0).exit\n"
\t\t*************************************************\n"
\n\t\t\tPleasechoosethenumber(0-4):
"
scanf("
%d"
&
a);
if(a==0)break;
switch(a)
{
case1:
enter();
break;
case2:
delete();
case3:
browse();
case4:
search();
}
}
主函数的流程图如图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<
i;
j++)
{
fwrite(&
dan[j],sizeof(structsystem),1,fp);
}
Pleaseinputtheauthor:
%s"
dan[i].author);
Pleaseinputthesong'
sname:
dan[i].name);
Pleaseinputthesinger:
dan[i].singer);
Pleaseinputtheoutday:
dan[i].time);
if(fwrite(&
dan[i++],sizeof(structsystem),1,fp)!
=1)
printf("
Filewriteerror\n"
elseprintf("
Successful!
Isthereanymore?
(Yes[y]/No[n])\n"
c);
if(strcmp(c,"
n"
)==0)break;
fclose(fp);
(图7)
(图2)
2删除模块:
用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。
[程序]
voiddelete()
intj,v,c;
charw[20];
namewhichyouwanttodelete:
scanf("
w);
fp=fopen("
rb"
100;
if(fread(&
dan[j],sizeof(structsystem),1,fp)!
=1)break;
v=j;
v;
if(strcmp(w,dan[j].name)==0)
c=j;
wb"
if(j!
=c)
DeleteOK!
i--;
3·
浏览模块:
在用户按下菜单后直接显示出所有歌曲信息。
voidbrowse()
{
dan[j],sizeof(structsystem),1,fp)==1)
Name:
%s\n"
dan[j].name);
Author:
dan[j].author);
Singer:
dan[j].singer);
Outday:
dan[j].time);
---------------------------------\n"
elsebreak;
4·
查找模块:
用户输入要查找的歌曲名或歌曲的任意信息,按菜单键。
voidsearch()
intflag,j,x;
charv[20];
(1)Byauthor\n"
(2)Bysinger\n"
(3)Byname\n"
Pleasechoosewhichyouwanttosearch:
x);
if(x==3)
flag=0;
w);
fp=fopen("
for(j=0;
{
if(fread(&
if(strcmp(dan[j].name,w)==0)
{
printf("
flag=1;
}
}
if(flag==0)
Cannotfindthesong!
fclose(fp);
elseif(x==2)
v);
if(strcmp(dan[j].singer,v)==0)
e