C++实现一个简单的歌曲管理系统

课设要求:实现一个简单的歌曲管理系统,允许用户添加、编辑、删除、搜索和展示歌曲信息。系统将使用文本文件存储歌曲数据,以便用户可以在关闭后保持数据持久性。

PS:新手上路,还望各位大佬门们多多指教🤞🤞

1. 功能需求

1.1 数据结构
  • 需要定义一个Song结构,包含以下属性:
    • songNumber(歌曲编号,整数)
    • songName(歌曲名称,字符串)
    • singer(歌手,字符串)
    • language(语言,字符串,可选为中文或英文)
    • releaseDate(发行日期,字符串)
    • downloads(下载量,整数)
1.2 主要功能
  1. 歌曲添加功能

    • 用户可以输入歌曲编号、名称、歌手、语言、发行日期和下载量,系统将该歌曲信息添加到歌曲数据库中。
    • 歌曲编号必须是唯一的,重复编号的添加会被拒绝。
  2. 歌曲编辑功能

    • 用户可以通过输入歌曲编号来查找并编辑已有歌曲的信息,包括名称、歌手、语言、发行日期和下载量。
    • 若歌曲编号不存在,系统需要提示用户。
  3. 歌曲删除功能

    • 用户可以根据歌曲编号删除指定的歌曲。
    • 若歌曲编号不存在,系统需要提示用户。
  4. 歌曲展示功能

    • 系统可以显示当前所有歌曲的信息,包括编号、名称、歌手、语言、发行日期和下载量。
    • 当数据库为空时,系统需要给出提示信息。
  5. 歌曲搜索功能

    • 用户可以通过歌曲名称、编号或歌手进行搜索,系统将返回符合条件的歌曲信息。
  6. 歌曲计数功能

    • 系统可以显示数据库中当前歌曲的总数量。
  7. 插入歌曲功能

    • 用户可以在指定位置插入新歌曲,确保原有歌曲的编号保持正确的顺序。
    • 位置的范围应在当前数据库大小内。
  8. 歌曲排序功能

    • 系统可以根据歌曲编号对数据库中的歌曲进行升序排序。
1.3 持久化存储
  • 所有的歌曲数据需要能够保存到名为songs.txt的文件中,程序启动时加载该文件中的数据。
  • 应用程序在关闭时,会将当前的歌曲数据库保存到该文件中。

2. 用户界面需求

  • 该系统应通过命令行界面与用户交互,提供清晰的文本提示。
  • 用户操作应简单易懂,系统应及时给出操作结果反馈。

3. 安全与错误处理

  • 系统需对子操作进行合理的错误处理,如文件打开失败、输入格式错误等。
  • 对用户输入的数据进行基本的验证,以确保数据的正确性。

头文件:

1.头文件分析

#include <iostream>  
#include <vector>  
#include <algorithm>  
#include <fstream> 
#include<sstream>
#include <string>  

using namespace std;
  • <iostream>: 包含输入输出流的函数
  • <vector>: 提供动态数组的实现,vector<Song> 被用作歌曲数据库的存储。
  • <algorithm>:用于排序以及查找功能。本代码中,使用了 sort 和 find_if
  • <fstream>: 提供文件输入输出的功能,支持在文件中读取和写入。这里的 ifstream 和 ofstream 用于加载和保存歌曲数据。
  • <sstream>: 提供字符串流的支持
  • <string>: 提供字符串类 std::string,用于处理和存储文本数据。

2.数据结构:

struct Song 
{
    int songNumber;//歌曲编号
    string songName;//歌曲名称
    string singer;//歌手
    string language;//语言
    string releaseDate;//发行日期
    int downloads;//下载量
};
  • Song 结构体:定义了一个包含歌曲信息的数据结构,包括歌曲编
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值