logo资料库

自己编写的歌曲信息管理系统,非常适合借用.doc

第1页 / 共38页
第2页 / 共38页
第3页 / 共38页
第4页 / 共38页
第5页 / 共38页
第6页 / 共38页
第7页 / 共38页
第8页 / 共38页
资料共38页,剩余部分请下载后查看
需求分析
概要设计
详细设计
主函数
各功能模块要求
(1)输入模块
(2)删除歌曲模块
(3)按作者分组显示
(4)查询模块
(5)浏览模块
(6).公共函数
运行结果
(1)主菜单函数:
(2)输入模块:
(3)删除模块
(4)按作者分组显示歌曲
(5)浏览所有歌曲
(6)退出
总结
参考文献
附录
C 程序设计实习报告 题目:歌曲信息管理系统
目录 目录 需求分析 ............................................................................................................................................ 3 概要设计 ............................................................................................................................................ 3 详细设计 ............................................................................................................................................ 4 主函数....................................................................................................................................5 各功能模块要求....................................................................................................................7 (1)输入模块..................................................................................................................7 (2)删除歌曲模块..........................................................................................................9 (3)按作者分组显示....................................................................................................14 (4)查询模块................................................................................................................15 (5)浏览模块................................................................................................................17 (6).公共函数...............................................................................................................18 运行结果 .......................................................................................................................................... 19 (1)主菜单函数:............................................................................................................19 (2)输入模块:................................................................................................................19 (3)删除模块....................................................................................................................21 (4)按作者分组显示歌曲................................................................................................26 (5)浏览所有歌曲............................................................................................................26 (6)退出............................................................................................................................27 总结 .................................................................................................................................................. 28 参考文献 .......................................................................................................................................... 28 附录 .................................................................................................................................................. 29 2
需求分析 根据题目要求,由于歌曲信息是存放在文件中,所以应提供文件的输入﹑输出等操作;在 程序中需要浏览歌曲的信息,应提供显示,查找等操作;另外还应提供键盘式选择菜单实 现功能选择。 概要设计 ` 歌曲信息管理系统 数据输入 数据删除 数据显示 数据查询 数据读取 3
详细设计 歌曲管理流程图 输入歌曲界面 主界面 删除歌曲界面 连接数据库 按作者分组显示界面 退出主界面 查询歌曲界面 按键选择 浏览所有歌曲界面 N 图 2 开始 显示一系列功能选项 输入 n,判断是否 是 1~6? Y 根据 n 的值调用 个功能模块 结束 4
主函数 主函数一般设计得比较简洁,只提供输入,处理和输出部分的函数调用。其中各功能 模块用菜单方式选择。其流程图如图 2 所示。 [程序] /***********主函数**********/ main() {int n; printf("\t****************************菜单****************************\n\n"); printf("\t\t\t 1.输入歌曲\n"); printf("\t\t\t 2.删除歌曲\n"); printf("\t\t\t 3.按作者分组显示歌曲\n"); printf("\t\t\t 4.查询歌曲信息\n"); printf("\t\t\t 5.读取歌曲\n"); printf("\t\t\t 6.退出\n"); printf("\n\n\t*********************************************************\n"); printf("\n 请选择数字(1-6):"); scanf("%d",&n); if(n<1||n>6) {printf("您输入的数据不符合要求,请重新输入!!!");exit(0);} switch(n) { case 1:enter();break; case 2:del();break; case 3:group();break; case 4:search();break; case 5:read();break; case 6:exit(0); } } 以上是最初的想法。但经过自己的考虑后,发现这个主函数的容错功能有点缺点:就 是当用户输入不符合要求的数字时(如输入数字 7),这时就会退出程序,给用户带来不 便,不符合程序设计的要求。同时发现将主函数搞成一个独立函数,可以为自己在后面调 用函数时更直观的检查程序,从而不易出错;故作了如下修改,修改后的程序: menu( ) {int n,m; // 输入菜单 5
do{ printf("\t****************************菜单****************************\n\n"); printf("\t\t\t 1.输入歌曲\n"); printf("\t\t\t 2.删除歌曲\n"); printf("\t\t\t 3.按作者分组显示歌曲\n"); printf("\t\t\t 4.查询歌曲信息\n"); printf("\t\t\t 5.读取歌曲\n"); printf("\t\t\t 6.退出\n"); printf("\n\n\t*********************************************************\n"); printf("\n 请选择数字(1-6):"); scanf("%d",&n); if(n<1||n>6) {m=1;printf("您输入的数据不符合要求,请重新输入!!!\n\n");getchar();} else m==0;} /**对选择的数字做判断**/ while(m==1); switch(n) { case 1:enter();break; case 2:del();break; case 3:group();break; case 4:search();break; case 5:read();break; case 6:exit(0); } } /***********主函数**********/ main() { menu(); } 6
各功能模块要求 (1)输入模块 【分析】把歌曲信息存放在文件中,一条记录对应一首歌曲,这样做既符合习惯也方便信 息管理。 把歌曲的歌曲名,作者,歌手,发行年月作为结构体的成员。要存放歌曲信息就用结构体 struct song { char name[25]; char writer[25]; char singer[25]; char year[25]; s[N];s[N]中的 N 为歌曲数目,程序中采用宏定义的方式,可以随时在源程序宏 } 定义中修改,本程序采用#define N 100,输入模块的流程图如下图 所示: 开始 按提示输入歌曲 信息 是否保存(1/0) 1 调 用 保 存 函 数 save() 主菜单 0 · 7
【程序】 void enter() { int i,m; printf("输入歌曲名:\n"); scanf("%s",s[i].name); printf("输入作者:\n"); scanf("%s",s[i].writer); printf("输入歌手:\n"); scanf("%s",s[i].singer); printf("输入年分:\n"); scanf("%s",s[i].year); printf ("----------------------------------------------------\n"); printf("%s, %s, %s, %s\n",s[i].name,s[i].writer,s[i].singer,s[i].year); printf("----------------------------------------------------\n"); printf("是否保存?(1/0):"); scanf("%d",&m); switch(m) {case 0:break; case 1:save();break; } menu(); } 其中需要调用的 save 函数如下: void save() { int i; FILE *fp; if((fp=fopen("歌曲 4.txt","a+"))==NULL) { printf("不能打开文件\n"); exit(0); } fprintf(fp,"\n%s %s %s %s \n",s[i].name,s[i].writer,s[i].singer,s[i].year); fclose(fp); printf("**********保存成功**********\n"); } 8
分享到:
收藏