/******************************************************************************
Find marks of students out of 40 to 100 and as percentage
Enter admission number to see only his/her details
Added compare_admission_no() method
rakak - 21.06.2022
V 1.2.0
*******************************************************************************/
//using namespace std;
#include <iostream>
#include <fstream>
class Student
{
int admission_no;
std:: string name;
float english;
float language;
float maths;
float science;
float sst;
public :
Student( )
{
admission_no = 0 ;
name = "no name" ;
english = 0 ;
language = 0 ;
maths = 0 ;
science = 0 ;
sst = 0 ;
}
Student( int admission_no, std:: string name, float english, float language, float maths, float science, float sst)
{
this- > admission_no = admission_no;
this- > name = name;
this - > english = english;
this - > language = language;
this- > maths = maths;
this- > science = science;
this- > sst = sst;
}
void get_details( )
{
std:: cout << "Roll Number: " << admission_no << std:: endl << "Name: " << \
name << std:: endl << "English: " << english << std:: endl << "Language: " << \
language << std:: endl << "Maths: " << maths << std:: endl << "Science: " << \
science << std:: endl << "SST: " << sst << std:: endl << std:: endl ;
}
void convert_marks( )
{
admission_no;
name;
english = ( english/ 40 ) * 100 ;
language = ( language/ 40 ) * 100 ;
maths = ( maths/ 40 ) * 100 ;
science = ( science/ 40 ) * 100 ;
sst = ( sst/ 40 ) * 100 ;
}
float get_admission_no( )
{
std:: cout << "Enter admission number: " ;
std:: cin >> admission_no;
return admission_no;
}
void compare_admission_no( Student lhs, float rhs)
{
if ( lhs.admission_no == rhs) {
std:: cout << "Marks out of 40:" << std:: endl ;
lhs.get_details ( ) ;
std:: cout << std:: endl << "Marks out of 100:" << std:: endl ;
lhs.convert_marks ( ) ;
lhs.get_details ( ) ;
} else {
std:: cout << "Student is not in the database" << std:: endl ;
}
}
} ;
void file_not_exist_create( std:: string file_name) {
std:: string filename = file_name;
std:: fstream marks_file;
marks_file.open ( filename, std:: fstream :: in | std:: fstream :: out | std:: fstream :: app ) ;
// If file does not exist, Create new file
if ( ! marks_file)
{
std:: cout << "Cannot open file, file does not exist. Creating new file.." ;
marks_file.open ( filename, std:: fstream :: in | std:: fstream :: out | std:: fstream :: trunc ) ;
marks_file << std:: endl ;
marks_file.close ( ) ;
}
else
{ // use existing file - Append, Write, Work with the opened file
std:: cout << filename << " exist." << std:: endl ;
marks_file << "Appending writing and working with existing file" << std:: endl ;
marks_file.close ( ) ;
std:: cout << std:: endl ;
}
}
int main( )
{
Student s1( 1 ,"Pavithra" ,33 ,36 ,31 ,39 ,35 ) , s2( 2 ,"Abhinav" ,22 ,31 ,29 ,24 ,37 ) , s3( 3 ,"David" ,25 ,21 ,29 ,31 ,33 ) ;
Student sid, comp;
float result = sid.get_admission_no ( ) ;
comp.compare_admission_no ( s1,result) ;
comp.compare_admission_no ( s2,result) ;
comp.compare_admission_no ( s3,result) ;
file_not_exist_create( "marks.txt" ) ;
return 0 ;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpGaW5kIG1hcmtzIG9mIHN0dWRlbnRzIG91dCBvZiA0MCB0byAxMDAgYW5kIGFzIHBlcmNlbnRhZ2UKRW50ZXIgYWRtaXNzaW9uIG51bWJlciB0byBzZWUgb25seSBoaXMvaGVyIGRldGFpbHMKQWRkZWQgY29tcGFyZV9hZG1pc3Npb25fbm8oKSBtZXRob2QKcmFrYWsgLSAyMS4wNi4yMDIyClYgMS4yLjAKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCi8vdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGZzdHJlYW0+CgpjbGFzcyBTdHVkZW50CnsKCiAgICBpbnQgYWRtaXNzaW9uX25vOwogICAgc3RkOjpzdHJpbmcgbmFtZTsKICAgIGZsb2F0IGVuZ2xpc2g7CiAgICBmbG9hdCBsYW5ndWFnZTsKICAgIGZsb2F0IG1hdGhzOwogICAgZmxvYXQgc2NpZW5jZTsKICAgIGZsb2F0IHNzdDsKCnB1YmxpYzoKICAgIFN0dWRlbnQoKQogICAgewogICAgICAgIGFkbWlzc2lvbl9ubyA9IDA7CiAgICAgICAgbmFtZSA9ICJubyBuYW1lIjsKICAgICAgICBlbmdsaXNoID0gMDsKICAgICAgICBsYW5ndWFnZSA9IDA7CiAgICAgICAgbWF0aHMgPSAwOwogICAgICAgIHNjaWVuY2UgPSAwOwogICAgICAgIHNzdCA9IDA7CiAgICB9CgogICAgU3R1ZGVudChpbnQgYWRtaXNzaW9uX25vLCBzdGQ6OnN0cmluZyBuYW1lLCBmbG9hdCBlbmdsaXNoLCBmbG9hdCBsYW5ndWFnZSwgZmxvYXQgbWF0aHMsIGZsb2F0IHNjaWVuY2UsIGZsb2F0IHNzdCkKICAgIHsKICAgICAgICB0aGlzLT4gYWRtaXNzaW9uX25vID0gYWRtaXNzaW9uX25vOwogICAgICAgIHRoaXMtPiBuYW1lID0gbmFtZTsKICAgICAgICB0aGlzIC0+IGVuZ2xpc2ggPSBlbmdsaXNoOwogICAgICAgIHRoaXMgLT4gbGFuZ3VhZ2UgPSBsYW5ndWFnZTsKICAgICAgICB0aGlzLT4gbWF0aHMgPSBtYXRoczsKICAgICAgICB0aGlzLT4gc2NpZW5jZSA9IHNjaWVuY2U7CiAgICAgICAgdGhpcy0+IHNzdCA9IHNzdDsKICAgIH0KCiAgICB2b2lkIGdldF9kZXRhaWxzKCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgICJSb2xsIE51bWJlcjogIiA8PCBhZG1pc3Npb25fbm8gPDwgc3RkOjplbmRsIDw8ICJOYW1lOiAiIDw8IFwKICAgICAgICAgICAgICAgICAgbmFtZSA8PCBzdGQ6OmVuZGwgPDwgIkVuZ2xpc2g6ICIgPDwgZW5nbGlzaCA8PCBzdGQ6OmVuZGwgPDwgIkxhbmd1YWdlOiAiIDw8IFwKICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2UgPDwgc3RkOjplbmRsIDw8ICJNYXRoczogIiA8PCBtYXRocyA8PCBzdGQ6OmVuZGwgPDwgIlNjaWVuY2U6ICIgPDwgXAogICAgICAgICAgICAgICAgICBzY2llbmNlIDw8IHN0ZDo6ZW5kbCA8PCAiU1NUOiAiIDw8IHNzdCA8PCBzdGQ6OmVuZGwgPDwgc3RkOjplbmRsOwogICAgfQoKICAgIHZvaWQgY29udmVydF9tYXJrcygpCiAgICB7CiAgICAgICAgYWRtaXNzaW9uX25vOwogICAgICAgIG5hbWU7CiAgICAgICAgZW5nbGlzaCA9IChlbmdsaXNoLzQwKSoxMDA7CiAgICAgICAgbGFuZ3VhZ2UgPSAobGFuZ3VhZ2UvNDApKjEwMDsKICAgICAgICBtYXRocyA9IChtYXRocy80MCkqMTAwOwogICAgICAgIHNjaWVuY2UgPSAoc2NpZW5jZS80MCkqMTAwOwogICAgICAgIHNzdCA9IChzc3QvNDApKjEwMDsKICAgIH0KCiAgICBmbG9hdCBnZXRfYWRtaXNzaW9uX25vKCkKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkVudGVyIGFkbWlzc2lvbiBudW1iZXI6ICI7CiAgICAgICAgc3RkOjpjaW4gPj4gYWRtaXNzaW9uX25vOwoKICAgICAgICByZXR1cm4gYWRtaXNzaW9uX25vOwogICAgfQoKICAgIHZvaWQgY29tcGFyZV9hZG1pc3Npb25fbm8oU3R1ZGVudCBsaHMsIGZsb2F0IHJocykKICAgIHsKICAgICAgICBpZiAobGhzLmFkbWlzc2lvbl9ubyA9PSByaHMpIHsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJNYXJrcyBvdXQgb2YgNDA6IiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgICAgIGxocy5nZXRfZGV0YWlscygpOwogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsIDw8ICJNYXJrcyBvdXQgb2YgMTAwOiIgPDwgc3RkOjplbmRsOwogICAgICAgICAgICBsaHMuY29udmVydF9tYXJrcygpOwogICAgICAgICAgICBsaHMuZ2V0X2RldGFpbHMoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgIlN0dWRlbnQgaXMgbm90IGluIHRoZSBkYXRhYmFzZSIgPDwgc3RkOjplbmRsOwogICAgICAgIH0KICAgIH0KfTsKCnZvaWQgZmlsZV9ub3RfZXhpc3RfY3JlYXRlKHN0ZDo6c3RyaW5nIGZpbGVfbmFtZSl7CiAgICAgc3RkOjpzdHJpbmcgZmlsZW5hbWUgPSBmaWxlX25hbWU7CiAgICAgc3RkOjpmc3RyZWFtIG1hcmtzX2ZpbGU7CgogICAgIG1hcmtzX2ZpbGUub3BlbihmaWxlbmFtZSwgc3RkOjpmc3RyZWFtOjppbiB8IHN0ZDo6ZnN0cmVhbTo6b3V0IHwgc3RkOjpmc3RyZWFtOjphcHApOwoKCiAgICAgIC8vIElmIGZpbGUgZG9lcyBub3QgZXhpc3QsIENyZWF0ZSBuZXcgZmlsZQogICAgICBpZiAoIW1hcmtzX2ZpbGUpCiAgICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkNhbm5vdCBvcGVuIGZpbGUsIGZpbGUgZG9lcyBub3QgZXhpc3QuIENyZWF0aW5nIG5ldyBmaWxlLi4iOwoKICAgICAgICBtYXJrc19maWxlLm9wZW4oZmlsZW5hbWUsIHN0ZDo6ZnN0cmVhbTo6aW4gfCBzdGQ6OmZzdHJlYW06Om91dCB8IHN0ZDo6ZnN0cmVhbTo6dHJ1bmMpOwogICAgICAgIG1hcmtzX2ZpbGUgPDwgc3RkOjplbmRsOwogICAgICAgIG1hcmtzX2ZpbGUuY2xvc2UoKTsKCiAgICAgICB9CiAgICAgIGVsc2UgICAKICAgICAgeyAgICAvLyB1c2UgZXhpc3RpbmcgZmlsZSAtIEFwcGVuZCwgV3JpdGUsIFdvcmsgd2l0aCB0aGUgb3BlbmVkIGZpbGUKICAgICAgICAgc3RkOjpjb3V0IDw8IGZpbGVuYW1lIDw8ICIgZXhpc3QuIiA8PCBzdGQ6OmVuZGw7CiAgICAgCiAgICAgICAgIG1hcmtzX2ZpbGUgPDwgIkFwcGVuZGluZyB3cml0aW5nIGFuZCB3b3JraW5nIHdpdGggZXhpc3RpbmcgZmlsZSIgPDwgc3RkOjplbmRsOwogICAgICAgICBtYXJrc19maWxlLmNsb3NlKCk7CiAgICAgICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CiAgICAgIH0KfQoKCgppbnQgbWFpbigpCnsKICAgIFN0dWRlbnQgczEoMSwiUGF2aXRocmEiLDMzLDM2LDMxLDM5LDM1KSwgczIoMiwiQWJoaW5hdiIsMjIsMzEsMjksMjQsMzcpLCBzMygzLCJEYXZpZCIsMjUsMjEsMjksMzEsMzMpOwoKICAgIFN0dWRlbnQgc2lkLCBjb21wOwogICAgZmxvYXQgcmVzdWx0ID0gc2lkLmdldF9hZG1pc3Npb25fbm8oKTsKCiAgICBjb21wLmNvbXBhcmVfYWRtaXNzaW9uX25vKHMxLHJlc3VsdCk7CiAgICBjb21wLmNvbXBhcmVfYWRtaXNzaW9uX25vKHMyLHJlc3VsdCk7CiAgICBjb21wLmNvbXBhcmVfYWRtaXNzaW9uX25vKHMzLHJlc3VsdCk7CgogICAgZmlsZV9ub3RfZXhpc3RfY3JlYXRlKCJtYXJrcy50eHQiKTsKCiAgICByZXR1cm4gMDsKfQoKCgoK