宿舍管理系統是高校、企業等集體宿舍管理中不可或缺的一部分。通過信息化手段,可以有效提高宿舍管理的效率,減少人工操作的錯誤率。本文將介紹如何使用C#語言實現一個簡單的宿舍管理系統。
在開始編碼之前,首先需要明確系統的需求。一個基本的宿舍管理系統通常包括以下功能:
為了實現上述功能,我們選擇以下技術棧:
數據庫是宿舍管理系統的核心部分。我們需要設計以下幾個主要表:
學生表(Students)
宿舍表(Dormitories)
費用表(Fees)
首先,在SQL Server中創建數據庫DormitoryManagement
,并創建上述表結構。
CREATE DATABASE DormitoryManagement;
GO
USE DormitoryManagement;
GO
CREATE TABLE Students (
StudentID INT PRIMARY KEY IDENTITY,
Name NVARCHAR(50) NOT NULL,
StudentNumber NVARCHAR(20) NOT NULL,
Gender NVARCHAR(10),
Class NVARCHAR(50),
DormitoryID INT
);
CREATE TABLE Dormitories (
DormitoryID INT PRIMARY KEY IDENTITY,
DormitoryNumber NVARCHAR(20) NOT NULL,
Building NVARCHAR(50),
BedCount INT
);
CREATE TABLE Fees (
FeeID INT PRIMARY KEY IDENTITY,
StudentID INT,
FeeType NVARCHAR(50),
Amount DECIMAL(18, 2),
PaymentDate DATETIME
);
在Visual Studio中創建一個新的C# Windows Forms應用程序項目。
使用SqlConnection
類連接SQL Server數據庫。
using System.Data.SqlClient;
string connectionString = "Server=your_server_name;Database=DormitoryManagement;User Id=your_username;Password=your_password;";
SqlConnection connection = new SqlConnection(connectionString);
創建一個窗體用于管理學生信息,包括添加、修改、刪除和查詢功能。
public void AddStudent(string name, string studentNumber, string gender, string className, int dormitoryID)
{
string query = "INSERT INTO Students (Name, StudentNumber, Gender, Class, DormitoryID) VALUES (@Name, @StudentNumber, @Gender, @Class, @DormitoryID)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Name", name);
command.Parameters.AddWithValue("@StudentNumber", studentNumber);
command.Parameters.AddWithValue("@Gender", gender);
command.Parameters.AddWithValue("@Class", className);
command.Parameters.AddWithValue("@DormitoryID", dormitoryID);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
類似地,創建一個窗體用于管理宿舍信息。
public void AddDormitory(string dormitoryNumber, string building, int bedCount)
{
string query = "INSERT INTO Dormitories (DormitoryNumber, Building, BedCount) VALUES (@DormitoryNumber, @Building, @BedCount)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@DormitoryNumber", dormitoryNumber);
command.Parameters.AddWithValue("@Building", building);
command.Parameters.AddWithValue("@BedCount", bedCount);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
宿舍分配可以通過手動選擇宿舍或自動分配空閑宿舍來實現。
public void AssignDormitory(int studentID, int dormitoryID)
{
string query = "UPDATE Students SET DormitoryID = @DormitoryID WHERE StudentID = @StudentID";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@DormitoryID", dormitoryID);
command.Parameters.AddWithValue("@StudentID", studentID);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
費用管理模塊可以記錄學生的費用繳納情況。
public void AddFee(int studentID, string feeType, decimal amount, DateTime paymentDate)
{
string query = "INSERT INTO Fees (StudentID, FeeType, Amount, PaymentDate) VALUES (@StudentID, @FeeType, @Amount, @PaymentDate)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@StudentID", studentID);
command.Parameters.AddWithValue("@FeeType", feeType);
command.Parameters.AddWithValue("@Amount", amount);
command.Parameters.AddWithValue("@PaymentDate", paymentDate);
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
可以使用DataGridView
控件顯示報表數據,并通過SqlDataAdapter
從數據庫中獲取數據。
public DataTable GetDormitoryReport()
{
string query = "SELECT DormitoryNumber, Building, COUNT(StudentID) AS Occupancy FROM Dormitories LEFT JOIN Students ON Dormitories.DormitoryID = Students.DormitoryID GROUP BY DormitoryNumber, Building";
using (SqlDataAdapter adapter = new SqlDataAdapter(query, connection))
{
DataTable table = new DataTable();
adapter.Fill(table);
return table;
}
}
通過以上步驟,我們實現了一個簡單的宿舍管理系統。該系統涵蓋了學生信息管理、宿舍信息管理、宿舍分配管理、費用管理以及報表生成等基本功能。當然,實際應用中可能需要根據具體需求進行功能擴展和優化。
C#作為一種強大的編程語言,結合SQL Server數據庫,能夠高效地實現宿舍管理系統的開發。希望本文能為讀者提供一些參考和幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。