一个宿舍管理系统应该包含以下功能:
1. 用户管理:能够添加、修改、删除和查询宿舍管理人员和用户的信息。
2. 宿舍管理:能够添加、修改、删除和查询宿舍的信息,如宿舍号、容量、位置等。
3. 学生管理:能够添加、修改、删除和查询学生的信息,如学号、姓名、性别、专业等。
4. 入住管理:能够办理学生入住、退宿手续,包括分配宿舍、调整宿舍等。
5. 费用管理:能够管理学生的住宿费用,如缴费、退费、催缴等。
6. 报修管理:能够处理学生报修请求,包括派工、维修、验收等。
7. 卫生检查:能够安排卫生检查,记录检查结果,并对不合格的宿舍进行提醒。
8. 考勤管理:能够记录学生进出宿舍的时间,方便进行考勤统计。
9. 数据统计:能够生成各种统计报表,如宿舍入住率、学生住宿费用统计、报修统计等。
10. 系统设置:能够设置系统参数,如宿舍最大容量、缴费标准等。
11. 权限管理:能够分配不同的操作权限给不同的用户。
12. 数据备份与恢复:能够定期备份系统数据,并在需要时进行数据恢复。
这些功能可以帮助宿舍管理人员高效地管理和维护宿舍的日常运营,提高宿舍管理的服务质量。
这是一个精简版本的宿舍管理系统的完整示例代码,包括学生管理、宿舍管理、考勤管理、数据统计功能。注意,你需要根据实际情况调整数据库连接、表结构和字段。
using System;
using System.Collections.Generic;namespace DormitoryManagementSystem
{
class Program
{
static void Main(string[] args)
{
List<Dormitory> dormitories = new List<Dormitory>();
List<Student> students = new List<Student>();while (true)
{
Console.WriteLine("1. 学生管理");
Console.WriteLine("2. 宿舍管理");
Console.WriteLine("3. 考勤管理");
Console.WriteLine("4. 数据统计");
Console.WriteLine("10. 退出");int choice;
if (!int.TryParse(Console.ReadLine(), out choice))
{
Console.WriteLine("输入无效,请输入数字。");
continue;
}switch (choice)
{
case 1:
ManageStudent(students);
break;
case 2:
ManageDormitory(dormitories);
break;
case 3:
AttendanceManagement(students);
break;
case 4:
DataStatistics(students);
break;
case 10:
Console.WriteLine("再见!");
return;
}
}
}static void ManageStudent(List<Student> students)
{
Console.WriteLine("1. 添加学生");
Console.WriteLine("2. 修改学生信息");
Console.WriteLine("3. 删除学生");
Console.WriteLine("4. 查询学生信息");
Console.WriteLine("5. 列出所有学生");int choice;
if (!int.TryParse(Console.ReadLine(), out choice))
{
Console.WriteLine("输入无效,请输入数字。");
return;
}switch (choice)
{
case 1:
AddStudent(students);
break;
case 2:
ModifyStudent(students);
break;
case 3:
DeleteStudent(students);
break;
case 4:
QueryStudent(students);
break;
case 5:
ListStudents(students);
break;
}
}static void ManageDormitory(List<Dormitory> dormitories)
{
Console.WriteLine("1. 添加宿舍");
Console.WriteLine("2. 修改宿舍信息");
Console.WriteLine("3. 删除宿舍");
Console.WriteLine("4. 查询宿舍信息");
Console.WriteLine("5. 列出所有宿舍");int choice;
if (!int.TryParse(Console.ReadLine(), out choice))
{
Console.WriteLine("输入无效,请输入数字。");
return;
}switch (choice)
{
case 1:
AddDormitory(dormitories);
break;
case 2:
ModifyDormitory(dormitories);
break;
case 3:
DeleteDormitory(dormitories);
break;
case 4:
QueryDormitory(dormitories);
break;
case 5:
ListDormitories(dormitories);
break;
}
}
static void AttendanceManagement(List<Student> students)
{
Console.WriteLine("请输入要查询考勤的学生姓名:");
string name = Console.ReadLine();Student targetStudent = students.Find(s => s.Name == name);
if (targetStudent == null)
{
Console.WriteLine("未找到该学生。");
return;
}Console.WriteLine($"学生{name}的考勤情况如下:");
Console.WriteLine($"迟到次数:{targetStudent.LateCount}次");
Console.WriteLine($"早退次数:{targetStudent.EarlyLeaveCount}次");
Console.WriteLine($"旷课次数:{targetStudent.AbsenteeismCount}次");
}static void DataStatistics(List<Student> students)
{
Console.WriteLine("1. 按宿舍统计");
Console.WriteLine("2. 按年级统计");
Console.WriteLine("3. 按专业统计");int choice;
if (!int.TryParse(Console.ReadLine(), out choice))
{
Console.WriteLine("输入无效,请输入数字。");
return;
}switch (choice)
{
case 1:
{
Dictionary<int, int> dormitoryStatistics = new Dictionary<int, int>();foreach (Student student in students)
{
if (!dormitoryStatistics.ContainsKey(student.DormitoryId))
{
dormitoryStatistics.Add(student.DormitoryId, 1);
}
else
{
dormitoryStatistics[student.DormitoryId]++;
}
foreach (KeyValuePair<int, int> kvp in dormitoryStatistics)
{
Console.WriteLine($"宿舍{kvkvp.Key} 学生数量:{kvp.Value}人");
}break;
}case 2:
{
Dictionary<string, int> gradeStatistics = new Dictionary<string, int>();foreach (Student student in students)
{
string grade = GetGrade(student.Year); // 假设这里有一个根据年级获取年级名称的函数if (!gradeStatistics.ContainsKey(grade))
{
gradeStatistics.Add(grade, 1);
}
else
{
gradeStatistics[grade]++;
}
}foreach (KeyValuePair<string, int> kvp in gradeStatistics)
{
Console.WriteLine($"年级{kvp.Key} 学生数量:{kvp.Value}人");
}break;
}case 3:
{
Dictionary<string, int> majorStatistics = new Dictionary<string, int>();foreach (Student student in students)
{
if (!majorStatistics.ContainsKey(student.Major))
{
majorStatistics.Add(student.Major, 1);
}
else
{
majorStatistics[student.Major]++;
}
}
foreach (KeyValuePair<string, int> kvp in majorStatistics)
{
Console.WriteLine($"专业{kvp.Key} 学生数量:{kvp.Value}人");
}break;
}}
}