学生宿舍信息管理系统

news2024/11/24 22:34:15

系列文章

任务6 学生宿舍信息管理系统


文章目录

  • 系列文章
  • 一、实践目的与要求
    • 1、目的
    • 2、要求
  • 二、课题任务
  • 三、总体设计
    • 1.存储结构及数据类型定义
    • 2.程序结构
    • 3.所实现的功能函数
    • 4、程序流程图
  • 四、小组成员及分工
  • 五、 测试
    • 宿舍信息录入
    • 宿舍信息浏览
    • 查询学生所住宿舍楼号、宿舍号等信息
    • 查询指定宿舍楼空床位
    • 修改宿舍信息
    • 删除宿舍信息
    • 统计指定宿舍楼的宿舍床位的空床数
    • 退出系统
  • 六、源代码获取


一、实践目的与要求

1、目的

通过此次实践环节主要达到以下目的:
(1)进一步理解和运用结构化程序设计的思想和方法,学会根据具体问题选择合理的计算机存储结构实现数据的存储,构造较有效率的算法;
(2)学会算法描述的方法,并编制具有结构清晰、合理和易读性的小型实用程序;
(3)并会设计测试方案,完成程序的测试,能撰写出该程序的技术报告,为文档整理工作打下一个初步的基础;
(4)培养小组成员间互相学习,取长补短,协同工作的能力。

2、要求

(1)模块化程序设计,锯齿型书写格式,代码要有足够的注释;
(2)根据课题中规定的要求实现既定目标;
(3)撰写格式排版规范、结构完整的技术文档。

二、课题任务

(题目、内容及主要功能描述)

学生宿舍信息管理系统
已知宿舍的信息包括:宿舍楼号,宿舍号,床位号,对应床位号的学生学号,楼长姓名等。设计程序能实现以下功能:
(1)宿舍信息录入:可随时增加宿舍信息到数据文件中
(2)宿舍信息浏览:宿舍的信息输出到屏幕
(3)查询:按学号查询学生所住宿舍楼号、宿舍号等信息,按宿舍楼号查询出该楼所有空床位的信息
(4)修改:修改指定宿舍的信息
(5)删除:删除指定宿舍的信息
(6)统计:计算指定宿舍楼的宿舍床位的空床数
(7)系统以菜单方式工作

三、总体设计

1.存储结构及数据类型定义

(采用了什么存储结构、被处理数据定义的数据类型,数据类型定义中要有注释说明)

// 学生结构体,包含学号和床位号
typedef struct {
    char id[20];
    int bed_no;
} Student;

// 宿舍结构体,包含楼号、宿舍号、楼长姓名和学生数组
typedef struct {
    int building_no;
    int room_no;
    char manager_name[20];
    int empty_beds;
    Student students[4];
} Dormitory;

// 存储所有宿舍信息的数组
Dormitory dorms[100];
int num_of_dorms = 0;

2.程序结构

(程序整体的模块结构图)
在这里插入图片描述

3.所实现的功能函数

(每个功能对应的函数名、函数形参及返回值说明)

int main();//主函数 函数名:main函数形参:空 返回值:int 
Dormitory* find_dorm_by_id(const char* id)// 根据学生学号查找学生所在的宿舍 函数名:find_dorm_by_id函数形参:const char* id 返回值:Dormitory
void find_empty_beds_by_building(int building_no)// 根据宿舍楼号查找该楼所有空床位的宿舍 函数名:find_empty_beds_by_building函数形参:int building_no 返回值:void 
void modify_dorm(int index)// 修改指定宿舍的信息 函数名:modify_dorm 函数形参:int index 返回值:void 
void delete_dorm(int index)// 删除指定宿舍的信息 函数名:delete_dorm 函数形参:int index 返回值:void 
void count_empty_beds_by_building(int building_no)// 统计指定宿舍楼的空床位数 函数名:count_empty_beds_by_building 函数形参:int building_no 返回值:void 
void save_to_file(const char* filename)// 保存所有宿舍信息到文件中 函数名:save_to_file函数形参:const char* filename 返回值:void 
void read_from_file(const char* filename)// 从文件中读取所有宿舍信息 函数名:read_from_file函数形参:const char* filename 返回值:void 

4、程序流程图

在这里插入图片描述

四、小组成员及分工

(组长、组员及每人承担的具体模块任务或其他)
组长:完成以下内容主函数,根据学生学号查找学生所在的宿舍、根据宿舍楼号查找该楼所有空床位的宿舍、根据宿舍id来查找功能开发。

