OUC_之校园智能卡管理系统(final)(源码)

2024-06-15 04:32

本文主要是介绍OUC_之校园智能卡管理系统(final)(源码),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//密码类 
#ifndef KEYWORD_H
#define KEYWORD_H#include <string>using namespace std;class Keyword
{string keyword_string;										//密文 int maxn, minn;												//密文最大位数和最小位数 int num;													//密文错误次数 public:Keyword() : keyword_string(""), maxn(16), minn(8), num(0){} //构造函数 string get_keyword(){return keyword_string;}				//获取与设置密文 void set_keyword(string str){this->keyword_string = str;}int get_maxn(){return maxn;}								//获取密文最大最小位数 int get_minn(){return minn;}void add_num(){num++;}										//增加与清空错误次数 void clear_num(){num = 0;}int get_nums(){return num;}									//获取错误次数 
};#endif



//金钱类 
#ifndef MONEY_H
#define MONEY_Husing namespace std;class Money
{double base_money;									//基础金额 int type;											//金钱类型(默认人民币) public:Money(double money) : base_money(money), type(0){};	//构造函数 double get_money(){return base_money;}				//获取金钱 void add_money(double money){base_money += money;}	//增加、减少、设置金钱 void sub_money(double money){base_money -= money;}void set_money(double money){base_money = money;}
};#endif



//用户类 
#ifndef PERSON_H
#define PERSON_H
#include <string>
#include <iostream>using namespace std;class Person
{string person_name;								//用户姓名 string person_sex;								//用户性别 string person_unit;								//用户单位 string person_status;							//用户身份 public:string get_name(){return person_name;}			//获取与更改用户姓名 void set_name(string name){person_name = name;}string get_sex(){return person_sex;}			//获取与更改用户性别 void set_sex(string sex){person_sex = sex;}string get_unit(){return person_unit;}			//获取与更改用户单位 void set_unit(string unit){person_unit = unit;}string get_status(){return person_status;}		//获取与更改用户身份 void set_status(string status){person_status = status;}
};#endif



//学生类 
#ifndef STUDENT_H
#define STUDENT_H#include <string>
#include <iostream>
#include "person.h"using namespace std;class Student : public Person 
{string student_name;							//学生姓名string student_sex;								//学生性别string student_unit;							//学生单位string student_status;							//学生身份public:string get_name(){return student_name;}			//获取与更改学生姓名void set_name(string name){student_name = name;}string get_sex(){return student_sex;}			//获取与更改学生性别void set_sex(string sex){student_sex = sex;}string get_unit(){return student_unit;}			//获取与更改学生单位void set_unit(string unit){student_unit = unit;}string get_status(){return student_status;}		//获取与更改学生身份void set_status(string status){student_status = status;}
};#endif // STUDENT_H



//教师类
#ifndef TEACHER_H
#define TEACHER_H#include <iostream>
#include <string>
#include "person.h"class Teacher : public Person
{string teacher_name;							//教师姓名string teacher_sex;								//教师性别string teacher_unit;							//教师单位string teacher_status;							//教师身份public:string get_name(){return teacher_name;}			//获取与更改教师姓名void set_name(string name){teacher_name = name;}string get_sex(){return teacher_sex;}			//获取与更改教师性别void set_sex(string sex){teacher_sex = sex;}string get_unit(){return teacher_unit;}			//获取与更改教师单位void set_unit(string unit){teacher_unit = unit;}string get_status(){return teacher_status;}		//获取与更改教师身份void set_status(string status){teacher_status = status;}
};#endif // TEACHER_H



//智能卡类
#ifndef ECARD_H
#define ECARD_H
#include <iostream>
#include "Keyword.h"
#include "money.h"
#include "person.h"using namespace std;class Ecard
{long long Ecard_num;													//卡号 Money Ecard_balance;													//余额 Person person;															//用户 Keyword keyword;														//密码 bool Ecard_state;														//状态 public:Ecard() : Ecard_num(0), Ecard_balance(0), Ecard_state(true){};			//构造函数 long long get_num(){return Ecard_num;}									//获取卡号 void set_num(long long num){this->Ecard_num = num;}						//设置卡号 double get_balance(){return Ecard_balance.get_money();}					//获取金钱 void deposit_balance(double money){Ecard_balance.add_money(money);}		//存钱 void withdraw_balance(double money){Ecard_balance.sub_money(money);}	//消费 bool get_state(){return Ecard_state;}									//得到状态 void set_state(bool flag){Ecard_state = flag;}							//设置状态 void set_keyword(string str){keyword.set_keyword(str);}					//设置密码 string get_keyword(){return keyword.get_keyword();}						//获取密码 void add_num(){keyword.add_num();}										//增加密码错误次数 void clear_num(){keyword.clear_num();}									//清空密码错误次数 int get_nums(){return keyword.get_nums();}								//获取密码错误次数 string get_name(){return person.get_name();}							//获取与更改用户姓名void set_name(string name){person.set_name(name);}string get_sex(){return person.get_sex();}              				//获取与更改用户性别void set_sex(string sex){person.set_sex(sex);}string get_unit(){return person.get_unit();}							//获取与更改用户单位void set_unit(string unit){person.set_unit(unit);}string get_status(){return person.get_status();}						//获取与更改用户身份void set_status(string status){person.set_status(status);}
};#endif



