c#写一个宿舍管理系统,请写出详细的代码
时间: 2023-06-14 09:07:41 浏览: 83
由于宿舍管理系统可能会涉及到数据库、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;
}
}
}
}
```
上述代码实现了以下功能:
- 初始化宿舍信息
- 查询宿舍信息
- 入住登记
- 退房处理
- 修改宿舍信息
当然,这只是一个简单的框架,具体实现还需要结合实际需求进行扩展。
阅读全文