歌曲信息管理系统

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

题目要求

该系统应该具有下列功能:

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

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

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

(4)可以提供按作者分组显示功能。

(5)用文件存储信息。

输入要求:

应用程序运行后,在屏幕上显示一个菜单。用户根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。

输出要求:

要求用应用程序应用后,要在屏幕上显示一个菜单。用户输入数据后,要给出清晰明确的提示信息,包括输入的数据内容、格式及结束方式等。

提示:

设计时可采用结构体和一维数组类型,用来保存学生证的内容。

总体设计

本题可采用结构体类型来保存学生证的内容,学生信息应该使用数组来进行过程中使用指针链表使其更方便。

根据要求,此程序需要设计以下几个模块:添加新歌曲模块,删除指定歌曲板块,修改指定歌曲显示,查询指定歌曲模块。

因此,可知其主要模式为:

歌曲管理流程图

具体设计,

1、主函数

歌曲的信息有歌曲名,作者,演唱者,发行年月。因此用一个数组来保存学生证信息:

struct song

{

char name[25];

char writer[25];

char singer[25];

char year[25];

}s[N],s1,s2,s3;

menu( ) // 输入菜单

int n;

printf("\t****************************MENU****************************\n\n"); printf("\t\t\t 1.Enter record\n"); /*输入记录*/

printf("\t\t\t 2.List the file\n"); /*显示记录*/

printf("\t\t\t 3.Search record\n"); /*查找记录*/

printf("\t\t\t 4.Delete a record\n"); /*删除记录*/

printf("\t\t\t 5.Add a record\n"); /*插入记录*/

printf("\t\t\t 6.save the file\n"); /*保存文件*/

printf("\t\t\t 7.Read the file\n"); /*读文件*/

printf("\t\t\t 8.Display record on order\n"); /*按序号显示记录*/

printf("\t\t\t 9.Sort record by writer\n"); /*按作者排序*/

printf("\t\t\t 0.Exit\n"); /*退出*/

printf("\n\n\t*********************************************************\n"); do

{

printf("\n Choice your number(0-9):");

scanf("%d",&n);

}

while(n<0||n>9);

switch(n)

{

case 1:length=enter();menu();break;

case 2:list(length);break;

case 3:search(length);break;

case 4:length=delete(length);menu();break;

case 5:length=add(length);menu();break;

case 6:save(length);break;

case 7:read();break;

case 8:display(length);break;

case 9:sort(length);break;

case 0:exit(0);

}

}

/***********主函数**********/

main()

{

menu();

}

2、各功能模块设计

(1)输入模块

输入到song[]中,各个元素依次输入

【程序】

int enter() /*输入记录*/

{

int i;

for(i=0;i

{

printf("\n please input record or direct press Q to exit");

printf("\n Enter name:");

scanf("%s",&s[i].name);

if(s[i].name[0]=='Q'&&s[i].name[1]=='\0')

break;

printf(" Enter writer:");

scanf("%s",&s[i].writer);

printf(" Enter singer:");

scanf("%s",&s[i].singer);

printf(" Enter year:");

scanf("%s",&s[i].year);

printf("\nname writer singer year \n");

printf("----------------------------------------------------\n");

printf("%s, %s, %s, %s\n",s[i].name,s[i].writer,s[i].singer,s[i].year);

printf("----------------------------------------------------\n");

}

return i;

}

(2)显示记录模块

【程序】

void list(int n) /*显示记录*/

{

int i;

printf("\n\n\t************************LIST********************************\n\n" );

printf(" \n name writer singer year \n");

printf("\t----------------------------------------------------\n");

for(i=0;i

printf(" %s, %s, %s, %s\n",s[i].name,s[i].writer,s[i].sing er,s[i].year);

printf("\n\n\t***************************END******************************\n"); menu();

}

(3)查找模块

【程序】

void search(int n) /*查找记录*/

{

int m,i;

printf("\n Search by:\n");

printf("\n ");

printf("\n 2.writer");

printf("\n 3.singer");

printf("\n 0.back");

do

{

printf("choice your number(0-3):");

scanf("%d",&m);

}

while(m<0||m>3);

switch(m)

相关文档
最新文档