Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  sourcecode
Language: C/C++
Code:


#include<iostream>

#include<fstream>

#include<conio.h>

#include<string.h>

using namespace std;

class report {

  int admno;

  char name[30];

  char fname[30];

  int std;

  char section;

  int phy;

  int chem;

  int math;

  int comp;

  int eng;

  int total;

  float per;

  char grade[3];

  public:

    void main_menu();

  void search_menu();

  void report_menu();

  void read_data();

  void calculate();

  void disp_data();

  void add_record();

  void del_record();

  void modify_record();

  void search_name();

  void search_admno();

  void search_class();

  void single_report_card();

  void report_single();

  void report_class();

  void report_school();

};

void report::main_menu() {

  int ch;

  do {

    system("cls");

    cout << "\n\n\n\t\tREPORT CARD MENU:\n\n";

    cout << "\n\n\t\t1. Add New Student ";

    cout << "\n\n\t\t2. Delete  Student";

    cout << "\n\n\t\t3. Modify student";

    cout << "\n\n\t\t4. Search Menu";

    cout << "\n\n\t\t5. Report Menu ";

    cout << "\n\n\t\t6. Exit ";

    cout << "\n\n\t\t   Enter your choice (1-6) : ";

    cin >> ch;

    switch (ch) {

    case 1:

      add_record();

      break;

    case 2:

      del_record();

      break;

    case 3:

      modify_record();

      break;

    case 4:

      search_menu();

      break;

    case 5:

      report_menu();

      break;

    case 6:

      break;

    default:

      cout << "\n Invalid Choice.";

      break;

    }

  } while (ch <= 6);

  return;

}

void report::report_menu() {

  int ch;

  do {

    system("cls");

    cout << "\n\n\n\t\tREPORT MENU\n\n";

    cout << "\n\n\t\t1. Single Student";

    cout << "\n\n\t\t2. Single class";

    cout << "\n\n\t\t3. Whole School";

    cout << "\n\n\t\t4. Exit ";

    cout << "\n\n\t\t   Enter your choice (1-4) : ";

    cin >> ch;

    switch (ch) {

    case 1:

      report_single();

      break;

    case 2:

      report_class();

      break;

    case 3:

      report_school();

      break;

    case 4:

      break;

    default:

      cout << "\n Invalid Choice";

    }

  } while (ch <= 4);

  return;

}

void report::search_menu() {

  int ch;

  do {

    system("cls");

    cout << "\n\n\n\t\t SEARCH MENU\n\n";

    cout << "\n\n\t\t1. Admno Student";

    cout << "\n\n\t\t2. Student Name";

    cout << "\n\n\t\t3. Class wise";

    cout << "\n\n\t\t4. Exit ";

    cout << "\n\n\n\n\t\t   Enter your choice (1..4) : ";

    cin >> ch;

    switch (ch) {

    case 1:

      search_admno();

      getch();

      break;

    case 2:

      search_name();

      getch();

      break;

    case 3:

      search_class();

      getch();

      break;

    case 4:

      break;

    default:

      cout << "\n Invalid Choice.";

    }

  } while (ch <= 4);

  return;

}

void report::read_data() {

  system("cls");

  cout << "\n Enter Admission No :";

  cin >> admno;

  cout << "\n Enter Name : ";

  cin >> name;

  cout << "\n Enter Father Name : ";

  cin >> fname;

  cout << "\n Enter class : ";

  cin >> std;

  cout << "\n Enter Section :";

  cin >> section;

  cout << "\n Enter marks obtained in Physics : ";

  cin >> phy;

  cout << "\n Enter marks obtained in Chemistry : ";

  cin >> chem;

  cout << "\n Enter marks obtained in Maths  : ";

  cin >> math;

  cout << "\n Enter marks obtained in Computer : ";

  cin >> comp;

  cout << "\n enter marks obtained in English : ";

  cin >> eng;

  return;

}

