如何在c ++中将int放在int之后

时间:2015-01-24 08:41:10

标签: c++ string

我想创建一个像这样的c ++程序

使用C ++,一个班级"学生"设计和实施存储学生ID,姓名, 40 五个不同主题的地址和标记(具有五个元素的数组)。假设 这个标记是100个。该类应该有一个构造函数,一个成员函数 标记的输入和打印学生详细信息的附加成员函数 和标记,以及总分和百分比。写主要功能 创建两个这样的学生对象并显示他们的详细信息

我想在此计划中插入学生姓名和标记,但我收到错误原因......

这是我的计划..

请提供示例解决方案

     #include <iostream>
#include<stdio.h>
using namespace std;

class student{

private:
    int id;
    char *name;
    int marks[5];
    char *address;
public:
    student();
    void input_detail();
    void display_detail();
    double total_marks();
    double percentage();

};

student::student(){
    id=0;
    name='\0';
    marks[5]=NULL;
    address='\0';

}
void student::input_detail(){
    int i=1,j=0;
    cout<<"please enter student id: "<<endl;
    cin>>id;
    cout<<"please enter student name: "<<endl;
    gets(name);
    for(i=1,j=0;i<6;i++,j++){
        cout<<"enter marks "<<i<<" subject : "<<endl;
        cin>>marks[j];
    }
    cout<<"please enter student address : "<<endl;
    gets(address);

}

double student::total_marks(){
    double total_marks;
    int i=0;
    for(i=0;i<5;i++){
        total_marks=total_marks+marks[i];
    }
    return total_marks;
}

double student::percentage(){

    double percentage;

    percentage=total_marks()/500*100;
    return percentage;

}
void student::display_detail(){
    int i=1,j=0;
    cout<<"student id: "<<id<<endl;
    cout<<"student id: "<<name<<endl;
    for(i=1,j=0;i<6;i++,j++){
        cout<<"marks "<<i<<" subject : "<<marks[j]<<endl;
    }
    cout<<"student address : "<<address<<endl;
    cout<<"student total marks : "<<total_marks()<<endl;
    cout<<"student percentage : "<<percentage()<<endl;
}

int main()
{
    student s1;
    s1.input_detail();
    s1.display_detail();
    return 0;
}

我得到了这个输出

please enter student id:
anil
please enter student name:
please enter student address :
annn
student id: 0
student id: anil
student address : annn
student total marks : 1.1331e-317
student percentage : 0

进程返回0(0x0)执行时间:19.901 s 按任意键继续。

但是学生在哪里标记它没有在节目中显示

1 个答案:

答案 0 :(得分:0)

快速检查显示两个错误:

  1. for条件与您的想法相反:当循环继续true时,循环退出时为假。像for(int i=0; i>6; i++){...}这样的循环永远不会运行,因为启动时条件为假(0不大于6)。

  2. 在C ++中声明double变量时,需要对其进行初始化;计算总和时会出现此错误(以double total_marks=0开头)。

  3. 确实存在许多其他错误和可疑方法,但这些可能在课堂上更好地讨论......