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;其…

2024年腾讯云服务器租用价格_轻量和CVM报价

腾讯云服务器价格表2024年最新价格&#xff0c;轻量2核2G3M服务器61元一年、2核2G4M服务器99元1年&#xff0c;三年560元、2核4G5M服务器165元一年、3年900元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、8核32G配置115元1个月&#xff0c;345元3个月。CVM云服务…

React或Vue与后端通讯的跨域问题处理

解决React或Vue与后端通讯的跨域问题通常有以下几种方法&#xff1a; 后端设置CORS&#xff08;最常用&#xff09; 在PHP后端代码中添加响应头&#xff0c;允许特定的前端域名来进行跨域请求。例如&#xff1a; header("Access-Control-Allow-Origin: http://你的前端域名…

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

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

遍历+length

不要把遍历当做打印&#xff1f; package src.arraydemo;public class ArrayDemo3 {public static void main(String[] args) {int arr[]{1,2,3,4,5,4,5,5,5,6}; // 遍历1// System.out.println(arr[0]); // 遍历2//在Java中有一个关于数组的长度属性&#xff0…

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服务器支持多少人同时在线…

自主高动态范围相位展开

💡 摘要: 基于图像的波前传感方法,如自适应修改的Gerchberg-Saxton相位恢复算法(MGS),需要一个先验相位知识的矩阵来避免在估计过程中出现高动态范围的“相位包裹”现象。以前的解包裹方法取得了有限的成功,或者需要一定程度的专家干预。我们成功地开发了一种方法和算…

VMware虚拟化平台巡检:详细规范与实操技巧

1.1 检测多个主机之间是否有相同的软件版本 巡检项目 巡检办法 结果 检测多个ESXi主机间是否有不同的软件版本 通过图形化方法: 为了获得ESXi主机的版本信息&#xff0c;使用VS Client&#xff0c;点击给定ESXi主机的配置标签。 为了获得VC的版本信息&#xff0c;通过使用V…

文件(夹)命令行比较工具和一个图形界面比较工具

命令行比较工具&#xff1a;diff windows上需要在git bash中运行 比较文件夹&#xff1a;diff -r -q dir1 dir2 图形界面比较工具&#xff1a; Beyond Compare 参考资料&#xff1a; https://blog.51cto.com/u_13045706/6263517 https://www.cnblogs.com/dehuachenyunfei/…

利用图像识别进行疾病诊断

利用图像识别进行疾病诊断是人工智能和机器学习技术在医疗领域的一个重要应用。图像识别技术可以通过分析医学影像&#xff08;如X光片、CT扫描、MRI、超声波图像等&#xff09;来辅助医生诊断疾病。以下是图像识别在疾病诊断中的关键步骤和挑战&#xff1a; 数据收集与预处理…

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;是…

【React】React 组件 API

React组件的API是指React组件可以使用的一系列方法和属性,等。以下是React组件API的一些主要部分: setState 在 React 类组件中,setState 是一个重要的方法,用于更新组件的状态。当状态发生变化时,React 会重新渲染该组件以及其子组件,以反映最新的状态。下面是一…

【源码】I.MX6ULL移植OpenCV

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