void report::calculate() {

  total = phy + chem + math + comp + eng;

  per = total / 5.0;

  if (per >= 95)

    strcpy(grade, "A+");

  else if (per < 95 && per >= 90)

    strcpy(grade, "A");

  else if (per < 90 && per >= 80)

    strcpy(grade, "B+");

  else if (per < 80 && per >= 70)

    strcpy(grade, "B");

  else if (per < 70 && per >= 60)

    strcpy(grade, "C+");

  else if (per < 60)

    strcpy(grade, "C");

  return;

}

void report::disp_data() {

  cout << "\n Student Information";

  cout << "\n Admno               : " << admno;

  cout << "\n Student Name        : " << name;

  cout << "\n Father Name         : " << fname;

  cout << "\n Class & Section     : " << std << "-" << section;

  cout << "\n Physics             : " << phy;

  cout << "\n Chemistry           : " << chem;

  cout << "\n Maths               : " << math;

  cout << "\n Computer            : " << comp;

  cout << "\n English             : " << eng;

  cout << "\n Total Marks         : " << total;

  cout << "\n Percentage          : " << per;

  cout << "\n Grade               : " << grade;

  return;

}

void report::add_record() {

  ofstream fout;

  fout.open("report.dat", ios::app);

  read_data();

  calculate();

  fout.write((char * ) this, sizeof(report));

  fout.close();

}

void report::search_name() {

  ifstream fin;

  fin.open("report.dat");

  char tname[30];

  int flag = 0;

  system("cls");

  cout << "\n Enter Name to search :";

  cin >> tname;

  while (fin.read((char * ) this, sizeof(report))) {

    int tp = strcmp(tname, name);

    if (tp == 0) {

      system("cls");

      disp_data();

      flag = 1;

    }

  }

  fin.close();

  if (flag == 0) {

    cout << tname << "was not found in the records.";

  }

  return;

}

void report::search_class() {

  ifstream fin;

  fin.open("report.dat");

  char tsect;

  int tstd;

  int flag;

  system("cls");

  cout << "\n Enter student Class to search :";

  cin >> tstd;

  cout << "\n Enter student section to search :";

  cin >> tsect;

  system("cls");

  while (fin.read((char * ) this, sizeof(report))) {

    if (tsect == section && tstd == std) {

      disp_data();

      flag = 1;

    }

  }

  fin.close();

  if (flag == 0)

    cout << "\n\n Information not available.";

  return;

}

void report::search_admno() {

  ifstream fin;

  fin.open("report.dat");

  int tadmno;

  int flag = 0;

  system("cls");

  cout << "\n Enter Admission Number to search : ";

  cin >> tadmno;

  while (fin.read((char * ) this, sizeof(report))) {

    if (tadmno == admno) {

      system("cls");

      disp_data();

      flag = 1;

    }

  }

  fin.close();

  if (flag == 0)

    cout << "\n\n Information not available.";

  return;

}

void report::single_report_card() {

  system("cls");

  cout << "\n\t\t R.N Podar";

  cout << "\n\t\t Session : 2012-13";

  cout << "\n\n Admno :" << admno;

  cout << "\n\n Name  :" << name << "\t\t Father Name :" << fname << "\t\t class :" << std << "-" << section;

  cout << "\n Subject\tMax Mark\tMin Mark\t Marks Obtained";

  cout << "\n Physics\t100\t\t33\t\t\t" << phy;

  cout << "\n\n Chemistry\t100\t\t33\t\t\t" << chem;

  cout << "\n\n Maths\t\t100\t\t33\t\t\t" << math;

  cout << "\n\n Computer\t100\t\t33\t\t\t" << comp;

  cout << "\n\n English\t100\t\t33\t\t\t" << eng;

  cout << "\n Total Marks :\t\t" << total << "\t\tPercentage : " << per << "\tGrade :" << grade;

  return;

}

