设备采购信息管理系统
系列文章
任务14 设备采购信息管理系统
文章目录
- 系列文章
- 一、实践目的与要求
- 1、目的
- 2、要求
- 二、课题任务
- 三、总体设计
- 1.存储结构及数据类型定义
- 2.程序结构
- 3.所实现的功能函数
- 4、程序流程图
- 四、小组成员及分工
- 五、 测试
- 界面展示
- 添加采购信息
- 按编号查找采购信息
- 按设备编号查找采购信息
- 按设备名称查找采购信息
- 排序
- 查看所有采购信息
- 统计采购信息
- 删除采购信息
- 退出
- 六、源代码获取
一、实践目的与要求
1、目的
通过此次实践环节主要达到以下目的:
(1)进一步理解和运用结构化程序设计的思想和方法,学会根据具体问题选择合理的计算机存储结构实现数据的存储,构造较有效率的算法;
(2)学会算法描述的方法,并编制具有结构清晰、合理和易读性的小型实用程序;
(3)并会设计测试方案,完成程序的测试,能撰写出该程序的技术报告,为文档整理工作打下一个初步的基础;
(4)培养小组成员间互相学习,取长补短,协同工作的能力。
2、要求
(1)模块化程序设计,锯齿型书写格式,代码要有足够的注释;
(2)根据课题中规定的要求实现既定目标;
(3)撰写格式排版规范、结构完整的技术文档。
二、课题任务
(题目、内容及主要功能描述)
设备采购信息管理系统
设备采购的信息包括:编号、设备编号、设备名称、生产单位、单价、部门编号、部门名称、数量、要求到货时间、联系人等。系统能够完成设备采购信息的查询、更新、插入、删除、排序等功能。
(1) 排序:按设备编号对所有设备采购的信息进行排序。
(2) 查询:分别按编号、设备编号和设备名称查找设备采购信息。
(3) 更新:按编号对某个设备采购的某项信息进行修改。
(4) 插入:加入新设备采购的信息。
(5) 删除:按设备编号删除已淘汰设备的采购信息。
(6) 浏览:输出所有设备采购信息。
(7) 统计:统计某部门采购某种设备的总数量并输出。
三、总体设计
1.存储结构及数据类型定义
(采用了什么存储结构、被处理数据定义的数据类型,数据类型定义中要有注释说明)
#define MAX_LEN 100// 最大设备数
#define MAX_DEVICES 1000 // 最大字符串长度/// <summary>
/// 采购结构体
/// </summary>
typedef struct {int id;//编号char device_id[MAX_LEN];//设备编号char device_name[MAX_LEN];//设备名称char producer[MAX_LEN];//生产单位float price;//单价int department_id;//部门编号char department_name[MAX_LEN];//部门名称int quantity;//数量char arrival_time[MAX_LEN];//要求到货时间char contact[MAX_LEN];//联系人
} DevicePurchaseInfo;
2.程序结构
(程序整体的模块结构图)

3.所实现的功能函数
(每个功能对应的函数名、函数形参及返回值说明)
void add(DevicePurchaseInfo* devices, int* num_devices); //添加采购信息 函数名:add 函数形参:DevicePurchaseInfo* devices, int* num_devices 返回值:void
void remove_by_device_id(DevicePurchaseInfo* devices, int* num_devices);//删除采购信息 函数名:remove_by_device_id 函数形参:DevicePurchaseInfo* devices, int* num_devices 返回值: void
void update_by_id(DevicePurchaseInfo* devices, int num_devices);//修改采购信息 按编号对某个设备采购的某项信息进行修改。函数名: update_by_id 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值:void
void search_by_id(DevicePurchaseInfo* devices, int num_devices);//按编号查找采购信息 函数名:search_by_id 函数形参: DevicePurchaseInfo* devices, int num_devices返回值:void
void search_by_device_id(DevicePurchaseInfo* devices, int num_devices);//按设备编号查找采购信息 函数名: search_by_device_id 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值: void
void search_by_device_name(DevicePurchaseInfo* devices, int num_devices);// 按设备名称查找采购信息 函数名:search_by_device_name 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值: void
void sort(DevicePurchaseInfo* devices, int num_devices);//排序 按设备编号对所有设备采购的信息进行排序 函数名:sort 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值: void
void display_all(DevicePurchaseInfo* devices, int num_devices);//查看所有采购信息 函数名:display_all 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值:void
void statistics(DevicePurchaseInfo* devices, int num_devices);//统计采购信息 函数名:statistics 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值: void
void print_devices_list(DevicePurchaseInfo* devices, int num_devices);//查看所有采购信息 内置函数 函数名:print_devices_list 函数形参:DevicePurchaseInfo* devices, int num_devices 返回值: void
4、程序流程图

