《数据结构课程设计宿舍管理查询软件》由会员分享,可在线阅读,更多相关《数据结构课程设计宿舍管理查询软件(29页珍藏版)》请在金锄头文库上搜索。
1、宿舍管理查询软件一、需求分析宿舍管理人员需要对学生的入住情况进行登记(办理登记入住、办理退房),同时还需要在平时能够根据学号、姓名或宿舍号查询到学生的入住情况。宿舍信息的存储采用离线文件存储。二、系统设计1、系统所需的数据结构/宿舍使用记录/publicclassDormitoryRecord /学号/publicstring StuID get; set; /姓名/publicstring Name get; set; /宿舍/publicstring Dormitory get; set; /宿舍使用记录/publicList Records/宿舍使用记录中的字段名/publicenumD
2、ormitoryRecordWordType StuID, Name, Dormitory注:宿舍记录在存入文件的时候按各字段最大长度存储,不足部分使用空格填充2、系统总体结构图办理查询保存和载入数据办理入住办理退房宿舍管理按宿舍查询按姓名查询按学号查询3、各模块功能描述/从文件读入宿舍使用记录/protectedvoid ReadFromFile() /将现有记录写入文件/publicvoid SaveToFile() /对宿舍使用记录进行排序/排序的关键字/排序后的记录publicDormitoryRecord Sort(DormitoryRecordWordType type)/根据给定
3、的关键字和键值进行查找/关键字/键值/null为查找失败publicDormitoryRecord Find(DormitoryRecordWordType type, string key)/根据给定的关键字和键值找到记录并删除/关键字/键值publicvoid Delete(DormitoryRecordWordType type, string key)/添加一条宿舍使用记录/学号/姓名/宿舍publicvoid Add(string StuID, string Name, string Dormitory)4、各功能流程图三、测试1、测试方案在空数据的情况下,办理若干条记录的入住。然后
4、任选一条进行删除操作。接着对剩余的记录任选一条或几条分别进行按学号、按姓名和按宿舍查找。2、测试过程软件初始界面:办理入住:办理退房:查找操作:按学号:按姓名:按宿舍:四、用户使用手册软件初始界面:点击办理入住可以打开入住登记窗口,填入全部信息后按确认即可:点击查询入住会出现下拉菜单,可以根据提示选择以学号、姓名或宿舍号的一种进行检索:点击办理退房即出现办理退房的窗口,输入学号后即可删去该学生的宿舍使用记录:五、收获及体会六、附源程序清单1、MainForm.csusing System;using System.Collections.Generic;using System.Compone
5、ntModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.Threading;namespace宿舍管理publicpartialclassMainForm : Form protectedThread SaveToFileThread = newThread(newParameterizedThreadStart(SaveToFile);protec
6、teddelegatevoidRecordCountChangedHandler();protectedeventRecordCountChangedHandler OnRecordCountChanged;protectedstaticvoid SaveToFile(object m) DormitoryManagement manage = (DormitoryManagement)m; manage.SaveToFile(); public MainForm() InitializeComponent(); OnRecordCountChanged += RefreshLabel; Re
7、freshLabel(); protectedvoid RefreshLabel() labelStatistic.Text = 当前入住学生数: + DormitoryManagementPool.dm.Count;/从DormitoryManagementPool.dm读出所有记录并写入GridViewDataTable dt = newDataTable(DormitoryRecords); dt.Columns.Add(newDataColumn(学号, typeof(string); dt.Columns.Add(newDataColumn(姓名, typeof(string); d
8、t.Columns.Add(newDataColumn(宿舍, typeof(string);List records = DormitoryManagementPool.dm.Records;DataSet ds = newDataSet();for (int i = 0; i records.Count; i+) DataRow dr = dt.NewRow(); dr学号 = recordsi.StuID; dr姓名 = recordsi.Name; dr宿舍 = recordsi.Dormitory; dt.Rows.Add(dr); ds.Tables.Add(dt); dataGr
9、idView1.DataSource = ds; dataGridView1.DataMember = DormitoryRecords; privatevoid办理入住ToolStripMenuItem_Click(object sender, EventArgs e) CheckInForm frm = newCheckInForm();if (frm.ShowDialog() = System.Windows.Forms.DialogResult.OK) try DormitoryManagementPool.dm.Add(frm.StuID, frm.StuName, frm.Dorm
10、itory); frm.Close(); SaveToFileThread.Abort(); SaveToFileThread = newThread(newParameterizedThreadStart(SaveToFile); SaveToFileThread.Start(DormitoryManagementPool.dm); catch (RecordAlreadyExistException) MessageBox.Show(记录已经存在!, 办理入住失败, MessageBoxButtons.OK, MessageBoxIcon.Error); /触发记录数改变事件 OnRecordCountChanged(); privatevoid办理退房ToolStripMenuItem_Click(object sender, EventArgs e) DeleteForm frm = newDeleteForm();if (frm.ShowDialog() = System.Windows.Forms.DialogResult.OK) try DormitoryManagementPool.dm.Delete(DormitoryRecordWordType.StuID, frm.StuID); frm.Close