排序系統的主選單及功能實現
設計一主選單,實現如下功能:
(1) 字母排序
設定輸入字母的個數,輸入字母元素後,可以按從小到大也可以按從大到小的順序排列輸出。
(2) 數字排序
設定輸入數字的個數,輸入數字元素後,可以按從小到大也可以按從大到小的順序排列輸出。並對這些陣列元素進行求和,求積。
(3) 字串排序
輸入字串,可以按從小到大也可以按從大到小的順序排列輸出。
(4) 幫助及注意
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#define N 1000
using namespace std;
void start()
{
cout<<endl<<" ============================================================"<<endl;
cout<<endl<<" | ★ ★ ★ ★ ★ ★ ★ ★ |"<<endl;
cout<<endl<<" | 歡迎您使用本系統 |"<<endl;
cout<<endl<<" | |"<<endl;
cout<<endl<<" | AUTHOR---bigbigship |"<<endl;
cout<<endl<<" ============================================================"<<endl;
}
void help()
{
cout<<endl<<" 幫助說明: "<<endl;
cout<<endl<<" 1.程式可以從大到小也可以從小到大輸出 "<<endl;
cout<<endl<<" 2.字母排序需注意字母輸入個數 "<<endl;
cout<<endl<<" 3.數字可以進行排序,求和,求積最小公倍數 "<<endl;
cout<<endl<<" 4.字串排序有字元本身排序和多個字串, "<<endl;
cout<<endl<<" 並且子啊輸入時可以任意輸入 "<<endl;
}
void menu()
{
cout<<endl<<" menu"<<endl;
cout<<endl<<" 1.字母排序"<<endl;
cout<<endl<<" 2.數字排序"<<endl;
cout<<endl<<" 3.字串排序"<<endl;
cout<<endl<<" 4.幫助及注意"<<endl;
cout<<endl<<" 5.退出"<<endl;
cout<<" Please input your order: ";
}
char a[N];
int b[N];
bool cmp1(int a,int b)
{
return a>b;
}
void sortchar()
{
char x;
int n;
cout<<" K.從小到大排序"<<endl;
cout<<" L.從大到小排序"<<endl;
cout<<" 請輸入您要排的順序: ";
cin>>x;
cout<<endl<<" 請輸入您要排的字元的個數: ";
cin>>n;
cout<<endl<<" 請輸入您要排的字元: ";
for(int i=0;i<n;i++)
cin>>a[i];
if(x=='K'){
sort(a,a+n);
cout<<endl<<" 該字元從小到大輸出:"<<endl<<" ";
cout<<a;
}
else{
sort(a,a+n,cmp1);
cout<<endl<<" 該字元從大到小輸出:"<<endl<<" ";
cout<<a;
}
cout<<endl<<" "<<"Do you want to continue sorting?(Y/N)"<<" ";
cin>>x;
cout<<endl;
if(x=='Y')
sortchar();
else
return;
}
int gcd(int a,int b)
{
if(b)
return gcd(b,a%b);
return a;
}
int lcm(int a,int b)
{
int x=gcd(a,b);
return a*b/x;
}
void sortnum()
{
int n,d,ans;
char x;
cout<<" K.從小到大排序"<<endl;
cout<<" L.從大到小排序"<<endl;
cout<<" 請輸入您要排的順序: ";
cin>>x;
cout<<endl<<" 請輸入您要排的字元的個數: ";
cin>>n;
cout<<endl<<" 請輸入您要排的字元: ";
for(int i=0;i<n;i++)
cin>>b[i];
if(x=='K'){
sort(b,b+n);
cout<<endl<<" 該字元從小到大輸出:"<<endl<<" ";
for(int i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
}
else{
sort(b,b+n,cmp1);
cout<<endl<<" 該字元從大到小輸出:"<<endl<<" ";
for(int i=0;i<n;i++)
cout<<b[i]<<" ";
cout<<endl;
}
cout<<" 你還可以對這組數進行求和,求積,求最小公倍數"<<endl;
cout<<" n.求和 m.求積 p.求最小公倍數 q.退出"<<endl<<" ";
cin>>x;
if(x=='n'){
ans=0;
for(int i=0;i<n;i++)
ans+=b[i];
cout<<endl<<"它們的和: "<<ans<<endl;
}
if(x=='m'){
ans=1;
for(int i=0;i<n;i++)
ans*=b[i];
cout<<endl<<"它們的積: "<<ans<<endl;
}
if(x=='p'){
ans=1;
for(int i=0;i<n;i++)
ans=lcm(ans,b[i]);
cout<<endl<<" 它們的最小公倍數: "<<ans<<endl;
}
if(x=='q'){
cout<<endl<<" "<<"請問要繼續排序嗎?(Y/N)"<<" ";
cin>>x;
cout<<endl;
if(x=='Y')
sortnum();
else
return;
}
}
void sortstr()
{
char x;
int l;
cout<<" 1.字串本身排序"<<endl;
cout<<" 2.多個字串排序"<<endl<<" ";
cin>>l;
cout<<" K.從小到大排序"<<endl;
cout<<" L.從大到小排序"<<endl;
cout<<" 請輸入您要排的順序: ";
cin>>x;
if(l==1){
cout<<endl<<" 請輸入您要排的字串: ";
cin>>a;
int len=strlen(a);
if(x=='K')
sort(a,a+len);
else
sort(a,a+len,cmp1);
cout<<a<<endl;
}
else{
int num;
cout<<endl<<" 請輸入您要排的字串個數: ";
cin>>num;
cout<<endl<<" 請輸入您要排的字串: ";
if(x=='K'){
while(num--){
cin>>a;
int len=strlen(a);
sort(a,a+len);
cout<<" "<<a<<endl;
}
}
else{
while(num--){
cin>>a;
int len=strlen(a);
sort(a,a+len);
cout<<" "<<a<<endl;
}
}
}
cout<<endl<<" "<<"請問要繼續排序嗎?(Y/N)"<<" ";
cin>>x;
cout<<endl;
if(x=='Y')
sortstr();
else
return;
}
int main()
{
start();
menu();
int order;
while(cin>>order){
if(order<1||order>5){
cout<<" input error ,please input again ";
continue;
}
switch(order)
{
case 1: sortchar();break;
case 2: sortnum();break;
case 3: sortstr();break;
case 4: help();break;
case 5: return 0;
}
menu();
}
return 0;
}
程式碼無版權 可以任意修改,共同進步
相關文章
- 分散式系統選主場景分析及實現分散式
- Laravel - 選單遞迴及排序Laravel遞迴排序
- 基於etcd的選主功能實現的主備節點管理
- vue.js實現表格排序篩選功能介紹Vue.js排序
- 蜂鳥運單系統架構及實現架構
- 如何實現仿微信介面[我的+首頁聊天列表+長按選單功能+新增選單功能]
- checkbox及css實現點選下拉選單CSS
- checbox核取方塊實現radio單選框的單選功能
- 選擇排序java實現排序Java
- 直播系統原始碼,實現快速排序和歸併排序原始碼排序
- php實現 氣泡排序,插入排序,選擇排序PHP排序
- 選擇排序(python)實現排序Python
- jQuery實現簡單點選隱藏和點選顯示列表的功能jQuery
- 圖解選擇排序及演算法優化(Java實現)圖解排序演算法優化Java
- 原生js實現商品排序功能JS排序
- angualr實現滑鼠拖拽排序功能排序
- Vue.js自定義下拉選單,如何實現在下拉選單區域外點選即可關閉下拉選單的功能Vue.js
- 選擇排序和插入排序(C++實現)排序C++
- 八大排序簡單小結及c++實現排序C++
- IE9 下實現Web系統快捷方式到系統開始選單中IE9Web
- ServerSocket實現簡單的廣播系統Server
- C#--基於delegate實現不同功能的排序C#排序
- JS實現前臺表格排序功能JS排序
- 實現城市列表的排序及模糊查詢排序
- 實現後臺管理系統的操作日誌功能
- 七、排序,選擇、冒泡、希爾、歸併、快速排序實現排序
- 選擇排序的簡單理解排序
- 選單中的命令的實現
- 歸併排序與快速排序的簡明實現及對比排序
- 簡單選擇排序排序
- 用go實現簡單的氣泡排序Go排序
- 商品屬性的選擇功能的實現
- python排序演算法的實現-選擇Python排序演算法
- Java實現二元選擇排序Java排序
- OC實現選擇、插入和快速排序排序
- 巧用SQL Server(Ranking)實現view的排序功能SQLServerView排序
- 自繪選單的實現 (轉)
- 使用Vue實現後臺管理系統的動態路由以及側邊欄選單Vue路由