#ifndef SECARD_H
#define SECARD_H
#include <iostream>
#include "Keyword.h"
#include "money.h"
#include "student.h"using namespace std;class Secard
{long long Ecard_num;													//卡号Money Ecard_balance;													//余额Student student;														//用户Keyword keyword;														//密码bool Ecard_state;														//状态public:Ecard() : Ecard_num(0), Ecard_balance(0), Ecard_state(true){};			//构造函数long long get_num(){return Ecard_num;}									//获取卡号void set_num(long long num){this->Ecard_num = num;}						//设置卡号double get_balance(){return Ecard_balance.get_money();}					//获取金钱void deposit_balance(double money){Ecard_balance.add_money(money);}		//存钱void withdraw_balance(double money){Ecard_balance.sub_money(money);}	//消费bool get_state(){return Ecard_state;}									//得到状态void set_state(bool flag){Ecard_state = flag;}							//设置状态void set_keyword(string str){keyword.set_keyword(str);}					//设置密码string get_keyword(){return keyword.get_keyword();}						//获取密码void add_num(){keyword.add_num();}										//增加密码错误次数void clear_num(){keyword.clear_num();}									//清空密码错误次数int get_nums(){return keyword.get_nums();}								//获取密码错误次数string get_name(){return student.get_name();}							//获取与更改用户姓名void set_name(string name){student.set_name(name);}string get_sex(){return student.get_sex();}              				//获取与更改用户性别void set_sex(string sex){student.set_sex(sex);}string get_unit(){return student.get_unit();}							//获取与更改用户单位void set_unit(string unit){student.set_unit(unit);}string get_status(){return student.get_status();}						//获取与更改用户身份void set_status(string status){student.set_status(status);}
};
#endif // SECARD_H



#ifndef TECARD_H
#define TECARD_H
#include <iostream>
#include "Keyword.h"
#include "money.h"
#include "teacher.h"using namespace std;class Tecard
{long long Ecard_num;													//卡号Money Ecard_balance;													//余额Teacher teacher;														//用户Keyword keyword;														//密码bool Ecard_state;														//状态public:Ecard() : Ecard_num(0), Ecard_balance(0), Ecard_state(true){};			//构造函数long long get_num(){return Ecard_num;}									//获取卡号void set_num(long long num){this->Ecard_num = num;}						//设置卡号double get_balance(){return Ecard_balance.get_money();}					//获取金钱void deposit_balance(double money){Ecard_balance.add_money(money);}		//存钱void withdraw_balance(double money){Ecard_balance.sub_money(money);}	//消费bool get_state(){return Ecard_state;}									//得到状态void set_state(bool flag){Ecard_state = flag;}							//设置状态void set_keyword(string str){keyword.set_keyword(str);}					//设置密码string get_keyword(){return keyword.get_keyword();}						//获取密码void add_num(){keyword.add_num();}										//增加密码错误次数void clear_num(){keyword.clear_num();}									//清空密码错误次数int get_nums(){return keyword.get_nums();}								//获取密码错误次数string get_name(){return teacher.get_name();}							//获取与更改用户姓名void set_name(string name){teacher.set_name(name);}string get_sex(){return teacher.get_sex();}              				//获取与更改用户性别void set_sex(string sex){teacher.set_sex(sex);}string get_unit(){return teacher.get_unit();}							//获取与更改用户单位void set_unit(string unit){teacher.set_unit(unit);}string get_status(){return teacher.get_status();}						//获取与更改用户身份void set_status(string status){teacher.set_status(status);}
};
#endif // TECARD_H



#ifndef TREAP_NODE_H
#define TREAP_NODE_Hclass Treap_Node
{public:Treap_Node *left, *right;int fix, size, weight, num;long long value;int lsize(){return left ? left->size : 0;}int rsize(){return right ? right->size : 0;}
};#endif // TREAP_NODE_H



#ifndef TREAP_H
#define TREAP_H#include <iostream>
#include <cstdio>
#include <ctime>
#include <cmath>
#include <queue>
#include <cstdlib>
#include "ecard.h"
#include "treap_node.h"using namespace std;class Treap                                                       //Treap树
{public:Treap_Node *root;Treap() : root(NULL) {srand(time(0));}                        //构造函数void ins(Treap_Node *&p, long long value, int i);             //插入void del(Treap_Node *&p, long long value);                    //删除int find(Treap_Node *&p, long long value);void left_rotate(Treap_Node *&p);                             //左旋void right_rotate(Treap_Node *&p);                            //右旋
};inline void Treap::ins(Treap_Node *&p, long long value, int i)
{if (!p){p = new Treap_Node;p->value = value;p->num = i;p->fix = rand();p->left = NULL;p->right = NULL;}else if (value <= p->value){Treap::ins(p->left, value, i);if (p->left->fix < p->fix){right_rotate(p);}}else{Treap::ins(p->right, value, i);if (p->right->fix < p->fix){left_rotate(p);}}
}inline int Treap::find(Treap_Node *&p, long long value)
{if (p){if (p->value == value){return p->num;}else if (value < p->value){find(p->left, value);}else{find(p->right, value);}}else{return -1;}
}inline void Treap::left_rotate(Treap_Node *&p)
{Treap_Node *s = p->right;p->right = s->left;s->left = p;p = s;
}inline void Treap::right_rotate(Treap_Node *&p)
{Treap_Node *s = p->left;p->left = s->right;s->right = p;p = s;
}#endif // TREAP_H



这篇关于OUC_之校园智能卡管理系统(final)(源码)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟&nbsp;开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚&nbsp;第一站:海量资源,应有尽有 走进“智听

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显

kubelet组件的启动流程源码分析

概述 摘要: 本文将总结kubelet的作用以及原理,在有一定基础认识的前提下,通过阅读kubelet源码,对kubelet组件的启动流程进行分析。 正文 kubelet的作用 这里对kubelet的作用做一个简单总结。 节点管理 节点的注册 节点状态更新 容器管理(pod生命周期管理) 监听apiserver的容器事件 容器的创建、删除(CRI) 容器的网络的创建与删除

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验