歌曲信息管理系统Word文档下载推荐.docx
《歌曲信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《歌曲信息管理系统Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
structsong
{
charname[25];
charwriter[25];
charsinger[25];
charyear[25];
}s[N],s1,s2,s3;
menu()//输入菜单
intn;
printf("
\t****************************MENU****************************\n\n"
);
\t\t\t1.Enterrecord\n"
/*输入记录*/
\t\t\t2.Listthefile\n"
/*显示记录*/
\t\t\t3.Searchrecord\n"
/*查找记录*/
\t\t\t4.Deletearecord\n"
/*删除记录*/
\t\t\t5.Addarecord\n"
/*插入记录*/
\t\t\t6.savethefile\n"
/*保存文件*/
\t\t\t7.Readthefile\n"
/*读文件*/
\t\t\t8.Displayrecordonorder\n"
/*按序号显示记录*/
\t\t\t9.Sortrecordbywriter\n"
/*按作者排序*/
\t\t\t0.Exit\n"
/*退出*/
\n\n\t*********************************************************\n"
do
{
\nChoiceyournumber(0-9):
"
scanf("
%d"
&
n);
}
while(n<
0||n>
9);
switch(n)
case1:
length=enter();
menu();
break;
case2:
list(length);
case3:
search(length);
case4:
length=delete(length);
case5:
length=add(length);
case6:
save(length);
case7:
read();
case8:
display(length);
case9:
sort(length);
case0:
exit(0);
}
/***********主函数**********/
main()
2、各功能模块设计
(1)输入模块
输入到song[]中,各个元素依次输入
【程序】
intenter()/*输入记录*/
inti;
for(i=0;
i<
N;
i++)
\npleaseinputrecordordirectpressQtoexit"
\nEntername:
%s"
s[i].name);
if(s[i].name[0]=='
Q'
&
s[i].name[1]=='
\0'
)
break;
Enterwriter:
s[i].writer);
Entersinger:
s[i].singer);
Enteryear:
s[i].year);
\nnamewritersingeryear\n"
----------------------------------------------------\n"
%s,%s,%s,%s\n"
s[i].name,s[i].writer,s[i].singer,s[i].year);
returni;
(2)显示记录模块
voidlist(intn)/*显示记录*/
\n\n\t************************LIST********************************\n\n"
\nnamewritersingeryear\n"
\t----------------------------------------------------\n"
n;
%s,%s,%s,%s\n"
\n\n\t***************************END******************************\n"
menu();
(3)查找模块
voidsearch(intn)/*查找记录*/
intm,i;
\nSearchby:
\n"
\n1.name"
\n2.writer"
\n3.singer"
\n0.back"
choiceyournumber(0-3):
m);
while(m<
0||m>
3);
switch(m)
printf("
pleaseenternametosearch.\n"
pleaseenterwritertosearch.\n"
pleaseentersingertosearch.\n"
i=find(n,m);
if(i>
n-1)
notfound\n"
else
\nnamewritersingeryear\n"
intfind(intn,intb)
switch(b)
scanf("
s3.name);
for(i=0;
if(strcmp(s3.name,s[i].name)==0)
returni;
s3.writer);
if(strcmp(s3.writer,s[i].writer)==0)
s3.singer);
if(strcmp(s3.singer,s[i].singer)==0)
}
(4)删除模块
intdelete(intn)/*删除记录*/
chardelete[25];
inti,j,p,ch;
\nDeleteby:
p);
while(p<
0||p>
switch(p)
pleaseenternametodelete.\n"
pleaseenterwritertodelete.\n"
pleaseentersingertodelete.\n"
return0;
i=find(n,p);
notfoundtodelete\n"
%s,%s,%s,%s\n"
Areyousuretodeleteit?
(1/0)"
ch);
if(ch==1)
for(j=i+1;
j<
j++)
{
strcpy(s[j-1].name,s[j].name);
strcpy(s[j-1].writer,s[j].writer);
strcpy(s[j-1].singer,s[j].singer);
strcpy(s[j-1].year,s[j].year);
}
n--;
}returnn;
(5)插入模块
intadd(intn)/*插入记录*/
charlocate[25];
inti,j;
\npleaseinputrecordordirectpressQtoexit\n"
s1.name);
if(s1.name[0]=='
s1.name[0]=='
returnn;
s1.writer);
s1.singer);
s1.year);
s1.name,s1.writer,s1.singer,s1.year);
pleaseinputlocatename\n"
i=find(n,1);
for(j=n-1;
j>
=i;
j--)
strcpy(s[j+1].name,s[j].name);
strcpy(s[j+1].writer,s[j].writer);
strcpy(s[j+1].singer,s[j].singer);
strcpy(s[j+1].year,s[j].year);
strcpy(s[i].name,s1.name);
strcpy(s[i].writer,s1.writer);
strcpy(s[i].singer,s1.singer);
strcpy(s[i].year,s1.year);
n++;
(6)保存到文件
intsave(intn)/*保存文件*/
FILE*fp;
if((fp=fopen("
record.txt"
"
w"
))==NULL)
printf("
cannotopenfile\n"
returnNULL;
\nSavingfile\n"
fprintf(fp,"
%s%s%s%s\n"
fclose(fp);
**********savesuccess**********\n"
return1;
(7)读取文件
intread()/*读文件*/
r"
!
feof(fp);
fscanf(fp,"
%s%s%s%s\n"
youhavesuccessedreadingrecordfromfile!
(8)全部显示
intdisplay(intn)/*按序号显示记录*/
inta;
Enterordernumber\n"
a);
if(a>
=0&
a<
n)
fseek(fp,(a-2)*sizeof(s),1);
s[a-1].name,s[a-1].writer,s[a-1].singer,s[a-1].year);
else
no%dnumberrecord!
a);
voidsort(intn)/*按作者排序*/
n-1;
for(j=i+1;
if((strcmp(s[i].writer,s[j].writer))>
0)
s1=s[i];
s[i]=s[j];
s[j]=s1;
sortsuccess!
voidmenu()
{
intn;
\n\n\t************************************************************\n"
length=enter(s);
运行结果
输入
查找
删除
添加
保存到文件
读取文件
按作者排序
总结
通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。