1、 struct song char name25; char writer25; char singer25; char year25;sN,s1,s2,s3; menu( ) / 输入菜单int n; printf(t*MENU*nn);ttt 1.Enter recordn /*输入记录*/ttt 2.List the filen /*显示记录*/ ttt 3.Search recordn /*查找记录*/ ttt 4.Delete a recordn /*删除记录*/ttt 5.Add a recordn /*插入记录*/ttt 6.save the filen /*保存文件*/ttt
2、7.Read the filen /*读文件*/ttt 8.Display record on ordern /*按序号显示记录*/ttt 9.Sort record by writern /*按作者排序*/ttt 0.Exitn /*退出*/nnt*n do n Choice your number(0-9): scanf(%d,&n); while(n9); switch(n) case 1:length=enter();menu();break; case 2:list(length); case 3:search(length); case 4:length=delete(length
3、); case 5:length=add(length); case 6:save(length); case 7:read(); case 8:display(length); case 9:sort(length); case 0:exit(0);/*主函数*/main()2、各功能模块设计(1)输入模块输入到song中,各个元素依次输入【程序】int enter() /*输入记录*/ int i; for(i=0;iN;i+)n please input record or direct press Q to exitn Enter name:%ssi.name); if(si.name
4、0=Q&si.name1=0) break; Enter writer:si.writer); Enter singer:si.singer); Enter year:si.year);nname writer singer year n-n%s, %s, %s, %sn,si.name,si.writer,si.singer,si.year); return i;(2)显示记录模块void list(int n) /*显示记录*/ nnt*LIST*nn n name writer singer year nt-nn; %s, %s, %s, %snnnt*END*n menu();(3)查
5、找模块void search(int n) /*查找记录*/ int m,i;n Search by:nn 1.namen 2.writern 3.singern 0.backchoice your number(0-3):m); while(m3); switch(m)printf(please enter name to search.nplease enter writer to search.nplease enter singer to search.n i=find(n,m); if(in-1)not foundn else n name writer singer year ni
6、nt find(int n,int b) switch(b)scanf(,s3.name); for(i=0; if(strcmp(s3.name,si.name)=0) return i;,s3.writer); if(strcmp(s3.writer,si.writer)=0),s3.singer); if(strcmp(s3.singer,si.singer)=0) (4)删除模块int delete(int n) /*删除记录*/ char delete25; int i,j,p,ch;n Delete by:p); while(p switch(p)please enter name
7、 to delete.nplease enter writer to delete.nplease enter singer to delete.nreturn 0; i=find(n,p);not found to delete n%s,%s,%s,%snAre you sure to delete it?(1/0)ch); if(ch=1) for(j=i+1;j=i;j-) strcpy(sj+1.name,sj.name); strcpy(sj+1.writer,sj.writer); strcpy(sj+1.singer,sj.singer); strcpy(sj+1.year,sj
8、.year); strcpy(si.name,s1.name); strcpy(si.writer,s1.writer); strcpy(si.singer,s1.singer); strcpy(si.year,s1.year); n+;(6)保存到文件int save(int n) /*保存文件*/ FILE*fp; if(fp=fopen(record.txt,w)=NULL) printf(can not open filen return NULL;nSaving filen fprintf(fp,%s %s %s %sn fclose(fp);*save success*n retu
9、rn 1;(7)读取文件int read() /*读文件*/r!feof(fp); fscanf(fp, %s %s %s %snyou have successed reading record from file!(8)全部显示int display(int n) /*按序号显示记录*/ int a;Enter order number na); if(a=0&a0) s1=si; si=sj; sj=s1;sort success!void menu() int n;nnt*nlength=enter(s);运行结果输入查找删除添加保存到文件读取文件按作者排序总结 通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1