数据结构课程设计宿舍管理Word格式文档下载.docx
- 文档编号:17841437
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:40
- 大小:91.01KB
数据结构课程设计宿舍管理Word格式文档下载.docx
《数据结构课程设计宿舍管理Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计宿舍管理Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
Records
///宿舍使用记录中的字段名
publicenumDormitoryRecordWordType
StuID,Name,Dormitory
}
注:
宿舍记录在存入文件的时候按各字段最大长度存储,不足部分使用空格填充
2、系统总体结构图
办理查询
保存和载入数据
办理入住
办理退房
宿舍管理
按宿舍查询
按姓名查询
按学号查询
3、各模块功能描述
///从文件读入宿舍使用记录
protectedvoidReadFromFile()
///将现有记录写入文件
publicvoidSaveToFile()
///对宿舍使用记录进行排序
paramname="
type"
>
排序的关键字<
/param>
returns>
排序后的记录<
/returns>
publicDormitoryRecord[]Sort(DormitoryRecordWordTypetype)
///根据给定的关键字和键值进行查找
关键字<
key"
键值<
null为查找失败<
publicDormitoryRecordFind(DormitoryRecordWordTypetype,stringkey)
///根据给定的关键字和键值找到记录并删除
publicvoidDelete(DormitoryRecordWordTypetype,stringkey)
///添加一条宿舍使用记录
StuID"
学号<
Name"
姓名<
Dormitory"
宿舍<
publicvoidAdd(stringStuID,stringName,stringDormitory)
4、各功能流程图
三、测试
1、测试方案
在空数据的情况下,办理若干条记录的入住。
然后任选一条进行删除操作。
接着对剩余的记录任选一条或几条分别进行按学号、按姓名和按宿舍查找。
2、测试过程
软件初始界面:
办理入住:
办理退房:
查找操作:
按学号:
按姓名:
按宿舍:
四、用户使用手册
软件初始界面:
点击办理入住可以打开入住登记窗口,填入全部信息后按确认即可:
点击查询入住会出现下拉菜单,可以根据提示选择以学号、姓名或宿舍号的一种进行检索:
点击办理退房即出现办理退房的窗口,输入学号后即可删去该学生的宿舍使用记录:
五、收获及体会
六、附源程序清单
1、MainForm.cs
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Threading;
namespace宿舍管理
{
publicpartialclassMainForm:
Form
protectedThreadSaveToFileThread=newThread(newParameterizedThreadStart(SaveToFile));
protecteddelegatevoidRecordCountChangedHandler();
protectedeventRecordCountChangedHandlerOnRecordCountChanged;
protectedstaticvoidSaveToFile(objectm)
DormitoryManagementmanage=(DormitoryManagement)m;
manage.SaveToFile();
publicMainForm()
InitializeComponent();
OnRecordCountChanged+=RefreshLabel;
RefreshLabel();
protectedvoidRefreshLabel()
labelStatistic.Text="
当前入住学生数:
"
+DormitoryManagementPool.dm.Count;
//从DormitoryManagementPool.dm读出所有记录并写入GridView
DataTabledt=newDataTable("
DormitoryRecords"
);
dt.Columns.Add(newDataColumn("
学号"
typeof(string)));
姓名"
宿舍"
List<
records=DormitoryManagementPool.dm.Records;
DataSetds=newDataSet();
for(inti=0;
i<
records.Count;
i++)
DataRowdr=dt.NewRow();
dr["
]=records[i].StuID;
]=records[i].Name;
]=records[i].Dormitory;
dt.Rows.Add(dr);
ds.Tables.Add(dt);
dataGridView1.DataSource=ds;
dataGridView1.DataMember="
;
privatevoid办理入住ToolStripMenuItem_Click(objectsender,EventArgse)
CheckInFormfrm=newCheckInForm();
if(frm.ShowDialog()==System.Windows.Forms.DialogResult.OK)
try
DormitoryManagementPool.dm.Add(frm.StuID,frm.StuName,frm.Dormitory);
frm.Close();
SaveToFileThread.Abort();
SaveToFileThread=newThread(newParameterizedThreadStart(SaveToFile));
SaveToFileThread.Start(DormitoryManagementPool.dm);
catch(RecordAlreadyExistException)
MessageBox.Show("
记录已经存在!
"
办理入住失败"
MessageBoxButtons.OK,MessageBoxIcon.Error);
//触发记录数改变事件
OnRecordCountChanged();
privatevoid办理退房ToolStripMenuItem_Click(objectsender,EventArgse)
DeleteFormfrm=newDeleteForm();
DormitoryManagementPool.dm.Delete(DormitoryRecordWordType.StuID,frm.StuID);
catch(RecordNotFoundException)
记录未找到!
办理退房失败"
privatevoid按学号查询ToolStripMenuItem_Click(objectsender,EventArgse)
SearchFormfrm=newSearchForm(DormitoryRecordWordType.StuID);
frm.ShowDialog();
privatevoid按姓名查询ToolStripMenuItem_Click(objectsender,EventArgse)
SearchFormfrm=newSearchForm(DormitoryRecordWordType.Name);
privatevoid按房号查询ToolStripMenuItem_Click(objectsender,EventArgse)
SearchFormfrm=newSearchForm(DormitoryRecordWordType.Dormitory);
2、SearchForm.cs
publicpartialclassSearchForm:
DormitoryRecordWordTypeKey;
publicSearchForm(DormitoryRecordWordTypekey)
Key=key;
switch(key)
caseDormitoryRecordWordType.StuID:
label1.Text="
学号:
break;
caseDormitoryRecordWordType.Name:
姓名:
caseDormitoryRecordWordType.Dormitory:
宿舍:
privatevoidbuttonOK_Click(objectsender,EventArgse)
DormitoryRecord[]dr=DormitoryManagementPool.dm.FindAll(Key,textBoxKey.Text);
if(dr==null)
未找到记录!
查询失败"
return;
dr.Count();
DataRowrow=dt.NewRow();
row["
]=dr[i].StuID;
]=dr[i].Name;
]=dr[i].Dormitory;
dt.Rows.Add(row);
3、DeleteForm.cs
publicpartialclassDeleteForm:
publicstringStuID="
publicDeleteForm()
this.Hide();
StuID=textBoxStuID.Text;
this.DialogResult=System.Windows.Forms.DialogResult.OK;
4、CheckInForm.cs
publicpartialclassCheckInForm:
publicstringStuID;
publicstringStuName;
publicstringDormitory;
publicCheckInForm()
StuName=textBoxName.Text;
Dormitory=textBoxDormitory.Text;
5、DormitoryManagement.cs
usingSystem.IO;
///宿舍管理
classDormitoryManagement
protectedList<
records=newList<
();
protectedstringFilePath="
DormitoryData.dat"
///学号最大长度
protectedconstintStuIDMaxLength=10;
///姓名最大长度
protectedconstintNameMaxLength=20;
///宿舍最大长度
protectedconstintDormitoryMaxLength=20;
protectedboolStringSmaller(stringA,stringB)
intmax=A.Length>
B.Length?
B.Length:
A.Length;
if(A.Length==0)
returntrue;
if(B.Length==0)
returnfalse;
max;
if(A[i]==B[i])
continue;
else
if(A[i]<
B[i])
if(A.Length<
B.Length)
protectedboolStringBigger(stringA,stringB)
if(A[i]>
if(A.Length>
//打开文件
FileStreamfs=newFileStream(FilePath,FileMode.Open);
FileInfofi=newFileInfo(FilePath);
StreamReadersr=newStreamReader(fs);
char[]buffer=newchar[StuIDMaxLength+NameMaxLength+DormitoryMaxLength];
//读入记录
//记录形式:
学号,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 宿舍 管理