哪位大哥大姐帮忙做3道C++题目,感激不尽:

(1)十进位制数转换二、八和十六进制数程序。要求:
a. 编写一个函数实现十进制数转换其它进制数;
b. 在主函数中给十进制数和转换的进位制,输出转换结果。
(2) 定义一个圆类,计算圆的面积和周长。要求:分别用成员函数和友元函数来求圆的面积和周长。
(3) 定义一个学生类,其中有3个数据成员有学号、姓名、年龄,以及若干成员函数。同时编写主函数使用这个类,实现对学生数据的赋值和输出。要求:
a) 使用成员函数实现对输出的输入、输出;
b) 使用构造函数和析构函数实现对数据的输入、输出。

我今天上午给你写了一个你要的程序,是用函数实现的,很简洁,随时可以调用。
以下是程序清单:

#include<stdio.h>

void er2(int num);
void er8(int num);
void er16(int num);
void main()
{
int a,num;
do
{
printf("\n0、退出 1、十进制~二进制 2、十进制~八进制 3、十进制~十六进制\n请选择功能:");
scanf("%d",&a);
if(a!=0)
{
printf("请输入一个进制整数:");
scanf("%d",&num);
switch(a)
{
case 1:
er2(num);
break;
case 2:
er8(num);
break;
case 3:
er16(num);
break;
}
}
}while(a!=0);
}

void er2(int num)
{
int count=0,p[20],temp[20],i = 0,a = 0;
while(num!=0)
{
p[count]=num%2;
num=num/2;
count++;
a=count;
}
printf("转换为二进制:");
for(count=a-1;count>=0;count--)
temp[i++] = p[count];

for(count=0;count<a;count++)
printf("%d",temp[count]);
printf("\n");
for(count=a-1;count>=0;count--)
printf("%d",p[count]);
}

void er16(int num)
{
int count=0,p[5],temp[5],i = 0,a = 0;
int data;
while(num!=0)
{
p[count]=num%16;
num=num/16;
count++;
a=count;
}
printf("转换为十六进制:");
//排列次序为正向次序
for(count=a-1;count>=0;count--)
temp[i++] = p[count];
//输出转换结果
for(count=0;count<a;count++)
printf("%d",temp[count]);
printf("\n");
//验证排序后的转换结果
for(count=a-1;count>=0;count--)
printf("%d",p[count]);
printf("\n Result:");
// 做成一个变量存储转换结果
switch(a)
{
case 2:
data = temp[a-2]*10+temp[a-1];
break;
case 3:
data = temp[a-3]*100+temp[a-2]*10+temp[a-1];
break;
}
//输出转换的最后结果
printf("%d",data);
}

void er8(int num)
{
int count=0,p[5],temp[5],i = 0,a = 0;
int data;
while(num!=0)
{
p[count]=num%8;
num=num/8;
count++;
a=count;
}
printf("转换为八进制:");
//排列次序为正向次序
for(count=a-1;count>=0;count--)
temp[i++] = p[count];
//输出转换结果
for(count=0;count<a;count++)
printf("%d",temp[count]);
printf("\n");
//验证排序后的转换结果
for(count=a-1;count>=0;count--)
printf("%d",p[count]);
printf("\n Result:");
// 做成一个变量存储转换结果
switch(a)
{
case 2:
data = temp[a-2]*10+temp[a-1];
break;
case 3:
data = temp[a-3]*100+temp[a-2]*10+temp[a-1];
break;
}
//输出转换的最后结果
printf("%d",data);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-01-05
同志,C++只会看,不会写
相似回答