什么叫程序合唱歌曲?
程序合唱歌曲是指由一组计算机程序来演唱歌曲,这些程序可以模拟人声,也可以使用合成器来演奏乐器,以及使用编曲软件来创作歌曲的编曲。
#include<iostream>#include <iomanip>
#include <stdio.h>
#include<stdlib.h>
using namespace std
// 不好意思,少贴了一部分代码
#define N 100
typedef struct song { /*歌曲信息结构类型*/
int No /*编号*/
char song_name[32] /*歌曲名称*/
char name[16] /*歌手姓名*/
int num /*票数*/
} SONG
void displayMenu()
int choiceItem()
int input(SONG s[ ])
void browse(SONG s[ ], int n)
void Top10(SONG s[ ], int n)
void vote(SONG s[ ], int n)
int main()
{
SONG a[N] /*存放参与排行榜歌曲信息*/
int n, choice
do{
choice = choiceItem() /*获取菜单选择*/
switch (choice) {
case 1: n = input(a) break
case 2: browse(a, n) break
case 3: Top10(a, n) break
case 4: vote(a, n) break
}
} while (choice!=0)
cout<<endl <<"Bye!!" << endl
return 0
}
void displayMenu() /*显示菜单*/
{
cout <<endl<< ("============ Menu ============") <<endl
cout << (" 1..........录入歌曲") << endl
cout << (" 2..........浏览歌曲") <<endl
cout<< (" 3..........打印Top10")<<endl
cout<< (" 4..........投票\n")<<endl
cout<< (" 0..........退出 ")<<endl
cout<< ("Choice:")<<endl
}
int choiceItem() /*选择菜单项*/
{
int choice
char line[80]
do{
displayMenu()
gets(line)
choice = atoi(line)
} while (choice<0 || choice>4)
return choice
}
int input(SONG s[ ]) /*输入歌曲信息*/
{
char buf[256]
int i = 0
while ( 1 )
{
printf("\nPlease Input No Song_Name Singer_Name \n")
gets(buf) /*读入行*/
if (buf[0] == '\0') break /*空行*/
sscanf( buf, "%d%s%s", &s[i].No, s[i].song_name, s[i].name) /*分解数据*/
s[i++].num = 1
}
return i
}
void browse(SONG s[ ], int n) /*浏览歌曲信息*/
{
int i
cout << (" Num\tSong_Name\tSinger_Name") << endl
for (i=0 i<n i++)
cout <<s[i].No<< setw(10) << s[i].song_name<< setw(10) << s[i].name
}
void Top10(SONG s[ ], int n) /*排序*/
{
int i = 0, j = 0, k = 0
SONG temp[N], t
for (i=0 i<N i++) /*复制*/
temp[i] = s[i]
for (i=0 i<n-1 i++) /*选择排序*/
{
k = i
for (j=j+1 j<n j++)
if (temp[k].num<temp[j].num) k = j
if (k!=i)
{
t = temp[i]
temp[i] = temp[k]
temp[k] = t
}
}
cout << ("Song_Name\tSinger_Name") << endl
for (i=0 i<10 && i<n i++) /*输出前10名*/
cout<< setw(10) << temp[i].song_name << setw(10) <<temp[i].name
}
void vote(SONG s[ ], int n) /*投票*/
{
int i
char buf[80]
cout << ("Enter song'No :")<<endl /*输入歌曲编号*/
gets(buf)
for (i=0 i<n i++) /*查找相应歌曲并累加票数*/
if (s[i].No==atoi(buf))
{
s[i].num++
cout<<("Vote OK") <<endl
break
}
if (i==n)
cout<<("Error No.") <<endl
}
运行结果:
欢迎采纳!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)