C/S结构用户界面设计
【实验编号】
10003809547j 图形用户界面设计
【实验学时】
8学时
【实验环境】
所需硬件环境为微机;
所需软件环境为Microsoft Visual Studio 2013
【实验内容】
编写一整套Mis系统UI界面,Mis系统名称自拟,尽量运用到如下控件:
窗体
菜单
工具栏
状态栏控件
标签控件
按钮控件
文本框控件
单选按钮控件
复选框控件
列表框控件
组合框控件
分组框控件
面板控件
图片框控件
定时器控件
滚动条控件
月历控件
【关键步骤】
点击顶部【图书管理】菜单
在弹出菜单中选择具体【图书分类】
选择分类后会显示该分类下的【子类别列表】
点击子类别,系统会列出该类别下的【可借阅图书】
查看图书详情后,点击【一键借阅】
系统生成借阅单,填写读者信息并提交,即可完成借阅
当前状态:馆藏图书 5 本 | 注册读者 4 人 | 2025-12-02 00:53:21
【程序运行截图】
1、主界面:
截图:

2、添加图书界面:
截图:

3、添加读者:
截图:

4、导出数据界面:
截图:

5、关于界面:
截图:

【源程序代码】
1.主页面
核心代码:
public MainForm()
{
InitializeComponent();
LoadSampleData();
RefreshBookGrid();
RefreshReaderGrid();
}
private void InitializeComponent()
{
// 窗体设置
this.Text = "图书馆管理系统 V2.0";
this.Size = new Size(1200, 700);
this.StartPosition = FormStartPosition.CenterScreen;
this.BackColor = Color.FromArgb(240, 245, 249);
// 创建菜单
CreateMenu();
// 创建工具栏
CreateToolbar();
// 创建状态栏
CreateStatusBar();
// 创建主TabControl
mainTabControl = new TabControl();
mainTabControl.Dock = DockStyle.Fill;
mainTabControl.SelectedIndexChanged += MainTabControl_SelectedIndexChanged;
// 图书管理Tab页
TabPage tabBooks = new TabPage("📚 图书管理");
CreateBookManagementTab(tabBooks);
// 读者管理Tab页
TabPage tabReaders = new TabPage("👤 读者管理");
CreateReaderManagementTab(tabReaders);
// 借阅管理Tab页
TabPage tabBorrow = new TabPage("📖 借阅管理");
CreateBorrowManagementTab(tabBorrow);
// 统计报表Tab页
TabPage tabStatistics = new TabPage("📊 统计报表");
CreateStatisticsTab(tabStatistics);
mainTabControl.TabPages.AddRange(new TabPage[] { tabBooks, tabReaders, tabBorrow, tabStatistics });
// 添加到窗体
this.Controls.AddRange(new Control[] { menuStrip, toolStrip, statusStrip, mainTabControl });
// 设置位置
menuStrip.Location = new Point(0, 0);
toolStrip.Location = new Point(0, menuStrip.Height);
statusStrip.Location = new Point(0, this.ClientSize.Height - statusStrip.Height);
}
private void CreateMenu()
{
menuStrip = new MenuStrip();
menuStrip.BackColor = Color.FromArgb(51, 51, 76);
menuStrip.ForeColor = Color.White;
menuStrip.Font = new Font("微软雅黑", 10);
// 文件菜单
ToolStripMenuItem fileMenu = new ToolStripMenuItem("文件(&F)");
fileMenu.DropDownItems.Add("导出数据(&E)", null, (s, e) => ExportData());
fileMenu.DropDownItems.Add("打印报表(&P)", null, (s, e) => PrintReport());
fileMenu.DropDownItems.Add(new ToolStripSeparator());
fileMenu.DropDownItems.Add("退出(&X)", null, (s, e) => Application.Exit());
// 数据菜单
ToolStripMenuItem dataMenu = new ToolStripMenuItem("数据(&D)");
dataMenu.DropDownItems.Add("添加图书(&A)", null, (s, e) => ShowAddBookForm());
dataMenu.DropDownItems.Add("添加读者(&R)", null, (s, e) => ShowAddReaderForm());
dataMenu.DropDownItems.Add(new ToolStripSeparator());
dataMenu.DropDownItems.Add("数据备份(&B)", null, (s, e) => BackupData());
dataMenu.DropDownItems.Add("数据恢复(&R)", null, (s, e) => RestoreData());
// 查询菜单
ToolStripMenuItem searchMenu = new ToolStripMenuItem("查询(&S)");
searchMenu.DropDownItems.Add("图书查询(&B)", null, (s, e) => mainTabControl.SelectedIndex = 0);
searchMenu.DropDownItems.Add("读者查询(&R)", null, (s, e) => mainTabControl.SelectedIndex = 1);
searchMenu.DropDownItems.Add(new ToolStripSeparator());
searchMenu.DropDownItems.Add("高级查询(&A)", null, (s, e) => ShowAdvancedSearch());
// 系统菜单
ToolStripMenuItem systemMenu = new ToolStripMenuItem("系统(&Y)");
systemMenu.DropDownItems.Add("系统设置(&S)", null, (s, e) => ShowSystemSettings());
systemMenu.DropDownItems.Add("用户管理(&U)", null, (s, e) => ShowUserManagement());
systemMenu.DropDownItems.Add(new ToolStripSeparator());
systemMenu.DropDownItems.Add("关于(&A)", null, (s, e) => ShowAbout());
menuStrip.Items.AddRange(new ToolStripItem[] { fileMenu, dataMenu, searchMenu, systemMenu });
}
2、添加图书界面:
核心代码:
private void ShowAddBookForm()
{
using (var form = new BookForm())
{
if (form.ShowDialog() == DialogResult.OK)
{
Book newBook = new Book
{
Id = currentBookId++,
ISBN = form.ISBN,
Title = form.BookTitle,
Author = form.Author,
Publisher = form.Publisher,
Category = form.Category,
Price = form.Price,
Stock = form.Stock,
PublishDate = form.PublishDate
};
books.Add(newBook);
RefreshBookGrid();
MessageBox.Show("图书添加成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
3、添加读者:
核心代码:
private void ShowAddReaderForm()
{
using (var form = new ReaderForm())
{
if (form.ShowDialog() == DialogResult.OK)
{
Reader newReader = new Reader
{
Id = currentReaderId++,
CardNumber = form.CardNumber,
ReaderName = form.ReaderName,
Gender = form.Gender,
Phone = form.Phone,
Email = form.Email,
RegisterDate = form.RegisterDate,
BorrowCount = 0
};
readers.Add(newReader);
RefreshReaderGrid();
MessageBox.Show("读者添加成功!", "成功", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
4、导出数据界面:
核心代码:
private void ExportData()
{
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.Filter = "文本文件|*.txt|CSV文件|*.csv";
if (saveDialog.ShowDialog() == DialogResult.OK)
{
MessageBox.Show($"数据已导出到:{saveDialog.FileName}", "导出成功",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
5、关于界面:
核心代码:
private void ShowAbout()
{
MessageBox.Show("图书馆管理系统 V2.0\n\n功能特点:\n• 完整的图书管理\n• 读者信息管理\n• 借阅归还功能\n• 数据统计报表\n\n开发团队:软件工程课程组",
"关于系统", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
【实验体会】
在这次图书管理系统C/S界面的开发实践中,我深刻体会到C#在桌面应用开发中的便捷与高效。通过可视化控件拖拽,我快速搭建了清晰的用户界面,大大提升了布局效率。同时,借助Entity Framework实现界面与数据库的交互,让我对数据绑定与业务逻辑分离有了更具体的认识。这次实验不仅让我掌握了基本的窗体应用开发流程,也让我认识到一个完整的系统离不开友好的界面设计与稳定的数据支持。未来我将继续探索更复杂的交互逻辑与性能优化,让技术更好服务于实际应用场景。