四、小组成员及分工
(组长、组员及每人承担的具体模块任务或其他)
组长:完成采购系统四大模块以及界面开发,包含添加采购信息、删除采购信息、按编号对某个设备采购的某项信息进行修改以及按编号查找采购信息,函数内容如下:
void add(DevicePurchaseInfo* devices, int* num_devices); //添加采购信息
void remove_by_device_id(DevicePurchaseInfo* devices, int* num_devices);//删除采购信息
void update_by_id(DevicePurchaseInfo* devices, int num_devices);//修改采购信息 按编号对某个设备采购的某项信息进行修改。
void search_by_id(DevicePurchaseInfo* devices, int num_devices);//按编号查找采购信息
组员1:完成按设备编号查找采购信息、按设备名称查找采购信息以及按设备编号对所有设备采购的信息进行排序功能的实现。
void search_by_device_id(DevicePurchaseInfo* devices, int num_devices);//按设备编号查找采购信息
void search_by_device_name(DevicePurchaseInfo* devices, int num_devices);// 按设备名称查找采购信息
void sort(DevicePurchaseInfo* devices, int num_devices);//排序 按设备编号对所有设备采购的信息进行排序
组员2:完成了查看所有采购信息、统计采购信息以及查看所有采购信息 内置函数的编写
void display_all(DevicePurchaseInfo* devices, int num_devices);//查看所有采购信息
void statistics(DevicePurchaseInfo* devices, int num_devices);//统计采购信息
void print_devices_list(DevicePurchaseInfo* devices, int num_devices);//查看所有采购信息 内置函数
五、 测试
(整合各功能模块后的测试结果截图及说明)
界面展示

添加采购信息


按编号查找采购信息

按设备编号查找采购信息

按设备名称查找采购信息

排序

查看所有采购信息

统计采购信息

删除采购信息

退出

