C++大作业头文件

图书管理系统——C++实现 Book.h头文件#pragma once #define NUM1 128 #define NUM2 50 #define Col 80 #define Line 25 #include<iostream> #include<iomanip> #include<cstdio> #include<cstdlib> using namespace st... 阅读详情

这几天写大作业,本来已经调试成功了,但是过两天突然乱码了两个文件,导致我只能重新写。现在将写好的文件保存在这里,以免又乱码了。

1.Book.h

#ifndef BOOK_H_
#define BOOK_H_ 
#include<string>
#include<fstream>
#include<iostream>
#include<time.h>
using namespace std;
/*
此文件定义书本类book.
包括私有变量:name, code, author, time(出版日期),price(价格), available(是否可借),lend_time(可借日期数)
一共七个
公有函数:
构造函数,析构函数,显示图书信息函数,设置图书各私有变量的函数,
获得所有私有变量的函数
两个友元函数重载操作符<<和>>, 用来进行文件的读写。
一个函数CatchTime, 用来获得当前时间,以便进行记录
类变量:static int book_num用来记录书籍数量
*/
class book
{
private:
	string name;
	string code;
	string author;
	string time;
	bool available;
	float price;
	int lend_time;
public:
	static int book_num;
	//构造函数
	book(){}
	book(string n, string c, string a, string t, float p, int le, bool av=false):
		name(n), code(c), author(a), time(t), price(p), available(av), lend_time(le){}
	//析构函数
	~book(){}
	//显示图书信息函数
	void show();
	//设置图书私有变量函数
	void set_name(string);
	void set_code(string);
	void set_author(string);
	void set_time(string);
	void lend_or_return(bool);
	void set_price(float);
	void set_lend_time(int);
	//获得所有变量的函数
	string get_name();
	string get_code();
	string get_author();
	string get_time();
	bool get_available();
	float get_price();
	int get_lendtime();
	friend istream& operator >> (istream& stream, book& b);
	friend ostream& operator << (ostream& stream, book& b);
	friend string CatchTime();
};

#endif // !_BOOK.H_

2.CatchTime.h

#ifndef CATCHTIME_H_
#define CATCHTIME_H_
#include<time.h>
#include<string>
using namespace std;

string CatchTime();
#endif // !CATCHTIME_H_


3.Librarian.h

#ifndef LIBRARIAN_H_
#define LIBRARIAN_H_
/*
图书管理员类Librarian_user,继承自User类和Log类
包含成员变量:Librarian_num(图书管理员人数),mode(恒为Librarian)
成员函数:构造函数(创建一个管理员对象,并且为User数组添加)
成员函数:Add_book(添加图书), Delete_book(删除图书), 
Change_book(改变图书信息), Find_book(查找图书), Addup_book(统计所有图书)
*/
#include"user.h"
#include"Log.h"
#include"book.h"
#include"CatchTime.h"
class Librarian_user:public User, public Log
{
public:
	static int Librarian_num; //图书管理员人数
	const User_mode mode = Librarian;
	Librarian_user() {}
	Librarian_user(string, int, string, User*);
	~Librarian_user(){}
	//friend string CatchTime();
	//下面是管理员对图书的操作
	void Add_book(book* B);
	void Delete_book(book* B);
	void Change_book(book* B);
	void Find_book(book* B);
	void Addup_book(book* B);
};
#endif // !LIBRARIAN_H_

4.Log.h

#ifndef LOG_H_
#define LOG_H_
#include"user.h"
/*
	这是用户注册和登录用的类
成员变量:当前用户和用户对应的User类中的下标
成员函数:构造函数,析构函数,注册(rigister),登录(login),判断登录是否成功(Log_success),
判断注册是否成功(rigister_success)
*/
class Log
{
public:
	User us;
	int number;  //对应User类中的下标
	Log();
	~Log();
	void rigister(User* pu);
	void login(User* pu);
	bool Log_success;
	bool rig_success;
};

#endif // !LOG_H_


5.Reader.h

#ifndef READER_H_
#define READER_H_

//定义读者类
/*它时一个派生类,继承了User类和Log类
私有变量:borrow[10],表示最多借10本书
公有变量:Reader_num, 记录读者数量
公有函数:lend_book, return_book, lend_show, book_show
*/
#include"user.h"
#include"Log.h"
#include"book.h"
class Reader_user :public User, public Log
{
private:
	book borrow[10]; //用户所借的书,最多10本
	int book_lend;  //已经借阅的书,默认为0
public:
	void zc(User* u, Log lo, Reader_user* r);  //读者类进行注册的函数
	static int Reader_num;  //读者数量
	void lend_book(book* B);  //借书
	void return_book(book* B);  //还书
	void lend_show();  //查看已经借阅的图书
	void book_show(book* B);   //查看所有图书
	Reader_user() :User() { User::mode = Reader; book_lend = 0; }//默认构造函数
	Reader_user(string, int, string, User*);  //构造函数
	~Reader_user(){}  //析构函数

};
#endif // !READER_H_


6.User.h

#ifndef USER_H_
#define USER_H_
#include<string>
using namespace std;
/*
这个文件定义用户类User,这是一个基类
私有对象:name,account(账户), password(密码), mode(用户类型)
公有函数:change_pass(更换密码),change_name(改变姓名), change_mode(改变身份),
get_mode(获得身份), get_name(获得姓名), show(展示信息)
公有对象:static int User_num用来记录当前用户人数
*/

enum User_mode{Librarian, Reader };//用户类型
class User
{
protected:
	string name;
	int account;
	string password; 
	User_mode mode;
public:
	static int User_num;
	User(string, int, string, User_mode); //构造函数
	User() { mode = Reader; }  //默认构造函数
	//User(const User& u1);  //复制构造函数
	~User();
	void show();
	void change_pass();
	void set_pass(string); //这是注册用户时填入密码的函数
	void change_name(string name);
	void change_account(int);
	void change_mode(User_mode);

	string get_name();
	User_mode get_mode();
	int get_account();
	string get_password(); //这个获得密码的函数似乎有点危险,不过不用我又无法登录
};
#endif // !USER_H_


Qt中绘制五子棋棋盘 一个需要做大作业的同学问我相关内容,就顺手写了一个,贴出来。 项目包含头文件 mainwindowh,源文件mainwindow.cpp和主函数main.cpp。 如下: mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include class MainWindow : public 阅读详情

相关推荐

计算机图像学OpenGL大作业容易更改

使用vs2019。简单在display中改图像位,就可以变成自己的

weixin_57040827的博客 1万+

[CUDA By Example]关于#include“../common/book.h“头文件的添加

之后就是先写个book.h的头文件,将头文件添加到文件夹 common,再将common放到你创建的解决方案文件夹里就可以了。我个人的感受(初学),可以在代码中加上#include"curand_kernel.h"。由于book.h是书中的头文件,所以我们要手动添加,首先要得到book.h的代码。

weixin_69632402的博客 410

C++结课大作业——职工管理系统

这个项目分为头文件和CPP文件和一个.txt文件 实现功能如图所示 我一一列出来(头文件,cpp文件,txt文件) 按着这三个复制粘贴就可以用 boss.h #pragma once //普通员工头文件子类继承父类 #include"worker.h" #include<iostream> #include<string> using namespace std; class boss :public worker { public: //构造函数 boss(int id, s

qq_47218406的博客 2275

C++实战(一)——图书管理系统

前言:     图书类定义在头文件Book.h中,代码如下:    图书类成员函数的实现都存储在实现文件Book.cpp内,代码如下:

行歌 1万+

OSG学习笔记12-期末大作业(包含交互、纹理、光照)

这是一个期末大作业,很low的大作业。按老师的要求要实现纹理,光照,交互等,还好可以用OSG,用OpenGL的话不知道要写多少代码。 这个代码主要就是实现了球体的贴图,添加了一个光照,还有通过键盘来操控球体的功能。

吃货敲代码 2619

大二c++大作业,俄罗斯方块 c++实现,黑框框

