C语言程序设计报告—歌曲信息管理系统.pdf

上传人:l*** 文档编号:82056351 上传时间:2023-03-24 格式:PDF 页数:17 大小:549.02KB
返回 下载 相关 举报
C语言程序设计报告—歌曲信息管理系统.pdf_第1页
第1页 / 共17页
C语言程序设计报告—歌曲信息管理系统.pdf_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《C语言程序设计报告—歌曲信息管理系统.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计报告—歌曲信息管理系统.pdf(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 高级语言程序设计课程设计 说明书 设计题目:歌曲信息管理系统设计 目录 1、设计题目 3 2、主函数 4 3、输入模块 4 4、删除模块 5 5、浏览模块 6 6、查找模块 6 7、各被调函数 7 8、设计小结 8 9、源程序代码 8 歌曲信息管理系统设计 1、需求分析:用文件存储信息,因而要提供文件的输入输出操作;可对歌曲信息进行输入、删除、浏 览,因而要提供文件的输入、删除和信息显示操作;查询歌曲信息要提供查找操作;实现按 作者分组显示功能则要提供排序功能;另外要提供键盘式选择菜单以实现功能选择。2、总体设计:整个管理系统可以被设计为数据输入模块、数据删除模块、信息浏览模块、信息查询模块

2、和信息分组显示模块。3、详细设计 数据结构采用结构体,建立歌曲信息结构体:Struct SongInfo Char name20;/歌曲名 Char author20;/作者 Char singer20;/演唱者 Char pub_date6;/发行年月(yyyymm)SI;(1)数据输入模块 把歌曲信息写入文件。(2)数据删除模块 采用基本的查找算法,查找歌曲信息文件,如果是要删除的歌曲,则舍弃改信息。否则 重新写入文件.(3)信息浏览模块 读歌曲信息文件,显示输出。(4)信息查询模块 通过菜单选择查询字段:歌曲名 作者 演唱者.然后采用基本查找算法在歌曲信息 文件中查找,如果找到,则输出;

3、否则输出“对不起,没有您要找的歌曲信息!。”(5)信息分组显示模块 选择按作者分组显示歌曲信息,用 fread 或 fscanf 把歌曲信息文件中的信息读取到临时 变量中(临时变量数据结构可以采用歌曲信息结构体数组),采用排序算法(冒泡、插入、选择等)把歌曲信息按照作者排序,然后输出。一:详细设计 1 主函数 主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数.程序 void main()void menu();void function1();void function2();void function3();void

4、function4();menu();return;2 各功能模块设计(1)输入模块 信息输入时直接按顺序结构(如图 2)输入:void input()char ch;n=0;if((fp=fopen(”song.txt”,”a”))=NULL)printf(cant open file song.txt”);exit(0);printf(Please input a record:”);for(n=0;n=50;)printf(nrecord d:n 歌名:,n+1);gets(songn.name);printf(”n 时间:”);gets(songn。year);printf(n 作者:

5、);gets(songn.author);printf(”n 歌手:);gets(songn。singer);n+;printf(继续输入吗?(y/n)n”);ch=getchar();getchar();if(ch=n)break;fwrite(song,sizeof(song0),n,fp);fclose(fp);2 删除模块:用户输入要删除的信息,如输入歌曲名,根据歌曲名找到其他记录并删除。程序/*删除模块*/void del()int m,k=0;long a;char namekey8;printf(n 请输入您要删除的歌曲名:);scanf(%s”,namekey);if((fp=

6、fopen(song.txt,r+”))=NULL)printf(n 不能打开该文件!”);exit(0);while(!feof(fp))a=ftell(fp);fscanf(fp,”%6s 5s 5s 10sn”,songn.name,songn.year,songn.author,songn.singer);if(strcmp(namekey,songn。name)=0)k=1;break;if(k=1)printf(”n 已查到,记录为”);printf(”n6s%5s 5s%10sn”,songn。name,songn。year,songn.author,songn.singer);

7、printf(”n 确实要删除,按 1;不删除,按 0:”);scanf(”d,&m);if(m=1)fseek(fp,a,0);fprintf(fp,s%s%s%sn”,”,”,”,”);else printf(n 对不起,查无此人。);fclose(fp);3浏览模块:在用户按下菜单后直接显示出所有歌曲信息。void xianshi()n=0;if(fp=fopen(song。txt”,rb))=NULL)printf(”cant open the file song。txt);exit(0);printf(”歌名t 作者t 歌手 时间 n);while(fread(&songn,size

8、of(songn),1,fp)=1)printf(”%6s%5s 10s%5sn”,songn.name,songn。author,songn.singer,songn.year);n+;fclose(fp);4查找模块:用户输入要查找的歌曲名或歌曲的任意信息,按菜单键.void searchname()int a=0;char ch;n=0;if(fp=fopen(”song。txt,”rb”))=NULL)printf(”can not open the file。n);exit(0);while(fread(songn,sizeof(songn),1,fp)=1)n+;a=n;print

9、f(用什么方式查询?n”);printf(1.歌名 2。时间 3.歌手n);ch=getchar();getchar();switch(ch)case 1:printf(输入你要查的歌名:n”);gets(numstr);for(n=0;na;)if(!strcmp(numstr,songn.name))break;n+;break;case 2:printf(输入你要查的歌曲时间n”);gets(numstr);for(n=0;na;)if(atol(numstr)=songn。year)break;n+;break;case 3:printf(输入你要查的歌手n);gets(numstr)

