c#写一个宿舍管理系统,请写出详细的代码

时间: 2023-06-14 12:07:41 浏览: 63
由于宿舍管理系统可能会涉及到数据库、UI界面等多个方面,所以在此只提供一个简单的宿舍管理系统的代码框架,供参考: ```csharp using System; using System.Collections.Generic; namespace DormitoryManagementSystem { class Program { static void Main(string[] args) { // 初始化宿舍信息 List<Dorm> dorms = InitDorms(); while (true) { Console.WriteLine("请选择要进行的操作:"); Console.WriteLine("1. 查询宿舍信息"); Console.WriteLine("2. 入住登记"); Console.WriteLine("3. 退房处理"); Console.WriteLine("4. 修改宿舍信息"); Console.WriteLine("5. 退出系统"); string choice = Console.ReadLine(); switch (choice) { case "1": QueryDormInfo(dorms); break; case "2": CheckIn(dorms); break; case "3": CheckOut(dorms); break; case "4": ModifyDormInfo(dorms); break; case "5": Console.WriteLine("谢谢使用!"); return; default: Console.WriteLine("输入有误,请重新输入!"); break; } } } // 初始化宿舍信息 static List<Dorm> InitDorms() { List<Dorm> dorms = new List<Dorm>(); dorms.Add(new Dorm("A001", "4人间", 4, 2500)); dorms.Add(new Dorm("A002", "6人间", 6, 1800)); dorms.Add(new Dorm("B001", "8人间", 8, 1500)); return dorms; } // 查询宿舍信息 static void QueryDormInfo(List<Dorm> dorms) { Console.WriteLine("宿舍编号\t宿舍类型\t可住人数\t租金"); foreach (Dorm dorm in dorms) { Console.WriteLine("{0}\t{1}\t{2}\t{3}", dorm.DormNo, dorm.DormType, dorm.Capacity, dorm.Rent); } } // 入住登记 static void CheckIn(List<Dorm> dorms) { Console.WriteLine("请输入入住宿舍编号:"); string dormNo = Console.ReadLine(); Dorm dorm = dorms.Find(d => d.DormNo == dormNo); if (dorm == null) { Console.WriteLine("宿舍编号不存在!"); return; } if (dorm.CurrentCount == dorm.Capacity) { Console.WriteLine("该宿舍已满员!"); return; } Console.WriteLine("请输入入住人姓名:"); string name = Console.ReadLine(); Console.WriteLine("请输入入住人年龄:"); int age = int.Parse(Console.ReadLine()); dorm.AddOccupant(name, age); Console.WriteLine("登记成功!"); } // 退房处理 static void CheckOut(List<Dorm> dorms) { Console.WriteLine("请输入退房宿舍编号:"); string dormNo = Console.ReadLine(); Dorm dorm = dorms.Find(d => d.DormNo == dormNo); if (dorm == null) { Console.WriteLine("宿舍编号不存在!"); return; } Console.WriteLine("请输入退房人姓名:"); string name = Console.ReadLine(); int count = dorm.RemoveOccupant(name); if (count == 0) { Console.WriteLine("该宿舍不存在此人!"); return; } Console.WriteLine("退房成功!退还押金{0}元。", count * dorm.Deposit); } // 修改宿舍信息 static void ModifyDormInfo(List<Dorm> dorms) { Console.WriteLine("请输入要修改的宿舍编号:"); string dormNo = Console.ReadLine(); Dorm dorm = dorms.Find(d => d.DormNo == dormNo); if (dorm == null) { Console.WriteLine("宿舍编号不存在!"); return; } Console.WriteLine("请输入修改后的宿舍类型(原类型为{0}):", dorm.DormType); string dormType = Console.ReadLine(); Console.WriteLine("请输入修改后的可住人数(原人数为{0}):", dorm.Capacity); int capacity = int.Parse(Console.ReadLine()); Console.WriteLine("请输入修改后的租金(原租金为{0}元/月):", dorm.Rent); int rent = int.Parse(Console.ReadLine()); dorm.Modify(dormType, capacity, rent); Console.WriteLine("修改成功!"); } } // 定义宿舍类 class Dorm { public string DormNo { get; } // 宿舍编号 public string DormType { get; set; } // 宿舍类型 public int Capacity { get; set; } // 可住人数 public int Rent { get; set; } // 租金 public int Deposit { get; } // 押金 private List<Occupant> occupants = new List<Occupant>(); // 入住人员列表 public Dorm(string dormNo, string dormType, int capacity, int rent) { DormNo = dormNo; DormType = dormType; Capacity = capacity; Rent = rent; Deposit = Capacity * 1000; } // 添加入住人员 public void AddOccupant(string name, int age) { occupants.Add(new Occupant(name, age)); } // 移除入住人员 public int RemoveOccupant(string name) { int count = 0; for (int i = 0; i < occupants.Count; i++) { if (occupants[i].Name == name) { occupants.RemoveAt(i); count++; i--; } } return count; } // 修改宿舍信息 public void Modify(string dormType, int capacity, int rent) { DormType = dormType; Capacity = capacity; Rent = rent; Deposit = Capacity * 1000; } // 当前入住人数 public int CurrentCount { get { return occupants.Count; } } // 宿舍入住人员类 private class Occupant { public string Name { get; } public int Age { get; } public Occupant(string name, int age) { Name = name; Age = age; } } } } ``` 上述代码实现了以下功能: - 初始化宿舍信息 - 查询宿舍信息 - 入住登记 - 退房处理 - 修改宿舍信息 当然,这只是一个简单的框架,具体实现还需要结合实际需求进行扩展。

相关推荐

最新推荐

recommend-type

C# 读写XML文件实例代码

在本篇文章里小编给大家整理的是关于C# 读写XML文件最简单方法,需要的朋友们可以跟着学习参考下。
recommend-type

C#使用读写锁三行代码简单解决多线程并发的问题

本文主要介绍了C#使用读写锁三行代码简单解决多线程并发写入文件时提示“文件正在由另一进程使用,因此该进程无法访问此文件”的问题。需要的朋友可以参考借鉴
recommend-type

C#实现简单成绩管理系统的完整步骤

主要给大家介绍了关于C#实现简单成绩管理系统的完整步骤,文中通过示例代码介绍的非常详细,对大家的学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
recommend-type

C#操作SQLite数据库之读写数据库的方法

主要介绍了C#操作SQLite数据库之读写数据库的方法,简单分析了C#针对SQLite数据库的读写及显示等操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
recommend-type

详解C#读写Excel的几种方法

主要介绍了详解C#读写Excel的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

解释这行代码 c = ((double)rand() / RAND_MAX) * (a + b - fabs(a - b)) + fabs(a - b);

这行代码是用于生成 a 和 b 之间的随机数。首先,它使用 rand() 函数生成一个 [0,1) 之间的随机小数,然后将这个小数乘以 a、b 范围内的差值,再加上 a 和 b 中的较小值。这可以确保生成的随机数大于等于 a,小于等于 b,而且不会因为 a 和 b 之间的差距过大而导致难以生成足够多的随机数。最后,使用 fabs() 函数来确保计算结果是正数。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。