C# 语言 开发图书馆管理系统实战

C#阿木 发布于 2025-06-13 5 次阅读


图书馆管理系统实战:C 编程实现

图书馆管理系统是信息管理系统中的一种,它能够帮助图书馆员高效地管理图书资源,同时为读者提供便捷的借阅服务。本文将围绕C语言,详细介绍如何开发一个图书馆管理系统,包括系统设计、数据库设计、关键功能实现等。

系统设计

系统架构

图书馆管理系统采用B/S(Browser/Server)架构,前端使用HTML、CSS和JavaScript,后端使用C和ASP.NET。数据库采用SQL Server。

系统模块

1. 用户管理:包括用户注册、登录、信息修改等功能。
2. 图书管理:包括图书增删改查、分类管理、借阅管理等功能。
3. 读者管理:包括读者注册、信息修改、借阅记录查询等功能。
4. 系统管理:包括系统设置、日志管理等功能。

数据库设计

数据库表结构

1. 用户表(Users)
- 用户ID(UserID):主键,自增
- 用户名(Username):唯一
- 密码(Password)
- 姓名(Name)
- 联系方式(Phone)
- 角色ID(RoleID)

2. 图书表(Books)
- 图书ID(BookID):主键,自增
- 书名(Title)
- 作者(Author)
- 分类ID(CategoryID)
- ISBN
- 出版日期(PublishDate)
- 库存数量(Stock)

3. 读者表(Readers)
- 读者ID(ReaderID):主键,自增
- 姓名(Name)
- 联系方式(Phone)
- 读者类型(Type)

4. 借阅记录表(BorrowRecords)
- 借阅记录ID(RecordID):主键,自增
- 读者ID(ReaderID)
- 图书ID(BookID)
- 借阅日期(BorrowDate)
- 应还日期(DueDate)
- 实际还书日期(ReturnDate)

5. 分类表(Categories)
- 分类ID(CategoryID):主键,自增
- 分类名称(Name)

6. 角色表(Roles)
- 角色ID(RoleID):主键,自增
- 角色名称(Name)

关键功能实现

用户管理

1. 用户注册

csharp
public bool Register(string username, string password, string name, string phone, int roleId)
{
// 连接数据库
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
// 创建SQL语句
string sql = "INSERT INTO Users (Username, Password, Name, Phone, RoleID) VALUES (@Username, @Password, @Name, @Phone, @RoleID)";
// 创建SqlCommand对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 添加参数
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@Password", password);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Phone", phone);
cmd.Parameters.AddWithValue("@RoleID", roleId);
// 打开连接
conn.Open();
// 执行SQL语句
int result = cmd.ExecuteNonQuery();
// 关闭连接
conn.Close();
// 返回结果
return result > 0;
}
}

2. 用户登录

csharp
public bool Login(string username, string password)
{
// 连接数据库
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
// 创建SQL语句
string sql = "SELECT FROM Users WHERE Username = @Username AND Password = @Password";
// 创建SqlCommand对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 添加参数
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@Password", password);
// 打开连接
conn.Open();
// 执行SQL语句
SqlDataReader reader = cmd.ExecuteReader();
// 关闭连接
conn.Close();
// 返回结果
return reader.HasRows;
}
}

图书管理

1. 图书增删改查

csharp
// 图书增删改查的代码与用户管理类似,这里不再赘述

读者管理

1. 读者注册

csharp
// 读者注册的代码与用户管理类似,这里不再赘述

2. 读者信息修改

csharp
public bool UpdateReaderInfo(int readerId, string name, string phone)
{
// 连接数据库
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
// 创建SQL语句
string sql = "UPDATE Readers SET Name = @Name, Phone = @Phone WHERE ReaderID = @ReaderID";
// 创建SqlCommand对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 添加参数
cmd.Parameters.AddWithValue("@ReaderID", readerId);
cmd.Parameters.AddWithValue("@Name", name);
cmd.Parameters.AddWithValue("@Phone", phone);
// 打开连接
conn.Open();
// 执行SQL语句
int result = cmd.ExecuteNonQuery();
// 关闭连接
conn.Close();
// 返回结果
return result > 0;
}
}

3. 借阅记录查询

csharp
public DataTable GetBorrowRecords(int readerId)
{
// 连接数据库
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
// 创建SQL语句
string sql = "SELECT FROM BorrowRecords WHERE ReaderID = @ReaderID";
// 创建SqlCommand对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 添加参数
cmd.Parameters.AddWithValue("@ReaderID", readerId);
// 创建DataAdapter对象
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
// 创建DataTable对象
DataTable table = new DataTable();
// 填充DataTable
adapter.Fill(table);
// 返回DataTable
return table;
}
}

系统管理

1. 系统设置

csharp
// 系统设置的代码与用户管理类似,这里不再赘述

2. 日志管理

csharp
public void AddLog(string log)
{
// 连接数据库
using (SqlConnection conn = new SqlConnection("your_connection_string"))
{
// 创建SQL语句
string sql = "INSERT INTO Logs (Log) VALUES (@Log)";
// 创建SqlCommand对象
SqlCommand cmd = new SqlCommand(sql, conn);
// 添加参数
cmd.Parameters.AddWithValue("@Log", log);
// 打开连接
conn.Open();
// 执行SQL语句
cmd.ExecuteNonQuery();
// 关闭连接
conn.Close();
}
}

总结

本文详细介绍了如何使用C语言开发一个图书馆管理系统。通过以上代码示例,读者可以了解到系统设计、数据库设计、关键功能实现等方面的知识。在实际开发过程中,可以根据需求对系统进行扩展和优化。希望本文对读者有所帮助。