10、;for(n=0;na;)if(!strcmp(numstr,songn.singer)break;n+;break;printf(歌名 作者 歌手 时间 n);printf(”%6s%5s 5s%10sn,songn.name,songn.year,songn。author,songn。singer);fclose(fp);6 各种被调函数(1)insert 函数:数据的插入,用于个人的信息的补录,包括姓名、工作单位、电话号码和 email 地址。(2)del 函数:用于通讯录中个人信息的删除。(3)change 函数:用于通讯录中个人信息的修改,输入人名,对人名所对应的机构体内容进行修改(

11、包括姓名、工作单位、电话号码和 email 信息)。(4)searchname 函数:用于输入姓名查找个人信息。如果通讯录中没有此人信息,显示“查无此人!。(5)searchnum 函数:用于输入电话号码查询个人信息.如果通讯录中没此人信息,显示“查无此人!。(6)show 函数:用于个人全部信息的显示。(7)income 函数:用于所有原始个人信息的录入(包括姓名、电话号码、工作单位和 email 地址).设计小结:本程序大体参考与网上信息,说实话,这程序我无法完成,但又必须做,即使不会或者做不完美,但是也要尽力去做,做这个程序是要我们能够使用所学的内容,这次设计,让我重新掌握了 C 语言,

12、而且还得到了用 C 语言解决实际问题的宝贵经验,也从中学到了很多东西。让我懂得了做什么事都要有耐心,要有对什么事都认真仔细的品质,让我学会了很多以前不懂的东西,使我更加意识到实践的重要性!三:原程序#include include int i=0;struct system char author20;char singer20;char time20;char name20;dan100;void enter()int j;char c2;FILE*fp;if((fp=fopen(data.txt,w”)=NULL)printf(Can not open the file!n”);exit(

13、0);for(j=0;ji;j+)fwrite(&danj,sizeof(struct system),1,fp);while(1)printf(”Please input the author:n”);scanf(%s”,dani.author);printf(”Please input the songs name:n);scanf(”%s,dani。name);printf(”Please input the singer:n);scanf(”%s”,dani。singer);printf(Please input the outday:n);scanf(s,dani.time);if(

14、fwrite(dani+,sizeof(struct system),1,fp)!=1)printf(”File write errorn);else printf(Successful!n”);printf(”Is there any more?(Yesy/Non)n);scanf(s”,c);if(strcmp(c,”n)=0)break;fclose(fp);void delete()int j,v,c;char w20;FILE*fp;printf(Please input the songname which you want to delete:);scanf(s”,w);fp=f

15、open(data。txt”,”rb”);for(j=0;j100;j+)if(fread(&danj,sizeof(struct system),1,fp)!=1)break;v=j;for(j=0;jv;j+)if(strcmp(w,danj。name)=0)c=j;fclose(fp);fp=fopen(”data。txt,”wb);for(j=0;jv;j+)if(j!=c)fwrite(danj,sizeof(struct system),1,fp);fclose(fp);printf(”Delete OK!n”);i-;void browse()int j;FILE*fp;fp=f

16、open(data。txt,”rb);for(j=0;j100;j+)if(fread(&danj,sizeof(struct system),1,fp)=1)printf(Name:%sn”,danj.name);printf(”Author:sn”,danj。author);printf(Singer:%sn”,danj.singer);printf(”Outday:sn”,danj.time);printf(”-n”);else break;fclose(fp);void search()int flag,j,x;char w20;FILE*fp;char v20;printf(1)By

17、 authorn”);printf(”(2)By singern”);printf(”(3)By namen);printf(Please choose which you want to search:n”);scanf(d,&x);if(x=3)flag=0;printf(Please input the songs name:”);scanf(”s,&w);fp=fopen(”data。txt”,”rb);for(j=0;j100;j+)if(fread(&danj,sizeof(struct system),1,fp)!=1)break;if(strcmp(danj.name,w)=0

18、)printf(Name:sn,danj。name);printf(”Author:%sn”,danj。author);printf(”Singer:%sn,danj。singer);printf(Outday:%sn”,danj。time);printf(-n);flag=1;if(flag=0)printf(Cannot find the song!n);fclose(fp);else if(x=2)flag=0;printf(Please input the singer:”);scanf(”%s,&v);fp=fopen(data.txt”,”rb);for(j=0;j100;j+)i

19、f(fread(danj,sizeof(struct system),1,fp)!=1)break;if(strcmp(danj。singer,v)=0)printf(Name:%sn,danj.name);printf(Author:%sn,danj.author);printf(Singer:sn,danj。singer);printf(Outday:sn,danj。time);printf(”-n”);flag=1;if(flag=0)printf(”Cannot find the song!n);fclose(fp);else if(x=1)flag=0;printf(Please i

20、nput the author:”);scanf(s,w);fp=fopen(data.txt”,rb”);for(j=0;j100;j+)if(fread(&danj,sizeof(struct system),1,fp)!=1)break;if(strcmp(danj.author,w)=0)printf(”Name:%sn,danj。name);printf(”Author:%sn”,danj。author);printf(Singer:%sn,danj.singer);printf(Outday:%sn”,danj。time);printf(-n”);flag=1;if(flag=0)

21、printf(Cannot find the song!n);fclose(fp);else printf(Error!n”);main()int a;while(1)printf(ttWelcome to the songsystem!-by flean”);printf(tt*o MENU o*nn”);printf(ttt(1).Entern”);printf(”ttt(2).Deleten);printf(ttt(3)。Browsen”);printf(ttt(4)。Searchn”);printf(ttt(0).exitn”);printf(”tt*n);printf(”ntttPlease choose the number(0-4):”);scanf(”%d,a);if(a=0)break;switch(a)case 1:enter();break;case 2:delete();break;case 3:browse();break;case 4:search();break;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