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.mzph.cn/news/774944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

24.park和unpark方法

1.park方法可以暂停线程&#xff0c;线程状态为wait。 2.unpark方法可以恢复线程&#xff0c;线程状态为runnable。 3.LockSupport的静态方法。 4.park和unpark方法调用不分先后&#xff0c;unpark先调用&#xff0c;park后执行也可以恢复线程。 public class ParkDemo {pu…

冗余双写方案下数据一致性问题解决及延申问题处理方案

主要整理了采用冗余双写方案后的问题解决方案。 1、问题&#xff1a;冗余双写场景下&#xff0c;如何解决数据一致性问题&#xff1f; 方案一&#xff1a; 直接RPC调用Seata分布式事务框架&#xff0c;采用该方式实现了事务的强一致性&#xff0c;代码逻辑简单的同时业务侵入…

【题解】—— LeetCode一周小结12

【题解】—— 每日一道题目栏 上接&#xff1a;【题解】—— LeetCode一周小结11 18.区域和检索 - 数组不可变 题目链接&#xff1a;303. 区域和检索 - 数组不可变 1.计算索引 left 和 right &#xff08;包含 left 和 right&#xff09;之间的 nums 元素的 和 &#xff0c;其…

嵌入式学习46——硬件相关2串口通信

串口&#xff1a; 端口&#xff1a; COM 波特率&#xff1a; 9600 115200 &#xff08;bps&#xff09; 每秒传输的数据…

Multimodal Chain-of-Thought Reasoning in Language Models阅读笔记

论文&#xff08;2023年&#xff09;链接&#xff1a;https://arxiv.org/pdf/2302.00923.pdf GitHub项目链接&#xff1a;GitHub - amazon-science/mm-cot: Official implementation for "Multimodal Chain-of-Thought Reasoning in Language Models" (stay tuned a…

14:有效的符号

给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

前端-html-02

1.列表 标签名功能和语义属性单标签还是双标签ul无序列表包裹元素双标签 ol 有序列表包裹元素双标签li列表项双标签dl定义列表包裹元素双标签dt定义列表项标题双标签dd定义列表项描述双标签 li必须由Ul或者ol包裹 <!DOCTYPE html> <html><head><…

腾讯云4核8G12M轻量服务器性能测评,支持多少人同时在线?

腾讯云4核8G服务器价格&#xff1a;轻量4核8G12M优惠价格646元15个月、CVM S5服务器4核8G配置1437元买1年送3个月。腾讯云4核8G服务器支持多少人同时在线&#xff1f;支持30个并发数&#xff0c;可容纳日均1万IP人数访问。腾讯云百科txybk.com整理4核8G服务器支持多少人同时在线…

7.JDK下载和安装

文章目录 一、下载二、安装三、JDK的安装目录介绍 写JAVA代码不是随随便便能写的&#xff0c;我们得先做一点准备工作。例如&#xff0c;我们平时想要玩一把游戏&#xff0c;就需要先下载、安装才能玩游戏。JAVA也是一样的&#xff0c;也是需要下载并安装相关的软件&#xff0c…

Avalonia笔记2 -数据集合类控件

学习笔记&#xff1a; 1. DataGrid 笔记1中已经记录&#xff1b; 2. ItemsControl 属性&#xff1a; ItemsSource&#xff1a;数据源 ItemsControl.ItemTemplate&#xff1a;单项数据模板&#xff0c;内部使用<DataTemplate> 示例&#xff1a; <ItemsContr…

【启发式算法】同核分子优化算法 Homonuclear Molecules Optimization HMO算法【Matlab代码#70】

文章目录 【获取资源请见文章第4节&#xff1a;资源获取】1. 算法简介2. 部分代码展示3. 仿真结果展示4. 资源获取 【获取资源请见文章第4节&#xff1a;资源获取】 1. 算法简介 同核分子优化算法&#xff08;Homonuclear Molecules Optimization&#xff0c;HMO&#xff09;是…

【源码】I.MX6ULL移植OpenCV

编译完成的源码&#xff1a; git clone https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.下载源码放在自己的opecv源码目录下 2.QTOpenCV工程代码放置的位置 3.更改.pro工程文件的opencv地址 4.使用命令行编译 前提是自己环境中已经配置好arm-qt的交叉编译…

Springboot整合Redis报错:Unable to connection Redis

今天在做Springboot整合Redis中碰到下列错误&#xff1a; 基于以上的错误首先在Xshell或者其他远程操控虚拟机的软件上看能不能连接到Redis: [zzllocalhost ~]$ redis-cli -h 192.168.136.132 -p 6379 -a ****** Warning: Using a password with -a or -u option on the comma…

xxl-job 适配人大金仓数据库 V8R6

前言 由于一些众所周知的原因&#xff0c;项目需要需要进行改造使其适配人大金仓的数据库。 xxl-job适配人大金仓 特此说明&#xff1a; 当前修改的xxl-job版本 为 2.4.1-SNAPSHOT mysql上的xxl-job库 迁移到 人大金仓数据库上pom中新增依赖 kingbase8 驱动 注意版本<!-…

连接数据库(MySQL)的JDBC

目录 JDBC简介快速入门API详解DriverManager&#xff08;驱动管理类&#xff09;注册驱动&#xff1a;获取数据库连接(对象)&#xff1a; Connection&#xff08;数据库连接对象&#xff09;获取执行SQL的对象管理事务 Statement(执行SQL语句)执行DML、DDL语句执行DQL语句 Resu…

Sora那么牛,他的模型的成本会有多少呢?

Sora的训练需要大量的计算资源&#xff0c;估计需要4211-10528个 Nvidia H100 GPUs运行一个月。推理成本&#xff1a;一个Nvidia H100 GPU大约每小时能生成5分钟的视频。初期的Sora成本将非常高&#xff0c;肯定是不适合普通人来使用&#xff0c;所以目前OpenAI都是先找一些艺术…

STM32串口收发单字节数据原理及程序实现

线路连接&#xff1a; 显示屏的SCA接在B11&#xff0c;SCL接在B10&#xff0c;串口的RX连接A9&#xff0c;TX连接A10。 程序编写&#xff1a; 在上一个博客中实现了串口的发送代码&#xff0c;这里实现串口的接收代码&#xff0c;在上一个代码的基础上增加程序功能。 Seiral.…

创建AI智能体

前言 灵境矩阵是百度推出的基于文心大模型的智能体&#xff08;Agent&#xff09;平台&#xff0c;支持广大开发者根据自身行业领域、应用场景&#xff0c;选取不同类型的开发方式&#xff0c;打造大模型时代的产品能力。开发者可以通过 prompt 编排的方式低成本开发智能体&am…

VMware和Xshell连接

1.开启虚拟机 2.使用管理员账户&#xff0c;点击未列出 3.输入用户名密码 4.点击编辑虚拟网络编辑器 5.记住自己的网关和IP地址 6.打开终端 7.输入命令&#xff0c;vim / etc / sysconfig / network -scripts / ifcfg-ens33 回车 8.修改图中两处按“ I ”键进入编辑 d…

计算机组成原理-6-计算机的运算方法

6. 计算机的运算方法 文章目录 6. 计算机的运算方法6.1 机器数的表示6.1.1 无符号数和有符号数6.1.2 有符号数-原码6.1.3 有符号数-补码6.1.4 有符号数-反码6.1.5 有符号数-移码6.1.6 原码、补码、反码的比较 6.2 数的定点表示和浮点表示6.2.1 定点表示6.2.2 浮点表示6.2.3 ΔI…