Você está na página 1de 8

Question Pool

============================================
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <process.h>
#include <iostream.h>

enum Subject {math,oop,se};


enum PaperType {mid,final,quiz};

template <class T>


class List{
public :
List () { }
List (int s){
maxSize=s;
used=0;
a= new T [maxSize];
}
//~List () { delete []a;}
bool addObject(T p){
if (!isFull()){
a[used]=p;
used ++;
return true;
}
else
return false;
}
int getMaxSize() { return maxSize;}

int getUsed() { return used;}


bool setObject (int index,T p )
{ if ((index <used )&&(index>=0)){
a[index]=p;
return true;
}
else
return false;
}

bool getObject (int index,T &p )


{ if (!isEmpty()) {
if ((index <used )&&(index>=0)){
p=a[index];
return true;
}
else
return false;
}
else
return false;
}

bool isFull() { return used==maxSize;}


bool isEmpty () { return used==0;}

private :
T *a;
int maxSize;
int used;
};

class Question {
public :
Question () { }
void setNo(int n) {no=n;}
void setStmt(char *s) { strcpy(stmt,s);}
void setA(char *s) { strcpy(a,s);}
void setB(char *s) { strcpy(b,s);}
void setC(char *s) { strcpy(c,s);}
void setD(char *s) { strcpy(d,s);}
void setAns(char s) { ans=s;;}
void setSub(Subject s) {subject=s; }

int getNo() { return no;}


char* getStmt() { return stmt;}
char* getA() { return a;}
char* getB() { return b;}
char* getC() { return c;}
char* getD() { return d;}
char getAns() { return ans;}
Subject getSubject() { return subject;}

private :
int no;
char stmt[256];
char a[256];
char b[256];
char c[256];
char d[256];
char ans;
Subject subject;

};

class QuestionPool {
public :
QuestionPool() {}
QuestionPool(int s):ls(s) {}
bool addQuestion(Question p)
{ return ls.addObject(p);}
bool getQuestion(int index,Question &p)
{ return ls.getObject(index,p);}
bool setQuestion(int index,Question p)
{ return ls.setObject(index,p);}
List <Question> getSubjectQuestions(Subject s) {
List <Question> t(20);
Question q;
int i=0;
while (i<ls.getUsed()){
ls.getObject(i,q);
if (q.getSubject()==s)
t.addObject(q);
i++;
}
return t;

}
private :
List <Question> ls;
};

class Paper{
public :
Paper ():ls(20) { }

void setPaper(Subject s,PaperType t,QuestionPool p){


subject=s;
paperType=t;
ls=p.getSubjectQuestions(s);

}
void printPaper () { cout<<"Subject ="<<subject<<endl;
cout <<"Papar = "
<<paperType<<endl;
Question q;
int i=0;
while (i<ls.getUsed()){
ls.getObject(i,q);

cout<<q.getStmt()<<endl;
cout<<q.getA()<<endl;
cout<<q.getB()<<endl;
cout<<q.getC()<<endl;
cout<<q.getD()<<endl;

cout<<q.getAns()<<endl;

cout<<"......................."<<endl;
i++;
}

private:
Subject subject;
PaperType paperType;
public : List <Question>ls;

};
class StudentExam {
public :
StudentExam () { obtainedMarks=0;totalMarks=2;}
void setId(int d) { id=d;}
void setName(char *n) { strcpy(name,n);}
void setTotalMarks(int t) { totalMarks=t;}
void setObtainedMarks(int t) { obtainedMarks=t;}
int getId() { return id;}
char* getName() { return name;}
int getTotalMarks() { return totalMarks;}
int getObtainedMarks() { return obtainedMarks;}
void takeExam(Paper p) {
system("cls");
cout<<" Hello Mr : "<<getName()<<endl;
cout<< " Are u ready to take exam ....
presskey"<<endl;
cout.flush();
getch();

int i=0;
int k=1;
Question q;
char a;
while (i<p.ls.getUsed()){
p.ls.getObject(i,q);
cout<<"Question no = "<<k<<" ";
cout<<q.getStmt()<<endl;
cout<<"a) "<<q.getA()<<endl;
cout<<"b) "<<q.getB()<<endl;
cout<<"c) "<<q.getC()<<endl;
cout<<"d) "<<q.getD()<<endl;
cout<<" Enter correct Answer ";
cin>>a;
if (a==q.getAns())
obtainedMarks++;
cout<< "
................................."<<endl;
k++;
i++;
}

private :
int id;
char name[20];
int totalMarks;
int obtainedMarks;
};

void main()
{
int op;
int pass=786;
do{
cout<<"\n[1] Enter in Examination Room";
cout<<"\n[2] Enter in Examination Room";
cout<<"\n[3] Exit";
cout<<"\nEnter yr Option: ";
cin>>op;

switch(op){

case 1:
{
system("cls");
cout<<"\nEnter yr Password: ";
cin>>pass;

if(pass==786)
{
int s,no;
char ans;
char st[256],a[50],b[50],c[50],d[50];

system("cls");

cout<<"\nHow many questions you want


to add: ";
cin>>s;
QuestionPool qp(s);
Question q;
system("cls");
cout<<"\nEnter the Question no: ";
cin>>no;
q.setNo(no);
cout<<"\nEnter the Statement of yr
Question:... ";
cout.flush();
gets(st);
q.setStmt(st);
cout<<"\nEnter the Option A: ";
cin>>a;
q.setA(a);
cout<<"\nEnter the Option B: ";
cin>>b;
q.setB(b);
cout<<"\nEnter the Option C: ";
cin>>c;
q.setC(c);
cout<<"\nEnter the Option D: ";
cin>>d;
q.setD(d);
cout<<"\nGive yr Answer: ";
cin>>ans;
q.setAns(ans);
q.setSub(oop);
qp.addQuestion(q);

} // End of pass if
else
cout<<"\nPlease enter the valid
Password";
break;
}
case 2:
{
QuestionPool qp;
Paper p;
p.setPaper(oop,mid,qp);
p.printPaper();
StudentExam se;
se.setId(10);
se.setName("Bilal");
se.takeExam(p);
cout<<"..............................."<<endl;
cout<<"
TotalMarks="<<se.getTotalMarks()<<endl;
cout<<"
ObtainedMarks="<<se.getObtainedMarks()<<endl;
break;

case 3:
{
exit(0);
break;
}
default:
cout<<"\nInvalid Option";

} // End of Switch
cout.flush();
getch();
system("cls");
}while(op!=3); // End of do while loop
}

/*

Paper p;
p.setPaper(oop,mid,qp);
//p.printPaper();
StudentExam se;
se.setId(10);
se.setName("Bilal");
se.takeExam(p);

} */

http://www.ravianeducation.blogspot.com
FARHAN: 03008855006

Você também pode gostar