int main();//主函数 函数名:main函数形参:空 返回值:int 
Dormitory* find_dorm_by_id(const char* id)// 根据学生学号查找学生所在的宿舍 函数名:find_dorm_by_id函数形参:const char* id 返回值:Dormitory
void find_empty_beds_by_building(int building_no)// 根据宿舍楼号查找该楼所有空床位的宿舍 函数名:find_empty_beds_by_building函数形参:int building_no 返回值:void 

组员1:完成以下内容修改指定宿舍的信息、删除指定宿舍的信息以及统计指定宿舍楼的空床位数。

void modify_dorm(int index)// 修改指定宿舍的信息 函数名:modify_dorm 函数形参:int index 返回值:void 
void delete_dorm(int index)// 删除指定宿舍的信息 函数名:delete_dorm 函数形参:int index 返回值:void 
void count_empty_beds_by_building(int building_no)// 统计指定宿舍楼的空床位数 函数名:count_empty_beds_by_building 函数形参:int building_no 返回值:void 

组员2:完成以下内容保存所有宿舍信息到文件中、从文件中读取所有宿舍信息。

void save_to_file(const char* filename)// 保存所有宿舍信息到文件中 函数名:save_to_file函数形参:const char* filename 返回值:void 
void read_from_file(const char* filename)// 从文件中读取所有宿舍信息 函数名:read_from_file函数形参:const char* filename 返回值:void 

五、 测试

(整合各功能模块后的测试结果截图及说明)

宿舍信息录入

在这里插入图片描述

宿舍信息浏览

在这里插入图片描述

查询学生所住宿舍楼号、宿舍号等信息

在这里插入图片描述

查询指定宿舍楼空床位

在这里插入图片描述

修改宿舍信息

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

删除宿舍信息

在这里插入图片描述

统计指定宿舍楼的宿舍床位的空床数

在这里插入图片描述

退出系统

在这里插入图片描述

六、源代码获取

本次的分享就到这里啦,创作不易,感谢点赞收藏👍
感兴趣的小伙伴可以在评论区留言或者私信我哦💕

提示:代码获取链接:

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

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

相关文章

WPF MaterialDesign 初学项目实战(6):设计首页(2),设置样式触发器

原项目视频 WPF项目实战合集(2022终结版) 26P 源码地址 WPF项目源码 其他内容 WPF MaterialDesign 初学项目实战(0):github 项目Demo运行 WPF MaterialDesign 初学项目实战(1)首页搭建 WPF MaterialDesign 初学项目实战&…

npm、cnpm、yarn、pnpm区别以及pnpm 是凭什么对 npm 和 yarn 降维打击的

安装 1、安装npm需要安装nodejs,node中自带npm包管理器 node下载地址:node.js 2、cnpm安装(需要安装npm) cnpm是淘宝团队做的npm镜像,淘宝镜像每 10分钟 进行一次同步以保证尽量与官方服务同步。 npm install -g …

secure CRT 自定义主题

文章目录 如何切换 SecureCRT 主题如何新建SecureCRT 主题如何拷贝我的主题,主题名为pic如何设置 SecureCRT 关键字高亮 如何切换 SecureCRT 主题 SecureCRT 自带主题 选择 options -> Edit Default Session -> Terminal -> Emulation -> Terminal xterm optio…

【Linux】-vim的介绍,教你手把手使用vim

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点…

一台电脑同时安装多个tomcat服务器教程,window同时安装tomcat7、tomcat8、tomcat9三个服务器教程

一台电脑同时安装多个tomcat服务器 . 介绍 A. 解释为什么有时需要同时安装多个Tomcat服务器 应用程序隔离:当你需要在同一台设备上运行多个独立的应用程序时,每个应用程序可能需要使用不同的Tomcat配置和环境。通过同时安装多个Tomcat服务器&#xff0…

车载以太网 - SomeIP - 协议用例 - Messages_02

目录 13.1、验证SomeIP-SD中订阅报文Subscribe和SubscribeAck中IPv4 Endpoint Option中ServiceID一样

【JAVA进阶】Stream流

📃个人主页:个人主页 🔥系列专栏:JAVASE基础 目录 1.Stream流的概述 2.Stream流的获取 3.Stream流的常用方法 1.Stream流的概述 什么是Stream流? 在Java 8中,得益于Lambda所带来的函数式编程&#xff0…

HNU数据结构与算法分析-作业4-图结构

1. (简答题) 【应用题】11.3 (a)画出所示图的相邻矩阵表示 (b)画出所示图的邻接表表示 (c)如果每一个指针需要4字节,每一项顶点的标号占用2字节,每一条边的权需要2字节&#xff0…

