当前位置: 首页 > news >正文

一个简单的点歌系统

编写一个简单的点歌系统可以作为一个有趣的C语言项目。这个系统可以允许用户浏览歌曲列表、选择歌曲播放、添加新歌曲到列表等。以下是一个基本的C语言示例,它展示了如何创建一个简单的点歌系统。

功能描述

  1. 显示歌曲列表。
  2. 允许用户选择歌曲。
  3. 允许用户添加新歌曲到列表。
  4. 播放选定的歌曲(在控制台中模拟)。

示例代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>#define MAX_SONGS 100
#define SONG_NAME_LEN 100typedef struct {char name[SONG_NAME_LEN];int duration; // 假设以秒为单位
} Song;Song songList[MAX_SONGS];
int songCount = 0;void displaySongs() {printf("歌曲列表:\n");for (int i = 0; i < songCount; i++) {printf("%d. %s - %d秒\n", i + 1, songList[i].name, songList[i].duration);}
}void playSong(int index) {if (index > 0 && index <= songCount) {printf("正在播放:%s\n", songList[index - 1].name);// 模拟歌曲播放时间for (int i = 0; i < songList[index - 1].duration; i++) {printf(".");fflush(stdout);sleep(1);}printf("\n播放完成。\n");} else {printf("无效的歌曲编号。\n");}
}void addSong() {if (songCount < MAX_SONGS) {char buffer[SONG_NAME_LEN];printf("输入歌曲名称:");scanf("%s", buffer);printf("输入歌曲时长(秒):");scanf("%d", &songList[songCount].duration);strcpy(songList[songCount].name, buffer);songCount++;printf("歌曲添加成功。\n");} else {printf("歌曲列表已满。\n");}
}int main() {int choice, songIndex;while (1) {printf("\n点歌系统\n");printf("1. 显示歌曲列表\n");printf("2. 播放歌曲\n");printf("3. 添加歌曲\n");printf("4. 退出\n");printf("选择操作:");scanf("%d", &choice);switch (choice) {case 1:displaySongs();break;case 2:displaySongs();printf("选择歌曲编号播放:");scanf("%d", &songIndex);playSong(songIndex);break;case 3:addSong();break;case 4:printf("退出系统。\n");return 0;default:printf("无效的选择。\n");}}return 0;
}

说明

  1. 数据结构:使用了一个结构体Song来存储歌曲信息。
  2. 显示歌曲displaySongs函数用于显示所有歌曲。
  3. 播放歌曲playSong函数根据用户选择的歌曲编号播放歌曲。
  4. 添加歌曲addSong函数允许用户添加新歌曲到列表。
  5. 主循环main函数中的循环允许用户选择不同的操作。

http://www.mrgr.cn/news/26344.html

相关文章:

  • 环境变量和本地变量
  • Vector - VT System - 板卡_VT板卡使用介绍_01
  • 静态库的制作
  • JavaSE:3、运算符
  • linux-L5.linux查看应用占用的资源top
  • 链表中每k个一组进行反转
  • STL详解 - vector
  • 计算机网络:概述 - 性能指标
  • 今天一定要彻底卸载Windows Denfender!攻略给你了
  • 代码随想录Day 43|leetcode题目:300.最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组
  • 【zabbix监控软件(配置及常用键值)】
  • Qt常用控件——QTextEdit
  • 心觉:收钱就像喝水一样简单,是如何做到的?
  • lvs命令介绍
  • 尤雨溪推荐的拖拽插件,支持Vue2/Vue3 VueDraggablePlus
  • 【LeetCode】每日一题 2024_9_13 预算内的最多机器人数目(滑动窗口、单调队列)
  • 论文速递! Attention-LSTM特征融合,用于剩余使用寿命(RUL)预测
  • 会计信息化:从核算软件到智能系统
  • 力扣3014.输入单词需要的最少按键次数I
  • 【STM32】独立看门狗(IWDG)原理详解及编程实践(上)