Problem E: 点歌单
Problem E: 点歌单
Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 202 Solved: 99
[Submit][Status][Web Board]
Description
Input
Output
见样例。
Sample Input
3
Tom 4 1 ChangJiu 2 DuanZan 3 Main 1 Object
Jack 1 1 Output
Mary 2 1 Input 3 GCC
Tom DuanZan
Jack Input
Mary GCC
CUI BIGDATA
Sample Output
In beginning, there are 0 singers, and 0 songs.
LiuHuan sings XiongDi in popular style.
LiuHuan sings SanGuo in folk style.
LiuHuan sings SongBie in Bel Canto style.
LiuHuan doesn't sing MeiYou.
Tom : ChangJiu DuanZan Main Object
Jack : Output
Mary : Input GCC
Now, there are 4 singers, and 10 songs. Including 5 pop songs, 2 folk songs, and 3 Bel Canto songs.
Tom sings DuanZan in folk style.
Jack doesn't sing Input.
Mary sings GCC in Bel Canto style.
Singer CUI doesn't exist.
HINT
Append Code
int main()
{cout<<"In beginning, there are ";cout<<Singer::getCntOfSingers()<<" singers, and ";cout<<Song::getCntOfSongs()<<" songs."<<endl;Singer liuh("LiuHuan");liuh.addASong("XiongDi", 1);liuh.addASong("SanGuo", 2);liuh.addASong("SongBie", 3);liuh.singASong("XiongDi");liuh.singASong("SanGuo");liuh.singASong("SongBie");liuh.singASong("MeiYou");SingerList lst;string s1, s2;cin>>lst;cout<<lst;cout<<"Now, there are ";cout<<Singer::getCntOfSingers()<<" singers, and ";cout<<Song::getCntOfSongs()<<" songs. Including ";cout<<Pop::getCntOfPops()<<" pop songs, ";cout<<Folk::getCntOfFolks()<<" folk songs, and ";cout<<Bel::getCntOfBels()<<" Bel Canto songs."<<endl;while(cin>>s1>>s2){lst.Choose(s1, s2);}return 0;
}
#include <bits/stdc++.h>
using namespace std;
class Song
{
public :string nameSong;static int numSongs;Song(string arr):nameSong(arr){numSongs++;}static int getCntOfSongs(){return numSongs;}virtual string gettype_() = 0;
};
class Pop:public Song
{
public :static int numPops;Pop(string arr):Song(arr){numPops++;}static int getCntOfPops(){return numPops;}string gettype_(){string type_="popular";return type_;}
};
class Folk:public Song
{
public :static int numFolks;Folk(string arr):Song(arr){numFolks++;}static int getCntOfFolks(){return numFolks;}string gettype_(){string type_="folk";return type_;}
};
class Bel:public Song
{
public :static int numBels;Bel(string arr):Song(arr){numBels++;}static int getCntOfBels(){return numBels;}string gettype_(){string type_="Bel Canto";return type_;}};
int Song::numSongs=0;
int Pop::numPops=0;
int Folk::numFolks=0;
int Bel::numBels=0;
class Singer
{
public :string nameSinger;static int numSingers;vector<Song*> lists;//定义的是指针向量,调用每个单元的具体内容时必须用 ”->“ Song *S;//通过定义指针可以方便进行初始化内容Singer(string arr):nameSinger(arr){numSingers++;}void addASong(string s, int t){if(t==1)S=new Pop(s);else if(t==2)S=new Folk(s);else if(t==3)S=new Bel(s);lists.push_back(S);//插入的必须是一个完整的类的对象。}void singASong(string arr){int t=0;for(int i=0; i<lists.size(); i++){if(lists[i]->nameSong==arr)t=i+1;}if(t!=0)cout<<nameSinger<<" sings "<<arr<<" in "<<lists[t-1]->gettype_()<<" style."<<endl;if(t==0)cout<<nameSinger<<" doesn't sing "<<arr<<"."<<endl;}static int getCntOfSingers(){return numSingers;}};
int Singer::numSingers=0;
class SingerList
{
public :vector<Singer*> Lists;friend istream &operator>>(istream &is, SingerList &p){int N; cin>>N;for(int i=0; i<N; i++){Singer *singer;string names;int num;cin>>names>>num;singer=new Singer(names);//定义歌手名for(int j=0; j<num; j++){string songname; int type_s;cin>>type_s>>songname;singer->addASong(songname, type_s);//添加歌手的歌曲列表}p.Lists.push_back(singer);//将初始化好的歌手添加到向量表中去。}return is;}friend ostream &operator<<(ostream &os, SingerList &p){for(int i=0; i<p.Lists.size(); i++){os<<p.Lists[i]->nameSinger<<" : ";//输出歌手名for(int j=0; j<p.Lists[i]->lists.size(); j++){if(j==0)os<<p.Lists[i]->lists[j]->nameSong;//输出歌名elseos<<" "<< p.Lists[i]->lists[j]->nameSong;//输出歌名}os<<endl;}return os;}void Choose(string s1, string s2){int t1=0, i, j;for(i=0; i<Lists.size(); i++)if(s1==Lists[i]->nameSinger)t1=i+1;if(t1==0)cout<<"Singer "<<s1<<" doesn't exist."<<endl;else{int t2=0;for(j=0; j<Lists[t1-1]->lists.size(); j++)if(Lists[t1-1]->lists[j]->nameSong==s2)t2=j+1;if(t2==0)cout<<s1<<" doesn't sing "<<s2<<"."<<endl;elsecout<<s1<<" sings "<<s2<<" in "<<Lists[t1-1]->lists[t2-1]->gettype_()<<" style."<<endl;}}};
int main()
{cout<<"In beginning, there are ";cout<<Singer::getCntOfSingers()<<" singers, and ";cout<<Song::getCntOfSongs()<<" songs."<<endl;Singer liuh("LiuHuan");liuh.addASong("XiongDi", 1);liuh.addASong("SanGuo", 2);liuh.addASong("SongBie", 3);liuh.singASong("XiongDi");liuh.singASong("SanGuo");liuh.singASong("SongBie");liuh.singASong("MeiYou");SingerList lst;string s1, s2;cin>>lst;cout<<lst;cout<<"Now, there are ";cout<<Singer::getCntOfSingers()<<" singers, and ";cout<<Song::getCntOfSongs()<<" songs. Including ";cout<<Pop::getCntOfPops()<<" pop songs, ";cout<<Folk::getCntOfFolks()<<" folk songs, and ";cout<<Bel::getCntOfBels()<<" Bel Canto songs."<<endl;while(cin>>s1>>s2){lst.Choose(s1, s2);}return 0;
}
转载于:https://www.cnblogs.com/Jie-Fei/p/9113301.html
Problem E: 点歌单相关推荐
- Problem G: 点歌单
Problem G: 点歌单 Description Yang要下海创业,开一家量贩式KTV.现在需要你来帮他编写一个C++程序来实现点歌的功能.至少需要定义如下类及其成员: Song类:歌曲类,具有 ...
- say小组KTV点歌系统简介
指导老师:穆老师 班主任:佟老师 小组成员: 组长:焦文宇 组员:窦倩 王晓凤 巩固 石虹蔓 田锋 目录: 1.首页 2.项目前台 3..项目后台 总结: 从5月25号开始的到6月10号结束, ...
- 零云九歌小组KTV点歌系统简介
指导老师:穆老师 班主任:佟老师 小组成员: 组长:张炜林 副组长:李钰 组员:郑宪佳 宋翔 李兆勋 杜庆霖 零云九歌 目录: 1.首页 2.项目前台 3..项目后台 总结: 本次KTV项目总结. ...
- 亦云小组KTV点歌系统简介
20级青鸟四班 亦云小组 指导老师:穆老师 班主任:佟老师 小组成员: 组长:靳天宇 组员:王晓丹 谢佳泽 王睿志 蒲璐颖 张铨政 目录: 1.首页 2.项目前台 3..项目后台 总结: 本次KT ...
- 点滴小组KTV点歌系统简介
20级青鸟四班 点滴小组 指导老师:穆老师 班主任:佟老师 小组成员: 组长:路鑫 副组长:戴洁 王硕 组员:马蓥芳 组员:徐圣乾 组员:徐圣坤 组员:赵昌杰 制作周期:2021年5月25日 ...
- 凌云KTV点歌系统功能简介
19级青鸟三班 凌云小组 指导老师:穆雄雄老师 班主任:王欣欣老师 小组成员: 组长:李磊 副组长:杨云浩 组员:高启航 朱齐 李欣然 高松 张方仪 王浩如 苏荟旭 贾增伟 制作周期:2020 ...
- 【研究报告】从单目深度估计到单目三维场景重建-沈春华老师-VALSE Webinar 22-13(总第279期)
从单目深度估计到单目三维场景重建-沈春华老师-VALSE Webinar 22-13(总第279期) 报告总结 & 相关论文 论文代码 相关术语 前言 研究问题 单目深度估计 单目三维场景重建 ...
- PLEASE小组KTV点歌系统简要说明
PLEASE小组KTV项目 指导老师:穆老师 班主任:佟老师 小组成员: 组长:徐祥 副组长:孟祥帅 组员:董经纬 组员:孙晓文 周航 组员:徐龙一 张远远 制作周期:2021年6 ...
- 使用Puppeteer轻松爬取网易云音乐、QQ音乐的精品歌单
背景 最近在学习Puppeteer进行自动化操作,另一方面为了防止上班时间被打扰,是时候爬点歌单在上班的时候,用来抵抗外界的干扰了. 地址 项目完整代码地址:github.com/BingKui/We ...
最新文章
- eplan文本怎么换行_EPLAN几个使用的小技巧,非常有用
- 垃圾代码评析——关于《C程序设计伴侣》9.4——链表(四)
- ffmpeg抓取rtsp流并保存_详细解析RTSP框架和数据包分析(1)
- DMA(direct memory access)控制方式
- java jpms_JDK9的新特性:JPMS模块化
- 本周leetcode刷题总结!(二叉树)
- jupyter notebook python插件_Python文学化编程-Jupyter notebook使用和插件拓展
- 一步步学习SPD2010--附录B--创建新的批准流程
- shp格式详解(一)
- Java实现俄罗斯方块游戏(简单版)
- FPGA实现的线性反馈移位寄存器LFSR
- 高级操作系统——XV6内存管理
- 日本著名数学游戏专家中村义作教授提出这样一个问题:将2520个桔子分给六个儿子
- inno setup 卸载注册表_Inno Setup Compiler卸载时删除注册表
- Python Computer Vision Programming学习笔记(二)——基本的图像操作与处理
- 如何判断一个数是不是整数
- 【网络通信】WSAStartup()函数,MAKEWORD的使用
- PostgreSQL COALESCE 和 NULLIF 函数
- python个人所得税怎么写分录_个人所得税的凭证分录怎么写
- Oracle数据库cmd命令基本命令
热门文章
- CCPC2018 吉林站 C.JUSTICE(思路+分数结构体加法)
- cronsun smtp 代发邮件 配置
- 【正则表达式高级day01】正则表达式概述+在一个文件中,查找出itcast开头的语句+在一个文件中,找到含有itcast的语句+在一个文件中,找到邮箱为163或者126的所有邮件地址
- 3D人体和手势运动估计
- VS2013密钥-所有版本
- 三星SDI推出电池品牌PRiMX
- Java Ambiguous mapping. Cannot map ‘xxx‘ method问题解决
- 在Linux下使用“360随身WiFi 2”
- 《数字经济全景白皮书》中国银行业场景金融生态建设分析2022 发布
- 408数据结构学习笔记——外部排序