计算机体系结构存储系统

存储系统原理 两种典型的存储系统:Cache存储系统和虚拟存储系统。前者主要目的是提高存储器速度,后者有主存储器和硬盘构成,主要用于扩大存储器容量。 存储系统的访问效率 e T 1 T 1 H ( 1 − H ) T 2 T 1 f ( H , T 2 T 1 ) e\frac{T_…

魔改车钥匙实现远程控车:(4)基于compose和经典蓝牙编写一个控制APP

前言 这篇文章不出意外的话应该是魔改车钥匙系列的最后一篇了,自此我们的魔改计划除了最后的布线和安装外已经全部完成了。 不过由于布线以及安装不属于编程技术范围,且我也是第一次做,就不献丑继续写一篇文章了。 在前面的文章中&#xf…

基于torch实现模型剪枝

一、剪枝分类 所谓模型剪枝,其实是一种从神经网络中移除"不必要"权重或偏差(weigths/bias)的模型压缩技术。关于什么参数才是“不必要的”,这是一个目前依然在研究的领域。 1.1、非结构化剪枝 非结构化剪枝(…

什么是可持续能源?

随着全球经济的不断发展和人口的不断增长,能源问题越来越受到关注。传统能源已经不能满足人们对能源的需求,同时也对环境和健康带来了严重的影响。为了解决这些问题,出现了可持续能源的概念。那么,什么是可持续能源呢?…

逐渐从土里长出来的小花

从土里逐渐长出来的小花&#xff08;这是长出来后的样子&#xff0c;图片压缩了出现了重影~&#xff09; 代码在这里&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&g…

MySQL-索引(2)

本文主要讲解MySQL-索引相关的知识点 联合索引前缀索引覆盖索引索引下推索引的优缺点什么时候适合创建索引,什么时候不适合?如何优化索引 ? 索引失效场景 ? 为什么SQL语句使用了索引,却还是慢查询 ? 使用索引有哪些注意事项 ? InnoDB引擎中的索引策略 目录 联合索引 联合…

LeetCode高频算法刷题记录6

文章目录 1. 编辑距离【困难】1.1 题目描述1.2 解题思路1.3 代码实现 2. 寻找两个正序数组的中位数【困难】2.1 题目描述2.2 解题思路2.3 代码实现 3. 合并区间【中等】3.1 题目描述3.2 解题思路3.3 代码实现 4. 爬楼梯【简单】4.1 题目描述4.2 解题思路4.3 代码实现 5. 排序链…

chatgpt赋能Python-python3_9安装numpy

Python 3.9 安装 NumPy 的完整指南 Python是一种功能强大的编程语言&#xff0c;已成为数据分析、人工智能和科学计算领域的主流语言之一。NumPy是一个Python库&#xff0c;用于执行高效的数值计算和科学计算操作。Python 3.9是Python最新版本&#xff0c;带来了许多新功能和改…

一款非常有趣的中国版本的Excalidraw作图工具drawon(桌案)

桌案工具集成了很多有趣的在线作图工具&#xff0c; 思维导图&#xff0c; 流程图&#xff0c;以及草图&#xff0c;在线ppt等功能。 而草图是基于国外有名的Excalidraw而改造而来&#xff0c;使得它更符合国人的使用习惯。 最近在 使用excalidraw时&#xff0c;发现了很多新功…

Excel | 基因名都被Excel篡改了怎么办呢!?~(附3种解决方案)

1写在前面 今天和大家分享一下在做表达矩阵处理时尝尝会遇到的一个问题&#xff0c;但又经常被忽视&#xff0c;就是Excel会修改你的基因名。&#x1f637; 无数大佬在这里都踩过坑&#xff0c;这些普遍的问题已经被写成了paper&#xff08;左右滑动&#xff09;&#xff1a;&a…

75.建立一个主体样式第一部分

我们的目标如下图所示 ● 首先建立文件夹&#xff0c;生成框架代码 ● 把页面上面的HTML元素写进去 <header><nav><div>LOGO</div><div>NAVIGATION</div></nav><div><h1>A healty meal delivered to your door, ever…

Java基础--->并发部分(2)【Java中的锁】

文章目录 synchronized和ReentrantLock的区别Java中锁的名词synchronized锁ReentrantLock锁 synchronized和ReentrantLock的区别 synchronized 和 ReentrantLock 都可以用来实现 Java 中的线程同步。它们的作用类似&#xff0c;但是在用法和特性上还是有一些区别的。 synchroni…