C语言 歌曲信息管理系统

  • 格式:doc
  • 大小:1.42 MB
  • 文档页数:15

下载文档原格式

  / 15
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计

学号:

班级序号:

姓名:

指导教师:

成绩:

C语言程序设计报告

一、C语言课程设计的目的:

高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。

二、题目:歌曲信息管理系统

需求分析:制作一个歌曲信息管理系统

使之有以下功能

1 歌曲信息包括歌曲名,作者,演唱者,发行年月等。

2 可以对歌曲信息进行输入,删除,浏览。

3 可以查询歌曲名,作者,演唱者信息。

4 可以提供按作者显示功能。

5 用文件存储信息。

三总体设计

根据分析,整个系统可设计为以下4个模块:

信息输入模块,删除模块,浏览模块。查找模块。

信息删除:根据输入的歌曲名,作者,演唱者等一项可以删除对应的其他项

信息浏览:可以直接浏览歌曲,作者,演唱者,发行年月。

信息查找:可以查找歌曲,作者等。

四详细设计

1主函数

主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。

(流程图如下图1 )

[程序]

void main()

{

void menu();

void function1();

void function2();

void function3();

void function4();

menu();

return;

}

(图 1 )

2 各功能模块设计

(1)输入模块

信息输入时直接按顺序结构(如图2)输入:void input()

{ char ch;

n=0;

if((fp=fopen("song.txt","a"))==NULL)

{

printf("can't open file song.txt");

exit(0);

}

printf("Please input a record:");

for(n=0;n<=50;)

{

printf("\nrecord %d:\n歌名:",n+1);

gets(song[n].name);

printf("\n时间:");

gets(song[n].year);

printf("\n作者:");

gets(song[n].author);

printf("\n歌手:");

gets(song[n].singer);

n++;

printf("继续输入吗?(y/n)\n");

ch=getchar();getchar();

if(ch=='n')

break;

}

fwrite(song,sizeof(song[0]),n,fp);

fclose(fp);

}

( 图2)

2删除模块:

用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。

[程序]

/******************删除模块*************************/

void del()

{

int m,k=0;

long a;

char namekey[8];

printf("\n请输入您要删除的歌曲名:");

scanf("%s",namekey);

if((fp=fopen("song.txt","r+"))==NULL)

{

printf("\n不能打开该文件!");

exit(0);

}

while(!feof(fp))

{

a=ftell(fp);

fscanf(fp,"%6s %5s %5s %10s\n",song[n].name,song[n].year,song[n].author,song[n].s inger);

if(strcmp(namekey,song[n].name)==0)

{

k=1;

break;

}

}

if(k==1)

{

printf("\n已查到,记录为");

printf("\n%6s %5s %5s %10s\n",song[n].name,song[n].year,song[n].author,song[n].si nger);

printf("\n确实要删除,按1;不删除,按0:");

scanf("%d",&m);

if(m==1)

{

fseek(fp,a,0);

fprintf(fp,"%s %s %s %s\n"," " ," "," "," ");

}

}

else

printf("\n对不起,查无此人。");

fclose(fp);

}

3·浏览模块:

在用户按下菜单后直接显示出所有歌曲信息。

void xianshi()

{ n=0;