C++资产设备管理系统

news2024/12/23 17:39:58

一、引言

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.coloradmin.cn/o/1551484.html

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

相关文章

国外创意二维码广告:芬兰知名狗粮品牌如何在用AI技术说狗话?

AI 的飞速发展&#xff0c;极大地促进了各行各业的技术更迭&#xff0c;随之出现的是许多创意应用。比如&#xff0c;这次的户外创意广告案例中&#xff0c;AI面部识别技术就被用到了宠物狗身上。 今年3月份&#xff0c;芬兰一家知名的狗粮品牌Hau-Hau Champion &#xff0c;在…

基于java实现的高校二手交易平台

开发语言&#xff1a;Java 框架&#xff1a;ssm 技术&#xff1a;JSP JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09; 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclip…

ZYNQ学习之Ubuntu环境下的Shell与APT下载工具

基本都是摘抄正点原子的文章&#xff1a;<领航者 ZYNQ 之嵌入式Linux 开发指南 V3.2.pdf&#xff0c;因初次学习&#xff0c;仅作学习摘录之用&#xff0c;有不懂之处后续会继续更新~ 一、Ubuntu Shell操作 简单的说Shell 就是敲命令。国内把 Linux 下通过命令行输入命令叫…

Linux_进程概念_冯诺依曼_进程概念_查看进程_获取进程pid_创建进程_进程状态_进程优先级_环境变量_获取环境变量三种方式_3

文章目录 一、硬件-冯诺依曼体系结构二、软件-操作系统-进程概念0.操作系统做什么的1.什么叫做进程2.查看进程3.系统接口 获取进程pid- getpid4.系统接口 获取父进程pid - getppid5.系统接口 创建子进程 - fork1、手册2、返回值3、fork做了什么4、基本用法 6.进程的状态1、进程…

智慧工地安全生产与风险预警大平台的构建,需要哪些技术?

随着科技的不断发展&#xff0c;智慧工地已成为现代建筑行业的重要发展趋势。智慧工地方案是一种基于先进信息技术的工程管理模式&#xff0c;旨在提高施工效率、降低施工成本、保障施工安全、提升施工质量。一般来说&#xff0c;智慧工地方案的构建&#xff0c;需要通过集成物…

2024年做视频号小店是不是明智之举?这篇文章告诉你答案

大家好&#xff0c;我是电商糖果 视频号自从去年电商的知名度打开之后&#xff0c;不少朋友都盯上这块肥肉。 要知道现在可是短视频电商的时代&#xff0c;抖音&#xff0c;快手靠做电商赚了不少钱。 视频号又怎么会放过这次的风口呢&#xff1f; 也有不少想做电商的朋友问…

安卓SharedPreferences使用

目录 一、简介二、使用2.1 getSharedPreferences2.2 增加数据2.3 读取数据2.4 删除数据2.5 修改数据2.6 清除数据2.7 提交数据 一、简介 SharedPreferences是Android平台上一个轻量级的存储类&#xff0c;主要是保存一些常用的配置比如窗口状态&#xff0c;一般在Activity、重…

《Linux运维实战:达梦DM8数据库之开启本地归档》

一、归档概述 在达梦数据库归档模式下&#xff0c;数据库同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。采用归档模式会对系统的性能产生影响&#xff0c;然而&#xff0c;当系统一旦出现介质故障&#xff0c;如磁盘损坏时&#xff0c;利用归档日志&#xff0c…

康耐视visionpro-CogToolBlock工具详细说明

CogToolBlock功能: 将多个工具组合在一起完成某个功能&#xff0c;接口简单且可以重用 CogToolBlock操作说明&#xff1a; 1.打开工具栏&#xff0c;双击或点击鼠标拖拽添加CogToolBlock CogToolBlock操作说明 ②.添加输入图像&#xff0c;右键“链接到”或以连线拖拽的方式选…

【JavaWeb】Day22.maven安装介绍

目录 一.初识Maven 什么是maven? Maven的作用 二.Maven概述 1. Maven介绍 2.Maven模型 3. Maven仓库 三. Maven安装 1.下载 2. 安装步骤 1. 解压安装 2. 配置本地仓库 3.配置阿里云私服 4. 配置Maven环境变量 一.初识Maven 什么是maven? Maven是apache旗下的一个…

