【发布时间】:2017-06-25 05:57:09
【问题描述】:
我想接受卷号,2个科目的分数并添加分数并显示
他们,但该计划不接受超过 1 名学生的详细信息。
此课程不超过 40 名学生 我使用代码块 IDE 进行编程
Please see this image for output screen
请帮忙!!
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
int sum1[40];
int roll[40];
int n;
class Sb1;
class Sb2;
class Sb1
{
public:
float marks1[40];
void markssb1()
{
for(int i=0;i<n;i++)
{
cout<<"Enter Marks in subject 1 \n";
cin>>marks1[40];
}
}
friend void sum(Sb1,Sb2);
};
class Sb2
{
public:
float marks2[40];
void markssb2()
{
for(int i=0;i<n;i++)
{
cout<<"Enter Marks in subject 2 \n";
cin>>marks2[40];
}
}
friend void sum(Sb1,Sb2);
};
void sum(Sb1 obj1,Sb2 obj2)
{
for(int i=0;i<n;i++)
{
sum1[i]=obj1.marks1[i]+obj2.marks2[i];
}
}
void display()
{
cout<<"Serial Number\t\t\tRoll Number\t\t\tTotal Marks\n";
cout<<"----------------------------------------------------------------------------\n";
for(int i=0;i<n;i++)
{
cout<<i+1<<"\t\t\t\t"<<roll[i]<<"\t\t\t\t"<<sum1[i]<<endl;
}
}
int main()
{
Sb1 obj1;
Sb2 obj2;
cout<<"Enter number of students (Maximum 40 students)\n";
cin>>n;
if(n<=40)
{
for(int i=0;i<n;i++)
{
cout<<"Enter Roll Number of student "<<i+1<<endl;
cin>>roll[i];
obj1.markssb1();
obj2.markssb2();
sum(obj1,obj2);
}
display();
}
else
{
cout<<"Number of students entered exceed 40\n";
}
return 0;
getch();
}
【问题讨论】:
-
修改其操作数的 sum 函数是糟糕的设计。按引用传递,按值返回。
-
诊断此类问题的正确工具是调试器,而不是 SO 问题。如果您是编程世界的新手,您应该阅读How to debug small programs (by Eric Lippert)。
-
@StoryTeller 感谢我是编程新手! link 非常感谢您的阅读。