3726 - C++作业6-1:按点击率显示歌曲
连续录入n(n<=20)个歌曲清单并按照点击率由高到低的顺序显示歌曲清单的信息。如果点击率相同,则按照录入的顺序显示。
歌曲清单格式如下:
曲名
演唱者
点击率
Input
先输入歌曲个数n,然后输入n个歌曲的清单,其中曲名(不会超过50个字符)、演唱者为字符串(不会超过20个字符),点击率为整型数
Output
n个歌曲的清单(曲名、演唱者,点击率之间用英文空格隔开)
Examples
Input
6 匆匆那年 王菲 90 小苹果 筷子兄弟 100 当你老了 莫文蔚 80 最炫民族风 凤凰传奇 85 平凡之路 朴树 95 贝加尔湖畔 李健 100
Output
小苹果 筷子兄弟 100 贝加尔湖畔 李健 100 平凡之路 朴树 95 匆匆那年 王菲 90 最炫民族风 凤凰传奇 85 当你老了 莫文蔚 80
Hint
用结构体数组或对象数组实现。(需要按点击率排序,大家可以用选择排序或冒泡排序来实现。)
Solution C++
#include <iostream> #include <string> using namespace std; class music{ public: music(string s,string a,int n); void shuru(); void show(); music(); int getnum(){ return num; } private: string geshou; string gequ; int num; }; music::music(string s,string a,int n){ geshou=s; gequ=a; num=n; } void music::shuru(){ cin>>geshou; cin>>gequ; cin>>num; } void music::show(){ cout<<geshou<<" "<<gequ<<" "<<num<<endl; } music::music(){ string a; string s; int n; geshou=a; gequ=s; num=n; } int main(){ int n,i,j; music q("asff","fdsfd",76); cin>>n; music a[n]; for(i=0;i<n;i++){ a[i].shuru(); } for(i=0;i<n;i++){ for(j=i+1;j<n;j++){ if(a[i].getnum()<a[j].getnum()){ q=a[i]; a[i]=a[j]; a[j]=q; } } } for(i=0;i<n;i++){ a[i].show(); } return 0; }
Hint
用结构体数组或对象数组实现。(需要按点击率排序,大家可以用选择排序或冒泡排序来实现。)