您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 投融资/租赁 > 歌曲信息管理系统-通用完整版
歌曲信息管理系统-通用完整版中国地质大学本科生课程论文封面C语言课程设计课程名称计算机高级语言课程设计(C)教师姓名刘刚本科生姓名本科生学号20121003009本科生专业机械设计制造及其自所在院系机械电子信息学院类别:C.本科生日期:2013.07.11注:1、无评阅人签名成绩无效;2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。目录1.题目要求................................................................................................12.需求分析................................................................................................13.总体设计................................................................................................14.详细设计................................................................................................25.上机操作..............................................................................................326.总结......................................................................................................437.致谢......................................................................................................44参考文献....................................................................................................44第1页1.题目要求制作一个歌曲信息管理系统,要求提供以下功能。1)歌曲信息包括歌曲名,作者,演唱者,发行年月等。2)可以对歌曲信息进行输入,删除,浏览。3)可以查询根据歌曲名,作者,演唱者歌曲信息。4)可以提供按作者分组显示功能。5)用文件存储信息。2.需求分析根据题目要求,由于歌曲信息数据以文本文件的方式存放,所以应提供文件的输入、输出等操作;在程序中需要浏览歌曲的信息,应提供显示、查询等操作(其中查询方式可以按歌曲名、作者、演唱者或日期进行查询)。并且要提供可以按作者进行分组的方法;另外还应提供键盘式选择菜单以实现功能选择。3.总体设计根据整个系统的需求分析可知要实现本系统的功能,需要有以下七个模块。输入模块歌曲信息管理系统第2页4.详细设计【主函数】:主函数一般设计比较简洁,只提供输入,处理和输出部分的函数调用。,本系统主函数只起到一个将系统载入到主菜单的作用。至于系统内其他功能的实现,则是通过主函数下的主菜单来实现的例如intmain()/*主函数*/{menu();return0;}下面是菜单栏实现系统功能的流程图继续时【菜单界面】:本系统中,主菜单是实现系统功能的主要媒介,同样也是整个系统的核心所在,进入系统是首先进入菜单界面,然后根据菜单上的提示进行功能的选取从而进行正常使用。【程序】:/**************************主界面删除模块退出浏览模块查找模块分组模块添加模块运行系统,进入系统菜单栏由菜单提示输入1-7功能选项,调用相应的函数完成指定功能,决定继续或退出第3页***********************/voidmenu(){intk,w1;do{system(cls);puts(\t\t*******************主菜单********************\n);puts(\t\t*********************************************\n);puts(\t\t欢迎来到歌曲信息管理系统\n);puts(\t\t*********************************************\n);puts(\t\t\t\t1.歌曲录入);puts(\t\t\t\t2.歌曲删除);puts(\t\t\t\t3.歌曲浏览);第4页puts(\t\t\t\t4.歌曲查找);puts(\t\t\t\t5.作者分组显示);puts(\t\t\t\t6.添加新歌);puts(\t\t\t\t7.退出);puts(\n\t\t**********************************************\n);puts(\t\t开发人:赵彦斌\n);printf(请选择您所需要的功能(1-7):[]\b\b);scanf(%d,&k);if(k1||k7)//对选择的数字作判断*/{w1=1;getchar();}elsew1=0;}while(w1==1);switch(k)第5页{case1:enter();break;//输入模块case2:delet();break;//删除模块case3:browse();break;//浏览模块case4:search();break;//查找模块case5:devide();break;//分组模块case6:add();break;//添加模块case7:exit(0);}}【输入模块】:数据信息存放在文件中,一条记录对应一个歌曲,即符合习惯也方便管理。现在要考虑的问题是一条歌曲的记录从文件读进来后以什么形式存放?这里选择应用下面的结构体structsong{charname[20];//歌曲名*/charauthor[20];//作者*/charsinger[20];//演唱者*/charup_date[10];//日期*/}so[N];需要注意的是:so[N]中的N为歌曲数目,程序中采用宏定义方式,可以随时对N进行修改。本程序宏定义#defineN100特别注意!song.txt文件中若已经有文件,再次输入时,文件内容将被清空,若仍要使用,请选择歌曲添加!【流程图】第6页存入歌曲数不为0时【程序】:/****************************输入模块***************************/voidenter(){inti,n;system(cls);printf(您想要输入多少首歌?(0-%d)?:,N-1);scanf(%d,&n);//要输入的歌曲数目printf(\n现在起请您开始输入!\n\n);for(i=0;in;i++){printf(\n请输入第%d首歌的记录.\n,i+1);输入用户要输入歌曲的个数保存调用函数save(n)i从0到n-1调用函数input(i)第7页input(i);//调用输入函数}if(i!=0)save(n);//调用保存函数printf_back();//返回}【删除模块】:其功能是在显示所有歌曲信息后,用户输入要删除歌曲的名字,根据歌名查找记录并删除。删除的一般做法是将数据从文件中删除,删除位置后面的记录往前挪。从而达到删除效果。【流程图】YNYN【程序】:/****************************删除模块*******************************/显示所有歌曲记录,看用户需要删除哪个输入要删除的歌曲名是否找到此歌曲记录显示没有找到显示找到的记录,调用删除函数询问是否继续删除返回主菜单第8页voiddelet(){structsongs;inti,n,k,w0=1,w1,w2=0;n=load();//调用加载函数system(cls);do{k=-1;printf_face();//调用显示数据结构项目函数for(i=0;in;i++){printf_one(i);//调用显示一个记录函数}do{第9页printf(\n\n请输入您所要删除歌曲的名字。歌名:);scanf(%s,&s.name);for(i=0;in;i++){if(strcmp(s.name,so[i].name)==0){k=i;s=so[i];break;}}for(;in;i++)so[i]=so[i+1];save(n-1);if(k==-1){printf(\n\n不存在!您想要继续么?\n\n\t第10页1).继续2).不,返回。[]\b\b);scanf(%d,&n);if(n==1)delet();elsemenu();}}while(k==-1);printf_face(i);//调用显示数据结构项目函数printf_one(k);//调用显示一个记录函数w1=delete_data(i,n);//调用显示删除数据函数if(w1==1){printf(\n恭喜,歌曲已成功删除\n\n您想要继续么?\n\n\t第11页1).继续2).不,返回。[]\b\b);scanf(%d,&w0);w2=1;}else{w0=0;if(w2==1)so[k]=s;}}while(w0==1);menu();}【浏览模块】:浏览模块功能是显示全部歌曲信息【流程图】:显示歌曲记录信息(10个一屏)按任意键显示下一屏第12页【程序】/******************************浏览模块***************************/voidbrowse(){inti,n;n=load();//调用加载函数printf_face();//调用显示数据结构项目函数system(cls);for(i=0;in;i++){if((i!=0)&&(i%10==0)){printf(\n\n请按任意键继续\n);getchar();按任意键返回主菜单第13页puts(\n\n);}printf_one(i);//调用显示一个记录函数}printf(\t这里有%d个记录.\n,n);printf(\n按任意键继续\n);getchar();system(pause);menu();}【查询模块】:该模块的功能是根据输入的歌曲名、作者、演唱者、日期或四者全部查找相应的歌曲记录,找到后问是否继续查找还是返回主菜单。【流程图】YNNY【程序】输入歌曲名/作者/演唱者/日期/全部是否找到该歌曲记录显示找到的记录提示没有找到询问是否继续查找返回主菜单第14页/******************************查找模块***************************/voidsearch(){intc,m=0;system(cls);printf(\n\n\n\t***********************查找模块*************************\n);printf(\t**\n);printf(\t*1.歌名2.作者3.演唱者*\n);printf(\t**\n);printf(\t**\n);printf(\t**\n);printf(\t********************************************************\n);第15页printf(您想要通过哪种方式查找?:[]\b\b);do{scanf(%d,&c);if(c5||c1){printf(\n选择错误!请重新选择!);m=1;}}while(m!=0);switch(c){case1:fname(
本文标题:歌曲信息管理系统-通用完整版
链接地址:https://www.777doc.com/doc-7280490 .html