六、源代码获取
本次的分享就到这里啦,创作不易,感谢点赞收藏👍
感兴趣的小伙伴可以在评论区留言或者私信我哦💕
提示:代码获取链接: 下载源码
相关文章:
设备采购信息管理系统
系列文章 任务14 设备采购信息管理系统 文章目录 系列文章一、实践目的与要求1、目的2、要求 二、课题任务三、总体设计1.存储结构及数据类型定义2.程序结构3.所实现的功能函数4、程序流程图 四、小组成员及分工五、 测试界面展示添加采购信息按编号查找采购信息按设备编号查找…...
Puppeteer入门实践
环境 1、安装nodejs 官网:https://nodejs.org/zh-cn 下载安装好nodejs只后 验证:node -v 出现版本号表示安装成功,否则需要配置环境变量 2、创建node项目并初始化 随便新建一个文件夹 进入文件夹搜索cmd回车 执行npm init -y 安装依赖 …...
生成VLC 及其模块的全面帮助
使用vlc.exe -H命令生成VLC帮助文件vlc-help.txt -h, --help, --no-help 打印 VLC 帮助 (可以和 --advanced 和 --help-verbose 一起使用) (默认禁用) -H, --full-help, --no-full-help VLC 及…...
什么是客户自助服务门户及其搭建方法
随着信息技术的快速发展,越来越多的企业开始转向以客户为中心的服务模式,而客户自助服务门户(Customer Self-Service Portal)则成为了重要的服务方式。它可以让客户在不需要人工干预的情况下,自行解决问题,…...
【5.19】三、白盒测试方法—逻辑覆盖法
目录 3.1 逻辑覆盖法 3.1.1 语句覆盖 3.1.2 判定覆盖 3.1.3 条件覆盖 3.1.4 判定—条件覆盖 3.1.5 条件组合覆盖 3.1.6 实例:三角形逻辑覆盖问题 白盒测试又称为透明盒测试、结构测试,它基于程序内部结构进行测试,而不是测试应用程序…...
Linux安装MySQL后无法通过IP地址访问处理方法
本文主要总结Linux安装Mysql后,其他主机访问不了MySQL数据库的原因和解决方法 环境说明: MySQL 5.7.30CentOS Linux release 7.6.1810 (Core) 创建完Mysql数据库后可以查看mysql 日志获取root 用户登录密码 [rootlocalhost mysql-5.7.30]# cat /var/l…...
使用Python实现Rest API指南
在今天的数字化世界中,数据的获取、交换和使用已经成为几乎所有行业的核心部分。无论您正在为一个大型公司设计复杂的软件系统,还是只是为了个人项目尝试获得一些公开的数据,理解和利 用API——尤其是RESTful API——都是一项至关重要的技术。…...
【2023 · CANN训练营第一季】进阶班 应用开发深入讲解→模型推理
1 模型离线推理 各步要解析如下: Host&Device内存管理与数据传输: Host&Device上的内存申请与释放,内存间的相互拷贝;模型加载:将离线的om文件加载到Device上;在样例的资源初始化模块中进行。模型输入输出准备∶根据禹线om的输入输出,在Device…...
单词分析问题
题目描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出…...
3个月出国|材料科学老师自费赴韩国访学
K老师指定韩国为访学的目标国家,希望专业匹配,尽快出国。最终我们获得了韩国庆北大学的邀请函,其学校名气、专业匹配度及导师影响力都符合K老师的要求。本案例从开始委托我们申请到最终出国,仅仅用时3个月。 K老师背景:…...
MaaS来临,SaaS进入「奇点」时刻|产业深度
大模型热度持续发酵。MaaS的到来,不仅改变了云厂商的竞争格局,SaaS行业也将迎来「奇点」时刻。未来十年,基于MaaS底座,国内SaaS甚至可能会出现Salesforce一样的巨头。 作者|思杭 编辑|皮爷 出品|产业家 大模型热度正在持续发酵。…...
课程分享:华清远见联合NXP推出i.MX8M Plus开发与实践课程,超干超实用!
课程名称: i.MX8M Plus开发与实践课程 课程介绍: i.MX8M Plus应用处理器是NXP推出的一款致力于推动机器学习(ML),机器视觉,多媒体与工业边缘物联网应用的工业人工智能芯片。拥有4个ARM Cortex-A53核心…...
idea将java程序打包为jar
idea将java程序打包为jar 灵光一现: 用java拉起浏览器,打开指定的网络地址,省的手动打开浏览器再复制地址过去了 本文记录了使用idea将java程序打包为jar包的过程 源码地址:https://gitcode.net/qq_39339588/jar.git 文章目录 ide…...
快速掌握Redis基础知识及使用技巧
Redis 是一个高性能、基于内存的键值数据库,其主要特点是支持多种数据结构和高并发读写操作。在本文中,我们将介绍 Redis 的基本概念和使用方法,以帮助读者快速入门 Redis。 Redis 的基本概念 Redis 是一种基于内存的高性能 key-value 存储系…...
C++控制台打飞机小游戏
我终于决定还是把这个放出来。 视频在这:https://v.youku.com/v_show/id_XNDQxMTQwNDA3Mg.html 具体信息主界面上都有写。 按空格暂停,建议暂停后再升级属性。 记录最高分的文件进行了加密。 有boss(上面视频2分47秒)。 挺好…...
Pinna的使用以及pinna的持续化存储(两种方法)
一、简介 pinia是 vue3 新的状态管理工具,简单来说相当于之前 vuex,它去掉了 Mutations 但是也是支持 vue2 的,需要的朋友可以参考下 二、使用方法 1.安装 npm install pinia -S 2..引入 import { createPinia,PiniaPluginContext } from p…...
开发中造成空指针的常见用法,如何避免
1. 前言 《手册》的第 7 页和 25 页有两段关于空指针的描述: 【强制】Object 的 equals 方法容易抛空指针异常,应使用常量或确定有值的对象来调用 equals。 【推荐】防止 NPE,是程序员的基本修养,注意 NPE 产生的场景: 返回类型为…...
MySQL事务和索引
目录 事务的概念 事务的四大特性(ACID) 原子性 隔离性 持久性 一致性 什么是脏读、幻读和不可重复读? 脏读 幻读 不可重复读 事务的隔离级别 读未提交 读已提交 可重复读 串行化 索引 索引优点 索引缺点 索引分类 索引设…...
Kali工具集简介
Kali Linux提供了数种经过定制的专门为渗透测试设计的工具。工具都会按下图中下拉选单所示的方式按组分类聚合。了解工具是做渗透测试第一个认知。 口Information Gathering(信息收集) 这些都是侦察工具,用来收集目标网络和设备的数据。在这类工具中,从找出设备的工具到查看使…...
离散数学 | 图论 | 欧拉图 | 哈密顿图 | 割点 | 桥(欧拉图和哈密顿图有没有割点和桥?)
本文主要解决以下几个问题: 1.欧拉图能不能有割点,能不能有桥? 2.哈密顿图能不能有割点,能不能有桥? 首先我们要明白几个定义 割点的定义就是在一个图G中,它本来是连通的,去掉一个点v以后这个…...
Stitches项目架构分析:RequireJS模块化设计与Grunt构建流程完全指南 [特殊字符]
Stitches项目架构分析:RequireJS模块化设计与Grunt构建流程完全指南 🚀 【免费下载链接】stitches HTML5 Sprite Sheet Generator 项目地址: https://gitcode.com/gh_mirrors/sti/stitches Stitches是一个基于HTML5的雪碧图生成器,它采…...
百考通智能任务书:贴合你的选题,拒绝空话假大空
毕业设计任务书是高校教学管理中的关键环节,它不仅标志着研究工作的正式启动,更是后续开题、实施、论文撰写和答辩全过程的行动依据。然而,许多学生在撰写时常常因不熟悉本专业写作规范、技术表达能力有限,或缺乏权威模板参考而陷…...
别再死记硬背SMO公式了!用Python手写一个SVM分类器,带你一步步拆解SMO核心逻辑
用Python手写SVM分类器:代码驱动理解SMO算法核心在机器学习领域,支持向量机(SVM)以其优秀的分类性能和坚实的数学基础著称。然而,许多学习者在理解其核心算法——序列最小优化(SMO)时,往往被复杂的数学推导所困扰。本文将采用一种…...
2026 新视角:化妆品开发的底层逻辑,做好一款产品,从选对原料开始
在化妆品研发链条中,配方架构、生产工艺、包装设计固然重要,但决定一款产品上限的,永远是原料。一款稳定、安全、表现优异的护肤成品,离不开纯净、达标、批次一致的优质原料。对于品牌方、配方师、代工企业而言,原料不…...
鸿蒙系统微博应用锁常见问题解答
为微博设置应用锁后,不少用户会有各种疑问:忘记密码怎么办?会不会影响消息推送?能不能只锁定某些功能?应用锁耗电吗?本文将针对这些高频问题逐一解答,帮助您更好地使用鸿蒙系统(Harm…...
DeepSeek-R1补全能力封测倒计时(仅剩72小时开放API灰度权限):这份内部测试SOP已被3家头部科技公司紧急采购
更多请点击: https://intelliparadigm.com 第一章:DeepSeek-R1代码补全能力封测全景概览 DeepSeek-R1 是深度求索(DeepSeek)推出的高性能开源推理模型,在代码补全场景中展现出显著的上下文理解力与多语言泛化能力。本…...
长期使用Taotoken聚合服务对项目月度账单的可预测性提升
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken聚合服务对项目月度账单的可预测性提升 在AI驱动的项目开发与运营中,成本控制与预算规划是团队管理者…...
科华UPS电源全品类汇总:选型与场景适配指南
科华UPS电源作为国内智慧电能领域的主流产品,覆盖家用、办公、机房、工业等全场景,产品系列丰富、规格齐全,但多数用户在选型时,常因分不清系列差异、功率适配、架构类型而踩坑。本文系统汇总科华UPS电源的核心分类、主流系列、核…...
艾尔登法环存档迁移终极指南:3分钟解决角色转移难题
艾尔登法环存档迁移终极指南:3分钟解决角色转移难题 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier 还在为《艾尔登法环》存档版本不兼容而烦恼吗?EldenRingSaveCopier 是你的终极解决…...
独立开发者利用taotoken模型广场为不同任务选择性价比最优模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者利用taotoken模型广场为不同任务选择性价比最优模型 对于独立开发者而言,在有限的预算内高效完成多样化的开…...
