大学生考勤系统再升级--增加老师信息 获取系统时间版本

本文主要是介绍大学生考勤系统再升级--增加老师信息 获取系统时间版本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

实现的主要功能是:

新设密码功能,只有输入正确密码方可进入真正的大学生考勤系统,以此和网上搜到的大学生考勤系统做区分

a 新增学生和老师信息数据(学生姓名,辅导员老师姓名,班级,考勤结果)

考勤时间从系统自动获取

b 查找数据(可按学号、姓名、考勤日期等查找)。

c 修改学生记录(可以先查找,再修改)。

d 删除学生记录(请参考上面修改的处理)。

e 显示学生考勤数据列表(可显示部分或全部)。

f 排序(可按学号、姓名、考勤日期等排序)。

g 数据统计(对考勤数据统计分析,统计完成后,可以通过考勤系统中得出考勤明细表,考勤日报表、考勤汇总表、考勤异常表,请假汇总表等)。

h 保存数据到文件中并从文件中读入数据。&num);

有需要完整源码的私信联系我

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include <stdbool.h> // 添加头文件以使用布尔类型
#include <time.h>
#define maxsize 15
#define maxnum 1000
typedef struct {char Teacher_Name[maxsize];char Name[maxsize];char Class_Number[maxsize];char Attandance_date[maxsize];char Attandance_Result[maxsize];
} student;student Students[maxnum];//下面是代码中包括的函数及其说明://读取并返回存储在文件 mima.txt 中的密码。
char *password()://检查输入的密码是否与文件 mima.txt 中存储的密码匹配,返回 1 表示匹配,返回 0 表示不匹配。
int check(char *ps)://修改文件 mima.txt 中的密码为新密码 nw。
void newpassword(char *nw)://获取当前系统日期并将其格式化为字符串存储在 datetime_str 中。
void get_current_datetime(char *datetime_str, size_t max_len)://等待用户按下回车键。
void wait_for_Enter()://将日期字符串 str 转换为整数格式,以便进行比较。
int convert(char str[])://qsort 的比较函数,用于按日期对学生信息进行排序。
int compare_dates(const void *a, const void *b)://将 b 学生信息复制到 a。
void copy(student *a, student *b)://打印提示信息 pinfo,并读取用户输入存储到 desinfo 中。
void setInfo(char pinfo[], char desinfo[])://打印所有学生的详细信息。
void PrintAllInformation()://打印所有学生的部分信息(姓名、考勤日期、考勤结果)。
void PrintPartInformation()://添加学生信息,并记录当前日期为考勤日期。
void ADD()://根据辅导员姓名、学生姓名或考勤日期查找学生信息。
void Find()://修改系统中已有的学生信息,支持按辅导员姓名、学生姓名或考勤日期进行修改。
void Change()://根据辅导员姓名或学生姓名删除学生信息。
void Delete()://根据用户选择,打印部分或全部学生信息。
void Print()://交换两个学生的所有信息。
void exchange(student *a, student *b)://根据辅导员姓名、学生姓名或考勤日期对学生信息进行排序并打印。
void Order()://打印考勤明细表,并生成相应的 CSV 文件。
void Detail_Print()://打印指定日期的考勤日报表,并生成相应的 CSV 文件。
void Daily_Print()://打印考勤异常表(考勤结果不是“出勤√”的学生),并生成相应的 CSV 文件。
void Informal_Print()://打印请假汇总表(考勤结果为“事假▲”或“病假O”的学生),并生成相应的 CSV 文件。
void AskForLeave_Print()://根据用户选择,打印考勤明细表、考勤日报表、考勤异常表或请假汇总表。
void Statistics()://主函数,处理密码验证、菜单显示和调用相应的功能函数。
int main(){
int i, a, b = 1;char str[10];int k=0,j=0;char nw[50];char password[50];printf("-----------请输入密码(初始密码123456)----------\n");while((str[k]=_getch())!='\r'){printf("*");k++;}str[k]='\0';if(check(str)){printf("\n密码正确\n");system("cls");FILE *fp= fopen("exist.txt", "at+");if (!fp) {printf("错误!未能打开文件\n");exit(0);}fscanf(fp, "%d", &num);//读入已经在系统中的学生的个数 printf("当前系统中储存的学生个数:%d人\n", num);for (i = 0; i < num; i++) {//读入系统中学生的信息 fscanf(fp, "%s%s%s%s%s", &Students[i].Teacher_Name, &Students[i].Name, &Students[i].Class_Number, &Students[i].Attandance_date, &Students[i].Attandance_Result);}fclose(fp);while (b != 0) {printf("==========================================================\n");printf("===================1.新增学生数据=========================\n");printf("===================2.查找学生数据=========================\n");printf("===================3.修改学生记录=========================\n");printf("===================4.删除学生记录=========================\n");printf("===================5.显示学生考勤的数据列表===============\n");printf("===================6.对指定数据进行排序===================\n");printf("===================7.进行数据统计=========================\n");printf("===================8.修改密码=============================\n");printf("===================9.退出系统=============================\n");scanf("%d", &a);switch (a) {case 1:ADD();break;case 2:Find();break;case 3:Change();break;case 4:Delete();break;case 5:Print();break;case 6:Order();break;case 7:Statistics();break;case 8:printf("请输入新的密码\n");scanf("%s",nw);newpassword(nw);break; case 9:printf("已退出\n");b = 0;break;}system("cls");//清屏函数,为了使界面更加美观 }//在最后把信息输入到文件,保留以备下次运行使用......  

这篇关于大学生考勤系统再升级--增加老师信息 获取系统时间版本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1058417

相关文章

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

CentOS和Ubuntu系统使用shell脚本创建用户和设置密码

《CentOS和Ubuntu系统使用shell脚本创建用户和设置密码》在Linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设置密码,本文写了一个shell... 在linux系统中,你可以使用useradd命令来创建新用户,使用echo和chpasswd命令来设

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

SpringBoot整合mybatisPlus实现批量插入并获取ID详解

《SpringBoot整合mybatisPlus实现批量插入并获取ID详解》这篇文章主要为大家详细介绍了SpringBoot如何整合mybatisPlus实现批量插入并获取ID,文中的示例代码讲解详细... 目录【1】saveBATch(一万条数据总耗时:2478ms)【2】集合方式foreach(一万条数

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

SpringBoot UserAgentUtils获取用户浏览器的用法

《SpringBootUserAgentUtils获取用户浏览器的用法》UserAgentUtils是于处理用户代理(User-Agent)字符串的工具类,一般用于解析和处理浏览器、操作系统以及设备... 目录介绍效果图依赖封装客户端工具封装IP工具实体类获取设备信息入库介绍UserAgentUtils

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服