本篇內容主要講解“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; } } } }
到此,相信大家對“C++如何實現考勤管理系統”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。