稀碎从零算法笔记Day27-LeetCode:螺旋矩阵

题型&#xff1a;矩阵(二维数组)、边界问题 链接&#xff1a;54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 很有趣的…

Transformer的前世今生 day11(Transformer的流程)

Transformer的流程 在机器翻译任务中&#xff0c;翻译第一个词&#xff0c;Transformer的流程为&#xff1a; 先将要翻译的句子&#xff0c;一个词一个词的转换为词向量送入编码器层&#xff0c;得到优化过的词向量以及K、V&#xff0c;将K、V送入解码器层&#xff0c;并跟解码…

Games104 听后笔记

1、为什么UE5要自己写一套STL库 因为传统的STL库中&#xff0c;例如&#xff1a;vector&#xff0c;它一般采用的是双倍扩容法&#xff0c;加入1000个数据装满了&#xff0c;现在需要又加一个&#xff0c;那么就开辟了2000个数据的空间&#xff0c;那么当前就又999的数据空间暂…

【差分约束+并查集】第十三届蓝桥杯省赛C++ A组 Java A组/研究生组《推导部分和》(C++)

【题目描述】 【输入格式】 【输出格式】 【数据范围】 【输入样例】 5 3 3 1 5 15 4 5 9 2 3 5 1 5 1 3 1 2 【输出样例】 15 6 UNKNOWN 【思路】 题解来源&#xff1a;AcWing 4651. $\Huge\color{gold}{推导部分和}$ - AcWing 【代码】 #include<bits/stdc.h> #define…

CentOS7.7安装XIAOJUSURVEY问卷系统|表单收集|简单考题

XIAOJUSURVEY问卷系统&#xff0c;适用于市场调研、客户满意度调研、在线考试、投票、报道、测评等众多场景。数据能力上&#xff0c;经过上亿量级打磨&#xff0c;沉淀了分题统计、交叉分析、多渠道分析等在线报表能力&#xff0c;快速满足专业化分析。 一、在CentOS7.7上安装…

设计模式系列之--观察者模式-画图讲解

观察者模式已经是比较常见的设计模式了&#xff0c;并且使用的频率也比较高, 那么我们什么时候用&#xff0c;简而言之就是&#xff0c;当我们一个主体改变&#xff0c;它所有下级要跟着改变的时候就需要用了&#xff0c;比如&#xff1a;换肤&#xff0c;全局数据修改&#x…

原型链-(前端面试 2024 版)

来讲一讲原型链 原型链只存在于函数之中 四个规则 1、引用类型&#xff0c;都具有对象特性&#xff0c;即可自由扩展属性。 2、引用类型&#xff0c;都有一个隐式原型 __proto__ 属性&#xff0c;属性值是一个普通的对象。 3、引用类型&#xff0c;隐式原型 __proto__ 的属…

Windows安装Odoo结合内网穿透实现公网访问本地企业管理系统

文章目录 前言1. 下载安装Odoo&#xff1a;2. 实现公网访问Odoo本地系统&#xff1a;3. 固定域名访问Odoo本地系统 前言 Odoo是全球流行的开源企业管理套件&#xff0c;是一个一站式全功能ERP及电商平台。 开源性质&#xff1a;Odoo是一个开源的ERP软件&#xff0c;这意味着企…

python、execl数据分析(数据描述)

一 python 1.各函数 1.1python库的安装与导入 #pip install os#pip install matplotlib#pip install seaborn#pip install scikit-learn#pip install scipy#修 改 工 作 目 录import osos.getcwd () # 查看当前工作环境os.chdir( F :\my course\database ) # 修改工作环境o…

网络稳定性(蓝桥省赛)

0网络稳定性 - 蓝桥云课 (lanqiao.cn) 知识点&#xff1a;克鲁斯卡尔生成树&#xff0c;lca&#xff0c;倍增 最小生成树的模板&#xff1a;最小生成树【模板】-CSDN博客 题解代码如下&#xff1a; #include<bits/stdc.h> using namespace std; const int N3e5100; co…