[源码和文档分享]基于C语言的歌曲信息管理系统设计与实现

一、需求分析

  • 用文件储存信息

  • 第一个功能,录入歌曲记录

  • 第二个功能,查找并删除记录

  • 第三个功能,浏览记录

  • 第四个功能,查找信息记录

  • 第五个功能,按照作者姓名进行排序

二、设计思路

2.1 歌曲信息结构体

结构体内有五个数据

  • 其中前四个是字符串类型的歌曲的各种数据,分别是歌曲名、作者、演唱者、发行年月

  • 第五个定义了一个整形变量_exist,初始化有效的结构体的时候会给这个变量赋值,赋的值为一个宏IS_EXIST,目的是在之后的模块中能够更方便地筛选出有效的结构体记录

2.2 辅助函数

共有三个辅助函数,分别是读取文件函数、写入文件函数、打印数据函数,目的是将模块函数里的重复代码写成函数,简化代码;

  • 读取文件函数,有一个结构体指针类型参数,函数实现读取”song.txt “文件中的数据,并写入结构体数组中,通过参数指针传递

  • 写入文件函数,和读取文件函数逻辑相同,将参数里面的数据写入文件

  • 打印数据函数,参数为结构体变量,功能是将该结构体的数据格式化打印到屏幕上

2.3 菜单函数(模块函数)

有五个菜单函数,分别对应实现的五个功能:

  • 第一个函数,录入记录

    • 定义一个结构体数组,做为读取文件函数的参数得到文件中的数据
    • 接着用一个for循环遍历结构体数组
    • 内部接一个判断每个结构体内的_exist是否为IS_EXIST,到没有数据的记录,
    • 再向里是让用户录入数据
    • 录入完之后让用户选择是否继续录入,选择是就进入下一次循环,选择否就结束循环
    • 完成之后就调用写入文件函数,将录入的记录保存到文件,结束
  • 第二个函数,删除记录

    • 思路和录入记录函数相同,读取文件,函数功能,写入文件
    • 用户输入歌曲名字,进入for循环查找
    • 如果查找不到,就打印未找到记录
    • 如果找到了,则让用户选择是否确认删除
  • 第三个函数,浏览记录

    • 逻辑:读取文件,函数功能,写入文件
    • 中间用for循环,接打印数据函数,将结构体数组中的所有记录打印到屏幕上
  • 第四个函数,查询记录

    • 逻辑相同
    • 用户输入歌曲名或者作者或者演唱者
    • for循环查找所有记录
    • 将所有符合的记录打印到屏幕上
  • 第五个函数,分组显示

    • 逻辑相同
    • 用冒牌排序进行排序,排序按照作者的名字升序
    • 打印排序后的所有记录

 


参考文档和完整的文档和源码下载地址:

https://www.write-bug.com/article/150.html

posted @ 2018-12-04 13:58  ggdd5151  阅读(477)  评论(0编辑  收藏  举报