void report::report_single() {

  int tadmno;

  int flag = 0;

  ifstream fin;

  fin.open("report.dat", ios::binary);

  system("cls");

  cout << "\n Enter admission No : ";

  cin >> tadmno;

  while (fin.read((char * ) this, sizeof(report))) {

    if (tadmno == admno)

      single_report_card();

    else

      flag = 1;

  }

  fin.close();

  if (flag == 0)

    cout << "\n\n Information not available.";

  getch();

  return;

}

void report::report_class() {

  int tstd;

  char tsect;

  ifstream fin;

  fin.open("report.dat");

  system("cls");

  cout << "n\n Enter Class (1-12)  :";

  cin >> tstd;

  cout << "\n Enter section :";

  cin >> tsect;

  system("cls");

  while (fin.read((char * ) this, sizeof(report))) {

    if (tstd == std && tsect == section) {

      single_report_card();

    }

  }

  fin.close();

  getch();

  return;

}

void report::report_school() {

  int tstd;

  char tsect;

  int no = 0;

  int row;

  ifstream fin;

  fin.open("report.dat");

  system("cls");

  cout << "\n\t\tR.N Podar";

  cout << "\n\t\t Class :" << tstd << "-" << tsect << "\t\t Session : 2019-20" << endl;

  cout << "-------------------------------------------------------------------------------" << endl;

  cout << "Admno\tName\tFname\t Phy \t Chem\t Math \t Comp \t Eng \t Total \t per\n";

  cout << "-------------------------------------------------------------------------------" << endl;

  while (fin.read((char * ) this, sizeof(report))) {

    row = row + 1;

    no++;

    if (row >= 30) {

      cout << "\n\n  Press any key to continue ................";

      getch();

      cout << "\n\t\t R.N Podar School";

      cout << "\n\t\t Class :" << tstd << "-" << tsect << "\t\t Session : 2019-20" << endl;

      cout << "Admno\tName\tFname\t Phy \t Chem\t Math \t Comp \t Eng \t Total \t per\n";

      row = 6;

    }

    cout << admno << "\t" << name << "\t" << fname << "\t" << phy << "\t" << chem << "\t" << math << "\t" << comp << "\t" << eng << "\t" << total << "\t" << per << endl;

  }

  fin.close();

  cout << "-------------------------------------------------------------------------------" << endl;

  cout << "\n Total Student : " << no;

  getch();

  return;

}

void report::del_record() {

  ifstream fin;

  ofstream fout;

  int tadmno;

  int flag = 0;

  system("cls");

  cout << "\n Enter admno to delete :";

  cin >> tadmno;

  fin.open("report.dat", ios::binary);

  fout.open("temp.dat");

  while (fin.read((char * ) this, sizeof(report))) {

    if (tadmno != admno)

      fout.write((char * ) this, sizeof(report));

    else

      flag = 1;

  }

  fin.close();

  fout.close();

  remove("report.dat");

  rename("temp.dat", "report.dat");

  if (flag == 1)

    cout << "\n\n Record Successfully removed ";

  else

    cout << "\n Information not available";

  getch();

  return;

}

void report::modify_record() {

  ifstream fin;

  ofstream fout;

  int tadmno;

  int flag = 0;

  system("cls");

  cout << "\n Enter Admission number of record to Modify :";

  cin >> tadmno;

  fin.open("report.dat", ios::binary);

  fout.open("temp.dat");

  while (fin.read((char * ) this, sizeof(report))) {

    if (tadmno == admno) {

      read_data();

      calculate();

      flag = 1;

    }

    fout.write((char * ) this, sizeof(report));

  }

  fin.close();

  fout.close();

  remove("report.dat");

  rename("temp.dat", "report.dat");

  if (flag == 1)

    cout << "\n\n Record Successfully modified ";

  else

    cout << "\n Admission No :" << tadmno << " does not exist...Try again";

  getch();

  return;

}

int main() {

  report r;

  r.main_menu();

  return 0;

}



Comments: