C++资产设备管理系统

一、引言

1.1 项目设计背景及意义

1.1.1理论研究基础

(1)C++在C的基础上增加了面向对象的机制。
(2)充分利用面向对象机制中的多态性实现函数的设计。

1.1.2 技术层面的支持

运用系统为C++面向对象程序设计提供的各种设计方法和VS提供的集成开发环境实现函数的开发。

1.1.3 课设的意义

(1)资产设备管理系统可以实现资产的规范化,系统化管理,能够将所有资产设备聚集在一起实施统一运作,让管理员更方便地进行设备入库,设备查询,设备报废,资金查看等操作,推动学校实现更好地数字化管理。本设计界面操作简单方便,便于操作者掌握,减轻了管理人员的劳动力度,便全校师生和财务部管理员对于资产设备的了解与管理。资产设备管理系统的应用在改革传统的资产设备管理方式,健全服务功能,提升管理工作效率等方面具有积极作用。学校应当认清该管理系统应有的优势,并重视对系统的维护管理工作,力求使资产设备管理系统在最佳的工作状态下发挥最大的效用。
(2)通过设计此系统,熟练掌握C++语言的基本知识和技能,基本掌握面向对象程序开发的基本思路和方法,培养学生的动手操作能力,提高自主学习能力,能够利用所学的基本知识和技能,进行简单应用程序设计。

1.2 设计题目

资产设备管理系统

1.3 课设目的

(1)能够熟练掌握C++语言的基本知识和技能。
(2)基本掌握面向对象的基本思路和方法。
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

二、程序的功能结构

2.1 用户功能模块

在这里插入图片描述

2.2 设备功能模块

在这里插入图片描述

三、界面菜单设计

3.1 菜单的简单显示

system(“color e9”); //控制背景字体颜色:前面是背景,后面为字体
这里设置系统的整体背景为黄色,字体颜色为蓝色。

cout <<endl<< "                         欢迎来到登陆界面!                     "<<endl<<endl;
cout << "    ***********************登陆界面菜单**********************"<<endl;
cout << "    |                                                       |"<<endl;
cout << "    |                    ___1:用户注册___                   |"<<endl;
cout << "    |                    ___2:用户登录___                   |"<<endl;
cout << "    |                                                       |"<<endl;
cout << "    ---------------------------------------------------------"<<endl;
cout << "    *********************************************************"<<endl<<endl<<endl;

在这里插入图片描述

3.1.1 系统管理员界面

在这里插入图片描述

3.1.2 系统普通用户界面

在这里插入图片描述

3.1.3 设备信息显示

在这里插入图片描述

在这里插入图片描述

3.2输入界面的设计

3.2.1 用户注册界面

在这里插入图片描述

3.2.2 用户登录界面

在这里插入图片描述

3.2.3 设备入库界面

在这里插入图片描述

3.2.4 管理员审核界面

在这里插入图片描述
在这里插入图片描述

四、数据结构设计

5.1 菜单类

类名	              菜单类Menu
数据成员	无





成员函数	void showLoginMenu();                           //用户登录界面的显示
void showUserMenu();                            //用户菜单的显示
void showAdminMenu();                           //管理员菜单的显示
void showSearchDeviceMenu();                    //查询设备菜单的显示
void showSystemUser();                          //系统用户的显示
void showAppliers();                            //申请用户的显示
void showDevice(int switch_num);            	    //系统设备的显示

void chooseLoginSystem();                       //登录系统菜单跳转
void chooseUserSystem();                        //用户系统菜单跳转
void chooseAdminSystem();                       //管理员系统菜单跳转
void chooseSearchDevice();                      //查询设备功能跳转
函数主要分为两种类型:一为单纯的菜单的显示,二为菜单的跳转。跳转以用户系统菜单为例,采用switch方法进行菜单切换。
switch (i) {                                            //顾客系统功能选择
	case 1: system("cls");                             //设备申请入库模块
		device = (*device).device_enter(device);link.write_Link(device);
		system("cls");break;
	case 2: system("cls");                               //设备申请报废模块
		(*device).device_dumping(device);break;
	case 3: system("cls");                                //设备信息查询
		chooseSearchDevice();break;
	case 4: system("cls");                                //查看申请情况
		(*device).showApply(device);break;
	case 5: system("cls");                                 //在用设备信息
		showDevice(1);break;
case 6: system("cls");                                 //修改用户密码
		(*participator).modify_passwd(participator);link.write_Link(participator);
break;
	case 0:                                                //退出程序
		cout<<"    *********************感谢使用!**************************"<<endl;
		link.delete_Link(participator);link.delete_Link(device);break;
	default:
		cout << "    输入错误!" << endl;Sleep(500);system("cls");break;
}

5.2 用户类


类名	              用户类User



数据成员	char nickName[48];       //昵称
char realName[16];       //真实姓名
int userType;            //用户类型
char college[48];        //所在学院
char password[7];        //用户密码
int validate;            //用户审核是否通过(0为未通过,1为通过)
User *next;

成员函数	void user_login(User* head);                        //用户登录函数
User* user_register(User* head);                    //用户注册函数
void modify_passwd(User* head);                     //修改密码函数

(1) 用户登录函数
在这里插入图片描述
(2) 用户注册函数
在这里插入图片描述

(3) 修改密码函数
在这里插入图片描述

5.3 设备类

在这里插入图片描述
(1) 一个设备的生命历程
在这里插入图片描述

5.4 链表类

在这里插入图片描述

1)	创建链表函数(主要部分)
while (!feof(fp)){                           //导入
	p1 = (User *)malloc(sizeof(User));
	fscanf(fp, "%s%s%d%s%s%d", p1->nickName, p1->realName, &p1->userType, p1->college,p1->password,&p1->validate);
	if (head == 0) {
		head = p1;
		p2 = p1;
	}else {
		p2->next = p1;
		p2 = p1;
	}
}2)	输出链表函数(主要部分)
p = head;
while (p != 0){
	cout <<setw(8)<<left<< "    |"<<setw(12) << left<< p->nickName << setw(12) << left << p->realName << setw(8) << left << p->userType << setw(20) << left << p->college << setw(12) << left << "|" << endl;                   //控制输入样式
	p = p->next;
}3)	删除链表函数(主要部分)
while (head){
	p1 = head;
	head = head->next;
	free(p1);
}4)	将链表内容写进文件函数(主要部分)
while (p->next){
	fprintf(point, "%s %s %d %s %s %d\n", p->nickName, p->realName, p->userType, p->college, p->password, p->validate);
	p=p->next ;
}
fprintf(point, "%s %s %d %s %s %d", p->nickName, p->realName, p->userType, p->college, p->password, p->validate);
fclose(point);

五、联系与交流

q:969060742 完整代码、项目报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/496200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DAZ Studio中常用的快捷键组合

CtrlAlt左键: 旋转视图CtrlAlt右键: 平移视图CtrlF: 在Mac上对应AppleF,聚焦选中的物体Alt方向键: 平移视图CtrlP: 返回透视视图W/A/S/D: 上/下/左/右视图ShiftF11: 在Mac上可能需要添加Option键,全屏模式F3: 启用X射线视见效果Ctrl1到0: 切换各种渲染式样CtrlL: 切换场景灯光 …

Midjourney辞典AIGC中英双语图文辞典+Midjourney提示关键词

完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077

基于Java在线考试系统系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

element表格 加滚动,监听底部实现分页加载

表格要实现滚动很简单&#xff0c;给他加一个高度即可 height"300" 然后是监听事件 mounted() {this.lazyLoading();}, methods:{lazyLoading(){let dom document.querySelector(".el-table__body-wrapper");dom.addEventListener("scroll", (…

适合工业应用,MAX42408AFOA、MAX42408AFOB、MAX42410AFOA采用小解决方案尺寸的高功率DC/DC转换器

产品简介 MAX42408/MAX42410均为高度集成的同步降压转换器&#xff0c;具有内部高侧和低侧开关。这些IC均可在4.5V至36V的输入电压范围内提供高达8A/10A的电流。电压质量可以通过PGOOD信号来监测。MAX42408/MAX42410可以在压差模式下以99%的占空比运行&#xff0c;非常适合工业…

创业最大的机会是什么?2024普通人的机会!2024创业新风口!2024轻资产创业!2024年做什么行业赚钱有前景?

开封王婆的爆火就是商机的展现&#xff01;她就是敏锐的发现了婚恋市场上的空白点&#xff0c;看到了年轻人对真实、自由恋爱关系的渴望&#xff0c;以及对情感生活自主性和独立性的追求。并且除了人力几乎没有没有任何成本。而且&#xff0c;这种创业模式几乎只需要人力投入&a…

纯前端网页播放20路海康威视、大华RTSP视频流,调用双显卡GPU加速

关于网页播放摄像头RTSP视频流&#xff0c;网上有很多免费开源方案&#xff0c;大多数是通过把在服务器端RTSP转码成HLS或者RTMP等前端可以播放的视频流&#xff0c;然后推到前端播放&#xff0c;但是大多数延迟非常高&#xff08;比如&#xff1a;HLS延迟达到十几秒&#xff0…

Springboot实现qq邮件的发送

