C语言课设——学生考勤管理系统

 

1.课程设计目的

C语言课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设计既覆盖C语言程序设计的知识点,又接近工程实际需要。本次设计的目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握C语言程序设计这门课程的主要内容,养成良好的编程习惯,更好的完成教学任务。

2.课程设计任务与要求:

要求:

本次课程设计利用《C语言程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:

1、对系统进行功能需求分析

2、设计合理的数据结构和系统框架

3、编程简练,程序功能齐全,能正确运行

4、说明书、流程图要清楚

5、课题完成后必须按要求提交课程设计报告

任务:

考勤系统设计

功能:设计一考勤系统。考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、学生学号、缺课类型(迟到、早退、请假及旷课)。系统具有以下功能:

  1. 录入学生的缺课记录;
  2. 修改某个学生的缺课记录;
  3. 查询某个学生的缺课情况;
  4. 统计某段时间内,旷课学生姓名及旷课次数,按旷课次数由多到少排序;
  5. 统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序;
  6. 系统以菜单方式工作。

课程设计报告内容包括以下几个方面:(1)课题的总体设计和算法分析;(2)程序流程图、函数说明、文件说明;(3)源程序代码清单;(4)测试数据和测试过程记录;(5)遇到的问题及解决方案分析;(6)课程设计小结。

 

3.课程设计说明书

  1. 系统分析:包括系统功能模块划分、数据的存储和记录属性分析
  2. 概要设计:主要写模块说明,系统流程图(例N-S流程图)(五号,宋体)、数据结构的设计
  3. 详细设计:主要写各功能模块流程图、算法的设计、函数的设计、列出文件清单

一.系统分析

    整体流程图:

            

二.概要设计

     (1)模块说明:

1:录入学生的缺课情况:输入记录情况个数,录入缺课日期,录入第几节课,录入课程名称,录入学生姓名,录入学生学号,录入缺课类型。若记录一个缺课情况,则返回进入菜单。若记录多个缺课情况,继续录入缺课情况。

2:追加录入的缺课情况: 追加输入记录情况个数,录入缺课日期,录入第几节课,录入课程名称,录入学生姓名,录入学生学号,录入缺课类型。若记录一个缺课情况,则返回进入菜单。若记录多个缺课情况,继续录入缺课情况。

3:修改某个学生缺课记录模块:输入将要修改的学生姓名或学号。用1代表姓名,2代表学号。输入学生姓名或学号后确认是否修改。1修改,2不修改。修改内容:1代表修改日期,2代表修改课节,3代表课程名称,4代表缺课类型,然后数学正确信息修改。修改完成后进入菜单。

4:查询某个学生缺课情况模块:输入将要查询的学生姓名或学号。用1代表姓名,2代表学号。输入学生姓名或学号后将显示该学生的缺课情况。包括缺课日期、课节、课程名称、姓名、学号、缺课类型。查询完成后进入菜单。

5:统计某段时间内旷课学生的姓名及旷课次数:系统根据输入的信息筛选此时间段内的学生考勤信息,再按照学生的旷课次数由大到小降序排列。统计完后返回菜单

6:统计某段时间内存在学生旷课的课程及旷课人次:系统根据输入的信息筛选此时间段内的学生考勤信息,再按照课程次数由大到小降序排列。统计完后返回菜单

7:退出系统模块:退出系统。

  1. 主函数
  1. void meau();              //菜单
  2. void input(void);          //录入
  3. void add(void);            //追加录入
  4. void change(void);         //修改 
  5. void search(void);         //查询
  6. void Recordstuent(void);   //统计某段时间内旷课学生姓名及旷课次数
  7. void Recordclass(void);    //统计某段时间内存在学生旷课的课程及旷课人次
  1. 函数说明

(1)menu函数:

(2)input函数:

(3)Add追加函数一样


(4)change函数:该函数是用来修改学生缺课记录。

(5)search函数:该函数是查询某个学生的缺课情况。

(6)Recordstuent函数:

4.课程设计成果

//代码部分展示,需要的请私信我,或者加QQ:1115395894(表明来意)

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

struct Student

{

       char name[20];

       int count;

}stu[100],temp;

struct Allfunction

{

       char date[20];        //缺课日期

       int Classtime;        //缺课时间

       char ClassName[20];   //课程名称

       char StudentName[20]; //学生姓名

       int number;           //学生学号

       char Kind[10];        //缺课类型

}student[100];

struct lesson

{

       char name[20];

       int count;

}lesson[20],temp1;

int main()

{

       void menu();

       void input(void);          //录入

       void add(void);            //追加录入

       void change(void);         //修改 

       void search(void);         //查询

       void Recordstuent(void);   //统计某段时间内旷课学生姓名及旷课次数

       void Recordclass(void);    //统计某段时间内存在学生旷课的课程及旷课人次

       int choose;

       while(1)

       {

      

       menu();                    //打印菜单主界面

       printf("\n请选择您想要运行的菜单序号:\t\n");

       scanf("%d",&choose);

       switch(choose)

       {

              case 1:input();break;

              case 2:add();break;

              case 3:change();break;

              case 4:search();break;

              case 5:Recordstuent();break;

              case 6:Recordclass();break;

              case 7:printf("\n 欢迎下次使用!再见!\n");break;

              default:printf("您输入的信息有误,请重新输入!\n");

       }

       system("pause");

    }

    return 0;

}

void menu()

{

       printf("\n\n");

       printf("*****************************************************************************\n");

       printf("*---------------------------------------------------------------------------*\n");   

       printf("*                               学生考勤管理系统                            *\n");

       printf("*---------------------------------------------------------------------------*\n");

       printf("**********************************系统功能菜单*******************************\n");

       printf("-----------------------------------------------------------------------------\n");

       printf("*****************************************************************************\n");

       printf("**         1、录入学生的缺课情况       ~   2、追加录入的缺课情况           **\n");

       printf("*****************************************************************************\n");

       printf("**         3、修改学生的缺课记录       ~   4、查询学生的缺课情况           **\n");

       printf("*****************************************************************************\n");

       printf("**         5、旷课学生姓名及旷课次数   ~   6、有学生旷课的课程及旷课人次   **\n");

       printf("*****************************************************************************\n");

       printf("**                               7、退出系统                               **\n");

       printf("*****************************************************************************\n");

       printf("-----------------------------------------------------------------------------\n");    

}

菜单:选择函数使用switch语句,在序号对应的功能后加上函数及break,输入序号以运行对应函数。

信息录入

追加录入:

修改学生缺课记录:在查询信息功能的时候,拥有姓名及学号两种搜索方法,选用if语句进行搜索方式的选择,以2与!2的选择以去除异常输入的情况。若无搜索结果,则输出“此同学无缺课记录!”。

查询学生缺课记录:

统计学生旷课次数:

统计有旷课学生的课程:

退出系统:

5.课程设计心得

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值