您好,欢迎访问三七文档
题目要求该系统应该具有下列功能:(1)歌曲信息包括歌曲名,作者,演唱者,发行年月等。(2)可以对歌曲信息进行输入,删除,浏览。(3)可以查询歌曲名,作者,演唱者信息。(4)可以提供按作者分组显示功能。(5)用文件存储信息。输入要求:应用程序运行后,在屏幕上显示一个菜单。用户根据需求,选定相应的操作项目。进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。输出要求:要求用应用程序应用后,要在屏幕上显示一个菜单。用户输入数据后,要给出清晰明确的提示信息,包括输入的数据内容、格式及结束方式等。提示:设计时可采用结构体和一维数组类型,用来保存学生证的内容。总体设计本题可采用结构体类型来保存学生证的内容,学生信息应该使用数组来进行过程中使用指针链表使其更方便。根据要求,此程序需要设计以下几个模块:添加新歌曲模块,删除指定歌曲板块,修改指定歌曲显示,查询指定歌曲模块。因此,可知其主要模式为:添加新的歌曲信息删除指定歌曲的信息查询指定歌曲的信息修改指定歌曲的信息歌曲信息管理歌曲管理流程图具体设计,1、主函数歌曲的信息有歌曲名,作者,演唱者,发行年月。因此用一个数组来保存学生证信息:structsong{charname[25];charwriter[25];charsinger[25];charyear[25];}s[N],s1,s2,s3;menu()//输入菜单intn;printf(\t****************************MENU****************************\n\n);printf(\t\t\t1.Enterrecord\n);/*输入记录*/printf(\t\t\t2.Listthefile\n);/*显示记录*/printf(\t\t\t3.Searchrecord\n);/*查找记录*/printf(\t\t\t4.Deletearecord\n);/*删除记录*/printf(\t\t\t5.Addarecord\n);/*插入记录*/printf(\t\t\t6.savethefile\n);/*保存文件*/printf(\t\t\t7.Readthefile\n);/*读文件*/printf(\t\t\t8.Displayrecordonorder\n);/*按序号显示记录*/printf(\t\t\t9.Sortrecordbywriter\n);/*按作者排序*/printf(\t\t\t0.Exit\n);/*退出*/printf(\n\n\t*********************************************************\n);do初始化主界面连接数据库歌曲添加界面退出主界面歌曲修改界面按键选择,是否退出否是歌曲查询界面歌曲删除界面按作者排序{printf(\nChoiceyournumber(0-9):);scanf(%d,&n);}while(n0||n9);switch(n){case1:length=enter();menu();break;case2:list(length);break;case3:search(length);break;case4:length=delete(length);menu();break;case5:length=add(length);menu();break;case6:save(length);break;case7:read();break;case8:display(length);break;case9:sort(length);break;case0:exit(0);}}/***********主函数**********/main(){menu();}2、各功能模块设计(1)输入模块输入到song[]中,各个元素依次输入【程序】intenter()/*输入记录*/{inti;for(i=0;iN;i++){printf(\npleaseinputrecordordirectpressQtoexit);printf(\nEntername:);scanf(%s,&s[i].name);if(s[i].name[0]=='Q'&&s[i].name[1]=='\0')break;printf(Enterwriter:);scanf(%s,&s[i].writer);printf(Entersinger:);scanf(%s,&s[i].singer);printf(Enteryear:);scanf(%s,&s[i].year);printf(\nnamewritersingeryear\n);printf(----------------------------------------------------\n);printf(%s,%s,%s,%s\n,s[i].name,s[i].writer,s[i].singer,s[i].year);printf(----------------------------------------------------\n);}returni;}(2)显示记录模块【程序】voidlist(intn)/*显示记录*/{inti;printf(\n\n\t************************LIST********************************\n\n);printf(\nnamewritersingeryear\n);printf(\t----------------------------------------------------\n);for(i=0;in;i++)printf(%s,%s,%s,%s\n,s[i].name,s[i].writer,s[i].singer,s[i].year);printf(\n\n\t***************************END******************************\n);menu();}(3)查找模块【程序】voidsearch(intn)/*查找记录*/{intm,i;printf(\nSearchby:\n);printf(\n1.name);printf(\n2.writer);printf(\n3.singer);printf(\n0.back);do{printf(choiceyournumber(0-3):);scanf(%d,&m);}while(m0||m3);switch(m){case1:printf(pleaseenternametosearch.\n);break;case2:printf(pleaseenterwritertosearch.\n);break;case3:printf(pleaseentersingertosearch.\n);break;case0:menu();}i=find(n,m);if(in-1)printf(notfound\n);else{printf(\nnamewritersingeryear\n);printf(----------------------------------------------------\n);printf(%s,%s,%s,%s\n,s[i].name,s[i].writer,s[i].singer,s[i].year);printf(----------------------------------------------------\n);}menu();}intfind(intn,intb){inti;switch(b){case1:scanf(%s,s3.name);for(i=0;in;i++)if(strcmp(s3.name,s[i].name)==0)returni;break;case2:scanf(%s,s3.writer);for(i=0;in;i++)if(strcmp(s3.writer,s[i].writer)==0)returni;break;case3:scanf(%s,s3.singer);for(i=0;in;i++)if(strcmp(s3.singer,s[i].singer)==0)returni;break;}returni;}(4)删除模块【程序】intdelete(intn)/*删除记录*/{chardelete[25];inti,j,p,ch;printf(\nDeleteby:\n);printf(\n1.name);printf(\n2.writer);printf(\n3.singer);printf(\n0.back);do{printf(choiceyournumber(0-3):);scanf(%d,&p);}while(p0||p3);switch(p){case1:printf(pleaseenternametodelete.\n);break;case2:printf(pleaseenterwritertodelete.\n);break;case3:printf(pleaseentersingertodelete.\n);break;case0:return0;}i=find(n,p);if(in-1)printf(notfoundtodelete\n);else{printf(\nnamewritersingeryear\n);printf(----------------------------------------------------\n);printf(%s,%s,%s,%s\n,s[i].name,s[i].writer,s[i].singer,s[i].year);printf(----------------------------------------------------\n);printf(Areyousuretodeleteit?(1/0));scanf(%d,&ch);if(ch==1){for(j=i+1;jn;j++){strcpy(s[j-1].name,s[j].name);strcpy(s[j-1].writer,s[j].writer);strcpy(s[j-1].singer,s[j].singer);strcpy(s[j-1].year,s[j].year);}n--;}}returnn;(5)插入模块intadd(intn)/*插入记录*/{charlocate[25];inti,j;printf(\npleaseinputrecordordirectpressQtoexit\n);printf(\nEntername:);scanf(%s,&s1.name);if(s1.name[0]=='Q'&&s1.name[0]=='\0')returnn;printf(Enterwriter:);scanf(%s,&s1.writer);printf(Entersinger:);scanf(%s,&s1.singer);printf(Enteryear:);scanf(%s,&s1.year);printf(\nnamewritersingeryear\n);printf(----------------------------------------------------\n);printf(%s,%s,%s,%s\n,s1.name,s1.writer,s1.singer,s1.year);printf(----------------------------------------------------\n);printf(pleaseinputlocatename\n);i=find(n,1);for(j=n-1;j=i;j--){strcpy(s
本文标题:歌曲信息管理系统
链接地址:https://www.777doc.com/doc-3502755 .html