一、实验实习目的及要求 目的:实现俄罗斯方块游戏的基本功能。 要求:Windows界面实现,设计比较简洁美观的游戏界面,可以实现方块的预览和控制,分数显示及更新,游戏暂停等基本功能,利用对话框应用程序形式。 二、实验实习内容简介: (一)系统应实现的主要功能: 图形预览功能 分数显示功能 方向键控制游戏 暂停与继续游戏功能 (二)各模块的具体功能和简单算法: 该程序的设计,结合了...

Eudoraa的博客 3351

C++定义一个Book类,包括书名、书号、出版社、定价等数据成员,为其添加构造函数、修改书名、定价的set函数、获取书号的get函数,以及显示图书信息的showBook()成员函数

定义一个Book类,包括书名、书号、出版社、定价等数据成员,为其添加构造函数、修改书名、定价的set函数、获取书号的get函数,以及显示图书信息的showBook()成员函数。将Book类的定义放在Book.h头文件中,类实现文件放在Book.cpp文件中。 在testBook.cpp中,创建一个mian函数,在mian函数中创建两个Book类型的对象,并对各对象初始化,调用showBook()...

Bamboo 3万+

GPU高性能编程CUDA实战—book.h CPUBitmap.h等头文件

GPU高性能编程CUDA实战—book.h CPUBitmap.h等头文件

关于c++课堂塔防大作业的一些头文件解释

QObject: https://www.cnblogs.com/zhying13/p/4020075.html QObject这个 class 是 QT 对象模型的核心,关于对象模型可以阅读C++对象模型详解,绝大部分的 QT 类都是从这个类继承而来。这个模型的中心特征就是一个叫做信号和槽(signaland slot)的机制来实现对象间的通讯,你可以把一个信号和另一个槽通过 connect(…...

weixin_44813954的博客 1087

gpu高性能编程book.h头文件

在cuda by example 一书的学习中,经常遇到HANDLE_ERROR()函数,原来这是这本书在book.h中自己定义的,这里提供下载

系统-等保三级-CentOS Linux 7合规基线检查 shell脚本

系统-等保三级-CentOS Linux 7合规基线检查 shell脚本

swindy博客 2407

#关于全局变量的理解与头文件、extern的综合运用

写在前面:借写课程大作业的时候,摆脱平常只写百来行代码的局限,尝试使用头文件使代码条理更清晰。结果发现想象中.cpp的“全局”并非实际的项目的全局。折腾了许久,得到此篇收获总结。问题描述:为了减少小游戏编程中函数复杂的参数传递,在.cpp文件中定义了如下“个人自以为是全局变量”的变量/*********************全局变量***************************/ st...

vincent_x3的博客 364

LightRAG实战:5分钟快速搭建一个轻量级法律问答系统(附完整代码)

本文通过实战指南,详细介绍了如何使用LightRAG技术快速搭建一个轻量级法律问答系统。该方案通过构建扁平化实体关系网络和混合检索策略,在5分钟内即可完成从环境准备到智能问答的完整流程,并附有完整代码,为中小团队和个人开发者提供了高效、低成本的AI应用解决方案。

time3的博客 277

C/C++2048小游戏

C/C++2048小游戏

Mouss_rose的博客 626

CS224W图神经网络实战:如何用Motifs和Graphlets分析社交网络结构?

本文基于斯坦福CS224W课程,深入探讨了如何利用网络模体(Motifs)和图元(Graphlets)分析社交网络的微观结构。通过实战代码演示,文章介绍了如何识别具有统计显著性的关键连接模式,计算节点的图元度向量以刻画局部拓扑特征,并将这些结构洞见应用于社区发现、影响力分析及图神经网络的节点特征工程,从而提升模型在虚假账号检测等任务中的性能。

2w3e4r5t6y的博客 911

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7113

C++:无法解析的外部符号问题 与 头文件包含注意要点

无法解析的外部符号

P3ray的博客 7万+

VMD分子可视化实战:5个隐藏技巧让你的科研图像秒变顶刊级别

本文深入探讨了VMD分子可视化软件在科研图像美化中的5个高阶技巧,旨在帮助研究者将分子结构图提升至顶刊级别。内容涵盖原子色彩与材质的艺术化定制、沉浸式分子环境构建、专业构图与视角控制、数据驱动的动态可视化以及自动化工作流建立,通过精细的色彩映射、光照调整、周期性边界展示和脚本自动化,显著增强图像的科学叙事性与视觉冲击力。

