Have you ever wanted a simple and convenient way to take attendance for your classroom or group? Well, now there's a way, my Attendance program that helps you simplify the tedious task of recording classroom participation.
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<iomanip.h>
#include<fstream.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<dir.h>
#include<dos.h>
class attendenceout;
class rollinfo
{
protected:
char depcode[7],subcode[8],lecno[6];
int no,year,month;
int day;
public:
void roll(void){cout<<depcode<<no;}
void dayset(void);
};
void rollinfo::dayset(void)
{
struct date a;
getdate(&a);
year=a.da_year;
month=a.da_mon;
day=a.da_day;
cout<<day<<"."<<month<<"."<<year<<endl;
}
class attendencein:virtual public rollinfo
{
char filename[15];
char folnam[15] ;
int tot, flag[120];
public:
void input(void);
void attend(void);
void folder(void);
void file(void);
void crefilename(int);
void sinfile(int pa);
} ;
void attendencein::folder(void)
{
strcpy(folnam,depcode);
mkdir(folnam);
strcat(folnam,"\\");
}
void attendencein::input(void)
{
cout<<endl<<"ATTENDENCE SHEET"<<endl;
cout<<"\n Enter the batch code and department code:(example 0607): ";
cin>>depcode ;
cout<<"\n Input subject code : ";
cin>>subcode;
cout<<"\n Input class number : ";
cin>>lecno;
cout<<"\n Total student : ";
cin>>tot ;
attend();
file();
}
void attendencein::crefilename(int i)
{
if(i==1)
{
strcpy(filename,depcode);
}
else if(i==0)
{
strcpy(filename,subcode);
strcat(filename,lecno);
strcat(filename,".txt");
}
}
void attendencein::file(void)
{
dayset();
fstream k;
crefilename(0);
k.open(filename,ios::out);
k<<"\tATTENDENCE SHEET\n\t----------------\n\n";
k<<"\ndate"<<day<<"\\"<<month<<"\\"<<year<<endl ;
k<<"\nBatch Code and Departmental Code : ";
k<<depcode;
k<<"\nSubject Code : ";
k<<subcode;
k<<"\nCLASS NO : ";
k<<lecno;
k<<"\n\nROLL NO\t\t\tATTENDENCE\n";
int i=1;
while(i<=(no-1))
{
k.fill(48);
k<<"\n"<<depcode<<setw(3)<<i<<"\t\t\t";
if(flag[i]==0)
k<<"absent";
else
k<<"present";
i++;
}
k.close();
}
void attendencein::attend(void)
{
dayset();
no=1;
int t=tot;
char a[4];
strcpy(a,depcode);
cout<<"\n(*if absent press 'TAB' and if present press any key if postponed operation press ""ESC"")\n";
getch();
clrscr();
folder();
cout<<"date"<<day<<"\\"<<month<<"\\"<<year<<endl ;
cout<<"\nROLL NO\t\tATTENDENCE\n";
while(no<=t)
{
cout.fill(48);
cout<<"\n"<<a<<setw(3)<<no<<"\t\t";
char c=getch();
if(c==9)
{
flag[no]=0;
textcolor(1);
cprintf("absent");
sinfile(0);
}
else if(c==27)
{
for(;no<=t;no++)
{
flag[no]=1;
sinfile(1);
}
break;
}
else if(c!=9)
{
flag[no]=1;
textcolor(0);
cprintf("present");
textcolor(7);
sinfile(1);
}
no++;
if(no==125)
break;
}
}
//idividual file setting part
void attendencein::sinfile(int pa)
{
fstream x;
char nam[10],name[20],*tmp;
itoa(no,nam,10);
strcpy(name,depcode);
strcat(name,nam);
tmp=new char[strlen(folnam)+strlen(name)+4];
strcpy(tmp,folnam);
strcat(strcat(tmp,name),".txt");
x.open(tmp,ios::app);
x<<pa;
x.close();
delete [] tmp;
}
class attendenceout:virtual attendencein,virtual rollinfo
{ int no;
public:
char filename[12];
int outputfile(void);
int outstfile(void);
void output(void);
void getdata(void);
void getrollno(void){cout<<"\n\ninput the roll no of student(exp 1 or 12)";
cin>>no; }
void classdata(void);
void studentdata(void);
};
void attendenceout::getdata(void)
{
clrscr();
cout<<"\n Enter the batch code and department code: \n\n";
cout<<"\n BATCHCODE and DEPARTMENTAL CODE : ";
cin>>depcode;
cout<<"\n Input subject code : ";
cin>>subcode;
cout<<"\n Input class number : ";
cin>>lecno;
}
int attendenceout::outputfile(void)
{int i=0;
char p;
fstream u;
strcpy(filename,subcode);
strcat(filename,lecno);
strcat(filename,".txt");
u.open(filename,ios::in);
if(!u)
{
cout<<"file error"<<filename;
return 0;
}
clrscr();
cout<<"\n\nTHE CLASS PATICIPATION SHEET IS BELOW :\n\n\n" ;
while(u)
{ if(i==660)
{
i=0;
getch();
clrscr();
}
delay(50);
u.get(p);
cout<<p;
i++;
}
u.close();
getch();
return 0;
}
void attendenceout::output(void)
{while(1)
{
cout<<"\nENTER UR OPTION\n";
cout<<"TO SHOW CLASS DATA(press enter)\nTO SHOW STUDENT DATA(press space)\nTO back press ESC\n";
char i;
i=getch();
if(i==13)
classdata();
else if(i==32)
studentdata();
else if(i==27)
break;
}
}
void attendenceout::classdata(void)
{
getdata();
outputfile();
}
void attendenceout::studentdata(void)
{
getdata();
getrollno();
outstfile();
}
int attendenceout::outstfile(void)
{
crefilename(1);
ifstream st;
int ab=0,cl=0,pre=0;
char nam[10],name[20],file[20],ch;
itoa(no,nam,10);
strcpy(file,depcode);
strcat(file,"\\");
strcpy(name,depcode);
strcat(name,nam);
strcat(file,name);
strcat(file,".txt") ;
st.open(file);
while(st)
{st.get(ch);
if(ch==48)
ab++;
if(ch==49)
pre++;
}
st.close();
cl=ab+pre;
float per=(pre*100/cl) ;
cout<<"\nStudent data\n\n" ;
cout<<"TOTAL CLASS :";
delay(150) ;
cout<<cl<<"\n";
cout<<"PRESENT :";
delay(150);
cout<<pre<<"\n";
cout<<"ABSENT :";
delay(150);
cout<<ab<<"\n";
cout<<"TOTAL CLASS PERSENTENCE:";
delay(250);
cout<<per<<endl;
return 0;
}
int main()
{
textbackground(3);
rollinfo d;
d.dayset();
attendencein a;
char option;
int i=0;
clrscr();
while(1)
{
clrscr();
flushall();
textcolor(4);
d.dayset();
cout<<"\nWelcome in attendence programme\n\n" ;
cout<<"press ESC......QUIT\n1.......INPUT\n2.......OUTPUT\n\n\n";
option=getch();
clrscr();
if(option==49)
{
a.input();
i=1;
}
else if(option==50)
{
attendenceout b;
b.output();
}
else if(option==27)
{
if(i==1)
textcolor(128);
cout<<"\n";
cprintf("YOU COULD SEE ATTENDENCESHEET IN FILES OR U CAN SAW THAT BY USING OUTPUT OPTION ") ;
cout<<endl;
cprintf("THANK YOU FOR USING ATTENDENCE SOFTWARE");
break;
}
}
getch();
return 0;
}
Note: This post is for education purpose. Just take help from this code. Please show your own project to your Teacher/Professor. You can make better than it. Try Your self. Give a chance to your intelligence. Thank you