急!求解一道C++编程题目(补充代码)!

//实验要求:
//(1)练习类模板的使用
//(2)使用向量,泛型指针,向量对象的成员函数
// back(), front(), pop_back(), push_back()
// erase(), insert().......................
#include <iostream>
#include <vector>
#include <string>
#define NUM_OF_STUDENT 5

using namespace std;
class CPerson
{
char* ID1; //身份证号
char* pName;

public:
CPerson(char *pName="Noname", char *ID1="888888888888888888");
void show();
void setInfo(char* ID1, char* pName);
};
//补充成员函数的定义
// here

template <typename T>
class CStudent:public CPerson
{
char* ID; //学号
T score;
public:
CStudent(char *pName="Noname", char *ID1="444444444444444444", char*ID="2010_0000", T score=0);
void show();
void setInfo(char *pName, char *ID1, char*ID, T score);
};

//补充成员函数的定义

//补充显示学生信息的函数print()
void print(const vector<CStudent<float> > &rstudent)
{
//补充
}

void main()
{
// 创建一个向量对象 computer_class1
vector< CStudent<float> > computer_class1(NUM_OF_STUDENT);

//补充:定义一个正向的泛型指针,指向computer_class1的第一个元素

//for循环设置学生信息

//新增一个学生

//将新的学生插入到向量中的某个位置

// 调用显示学生信息的函数print()

// 删除某个学生

// 调用显示学生信息的函数print()

}
我要的是对代码进行补充!只要符合要求程序能够执行就行!谢谢!

第1个回答  2010-11-27
你事先定义了num,然后a,b,c就已经定下来了,而且没有给num赋初值,这样的话,num的值就不是你说了算的了。

你的程序运行流程是这样的:

定义一个数叫num,值是随机数;(方便起见我们认为它是123)

它的个位数是c=3;十位数是b=2,百位数是a=1;

num从100开始试,如果等于a^3+b^3+c^3=1+8+27=36就输出。

显然这和“水仙花数”的定义是违背的。原因在于abc都被你早就定下来了,后面num变了,你的abc也应该变。

修改方法是把求个十百的三句写在循环体里面就对了。

关于问题补充:很简单,程序运行有先后,你先定义了abc并赋了值,后面并没有更改过abc的值,自然程序会认为abc是固定的。由于num是变的,所以对于每一个num,都必须算一遍它的abc,所以abc应该放在循环体里,每更新一个num,就要算一下num的个十百分别是多少,然后再验证它是不是符合条件。这是思路,你的那个思路是完全不对的。

c++编程题,求大神解答。
C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;using tri = tuple<double, int, int>; \/\/ 发生碰撞的时间和机器人编号 int main() { int n, k;cin >> n;k = n; \/\/ 剩下机器人个数 int x[n + 1], v[n + 1]; \/\/ 初始位置和速度 for (int...

一道C++编程题目,求大神帮忙,有没有简单点的算法,求程序!!答得好可以...
以上为运行结果,代码如下:\/ 思路如下:1.对于第八列,和计算完成后,不管找没找到值,寻找当前列下一行(即i+1),无需进入下一列;2.对于非第八列,有两种情况:a.和大于等于最大值10(如果矩阵中有零值存在,此处应为大于10),不满足路径条件,没必要进入下一列计算,进入当前列下一行进行计...

C++编程题,求程序代码,非常感谢!!
include <iostream>using namespace std;void main(){ int m,n; int **p; float avg = 0.0; cout<<"请输入行数和列数."<<endl; cin>>m>>n; p=new int*[m];\/\/动态申请二维数组 for (int i=0;i<m;i++) { p[i] = new int[n]; } cout...

C++编程题一道!!急~~~麻烦配上程序编辑结果截图
include<iostream> using namespace std;class Cpoint { public:Cpoint(double x=60,double y=75):px(x),py(y){};void display();void setpoint(double x,double y);private:double px;double py;};void Cpoint::display(){ cout<<px<<" "<<py<<endl;} void Cpoint::setpoint(double...

请问大家这道C++编程题怎么做?求帮忙
先将输入的数保存到数组,然后遍历数字,判断相邻数字是否相同即可 使用一个变量记录当前是否处于数字连续的状态,用于输出中括号 一个小技巧是给数组多分配一个位置并将其置为-1,方便判断数组最后一个数 C++代码和运行结果如下:输出符合样例,望采纳~附源码链接:判断连续数字 ...

c++类和对象编程题如图,补充题目
\/***Program***\/ class Time{ int h,m,s;public:Time(int hh=0, int mm=0, int ss=0){ h=hh; m=mm; s=ss; } void print(void);};\/*** End ***\/

c++编程,求大神帮忙解答
C++代码如下:include <bits\/stdc++.h> \/\/ C++万能头文件 using namespace std;int dx[4] = {-1, 1, 0, 0};int dy[4] = {0, 0, -1, 1};int n, m;char mat[3000][3000]; \/\/ 字符矩阵 int dp[3000][3000][6]; \/\/ 记忆化搜索 string s = "IAKCSP";int dfs(int x,...

c++语言编程题,要过程
candy[i]; } else if(i == NUM-1) { candy[i-1] += candy[i]; candy[0] += candy[i]; } else { candy[i-1] += candy[i]; candy[i+1]

求解C++一个编程问题
这个程序是输入ch,然后打印ch+1,即ACSII码表中ch的下一个字符 因此输入字符'A',会输出字符'B'输入字符'n',会输出字符'o'而输入空格,会输出叹号,如图ASCII码表:空格的下一位正是叹号 因此叹号不是因为输入回车,是因为输入的是空格 而代码中显示,输入换行符'\\n',输出的仍为换行 ...

c++编程问题,求大神打出代码,只要没错误,能运行,100悬赏请拿好_百度知...
return this->old; } void setOld(int old) { this->old = old; } int getNumberX() { return this->numberx; } void setNumberX(int numberx) { this->numberx = numberx; } string getJob()...

相似回答