急求编写一段简单的C++小程序!!!
编写一个可以完成以下四项功能的小程序:1.每一项功能由一个函数完成;2.程序运行后要在屏幕上显示一个菜单,通过选择菜单执行相应的功能;3.当一项功能执行完毕后,不能退出程...
编写一个可以完成以下四项功能的小程序:
1.每一项功能由一个函数完成;
2.程序运行后要在屏幕上显示一个菜单,通过选择菜单执行相应的功能;
3.当一项功能执行完毕后,不能退出程序,需要返回主菜单,只有选择菜单中的退出才可以退出程序;
输出菜单如下——可以使用子函数,也可以在主函数中实现
请选择:
1.四则运算。
2.判断素数。
3.输入10数,并进行排序,并按从小到大的顺序输出结果。
4.使用“*”符号输入菱形图案。
5.退出。
四项功能的详细——四则运算
•输入一个四则运算表达式,可以输出结果;
•例如输入5+3;
•则会输出结果8;
•然后返回主菜单。
四则运算功能详细---判断素数
•输入一个数判断是否为素数
•例如输入5后,输出是素数
•然后返回主菜单
四项功能详细——输出菱形图案
•选择输出菱形图案的功能菜单后
•输出一个由*号构成的菱形图案(小于或等于9)
•然后返回主菜单。
本人邮箱jyoujia@163.com 愿意帮忙的朋友麻烦把答案发到邮箱吧 多谢啦 (*^__^*)
还有...需要编写的程序要求格式尽量的工整。 展开
1.每一项功能由一个函数完成;
2.程序运行后要在屏幕上显示一个菜单,通过选择菜单执行相应的功能;
3.当一项功能执行完毕后,不能退出程序,需要返回主菜单,只有选择菜单中的退出才可以退出程序;
输出菜单如下——可以使用子函数,也可以在主函数中实现
请选择:
1.四则运算。
2.判断素数。
3.输入10数,并进行排序,并按从小到大的顺序输出结果。
4.使用“*”符号输入菱形图案。
5.退出。
四项功能的详细——四则运算
•输入一个四则运算表达式,可以输出结果;
•例如输入5+3;
•则会输出结果8;
•然后返回主菜单。
四则运算功能详细---判断素数
•输入一个数判断是否为素数
•例如输入5后,输出是素数
•然后返回主菜单
四项功能详细——输出菱形图案
•选择输出菱形图案的功能菜单后
•输出一个由*号构成的菱形图案(小于或等于9)
•然后返回主菜单。
本人邮箱jyoujia@163.com 愿意帮忙的朋友麻烦把答案发到邮箱吧 多谢啦 (*^__^*)
还有...需要编写的程序要求格式尽量的工整。 展开
3个回答
展开全部
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
#define OK 1
#define ERROR -1
#define LENGTH 10
int menu()
{
int i = 5;
printf("\n 【基本功能:完成以下四项功能的小程序】 \n"
" *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"
" * (1)每一项功能由一个函数完成. |\n"
" | (2)程序运行后要在屏幕上显示一个菜单,通过选择菜单执行相应的功能 *\n"
" * (3)当一项功能执行完毕后,不能退出程序,需要返回主菜单,只有选 |\n"
" | 择菜单中的退出才可以退出程序 *\n"
" * |\n"
" | 【请选择】 *\n"
" * 1.四则运算 2.判断素数 |\n"
" | 3.输入10数,并进行排序,并按从小到大的顺序输出结果 *\n"
" * 4.使用“*”符号输入菱形图案 5.退出。 |\n"
" | *\n"
" *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"
" *****************************************************************\n");
return OK;
}
/*四则运算*/
float add(float x, float y)
{
return x + y;
}
float sub(float x, float y)
{
return x - y;
}
float mul(float x, float y)
{
return x * y;
}
float div(float x, float y)
{
if(0==y)
{
cout<<" 除数为零!\n ";
exit(-1);
}
return x/y;
}
int operation()
{
float x = 0, y = 0, result = 0;
cout<<" 任意输入两个数 x , y :";
cin>>x>>y;
//相加
result = add(x, y);
cout<<" "<<x<<"+"<<y<<"="<<result<<endl;
//相减
result = sub(x,y);
cout<<" "<<x<<"-"<<y<<"="<<result<<endl;
//相乘
result = mul(x,y);
cout<<" "<<x<<"*"<<y<<"="<<result<<endl;
//相除
result = div(x,y);
cout<<" "<<x<<"/"<<y<<"="<<result;
return OK;
}
/*判断素数*/
int isPrime()
{
int n = -1, k = 0;
cout<<" 任意输入一个数字 N : ";
cin>>n;
if(n<1)
{
cout<<" "<<n<<"是非法数据!";
return ERROR;
}
k = (int)sqrt(n);
for(int i = 2; i < k; i++)
{
if(0 == n % i)
{
cout<<" "<<n<<"不是素数";
return ERROR;
}
}
cout<<" "<<n<<"是素数";
return OK;
}
/*排序*/
int Sort(int a[],int length)
{
int isNeedLoop = 1;
while(isNeedLoop)
{
isNeedLoop = 0;//假设已经是排好序的了
for(int iSuffix = 0; iSuffix < length; iSuffix++)
{
if(a[iSuffix] > a[iSuffix+1])
{//有交换,说明数据还没有排好序!!!还需要循环排序,这样做就因为:
//如果数组本来就排好序了,我只要遍历一次就可以了,
isNeedLoop = 1;
int temp = a[iSuffix];
a[iSuffix] = a[iSuffix+1];
a[iSuffix+1] = temp;
}
}
}
return OK;
}
int display(int a[], int length)
{
cout<<" 排序后的数据 :";
for(int i = 0 ;i < length; i++)
{
cout<<a[i]<<ends;
}
return OK;
}
int arraySort()
{
int array[LENGTH]={0};
cout<<" "<<"输入"<<LENGTH<<"个数据 : ";
for(int i = 0; i < LENGTH; i++)
{
cin>>array[i];
}
Sort(array,LENGTH);
display(array,LENGTH);
return OK;
}
/*画菱形*/
int graphics()
{
int i,j,k; //定义for循环中的变量 i,j,k 。num是菱形的个数。
int N; //定义菱形的宽度。
cout<<" 请输入菱形的宽度 N = ";
cin>>N;
while(N%2==0 || N < 0 || N > 9) //判断输入的菱形宽度是否为奇数,若是奇数则正确,若是偶数则错误。
{
cout<<" 输入的数据错误!"<<endl;
cout<<" 请重新输入: ";
cin>>N;
}
char c;
cout<<" 请输入构成菱形的字符(字符必须是单个的): " ;
cin>>c;
for(i=0;i<(N+1)/2;i++) //显示菱形的上半部分
{
cout<<" ";
for(j=0;j<(N+1)/2-i-1;j++) //显示空格
{
cout<<" ";
}
for(j=0;j<2*i+1;j++) //显示构成菱形的字符
{
cout<<c;
}
cout<<endl;
}
for(k=i;k<N;k++) //显示菱形的下半部分
{
cout<<" ";
for(j=0;j<k-i+1;j++) //显示空格
{
cout<<" ";
}
for(j=0;j<2*N-2*k-1;j++) //显示构成菱形的字符
{
cout<<c;
}
cout<<endl;
}
return OK;
}
int choose()
{
char ch;
do{
system("cls");
menu();
cout<<" "<<"按5(e/E)键退出.其他键[1-4]进行入...\n ";
cin>>ch;
ch=toupper(ch);
system("cls");
switch(ch){
case 'E':
case '5':
menu();
cout<<" 退出程序!\n ";
exit(1);
break;
case '1':
menu();
operation();
getch();
break;
case '2':
menu();
isPrime();
getch();
break;
case '3':
menu();
arraySort();
getch();
break;
case '4':
menu();
graphics();
getch();
break;
default:
menu();
system("cls");
menu();
cout<<" 功能键选错误,按任意键继续...";
getch();
break;
}
}while(ch!='E');
return OK;
}
int main()
{
choose();
return OK;
}
#include<conio.h>
#include<math.h>
using namespace std;
#define OK 1
#define ERROR -1
#define LENGTH 10
int menu()
{
int i = 5;
printf("\n 【基本功能:完成以下四项功能的小程序】 \n"
" *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"
" * (1)每一项功能由一个函数完成. |\n"
" | (2)程序运行后要在屏幕上显示一个菜单,通过选择菜单执行相应的功能 *\n"
" * (3)当一项功能执行完毕后,不能退出程序,需要返回主菜单,只有选 |\n"
" | 择菜单中的退出才可以退出程序 *\n"
" * |\n"
" | 【请选择】 *\n"
" * 1.四则运算 2.判断素数 |\n"
" | 3.输入10数,并进行排序,并按从小到大的顺序输出结果 *\n"
" * 4.使用“*”符号输入菱形图案 5.退出。 |\n"
" | *\n"
" *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"
" *****************************************************************\n");
return OK;
}
/*四则运算*/
float add(float x, float y)
{
return x + y;
}
float sub(float x, float y)
{
return x - y;
}
float mul(float x, float y)
{
return x * y;
}
float div(float x, float y)
{
if(0==y)
{
cout<<" 除数为零!\n ";
exit(-1);
}
return x/y;
}
int operation()
{
float x = 0, y = 0, result = 0;
cout<<" 任意输入两个数 x , y :";
cin>>x>>y;
//相加
result = add(x, y);
cout<<" "<<x<<"+"<<y<<"="<<result<<endl;
//相减
result = sub(x,y);
cout<<" "<<x<<"-"<<y<<"="<<result<<endl;
//相乘
result = mul(x,y);
cout<<" "<<x<<"*"<<y<<"="<<result<<endl;
//相除
result = div(x,y);
cout<<" "<<x<<"/"<<y<<"="<<result;
return OK;
}
/*判断素数*/
int isPrime()
{
int n = -1, k = 0;
cout<<" 任意输入一个数字 N : ";
cin>>n;
if(n<1)
{
cout<<" "<<n<<"是非法数据!";
return ERROR;
}
k = (int)sqrt(n);
for(int i = 2; i < k; i++)
{
if(0 == n % i)
{
cout<<" "<<n<<"不是素数";
return ERROR;
}
}
cout<<" "<<n<<"是素数";
return OK;
}
/*排序*/
int Sort(int a[],int length)
{
int isNeedLoop = 1;
while(isNeedLoop)
{
isNeedLoop = 0;//假设已经是排好序的了
for(int iSuffix = 0; iSuffix < length; iSuffix++)
{
if(a[iSuffix] > a[iSuffix+1])
{//有交换,说明数据还没有排好序!!!还需要循环排序,这样做就因为:
//如果数组本来就排好序了,我只要遍历一次就可以了,
isNeedLoop = 1;
int temp = a[iSuffix];
a[iSuffix] = a[iSuffix+1];
a[iSuffix+1] = temp;
}
}
}
return OK;
}
int display(int a[], int length)
{
cout<<" 排序后的数据 :";
for(int i = 0 ;i < length; i++)
{
cout<<a[i]<<ends;
}
return OK;
}
int arraySort()
{
int array[LENGTH]={0};
cout<<" "<<"输入"<<LENGTH<<"个数据 : ";
for(int i = 0; i < LENGTH; i++)
{
cin>>array[i];
}
Sort(array,LENGTH);
display(array,LENGTH);
return OK;
}
/*画菱形*/
int graphics()
{
int i,j,k; //定义for循环中的变量 i,j,k 。num是菱形的个数。
int N; //定义菱形的宽度。
cout<<" 请输入菱形的宽度 N = ";
cin>>N;
while(N%2==0 || N < 0 || N > 9) //判断输入的菱形宽度是否为奇数,若是奇数则正确,若是偶数则错误。
{
cout<<" 输入的数据错误!"<<endl;
cout<<" 请重新输入: ";
cin>>N;
}
char c;
cout<<" 请输入构成菱形的字符(字符必须是单个的): " ;
cin>>c;
for(i=0;i<(N+1)/2;i++) //显示菱形的上半部分
{
cout<<" ";
for(j=0;j<(N+1)/2-i-1;j++) //显示空格
{
cout<<" ";
}
for(j=0;j<2*i+1;j++) //显示构成菱形的字符
{
cout<<c;
}
cout<<endl;
}
for(k=i;k<N;k++) //显示菱形的下半部分
{
cout<<" ";
for(j=0;j<k-i+1;j++) //显示空格
{
cout<<" ";
}
for(j=0;j<2*N-2*k-1;j++) //显示构成菱形的字符
{
cout<<c;
}
cout<<endl;
}
return OK;
}
int choose()
{
char ch;
do{
system("cls");
menu();
cout<<" "<<"按5(e/E)键退出.其他键[1-4]进行入...\n ";
cin>>ch;
ch=toupper(ch);
system("cls");
switch(ch){
case 'E':
case '5':
menu();
cout<<" 退出程序!\n ";
exit(1);
break;
case '1':
menu();
operation();
getch();
break;
case '2':
menu();
isPrime();
getch();
break;
case '3':
menu();
arraySort();
getch();
break;
case '4':
menu();
graphics();
getch();
break;
default:
menu();
system("cls");
menu();
cout<<" 功能键选错误,按任意键继续...";
getch();
break;
}
}while(ch!='E');
return OK;
}
int main()
{
choose();
return OK;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询