歌曲信息管理系统 通用完整版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国地质大学
本科生课程论文封面
C语言课程设计课程名称计算机高级语言课程设计(C)
教师姓名刘刚
本科生姓名
本科生学号***********
本科生专业机械设计制造及其自
所在院系机械电子信息学院
类别: C. 本科生
日期: 2013.07.11
课程设计评语
注:1、无评阅人签名成绩无效;
2、必须用钢笔或圆珠笔批阅,用铅笔阅卷无效;
3、如有平时成绩,必须在上面评分表中标出,并计算入总成绩。
目录
1.题目要求 (1)
2.需求分析 (1)
3.总体设计 (1)
4.详细设计 (1)
5.上机操作 (16)
6.总结 (25)
7.致谢 (26)
参考文献 (26)
1.题目要求
制作一个歌曲信息管理系统,要求提供以下功能。
1)歌曲信息包括歌曲名,作者,演唱者,发行年月等。
2)可以对歌曲信息进行输入,删除,浏览。
3)可以查询根据歌曲名,作者,演唱者歌曲信息。
4)可以提供按作者分组显示功能。
5)用文件存储信息。
2.需求分析
根据题目要求,由于歌曲信息数据以文本文件的方式存放,所以应提供文
件的输入、输出等操作;在程序中需要浏览歌曲的信息,应提供显示、查询等操作(其中查询方式可以按歌曲名、作者、演唱者或日期进行查询)。并且要提供可以按作者进行分组的方法;另外还应提供键盘式选择菜单以实现功能选择。
3.总体设计
【主函数】:主函数一般设计比较简洁,只提供输入,处理和输出部分的函数调用。,本系统主函数只起到一个将系统载入到主菜单的作用。至于系统内其他功能的实现,则是通过主函数下的主菜单来实现的
例如
int main() /*主函数*/
{
menu();
return 0;
}
【菜单界面】:本系统中,主菜单是实现系统功能的主要媒介,同样也是整个系统的核心所在,进入系统是首先进入菜单界面,然后根据菜单上的提示进行功能的选取从而进行正常使用。
【程序】:
/**************************主界面***********************/
void menu()
{
int k,w1;
do
{
system("cls");
puts("\t\t*******************主菜单********************\n");
puts("\t\t*********************************************\n");
puts("\t\t 欢迎来到歌曲信息管理系统\n");
puts("\t\t*********************************************\n");
puts("\t\t\t\t 1.歌曲录入");
puts("\t\t\t\t 2.歌曲删除");
puts("\t\t\t\t 3.歌曲浏览");
puts("\t\t\t\t 4.歌曲查找");
puts("\t\t\t\t 5.作者分组显示");
puts("\t\t\t\t 6.添加新歌");
puts("\t\t\t\t 7.退出");
puts("\n\t\t**********************************************\n");
puts("\t\t 开发人:赵彦斌\n");
printf("请选择您所需要的功能(1-7):[ ]\b\b");
scanf("%d",&k);
if(k<1||k>7) //对选择的数字作判断*/
{w1=1;
getchar();
}
else w1=0;
}while(w1==1);
switch(k)
{case 1:enter();break; //输入模块
case 2:delet();break; //删除模块
case 3:browse();break; //浏览模块
case 4:search();break; //查找模块
case 5:devide();break; //分组模块
case 6:add();break; //添加模块
case 7:exit(0);
}
}
【输入模块】:数据信息存放在文件中,一条记录对应一个歌曲,即符合习惯也方便管理。现在要考虑的问题是一条歌曲的记录从文件读进来后以什么形式存放?
这里选择应用下面的结构体
struct song
{
char name[20]; //歌曲名*/
char author[20]; //作者*/
char singer[20]; //演唱者*/
char up_date[10]; //日期*/
}so[N];
需要注意的是:so[N]中的N为歌曲数目,程序中采用宏定义方式,可以随时对N进行修改。本程序宏定义#define N 100
特别注意!song.txt文件中若已经有文件,再次输入时,文件内容将被清空,若仍要使用,请选择歌曲添加!
【流程图】
0时
/****************************输入模块***************************/
void enter()
{
int i,n;
system("cls");
printf("您想要输入多少首歌?(0-%d)?:",N-1);
scanf("%d",&n); //要输入的歌曲数目
printf("\n 现在起请您开始输入!\n\n");
for(i=0;i { printf("\n 请输入第%d 首歌的记录.\n",i+1); input(i); //调用输入函数 } if(i!=0) save(n); //调用保存函数 printf_back(); //返回 } 【删除模块】:其功能是在显示所有歌曲信息后,用户输入要删除歌曲的名字,根据歌名查找记录并删除。删除的一般做法是将数据从文件中删除,删除位置后面的记录往前挪。从而达到删除效果。 【流程图】