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

2023-11-16

系列文章

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

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



一、实践目的与要求

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 

五、 测试

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

宿舍信息录入

在这里插入图片描述

宿舍信息浏览

在这里插入图片描述

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

在这里插入图片描述

查询指定宿舍楼空床位

在这里插入图片描述

修改宿舍信息

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

删除宿舍信息

在这里插入图片描述

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

在这里插入图片描述

退出系统

在这里插入图片描述

六、源代码获取

本次的分享就到这里啦,创作不易,感谢点赞收藏

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

任务6 学生宿舍信息管理系统 的相关文章

随机推荐

  • wait notify正确使用方式

    wait notify正确使用方式 假设 当线程 Thread03 在1 100中找出77并输出后 Thread01 输出所有1 100中的奇数 当线程 Thread03 在1 100中找出88并输出后 Thread02 输出所有1 100
  • 使用expect实现scp远程复制文件

    expect安装 yum install y expect expect基本命令了解 spawn 交互程序开始后面跟命令或者指定程序 expect 获取匹配信息匹配成功则执行expect后面的程序动作 send exp send 用于发送指
  • 水仙花数的求解

    话不多说 直接给各位上小菜 package com znzz JavaTest public class FlowerTest 思路 水仙花数 指一个 n gt 3 n位正整数 其每位的数值的n次方之和等于本身 例如 153 1 3 5 3
  • 如何治理 Electron 版本淘宝直播应用崩溃?

    经过几个月的努力 基于Electron框架开发的新版淘宝直播推流软件终于上线了 随之而来的就是线上用户反馈的各种问题 其中最影响用户体验的当属应用崩溃问题了 当应用程序出现未 catch 的异常时就会发生崩溃 本文介绍了客户端应用崩溃的处理
  • UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd7 in position 2: invalid continuation byte问题

    报错提示如下 self disease wds i strip for i in open self disease path encoding UTF 8 if i strip File C Users luckyli anaconda3
  • 嵌入式学习笔记---VIM常用操作和命令

    嵌入式学习笔记 VIM常用操作和命令 写在前面 这里我使用的开发环境是Windows下的Cygwin软件 如果不想下载虚拟机什么的 用这个日常开发完全够 具体的下载安装教程网上一大把 可以参考其他博主 一些配置文件 1 定义 Cygwin是
  • Oracle 进程结构

    Oracle进程结构 进程是动态创建的 完成任务后就消亡 而程序是静态的实体 程序是可以复制 编辑的 进程强调的是执行过程 而程序仅仅是指令的有序集合 进程在内存中 程序在外存中 ORACLE分为用户进程和ORACLE进程 l 用户进程 当
  • 可以解释一下什么是补码吗?

    补码是一种用来表示二进制数的方法 也是计算机中常用的数值表示方式之一 在补码中 正数的二进制表示与原码相同 而负数的二进制表示则是将对应正数的二进制表示按位取反后加上1 例如 在8位补码中 3的二进制表示为11111101 对应的正数是00
  • 输入3个整数,按从小到大的顺序输出

    include
  • mysql每秒最多能插入多少条数据 ? 死磕性能压测

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前段时间搞优化 最后瓶颈发现都在数据库单点上 问DBA 给我的写入答案是在1W 机械硬盘 左右 联想起前几天infoQ上一篇文章说他们最好的硬件写入速度在2W后也无法提高
  • MobileNet V3 网络结构的原理与 Tensorflow2.0 实现

    文章目录 介绍 MobileNet V3 的创新 1 SE模块的加入 2 修改尾部结构 3 修改通道数量 4 改变激活函数 SE 模块中 BottleNeck 模块中 MobileNet V3 网络结构 1 MobileNet V3 Lar
  • transformer包中的bert预训练模型的调用详解

    文章目录 Bert调用 安装transformers BertTokenizer BertModel Bert调用 2018年的10月11日 Google发布的论文 Pre training of Deep Bidirectional Tr
  • JS获取URL中的Query参数

    需求描述 获取 URL 中的 Query 参数 例如 https www example com test html a param1 b param2 代码片段 实现一 使用URLSearchParams对象 兼容性见Can I use
  • ov5640 PLL时钟、图像大小、帧率寄存器配置

    不同像素和时钟的ov5640摄像头寄存器配置方法 配置摄像头寄存器 网上没有明说的 参考正点原子的文档进行介绍 像素大小配置 0x3801 0x3807 设置ISP大小 0 0 2631 1951 0x3808 0x380B 设置输出图像大
  • 经验分享-前端与后端的接口、HTML分离

    在WEB项目中 前后端不分离多人开放效率还不及一个人开发效率来的高 今天分享一个概念 后端写一个同一个的接口 此接口用于前端根据自己放在服务器上的文件地址生成 但访问处此地址的时候加载相关的一个总的JS用于加载其他的JS CSS HTML文
  • 计算机中丢失msvcp140.dll无法启动此程序怎么办(修复教程)

    DLL是Dynamic Link Library的缩写 意为动态链接库 dll文件是电脑系统及软件运行的重要文件 电脑如果丢失dll文件 那么很多软件跟游戏都是无法运行的 msvcp140 dll丢失这个问题就有很多小伙伴遇到 小编今天就分
  • JS 实现body背景颜色切换

    使用JS点击按钮 实现背景颜色的切换 效果如下 代码实现
  • 使用 React 18 流式传输 SSR 的指南

    React 18 引入了许多令人兴奋的变化和特性 这可能是您已经听说过很多的事情 并且有充分的理由 尽管稍微不那么引人注目 但在 React SSR 架构中也有一些非常令人兴奋的发展 要了解 React 18 带来的突破 必须查看整个时间线
  • 参加2013年大连软件开发者大会

    昨天参加了东软和QClub合办的2013大连软件开发者大会 在此总结一下 这次活动是东软的攻城狮俱乐部主办的 本来是想要向大连的广大程序员朋友征集讲师 但是大家的响应不是特别积极 所以就改成了找讲师的形式 我报了个名 然后通过InfoQ找到
  • 任务6 学生宿舍信息管理系统

    系列文章 任务6 学生宿舍信息管理系统 已知宿舍的信息包括 宿舍楼号 宿舍号 床位号 对应床位号的学生学号 楼长姓名等 设计程序能实现以下功能 1 宿舍信息录入 可随时增加宿舍信息到数据文件中 2 宿舍信息浏览 宿舍的信息输出到屏幕 3 查