一、打开必要的邮件设置 首先登录qq邮箱官网登录之后&#xff0c;在设置中将传输协议给打开&#xff0c;我们需要用这个秘钥作为发件人的邮箱授权。 这里开启之后&#xff0c;记住这个秘钥。 二、代码编写 首先我们将作为发送邮件的账户信息写入配置文件。 spring:mail:hos…

#include<初见C语言之指针(5)>

目录 一、sizeof和strlen的对比 1. sizeof 2.strlen 二、数组和指针题解析 1. ⼀维数组 1.1数组名理解 2.字符数组 3. ⼆维数组 三、指针运算题解析 总结 一、sizeof和strlen的对比 1. sizeof 我们前面介绍过sizeof是单目操作符 sizeof括号中有表达式&#xff0c;不…

力扣19 链表 删除倒数N结点

目录 问题&#xff1a; 1.链表的组成结构 2.如何改变倒数第N个结点 2.1 求链表长度 2.2 找到倒数第N个结点前一个结点 2.3 让倒数N前一个改变即可 3.源代码示范 问题&#xff1a; 1.链表的组成结构 单向链表 由value next 组成 &#xff0c;value包括此结点的各基础属…

【虹科干货】长文预警!使用ntopng和NetFlow/IPFIX检测Dos攻击(上)

为了和大家探讨网络安全领域中的关键问题&#xff0c;我将分两期来展示如何使用ntopng和NetFlow/IPFIX检测Dos攻击。在本篇中&#xff0c;我先简单介绍网络安全面临的挑战、为何网络流量分析在应对网络安全挑战中起重要作用&#xff0c;此外&#xff0c;我会介绍在此次检测中使…

【机器学习】代价函数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

绍兴市经信局副局长胡小君一行莅临迪捷软件调研走访

2024年3月27日下午&#xff0c;绍兴市经信局党组成员、副局长胡小君一行莅临迪捷软件调研走访。 胡局长一行实地参观了迪捷软件办公环境&#xff0c;对迪捷软件的发展历程、产品应用、未来发展计划等情况进行深入了解&#xff0c;充分倾听了迪捷软件当前遇到的困难&#xff0c;…

推动制药行业数字化转型:基于超融合架构的MES一体机解决方案

随着中国对信息化重视程度的不断加深&#xff0c;制药行业作为国民经济的重要支柱之一&#xff0c;也在积极寻求通过数字化手段提升产业效率与产品质量。自党的十六大提出“以信息化带动工业化”的战略以来&#xff0c;制药业的这一转型探索尤为迫切。 在现代制药生产中&#…

后端之卡尔曼滤波

后端之卡尔曼滤波 前言 在很久之前&#xff0c;人们刚结束信息传递只能靠信件的时代&#xff0c;通信技术蓬勃发展&#xff0c;无线通信和有线通信走进家家户户&#xff0c;而著名的贝尔实验室就在这个过程做了很多影响深远的研究。为了满足不同电路和系统对信号的需求&#…

数字化生产:探索生产管理软件在工业4.0时代的关键作用

导 读 ( 文/ 1445 ) 工业4.0时代的到来催生了数字化生产的浪潮&#xff0c;而生产管理软件在其中扮演着关键的角色。本文将探索生产管理软件在工业4.0时代的关键作用&#xff0c;从实时数据分析、智能化生产过程和协同合作等方面&#xff0c;阐述软件在实现数字化生产的转型中的…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa&#xff0c;是GPI锚定的细胞表面蛋白Ly-6超家族的成员&#xff0c;在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞&#xff08;包括单核细胞、巨噬细胞、粒…

全面升级!对比SDN园区方案,云化园区方案好在哪?

SDN的概念提出已十几年&#xff0c;至今却仍不温不火&#xff0c;当下主流的SDN控制器方案集网络的部署、配置、分析为一体&#xff0c;比起传统网络更具优越性&#xff0c;却并未获得市场成功。 Gartner在2021和2023发布的《Hype Cycle for Enterprise Networking(企业网络技术…

第 6 章 ROS-Arbotix(自学二刷笔记)

重要参考&#xff1a; 课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ 讲义链接:Introduction Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程 6.5 Rviz中控制机器人模型运动 通过 URDF 结合 rviz 可以创建并显示机器人模型&#xff0c;不过&#xff0c;…

浅谈-程序员35岁面临失业风险需要注意什么?

目录 一、现状 二、原因分析 三、个人建议 四、总结 一、现状 互联网公司不愿意招收35岁以上的程序员主要是因为性价比问题。年龄大了&#xff0c;薪资要求通常较高&#xff0c;而加班时间可能较少。此外&#xff0c;互联网公司普遍认为没有35岁以上的中年人。 二、原因分析…