weixin_29240343的博客 420

五子棋c++代码_C++大作业赏析 | 五子棋

- 清小C -C++大作业赏析——如何完成一篇优秀的C++大作业苦恼C++大作业的同学快点进来看看!(小声)五子棋设计五子棋是大家最为熟悉双人对弈的棋类游戏之一,只要任意行、列、斜线连成五子即可获胜。上个学期中,陈昊柯同学的大作业实现了五子棋,不但能够双人对战,而且实现了五子棋AI,能人机对战。我们一起来欣赏陈同学的大作业吧。在开始之前,我们先来看下运行实例吧!1. 首先运行程序,进入主...

weixin_39646725的博客 4418

python控制caxa模块_CAXA二次开发实用手册.doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械软件CAXA二次开发实用手册.doc119页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所得收...

weixin_39990819的博客 1760

【Windows Server 2019】活动目录 (Active Directory) ——将计算机加入域和脱离域

博文介绍了如何将计算机加入AD域和脱离AD域,包括加入域,验证客户机加入到域后的信息,使用域账户用户在客户机上登录,使用本地账户用户在计算机上登录,脱离域。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6169

C++(五):终章:C++大作业

C++大作业记录1. 第一天1.1 菜单栏1.1.1 打开图片1.1.2 图片另存为1.1.3 保存图片1.1.4 新建1.1.5 关闭二级目录三级目录 一学期的C++课程要结束了,最后用一篇博客记录一下大作业的过程,记录的可能会有点乱,就按照天数来记录了。 1. 第一天 1.1 菜单栏 qt的菜单栏的UI界面其实很友好,直接编辑就好 1.1.1 打开图片 打开图片使用到的主要函数是:QFileDialog中的getOpenFileName。该函数包含四个参数,分别表示为: 参数一:父窗口 参数二:对话框

qq_45792429的博客 6075

Qt垂直滚动条QVerticalScrollBar详解:从基础到实战的控件开发指南

本文系统解析Qt中QVerticalScrollBar的用法,从基础概念到进阶技巧。主要内容包括:1)基础认知:介绍其继承关系、作用及典型应用场景;2)核心用法:创建方法、关键属性配置和信号槽连接;3)进阶技巧:自定义样式表美化外观,以及与自定义内容区域的联动实现;4)实战注意事项,如避免循环触发和高DPI适配等。文章强调掌握QVerticalScrollBar对提升Qt滚动类功能开发效率的重要性,并建议通过自定义文本编辑器实践巩固知识点。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 757

程序由多个文件组成时、 头文件

为允许把程序分成独立地逻辑块,C++支持所谓的分别编译(separation compilation),这样程序可以有多个文件组成。 头文件为相关声明 提供了一个集中存放的位置。头文件一般包含类的定义、extern变量的声明和函数的声明,头文件经常#include其他头文件。使用或定义这些实体时需要包相应的头文件。 头文件用于声明而不是用于定义: 因为头文件包含在多个源文件中,并且定义只可以...

weixin_34342578的博客 238

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【C++大作业】实现俄罗斯方块(附代码+实现思路带详细注释)

由于最近C++大作业需要,所以来记录下自己写大作业的记录(自留) 效果图 有目标才有动力 先来看下最终的效果图吧 代码加上注释总计不足三百行,简化版本200行左右 环境配置SFML 首先由于我们想要最终的结果不仅仅是一个简单的终端用文字输出的界面,希望有一个图形化的界面,所以我们决定采用一个图像-----SFML 将这个库搭载到VS上的过程和我们之前说过的讲OPENCV搭载到VS上的操作过程是类似的,我们在这里就简单的提一下 首先去官网下载这个库 百度里直接搜索SFML就可以了 下载到电脑中,并且解压

诗尾没有篇章 的博客 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VS2022 winform调用cpp

使用VS2022,在C#Winform中执行cpp代码。

unknownisland的博客 1005

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: C#学习之Winform小实战——自己的QQ农场
下一篇: C++大作业测试文件
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值