语言程序设计报告—歌曲信息管理系统_第1页
语言程序设计报告—歌曲信息管理系统_第2页
语言程序设计报告—歌曲信息管理系统_第3页
语言程序设计报告—歌曲信息管理系统_第4页
语言程序设计报告—歌曲信息管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、高级语言程序设计课程设计说明书设计题目:歌曲信息管理系统设计目录1、 设计题目·····································32、 主函数·····&#

2、183;·································43、 输入模块···············

3、······················44、 删除模块··························

4、3;··········55、 浏览模块·····································66、 查找模块

5、·····································67、 各被调函数···········

6、83;·······················78、 设计小结·························&

7、#183;···········89、 源程序代码···································8歌曲信息管理系统设

8、计1、需求分析:用文件存储信息,因而要提供文件的输入输出操作;可对歌曲信息进行输入、删除、浏 览,因而要提供文件的输入、删除和信息显示操作;查询歌曲信息要提供查找操作;实现按 作者分组显示功能则要提供排序功能;另外要提供键盘式选择菜单以实现功能选择。 2、总体设计:整个管理系统可以被设计为数据输入模块、数据删除模块、信息浏览模块、信息查询模块和信息分组显示模块。 3、详细设计 数据结构采用结构体,建立歌曲信息结构体: Struct SongInfo Char name20; /歌曲名 Char author20; /作者 Char singer20; /演唱者 Char pub_date6;

9、/发行年月(yyyymm) SI; (1) 数据输入模块 把歌曲信息写入文件。 (2) 数据删除模块 采用基本的查找算法,查找歌曲信息文件,如果是要删除的歌曲,则舍弃改信息。否则 重新写入文件。 (3) 信息浏览模块 读歌曲信息文件,显示输出。 (4) 信息查询模块 通过菜单选择查询字段:歌曲名 作者 演唱者。 然后采用基本查找算法在歌曲信息 文件中查找,如果找到,则输出;否则输出“对不起,没有您要找的歌曲信息!。 ” (5) 信息分组显示模块 选择按作者分组显示歌曲信息,用 fread 或 fscanf 把歌曲信息文件中的信息读取到临时 变量中(临时变量数据结构可以采用歌曲信息结构体数组)

10、,采用排序算法(冒泡、插入、 选择等)把歌曲信息按照作者排序,然后输出。 一: 详细设计1 主函数主函数的设计提供数据输入、数据处理和数据输出以及各种函数的调用。其中各功能模块用菜单方式选择;另外,部分菜单也可以写成函数。 程序 void main()void menu();void function1();void function2();void function3();void function4();menu();return;2 各功能模块设计(1)输入模块信息输入时直接按顺序结构(如图2)输入:void input() char ch; n=0; if(fp=fopen("

11、;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(); printf("n时间:"); gets(songn.year); printf("n作者:"); gets(songn.a

12、uthor); 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请输入您要

13、删除的歌曲名:");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 %10sn",,songn.year,songn.author,songn.singer);if(strcmp(namekey,)=0)k=1;break;if(

14、k=1)printf("n已查到,记录为");printf("n%6s %5s %5s %10sn",,songn.year,songn.author,songn.singer);printf("n确实要删除,按1;不删除,按0:");scanf("%d",&m);if(m=1)fseek(fp,a,0);fprintf(fp,"%s %s %s %sn"," " ," "," "," "

15、);elseprintf("n对不起,查无此人。");fclose(fp); 3·浏览模块:在用户按下菜单后直接显示出所有歌曲信息。void xianshi() n=0; if(fp=fopen("song.txt","rb")=NULL) printf("can't open the file song.txt"); exit(0); printf(" 歌名t 作者t 歌手 时间 n"); while(fread(&songn,sizeof(songn),1,fp)=

16、1) printf("%6s %5s %10s %5sn",,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(f

17、read(&songn,sizeof(songn),1,fp)=1) n+; a=n; printf("用什么方式查询?n"); printf("1.歌名 2.时间 3.歌手n"); ch=getchar();getchar(); switch(ch) case '1': printf(" 输入你要查的歌名:n"); gets(numstr); for(n=0;n<a;) if(!strcmp(numstr,) break; n+; break; case '2': p

18、rintf("输入你要查的歌曲时间n"); gets(numstr); for(n=0;n<a;) if(atol(numstr)=songn.year) break; n+; break; case '3': printf("输入你要查的歌手n"); gets(numstr); for(n=0;n<a;) if(!strcmp(numstr,songn.singer) break; n+; break; printf(" 歌名 作者 歌手 时间 n"); printf("%6s %5s %5s

19、%10sn",,songn.year,songn.author,songn.singer); fclose(fp); 6 各种被调函数(1)insert函数:数据的插入,用于个人的信息的补录,包括姓名、工作单位、电话号码和email地址。(2)del函数:用于通讯录中个人信息的删除。(3)change函数:用于通讯录中个人信息的修改,输入人名,对人名所对应的机构体内容进行修改(包括姓名、工作单位、电话号码和email信息)。(4)searchname函数:用于输入姓名查找个人信息。如果通讯录中没有此人信息,显示“查无此人!”。(5)searchnum函数:用于输入

20、电话号码查询个人信息。如果通讯录中没此人信息,显示“查无此人!”。(6)show函数:用于个人全部信息的显示。(7)income函数:用于所有原始个人信息的录入(包括姓名、电话号码、工作单位和email地址)。设计小结:本程序大体参考与网上信息,说实话,这程序我无法完成,但又必须做,即使不会或者做不完美,但是也要尽力去做,做这个程序是要我们能够使用所学的内容,这次设计,让我重新掌握了C语言,而且还得到了用C语言解决实际问题的宝贵经验,也从中学到了很多东西。让我懂得了做什么事都要有耐心,要有对什么事都认真仔细的品质,让我学会了很多以前不懂的东西,使我更加意识到实践的重要性!三 :原程序#incl

21、ude <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>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!

22、n");exit(0);for(j=0;j<i;j+) fwrite(&danj,sizeof(struct system),1,fp); while(1)printf("Please input the author:n");scanf("%s",dani.author);printf("Please input the song's name:n");scanf("%s",);printf("Please input the singer:n"

23、;);scanf("%s",dani.singer);printf("Please input the outday:n");scanf("%s",dani.time);if(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

24、("%s",c);if(strcmp(c,"n")=0)break; fclose(fp);void delete() int j,v,c;char w20; FILE *fp;printf("Please input the song'name which you want to delete:");scanf("%s",w); fp=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,si

25、zeof(struct system),1,fp)!=1) break;v=j;for(j=0;j<v;j+) if(strcmp(w,)=0)c=j; fclose(fp);fp=fopen("data.txt","wb"); for(j=0;j<v;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

26、=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)=1)printf("Name:%sn",);printf("Author:%sn",danj.author);printf("Singer:%sn",danj.singer);printf("Outday:%sn",danj.time);printf("-n&quo

27、t;);else break; fclose(fp);void search() int flag,j,x;char w20;FILE *fp;char v20; printf("(1)By 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(&quo

28、t;Please input the song's name:"); scanf("%s",&w); fp=fopen("data.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)!=1) break; if(strcmp(,w)=0) printf("Name:%sn",);printf("Author:%sn",danj.

29、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("d

30、ata.txt","rb"); for(j=0;j<100;j+) if(fread(&danj,sizeof(struct system),1,fp)!=1) break; if(strcmp(danj.singer,v)=0) printf("Name:%sn",);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 inp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论