帮我写一个C#编程的卡拉ok点歌系统
时间: 2024-03-10 20:46:56 浏览: 29
好的,一个简单的 C# 编程的卡拉ok点歌系统可以包括以下功能:
1. 歌曲列表:用户可以查看所有可选歌曲的列表。
2. 歌曲搜索:用户可以根据歌曲名称或歌手名称搜索歌曲。
3. 歌曲选择:用户可以选择一首歌曲来点播。
4. 歌曲播放:用户可以听到自己点播的歌曲。
5. 歌曲状态:用户可以查看当前正在播放的歌曲。
下面是一个简单的示例,您可以参考一下:
首先,我们需要创建一个名为 "KaraokeSystem" 的 C# 控制台应用程序。在这个应用程序中,我们需要定义一个歌曲类 "Song",该类包括歌曲名称、歌手、歌曲文件路径等属性。
```csharp
class Song
{
public string Name { get; set; }
public string Singer { get; set; }
public string FilePath { get; set; }
}
```
接下来,我们需要定义一个歌曲列表 "SongList",该列表包含所有可选的歌曲。可以在程序中直接定义这个列表,也可以从数据库或文件中读取。
```csharp
List<Song> SongList = new List<Song>()
{
new Song() { Name = "青花瓷", Singer = "周杰伦", FilePath = "C:\\Songs\\qhc.mp3" },
new Song() { Name = "夜曲", Singer = "周杰伦", FilePath = "C:\\Songs\\yq.mp3" },
new Song() { Name = "七里香", Singer = "周杰伦", FilePath = "C:\\Songs\\qlx.mp3" },
new Song() { Name = "告白气球", Singer = "周杰伦", FilePath = "C:\\Songs\\gbqq.mp3" },
new Song() { Name = "晴天", Singer = "周杰伦", FilePath = "C:\\Songs\\qt.mp3" },
};
```
接下来,我们需要定义一个函数来搜索歌曲。该函数接收一个字符串作为参数,表示用户输入的搜索关键字。函数会遍历 SongList 列表,找出所有名字或歌手包含该关键字的歌曲,并将它们返回。
```csharp
List<Song> SearchSong(string keyword)
{
List<Song> result = new List<Song>();
foreach (Song song in SongList)
{
if (song.Name.Contains(keyword) || song.Singer.Contains(keyword))
{
result.Add(song);
}
}
return result;
}
```
接下来,我们需要定义一个函数来播放歌曲。该函数接收一个 Song 对象作为参数,表示要播放的歌曲。函数会调用 Windows Media Player 来播放歌曲。
```csharp
void PlaySong(Song song)
{
WMPLib.WindowsMediaPlayer wmp = new WMPLib.WindowsMediaPlayer();
wmp.URL = song.FilePath;
wmp.controls.play();
}
```
最后,我们需要在控制台中实现一个简单的用户界面,让用户可以选择操作。用户可以输入数字来选择操作,比如 "1" 表示查看歌曲列表,"2" 表示搜索歌曲,"3" 表示点播歌曲等等。
```csharp
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("请选择操作:");
Console.WriteLine("1. 查看歌曲列表");
Console.WriteLine("2. 搜索歌曲");
Console.WriteLine("3. 点播歌曲");
Console.WriteLine("4. 查看当前播放歌曲");
string input = Console.ReadLine();
if (input == "1")
{
foreach (Song song in SongList)
{
Console.WriteLine(song.Name + " - " + song.Singer);
}
}
else if (input == "2")
{
Console.WriteLine("请输入搜索关键字:");
string keyword = Console.ReadLine();
List<Song> result = SearchSong(keyword);
foreach (Song song in result)
{
Console.WriteLine(song.Name + " - " + song.Singer);
}
}
else if (input == "3")
{
Console.WriteLine("请输入歌曲名称:");
string name = Console.ReadLine();
Song song = SongList.FirstOrDefault(s => s.Name == name);
if (song == null)
{
Console.WriteLine("歌曲不存在!");
}
else
{
Console.WriteLine("正在播放 " + song.Name + " - " + song.Singer);
PlaySong(song);
}
}
else if (input == "4")
{
// TODO: 查看当前播放歌曲
}
else
{
Console.WriteLine("无效的操作!");
}
}
}
```
这只是一个简单的示例,您可以根据您的需求来添加更多的功能和代码。希望对您有所帮助!