[源码和文档分享]基于C语言的歌曲信息管理系统设计与实现
一、需求分析
-
用文件储存信息
-
第一个功能,录入歌曲记录
-
第二个功能,查找并删除记录
-
第三个功能,浏览记录
-
第四个功能,查找信息记录
-
第五个功能,按照作者姓名进行排序
二、设计思路
2.1 歌曲信息结构体
结构体内有五个数据
-
其中前四个是字符串类型的歌曲的各种数据,分别是歌曲名、作者、演唱者、发行年月
-
第五个定义了一个整形变量_exist,初始化有效的结构体的时候会给这个变量赋值,赋的值为一个宏IS_EXIST,目的是在之后的模块中能够更方便地筛选出有效的结构体记录
2.2 辅助函数
共有三个辅助函数,分别是读取文件函数、写入文件函数、打印数据函数,目的是将模块函数里的重复代码写成函数,简化代码;
-
读取文件函数,有一个结构体指针类型参数,函数实现读取”song.txt “文件中的数据,并写入结构体数组中,通过参数指针传递
-
写入文件函数,和读取文件函数逻辑相同,将参数里面的数据写入文件
-
打印数据函数,参数为结构体变量,功能是将该结构体的数据格式化打印到屏幕上
2.3 菜单函数(模块函数)
有五个菜单函数,分别对应实现的五个功能:
-
第一个函数,录入记录
- 定义一个结构体数组,做为读取文件函数的参数得到文件中的数据
- 接着用一个for循环遍历结构体数组
- 内部接一个判断每个结构体内的_exist是否为IS_EXIST,到没有数据的记录,
- 再向里是让用户录入数据
- 录入完之后让用户选择是否继续录入,选择是就进入下一次循环,选择否就结束循环
- 完成之后就调用写入文件函数,将录入的记录保存到文件,结束
-
第二个函数,删除记录
- 思路和录入记录函数相同,读取文件,函数功能,写入文件
- 用户输入歌曲名字,进入for循环查找
- 如果查找不到,就打印未找到记录
- 如果找到了,则让用户选择是否确认删除
-
第三个函数,浏览记录
- 逻辑:读取文件,函数功能,写入文件
- 中间用for循环,接打印数据函数,将结构体数组中的所有记录打印到屏幕上
-
第四个函数,查询记录
- 逻辑相同
- 用户输入歌曲名或者作者或者演唱者
- for循环查找所有记录
- 将所有符合的记录打印到屏幕上
-
第五个函数,分组显示
- 逻辑相同
- 用冒牌排序进行排序,排序按照作者的名字升序
- 打印排序后的所有记录
参考文档和完整的文档和源码下载地址: