C++实现考勤管理系统
时间:2022-12-27 10:17:53|栏目:C代码|点击: 次
本文实例为大家分享了C++实现考勤管理系统的具体代码,供大家参考,具体内容如下
设计一考勤管理系统,记录学生的缺课情况
1、设计学生类;
2、设计课程类;
3、设计考勤类;
4、录入学生的缺课情况;
5、修改某个学生的缺课情况;
6、查询某个学生的缺课情况;
7、统计一段时间内,旷课学生的名单和次数
仅供参考,尚有不足,请多多指正!
#include <iostream> #include <cstring> using namespace std; class Student { public: void setname(char *setname) { strcpy(name,setname); } void setcarname(char *setcarname) { strcpy(carname,setcarname); } void setseating_capacity(char *setseating_capacity) { strcpy(seating_capacity,setseating_capacity); } void setidentifynumber(char *setidentifynumber) { strcpy(identifynumber,setidentifynumber); } char *getname() { char *setname=name; return setname; } char *getcarname() { char *setcarname=carname; return setcarname; } char *getsetseating_capacity() { char *setseating_capacity=seating_capacity; return setseating_capacity; } char *getidentifynumber() { char *setidentifynumber=identifynumber; return setidentifynumber; } private: char name[30]; char carname[30]; char seating_capacity[30]; char identifynumber[30]; }; class Course:public Student { public: void setcoursename(char *setcoursename) { strcpy(coursename,setcoursename); } void setcoursetime(char *setcoursetime) { strcpy(coursetime,setcoursetime); } void setcourseplace(char *setcourseplace) { strcpy(courseplace,setcourseplace); } char *getcoursename() { char *setcoursename; setcoursename=coursename; return setcoursename; } char *getcoursetime() { char *setcoursetime; setcoursetime=coursetime; return setcoursetime; } char *getcourseplace() { char *setcourseplace; setcourseplace=courseplace; return setcourseplace; } private: char coursename[30]; char coursetime[30]; char courseplace[30]; }; class Attendence:public Course { public: void setattendence(int setattendence) { int i=0; attendence[i]=setattendence; i++; } int *getattendence() { int *setattendence; setattendence=attendence; return setattendence; } private: int attendence[30]; }; int input(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[]); int modify(Student i[],Course cn[],Course ct[],Course cp[],Attendence attendence[],int totalnumber); int search(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[],int totalnumber); int statistic(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[],int totalnumber); void bubble(int arr[],int len); Student n[20]; Student i[20]; Course cn[20]; Course ct[20]; Course cp[20]; Attendence a[20]; int totalnumber=0; char name[30]; char identifynumber[30]; char coursename[30]; char coursetime[30]; char courseplace[30]; int attendence; int array[30]; int att[30]; int main() { while(1) { cout<<"---------吉林大学珠海学院---------\n" <<" 学生考勤管理系统\n\n" <<" 1.录入学生缺课信息\n" <<" 2.修改学生缺课记录\n" <<" 3.查询学生缺课情况\n" <<" 4.统计一段时间内学生旷课情况\n" <<" 5.退出系统\n\n" <<"------------------------------"<<endl; int num; for(;;) { cout<<"请选择需要执行的功能序号(1-5):"; cin>>num; if(num>=1&&num<=5) break; else continue; } cout<<endl; switch(num){ case 1:{ input(n,i,cn,ct,cp,a); break; } case 2:{ modify(i,cn,ct,cp,a,totalnumber); break; } case 3:{ search(n,i,cn,ct,cp,a,totalnumber); break ; } case 4:{ statistic(n,i,cn,ct,cp,a,totalnumber); break; } case 5:exit(0); } } } int input(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[]) { cout<<"----------请开始输入----------\n"; cout<<"请输入将录入系统的人数:"; cin>>totalnumber; cout<<endl; for(int counter=0;counter<totalnumber;counter++) { cout<<"学生姓名:"; cin>>name; n[counter].setname(name); cout<<"学生学号:"; cin>>identifynumber; i[counter].setidentifynumber(identifynumber); cout<<"课程名称:"; cin>>coursename; cn[counter].setcoursename(coursename); cout<<"课程时间(星期几,第几节课):"; cin>>coursetime; ct[counter].setcoursetime(coursetime); cout<<"课程地点:"; cin>>courseplace; cp[counter].setcourseplace(courseplace); cout<<"缺课次数:"; cin>>attendence; a[counter].setattendence(attendence); array[counter]=attendence; cout<<'\n'; } return 1; } int modify(Student i[],Course cn[],Course ct[],Course cp[],Attendence a[],int totalnumber) { int inputnumber; do{ char id[8]; cout<<"请输入学生学号:"; cin>>id; cout<<endl; if(1) { for(int counter=0;counter<totalnumber;counter++) { if(strcmp(id,i[counter].getidentifynumber())==0) { int num; cout<<"请选择需要修改信息的种类:" <<"\n1.课程名称\n" <<"2.课程时间\n" <<"3.课程地点\n" <<"4.缺课次数\n"; for(;;) { cout<<"请输入需要修改信息的代号(1-4):"; cin>>num; if(num>=1&&num<=4) break; else continue; } cout<<endl; switch(num){ case 1:{ cout<<"请输入修改后的课程名称:"; cin>>coursename; cn[counter].setcoursename(coursename); cout<<'\n'; break; } case 2:{ cout<<"请输入修改后的课程时间(星期几,第几节课):"; cin>>coursetime; ct[counter].setcoursetime(coursetime); cout<<'\n'; break; } case 3:{ cout<<"请输入修改后的课程地点:"; cin>>courseplace; cp[counter].setcourseplace(courseplace); cout<<'\n'; break; } case 4:{ cout<<"请输入修改后的缺课次数:"; cin>>attendence; a[counter].setattendence(attendence); array[counter]=attendence; cout<<'\n'; break; } } } } } else { cout<<"无该学生缺课信息!\n" <<"请再次确认输入学号无误\n\n"; } for(;;) { cout<<"重新查询请输入1|返回目录请输入0\n"; cin>>inputnumber; if(inputnumber==1||inputnumber==0) break; else continue; } }while(inputnumber==1); return 1; } int search(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[],int totalnumber) { int inputnumber; do{ char ids[8]; char *identify=ids; cout<<"请输入学生学号:"; cin>>ids; cout<<endl; strcpy(ids,identify); if(1) { for(int counter=0;counter<totalnumber;counter++) { if(strcmp(ids,i[counter].getidentifynumber())==0) { cout<<"学生姓名:"<<n[counter].getname() <<"\n学生学号:"<<i[counter].getidentifynumber() <<"\n缺课课程名称:"<<cn[counter].getcoursename() <<"\n缺课课程日期:"<<ct[counter].getcoursetime() <<"\n缺课时间:"<<cp[counter].getcourseplace() <<"\n缺课次数:"<<*a[counter].getattendence()<<"\n"; } } } else cout<<"无该同学数据"; break; cout<<'\n'<<endl; for(;;) { cout<<"重新查询请输入1|返回目录请输入0\n\n"; cin>>inputnumber; if(inputnumber==0||inputnumber==1) break; else continue; } }while(inputnumber==1); return 1; } int statistic(Student n[],Student i[],Course cn[],Course ct[],Course cp[],Attendence a[],int totalnumber) { int inputnumber; for(int index=0;index<30;index++) att[index]=index; if(totalnumber==0) cout<<"数据库无信息\n\n"; else if(totalnumber==1) cout<<"学生姓名:"<<n[0].getname() <<"\n学生学号:"<<i[0].getidentifynumber() <<"\n缺课课程名称:"<<cn[0].getcoursename() <<"\n缺课课程日期:"<<ct[0].getcoursetime() <<"\n缺课时间:"<<cp[0].getcourseplace() <<"\n缺课次数:"<<*a[0].getattendence()<<"\n\n"; else if(1) { for(int counter=0;counter<totalnumber;counter++) { if(a[counter].getattendence()<a[counter].getattendence()+1) { bubble(array,totalnumber); } else if(a[counter].getattendence()==a[counter+1].getattendence()) { if(strcmp(i[counter].getidentifynumber(),i[counter+1].getidentifynumber())>0) { int temp; int a=counter; int b=counter+1; temp=a; a=b; b=temp; } } } for(int index=0;index<totalnumber;index++) { cout<<"学生姓名:"<<n[att[index]].getname() <<"\n学生学号:"<<i[att[index]].getidentifynumber() <<"\n缺课课程名称:"<<cn[att[index]].getcoursename() <<"\n缺课课程日期:"<<ct[att[index]].getcoursetime() <<"\n缺课时间:"<<cp[att[index]].getcourseplace() <<"\n缺课次数:"<<*a[att[index]].getattendence()<<"\n\n"; } } cout<<"返回目录请输入0\n"; cin>>inputnumber; if(inputnumber==0) return 1; } void bubble(int arr[],int len) { int i,j,temp; int t; for(i=0;i<len-1;i++) { for(j=0;j<len-1-i;j++) { if(arr[j]<arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; t=att[j]; att[j]=att[j+1]; att[j+1]=t; } } } }