C++课程设计——学生考勤管理系统(内蒙古科技大学) 下载本文

内容发布更新时间 : 2024/12/22 17:21:26星期一 下面是文章的全部内容请认真阅读。

#include using namespace std;

//时间类

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>b; if(b==1) { cout<<\请输入新日期\ cin>>y>>m>>d; st1[i].settime(y,m,d);