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; 
            }
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++实现学生考勤信息管理系统

    学生考勤信息管理系统记录了学生的缺课情况,它包括: 缺课日期.第几节课.课程名称.学生姓名.学生学号.缺课类型(迟到.请假及旷课).系统具有以下功能: 1).录入学生的缺课记录: 2).修改某个学生的缺课记录: 3).查询某个学生的缺课情况: 4).统计 旷课学生姓名及旷课次数,按旷课次数由多到少排序: 5).统计 有学生旷课的课程及旷课人次(每次课时累加),按旷课人次由多到少排序: 重新修改了下,之前的4,5功能未实现. #include<iostream> #include<fstr

  • C语言实现考勤管理系统

    这些天因为补修c语言课设,在花费了一段时间后写完了这个课设,课设的要求如下: 考勤信息记录了学生的缺课情况,它包括:缺课日期.第几节课.课程名称.学生姓名.缺课类型(迟到.早退.请假及旷课).试设计一考勤管理系统,使之能提供以下功能: (1) 录入学生的缺课记录:(2) 修改某个学生的缺课记录:(3) 查询某个学生的缺课情况:(4) 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序:(5) 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序:(6) 系统以菜单方式工

  • C++实现考勤管理系统

    本文实例为大家分享了C++实现考勤管理系统的具体代码,供大家参考,具体内容如下 设计一考勤管理系统,记录学生的缺课情况 1.设计学生类:2.设计课程类:3.设计考勤类:4.录入学生的缺课情况:5.修改某个学生的缺课情况:6.查询某个学生的缺课情况:7.统计一段时间内,旷课学生的名单和次数 仅供参考,尚有不足,请多多指正! #include <iostream> #include <cstring> using namespace std; class Student {     p

  • C语言实现大学生考勤管理系统

    程序设计题:大学生考勤系统 1 问题描述 该系统要求实现一个简单.实用的学生考勤系统程序,主要功能包括考勤数据的新增.删除.修改.查找.统计.排序.输出等.所有统计数据都要利用文件系统保存,以备系统下次运行时使用.通过此课题,熟练掌握文件.数组.指针的各种操作,以及一些基本算法的应用. 2 功能要求 代码要能提供以下几个基本功能. (1)考勤数据是由多条数据记录构成,其信息包括:学号(唯一).姓名.班级.考勤日期(由月和日组成)等等. (2)数据保存形式:所有信息要以文本或二进制文件保存. (3

  • 学Java做项目需要学习的一些技能

    Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点: 1.掌握项目开发的基本步骤 2.具备极强的面向对象的分析与设计技巧 3.掌握用例驱动.以架构为核心的主流开发方法 没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度去思考!你必须学会假如你是项目经理,你该如何思考!你必须学会假如你是架构师,你该如何思考!你必须掌握针对某个特定问题领域的分析方法!

  • C++实现教工考勤信息管理系统

    本文实例为大家分享了C++实现教工考勤信息管理系统的具体代码,供大家参考,具体内容如下 需求分析 传统意义上的考勤管理都是采用原始的手工操作来完成的.人事部的管理人员或办公室人员要进行繁琐的记录.修改.查询.统计等工作,不仅时间长.劳动强度大.工作效率低下,并且容易出错. 1.1 问题提出 本人计划编写一个教工考勤信息管理系统,主要用来管理教工考勤信息.可以对信息进行排序,查询,输出,修改,添加,删除等操作. 1.2 本系统涉及的知识点 循环.分支.数组.函数.结构体.指针.文件 1.3 功能要

  • Android 实例开发一个学生管理系统流程详解

    目录 效果演示 实现功能总览 代码 登录与忘记密码界面 一.添加布局文件 二.添加标题文字 三.绑定适配器 注册界面 一.创建两个Drawable文件 二.将其添加数组内 三.动态变化背景 考勤界面 一.CircleProgressBar代码如下 签到界面 一.倒计时 二.位置签到 成绩查询界面 一.创建StackAdapter 适配器 效果演示 随手做的一个小玩意,还有很多功能没有完善,倘有疏漏,万望海涵. 实现功能总览 实现了登录.注册.忘记密码.成绩查询.考勤情况.课表查看.提交作业.课程

  • Java 实战项目锤炼之校园宿舍管理系统的实现流程

    一.项目简述 功能:宿舍管理员,最高管理员,学生三个身份,包括学 生管理,宿舍管理员管理,考勤管理,宿舍楼管理,缺勤 记录管理,个人信息修改等等功能. 二.项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持). 项目技术: JSP + Entity+ Servlert + html+ css + JavaScript + JQuery + Ajax 等等. 用户登录操作代码

  • 基于SSM+Shiro+Bootstrap实现用户权限管理系统

    目录 引言 需求 效果图 功能细节 数据表准备 pom文件 项目结构 核心源码 Shiro退出登录 启动项目命令 引言 本篇博文基于SSM+Shiro实现用户权限管理系统,每位用户只可访问指定的页面,具体需求如下 需求 用户账号的增删改查功能 权限包括: 系统模块操作权限(system),财务模块操作权限(finance),考勤模块操作权限(checkon), 每个用户都可能拥有0或多个权限,在新增和编辑用户的时候,可以多选权限. 系统模块:包括用户账号管理功能. 财务模块:为了开发简化,只要做

  • Java实战员工绩效管理系统的实现流程

    基于SSM+Mysql+Maven+HTML实现的员工绩效管理系统.该系统只有后台页面,后台前端框架使用的是layui官网推荐后台界面. 角色分为管理员和员工 管理员功能有:员工管理.职位管理.部门管理.岗位管理.工资管理.工龄管理.考勤管理.工资项管理等. 员工功能有:考勤管理.工资管理.个人信息. 运行环境:jdk1.8.tomcat7.0\8.5.maven3.5\3.6.eclipse.mysql5.x. 后台员工管理控制器代码: /** * 后台员工管理控制器 * @author Ad

随机推荐