食堂饭卡管理系统.docx
《食堂饭卡管理系统.docx》由会员分享,可在线阅读,更多相关《食堂饭卡管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
![食堂饭卡管理系统.docx](https://file1.bdocx.com/fileroot1/2023-2/23/5b1c776f-4ebc-4181-96a5-1f5a1f6d21f1/5b1c776f-4ebc-4181-96a5-1f5a1f6d21f11.gif)
食堂饭卡管理系统
数学与计算机学院
课程设计说明书
课程名称:
软件工程课程设计
课程代码:
8404131
题目:
食堂饭卡管理系统
年级/专业/班:
学生姓名:
学 号:
开始时间:
2012年5月14日
完成时间:
2012年5月30日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总分(100)
指导教师签名:
年月日
目录
引言1
1需求分析1
1.1数据库需求分析1
1.2用户需求2
1.3系统功能需求2
1.4数据描述3
1.5数据库描述3
1.6各个模块之间的E-R图4
1.7数据采集4
2概要设计4
2.1系统运行环境4
2.2总体设计4
2.2.1.处理流程4
2.2.2.系统总体结构和模块设计。
5
2.3接口设计5
3详细设计6
3.1程序设计说明6
3.2注册界面代码设计7
3.3充值界面代码分析8
3.4消费界面代码分析10
3.5挂失界面代码分析13
3.6注销界面代码分析15
4模块分析16
4.1初始化模块16
4.2跳转界面16
4.3饭卡注册界面19
4.4饭卡充值界面19
4.5饭卡消费界面20
4.6饭卡挂失界面21
4.7饭卡注销界面22
5系统测试23
总结23
致谢24
参考文献25
摘要
随着社会的不断进步,技术的不断更新,计算机的普及使得很多软件和程序更加方便人们的生活,也使得它们为人们做的各种服务更加人性化、更加方便,特备是在服务类行业。
分析当今高速发展的社会,服务类行业的发展也越来越居主导地位,贴近我们生活的便是食堂消费。
生活节奏的加快,也使得人们希望在食堂消费时花费的时间尽可能的少,所以在这种形式要求下,做了这个小型的应用软件——食堂饭卡管理。
通过本软件,管理员可以方便的对学生信息进行注册、对饭卡进行充值、挂失和注销饭卡,并且本系统还模拟了学生食堂的消费过程,直观的显示了我们生活中的食堂消费过程,提高了我们的消费效率,使我们的生活更加方便。
关键词:
食堂饭卡管理系统注册充值挂失注销消费模拟
引言
饭卡管理系统是一套针对大学校园食堂交费和一般消费等方面的信息管理系统,它包括学生或教职工(后面把这两者统称为持卡者,把这两者的基本信息文档统一放在学校持卡者信息表中)在校内消费的各方面内容:
刷卡消费、查询、充值和持卡者信息管理等,方便对饭卡信息进行各项操作,定时进行数据的备份和更新,保持数据的一致性和准确性。
另外,各方面的内容应该相互联系,最终产生各种查询统计报表,以供持卡者进行检查。
对于此系统的任务就是把人们从繁琐的交费、找零工作中解放出来,用计算实现存款、消费、查询]修改、删除以及存储等功能。
同时,用计算机能够快速准确地完成资料的统计和汇总工作,迅速地打印出各种报表资料以供使用。
1需求分析
饭卡管理系统是一套针对大学校园食堂交费和一般消费等方面的信息管理系统,它包括学生或教职工(后面把这两者统称为持卡者,把这两者的基本信息文档统一放在学校持卡者信息表中)在校内消费的各方面内容:
刷卡消费、查询、存款和持卡者信息管理等,方便对饭卡信息进行各项操作,定时进行数据的备份和更新,保持数据的一致性和准确性。
另外,各方面的内容应该相互联系,最终产生各种查询统计报表,以供持卡者进行检查。
对于此系统的任务就是把人们从繁琐的交费、找零工作中解放出来,用计算实现注册、充值、消费、挂失以及注销等功能。
同时,用计算机能够快速准确地完成资料的统计和汇总工作,迅速地打印出各种报表资料以供使用。
1.1数据库需求分析
数据库的设计是指对于一个给定的应用环境,构造最有效的数据库模式,建立数据及应用系统,实质能够有效地存储数据,满足用户的需求,数据库设计是在数据库管理系统支持下进行的。
根据数据流程图,可以列出以下数据项和数据结构:
饭卡信息数据:
饭卡ID、学生学号、姓名、余额、是否可用。
1.2用户需求
利用食堂信息管理系统可以做到信息的规范管理、科学统计和快速查询,从而减少管理工作方面的工作量。
大大降低食堂管理人员在信息管理精力上的投入,使企业获得更大的利润空间。
与此同时给广大学生用户带来方便。
在实用性上达到了双赢。
1.3系统功能需求
食堂饭卡管理系统主要有以下几项功能:
注册:
饭卡初始信息的录入、饭卡初始余额
充值:
对饭卡进行充值
消费模拟:
对饭卡余额进行操作
挂失:
使饭卡不可用
注销:
在数据库中删除学生信息
数据流程图如下:
图1饭卡总体操作流程图
1.4数据描述
饭卡信息表:
字段名
数据类型
含义说明
空值情况
Cardid
int
饭卡号码
主键
Sno
nchar(15)
学号
可以为空
Sname
varchar(50)
姓名
可以为空
Cmoney
nchar(50)
卡上余额
可以为空
Able
Int
饭卡是否可用
不可为空
图2饭卡信息表
1.5数据库描述
本软件采用关系型数据库。
图3数据库建立过程
1.6各个模块之间的E-R图
图4模块关系图
1.7数据采集
通过键盘向软件系统录入数据。
2概要设计
根据上面的数据流图和数据字典抽象出实体和个实体的属性,饭卡ID作为主键,学生信息、饭卡余额与饭卡可用作为表中信息。
实体
属性
饭卡
饭卡ID、学生学号、姓名、余额、是否可用。
2.1系统运行环境
MicrosoftVisualStudio2008和Sqlserver2005
2.2总体设计
2.2.1.处理流程
(1)系统启动,进入身份验证;
(2)初始化系统,导入数据库;
(3)进入等待页面状态,通过选择执行各个任务;
(4)一个任务执行完毕后重新进入页面等待状态;
(5)所有任务执行完毕后退出系统。
2.2.2.系统总体结构和模块设计。
通过以上分析,我们进一步设计出了工资管理系统的总体结构模块图
图5总体结构模块图
2.3接口设计
1.外部接口
(1)用户界面
运用图形用户界面(GUI)。
(2)软件接口
软件运行于windows以上和XP平台上。
2.内部接口
(1)初始化模块:
系统初始时由操作系统调用,之后进入页面等待状态;
(2)等待页面模块:
由系统功能各个模块调用,调用完毕之后退出系统;
(3)饭卡信息查询模块;
(4)饭卡信息修改模块;
(5)关闭系统模块。
3详细设计
在以上工作的基础上,我们对有输出要求的全部数据进行各种分析后,进一步实现了整个系统的人—机接口的结合,提出了系统细化后的数据流图和系统的总体结构模块图。
3.1程序设计说明
数据库的建立
CREATETABLE[dbo].[shitang](
[cardid][int]COLLATENOTNULL,
[sno][nchar](15)COLLATENOTNULL,
[sname][varchar](50)COLLATENOTNULL,
[cmoney][nchar](50)COLLATENULL,
[able][int]COLLATENOTNULL,
CONSTRAINT[cardid]PRIMARYKEYCLUSTERED,
);
3.2注册界面代码设计
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
sqlcommand.CommandText="insertintoshitang(sno,sname,cmoney,able)values(@sno,@sname,@cmoney,@able)";
//sqlcommand.Parameters.AddWithValue("@cardid",TextBox1.Text);
sqlcommand.Parameters.AddWithValue("@sno",TextBox2.Text);
sqlcommand.Parameters.AddWithValue("@sname",TextBox3.Text);
sqlcommand.Parameters.AddWithValue("@cmoney",TextBox4.Text);
sqlcommand.Parameters.AddWithValue("@able",TextBox5.Text);
try{
sqlconn.Open();
sqlcommand.ExecuteNonQuery();
Label1.Text="成功增加记录";
}
catch(Exceptionex)
{
Label1.Text="错误原因:
"+ex.Message;
}
finally
{
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
}
3.3充值界面代码分析
protectedvoidButton1_Click(objectsender,EventArgse)
{
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
sqlconn.Open();
sqlcommand.CommandText="select*fromshitangwherecardid=@cardid";
sqlcommand.Parameters.AddWithValue("@cardid",TextBox1.Text);
SqlDataReadersqldatareader=sqlcommand.ExecuteReader();
while(sqldatareader.Read())
{
Label1.Text+=sqldatareader.GetString(3)+"
";
};
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
protectedvoidButton2_Click1(objectsender,EventArgse)
{
intintUpdateCount;
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
if(TextBox1.Text.Trim()=="")
return;
sqlcommand.CommandText="updateshitangsetcmoney=cmoney+"+TextBox3.Text+
"wherecardid="+TextBox1.Text.Trim();
sqlcommand.CommandType=CommandType.Text;
try
{
sqlconn.Open();
intUpdateCount=sqlcommand.ExecuteNonQuery();
if(intUpdateCount>0)
Label2.Text="充值成功";
else
Label2.Text="该记录不存在";
}
catch(Exceptionex)
{
Label2.Text="错误原因:
"+ex.Message;
}
finally
{
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
}
3.4消费界面代码分析
protectedvoidButton1_Click(objectsender,EventArgse)
{
Label3.Text="";
Label3.ForeColor=System.Drawing.Color.Black;
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
sqlconn.Open();
sqlcommand.CommandText="select*fromshitangwherecardid=@cardid";
sqlcommand.Parameters.AddWithValue("@cardid",TextBox1.Text);
SqlDataReadersqldatareader=sqlcommand.ExecuteReader();
if(sqldatareader.Read())
{
if(sqldatareader.GetInt32(0)>0)
{
if(sqldatareader.GetInt32(4)==0)
{
//Response.Write("");
Label3.Text="本卡已挂失!
";
Label3.ForeColor=System.Drawing.Color.Red;
return;
}
Label3.Text=sqldatareader.GetString(3);
}
}
else
{
Label3.Text="本卡不存在!
";
Label3.ForeColor=System.Drawing.Color.Red;
return;
}
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
intintUpdateCount;
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
if(TextBox1.Text.Trim()=="")
return;
sqlcommand.CommandText="updateshitangsetcmoney=cmoney-"+TextBox2.Text+
"wherecardid="+TextBox1.Text.Trim();
sqlcommand.CommandType=CommandType.Text;
try
{
sqlconn.Open();
intUpdateCount=sqlcommand.ExecuteNonQuery();
if(intUpdateCount>0)
Label2.Text="消费成功";
else
Label2.Text="该记录不存在";
}
catch(Exceptionex)
{
Label2.Text="错误原因:
"+ex.Message;
}
finally
{
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
}
}
3.5挂失界面代码分析
protectedvoidButton2_Click(objectsender,EventArgse)
{
intintDeleteCount;
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
//sqlcommand.CommandText="deletefromshitangwherecardid=@cardid";
sqlcommand.CommandText="updateshitangsetable=0wherecardid=@cardid";
sqlcommand.Parameters.AddWithValue("@cardid",TextBox1.Text);
try
{
sqlconn.Open();
intDeleteCount=sqlcommand.ExecuteNonQuery();
if(intDeleteCount>0)
Label1.Text="成功挂失";
else
Label1.Text="该记录不存在";
}
catch(Exceptionex)
{
Label1.Text="错误原因"+ex.Message;
}
finally
{
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
}
}
3.6注销界面代码分析
protectedvoidButton1_Click(objectsender,EventArgse)
{
intintDeleteCount;
stringsqlconnstr=ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
SqlConnectionsqlconn=newSqlConnection(sqlconnstr);
SqlCommandsqlcommand=newSqlCommand();
sqlcommand.Connection=sqlconn;
sqlcommand.CommandText="deletefromshitangwherecardid=@cardid";
//sqlcommand.CommandText="updateshitangsetable=0wherecardid=@cardid";
sqlcommand.Parameters.AddWithValue("@cardid",TextBox1.Text);
try
{
sqlconn.Open();
intDeleteCount=sqlcommand.ExecuteNonQuery();
if(intDeleteCount>0)
Label1.Text="成功注销";
else
Label1.Text="该记录不存在";
}
catch(Exceptionex)
{
Label1.Text="错误原因"+ex.Message;
}
finally
{
sqlcommand=null;
sqlconn.Close();
sqlconn=null;
}
}
4模块分析
4.1初始化模块
当我们开始运行这个软件时,会出现如图8界面,即初始化界面:
图6登陆界面
4.2跳转界面
当我们点击相应的操作要求时,会跳转到如图6界面,即跳转界面:
图7跳转界面
4.3饭卡注册界面
图8饭卡注册界面
4.4饭卡充值界面
图9饭卡充值界面
4.5饭卡消费界面
由于有三个饭卡模拟选择,此处只选择食堂消费模拟:
图10饭卡消费模拟
如果饭卡已经挂失,则不能使用:
图11饭卡挂失出错
如果没有此饭卡,则会跳出:
图12饭卡不存在
4.6饭卡挂失界面
图13饭卡挂失
4.7饭卡注销界面
图14饭卡注销
5系统测试
软件测试是保证软件质量的关键,它是对需求分析设计和编码的最后审核。
在软件生命周期的各个阶段,都不可避免地会产生一些错误,通常在每个软件阶段过后都会对这个软件进行测试,以保证软件的高质量性。
软件测试是为了发现程序中的错误而执行程序的过程,有的测试方案可能迄今为止尚未发现一个错误,有的测试方案的发现错误的频率会比较高。
一般的测试方案有:
白盒测试和黑盒测试。
白盒测试的前提是可以把程序看成装在一个透明的白盒子