我想创建一个像这样的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 按任意键继续。
但是学生在哪里标记它没有在节目中显示
答案 0 :(得分:0)
快速检查显示两个错误:
for
条件与您的想法相反:当循环继续true
时,循环退出时为假。像for(int i=0; i>6; i++){...}
这样的循环永远不会运行,因为启动时条件为假(0不大于6)。
在C ++中声明double变量时,需要对其进行初始化;计算总和时会出现此错误(以double total_marks=0
开头)。
确实存在许多其他错误和可疑方法,但这些可能在课堂上更好地讨论......