内容发布更新时间 : 2024/12/22 17:21:26星期一 下面是文章的全部内容请认真阅读。
#include
//时间类
class time {public:
time(int y=0,int m=0,int d=0) {year=y;month=m;day=d;} ~time(){} protected:
int year,month,day; };
//信息类
class xinxi:public time { public:
xinxi(){ tiaoshu++;} ~xinxi(){tiaoshu--;}
void setname(char *n){strcpy(name,n);}
void settime(int y,int m,int d){year=y;month=m;day=d;} void setqklx(char *qk){strcpy(queke,qk);} void setjieci(char *jc){strcpy(jieci,jc);}
void setkechen(char *kc){strcpy(kechen,kc);} char *getname(){char *n;n=name;return n;} char *getqklx(){char *qk=queke;return qk;} char *getjieci(){char *jc;jc=jieci;return jc;}
char *getkechen(){char *gk;gk=kechen;return gk;} int *gettime(); private:
char name[20];//姓名
char jieci[3],kechen[10],queke[10]; int tm[3];
static int tiaoshu; };
int xinxi::tiaoshu=0;
int *xinxi::gettime() { int *t; t=tm;
tm[0]=year; tm[1]=month; tm[2]=day; return t; }
//缺课课程类
class qkechen:public xinxi {public:
qkechen(){kcshu++;} ~qkechen(){kcshu--;}
int getrc(xinxi st1[],int n,int j); char qkn[20];//公有数据成员
private: int renci;
static int kcshu;//静态数据成员 };
int qkechen::kcshu=0;
int qkechen::getrc(xinxi st1[],int n,int j) { renci=0; renci++;
for(int i=0;i if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)== *(st1[j].gettime()+2)) if(strcmp(qkn,st1[i].getkechen())==0) renci++; return renci; } //缺课学生类 class qstu:public xinxi {public: qstu(){qst++;} ~qstu(){qst--;} void print(xinxi &st1); int getjs(xinxi st1[],int n,int j); int setjs(int js=0) {jieshu=js;} char qstn[20]; private: int jieshu; static int qst; //静态数据成员 }; int qstu::qst=0; //类的实现 void qstu::print(xinxi &st1) { cout<<\缺课日期 |\第几节课 |\课程名称 |\缺课类型|\ cout<<\)<<\ < int qstu::getjs(xinxi st1[],int n,int j) { int i=0,js=0; xinxi min; if(*(st1[j].getjieci()+2)!='\\0') js=+2; else js++; for(i=0;i if(*(st1[i+1].gettime()+1)==*(st1[j].gettime()+1)&&*(st1[i+1].gettime()+2)==*(st1[j].gettime()+2)) if(strcmp(st1[i+1].getname(),qstn)==0) { if(*(st1[i].getjieci()+2)!='\\0') js=+2; else js++; } jieshu=js; return jieshu; } // 函数声明 int shuru(xinxi st1[]); void chaxun(xinxi st1[],qstu qt[]); void xiugai(xinxi st1[],int n); void tongji1(xinxi st1[],qstu qt1[]); void tongji2(xinxi st1[],qkechen qk1[]); void caidan(); void xiansi(xinxi &st1); void setqstn(xinxi st1[],qstu qt1[],int n); void setqkn(xinxi st1[],qkechen qk[],int n); //全局变量 int g,k=1,b=1; int q=-1; char name[20],kechen[10],queke[10],jieci[3]; int y,m,d; //主函数 int main() { xinxi tl[15];//定义15条信息类对象 qstu qt[10]; qkechen qk[6]; int ch; while(1) {cout<<\欢迎进入学生考勤管理系统!*********\ caidan(); cout<<\请选择菜单项:\ cin>>ch; switch(ch) {case 1: g=shuru(tl); break; case 2: xiugai(tl,g); break; case 3: chaxun(tl,qt); break; case 4: tongji1(tl,qt); break; case 5: tongji2(tl,qk); break; case 6: exit(0); } } return 0; } //菜单函数 void caidan() { system(\ cout<<\cout<<\ 学生考勤管理系统 *\cout<<\cout<<\录入学生的缺课记录---------------------------*\cout<<\修改学生的缺课记录---------------------------*\cout<<\查询学生的缺课情况---------------------------*\ cout<<\统计某段时间内旷课学生姓名及旷课节数--------------*\ cout<<\统计某段时间内旷课的课程及旷课人次----------------*\cout<<\退出系统----------------------------------*\ } //输入函数 int shuru(xinxi st1[]) { char a; cout<<\输入开始!----\ do{ q++; cout<<\请输入学生姓名\ cin>>name; st1[q].setname(name); cout<<\请输入课程名称\ cin>>kechen; st1[q].setkechen(kechen); cout<<\请输入缺课日期\ cin>>y>>m>>d; st1[q].settime(y,m,d); cout<<\请输入缺课类型\ cin>>queke; st1[q].setqklx(queke); cout<<\请输入缺课节次\ cin>>jieci; st1[q].setjieci(jieci); cout<<\是否还要继续输入:(y/n)\ cin>>a; }while(a=='y'); return q+1; } //修改函数 void xiugai(xinxi st1[],int n) { int k=1,j=0,a[10]; int flgh; int h; while(k==1) { cout<<\请输入你要修改缺课记录的学生姓名\ cin>>name; flgh=0; for(int i=0;i