如何在c ++中创建考试评分程序?

时间:2016-03-23 16:06:50

标签: c++ compiler-errors functional-programming

我尝试帮助朋友完成考试,用C ++创建这个考试评分程序,但所有尝试都无法编译这个程序。你能帮助我吗? 每次尝试总是会出现“致命错误”和“没有这样的文件或目录 编译终止。“到目前为止,我们尝试使用在线编译器进行编译。

# include <stdio.h>
# include <iostream.h>
# include <conio.h>

main()
{
   char nama[20],*Grade;
   float nk,nt,nu,nmk,nmt,nmu,na;
   cout<<"Program Hitung Nilai Akhir Siswa"<<endl<<endl;
   cout<<"   Masukkan Nama Siswa : ";gets(nama);
   cout<<"   Nilai Keaktifan     : ";cin>>nk;
   cout<<"   Nilai Tugas         : ";cin>>nt;
   cout<<"   Nilai Ujian         : ";cin>>nu;
   nmk=nk*0.2;
   nmt=nt*0.3;
   nmu=nu*0.5;
   na=nmk+nmt+nmu;
   if(na>=80)a
   {
      Grade="A";
   }
   else if(na>=90)
   {
      Grade="B";
   }
   else if(na>=80)
   {
      Grade="C";
   }
   else if(na>=70)
   {
      Grade="D";
   }
   else
   {
      Grade="E";
   }
   cout<<endl;
   cout<<"     Siswa Yang Bernama "<<nama<<endl;
   cout<<"     Dengan nilai presentase yang dihasilkan"<<endl;
   cout<<"     Nilai Murni Keaktifan x 20%    : "<<nmk<<endl;
   cout<<"     Nilai Murni Tugas     x 30%    : "<<nmt<<endl;
   cout<<"     Nilai Murni Ujian     x 50%    : "<<nmu<<endl;
   cout<<"     Memperoleh Nilai Akhir Sebesar : "<<na<<endl;
   cout<<"     Grade yang di dapat            : "<<Grade<<endl;
   getch();
}

1 个答案:

答案 0 :(得分:2)

大多数在线编译器都使用最新的C ++标准。他们很可能不支持旧式C ++程序。

你可以改变的事情......

#include

而不是

 # include <stdio.h>
 # include <iostream.h>

使用

 # include <cstdio>
 # include <iostream>

请勿使用非标准标题

删除

 # include <conio.h>

cincout位于std名称空间

cin更改std::cin的所有用法,cout更改std::cout的所有用法。您也可以使用

using namespace std;

避免使用std::cinstd::cout。但是,不要在任何地方使用此机制,以避免必须键入其他std::

请勿使用gets

使用gets是已知的安全漏洞来源。不要使用它。 将其用量替换为fgets

而不是

   cout<<"   Masukkan Nama Siswa : ";gets(nama);

你可以使用

   cout<<"   Masukkan Nama Siswa : ";
   fgets(nama, sizeof(nama), stdin);

然而,这并不好,因为您正在混合使用stdincin来获取用户输入。要么坚持使用stdio.h中的函数,要么使用cin来获取用户输入。您可以使用:

   cout<<"   Masukkan Nama Siswa : ";
   cin.get(nama, sizeof(nama));

使用std::string代替char*来保存字符串

更改

   char nama[20],*Grade;

   char nama[20];
   std::string Grade;

请勿使用非标准功能

删除行

   getch();