编写一个简单的点歌系统可以作为一个有趣的C语言项目。这个系统可以允许用户浏览歌曲列表、选择歌曲播放、添加新歌曲到列表等。以下是一个基本的C语言示例,它展示了如何创建一个简单的点歌系统。
功能描述
- 显示歌曲列表。
- 允许用户选择歌曲。
- 允许用户添加新歌曲到列表。
- 播放选定的歌曲(在控制台中模拟)。
示例代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_SONGS 100
#define SONG_NAME_LEN 100
typedef 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;
}
说明
- 数据结构:使用了一个结构体
Song
来存储歌曲信息。 - 显示歌曲:
displaySongs
函数用于显示所有歌曲。 - 播放歌曲:
playSong
函数根据用户选择的歌曲编号播放歌曲。 - 添加歌曲:
addSong
函数允许用户添加新歌曲到列表。 - 主循环:
main
函数中的循环允许用户选择不同的操作。