食堂饭卡管理系统.docx

上传人:b****8 文档编号:9617301 上传时间:2023-02-05 格式:DOCX 页数:27 大小:289.27KB
下载 相关 举报
食堂饭卡管理系统.docx_第1页
第1页 / 共27页
食堂饭卡管理系统.docx_第2页
第2页 / 共27页
食堂饭卡管理系统.docx_第3页
第3页 / 共27页
食堂饭卡管理系统.docx_第4页
第4页 / 共27页
食堂饭卡管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

食堂饭卡管理系统.docx

《食堂饭卡管理系统.docx》由会员分享,可在线阅读,更多相关《食堂饭卡管理系统.docx(27页珍藏版)》请在冰豆网上搜索。

食堂饭卡管理系统.docx

食堂饭卡管理系统

数学与计算机学院

课程设计说明书

课程名称:

软件工程课程设计

课程代码:

8404131

题目:

食堂饭卡管理系统

年级/专业/班:

学生姓名:

学  号:

开始时间:

2012年5月14日

完成时间:

2012年5月30日

课程设计成绩:

学习态度及平时成绩(30)

技术水平与实际能力(20)

创新(5)

说明书(计算书、图纸、分析报告)撰写质量(45)

总分(100)

指导教师签名:

年月日

 

摘要

 

随着社会的不断进步,技术的不断更新,计算机的普及使得很多软件和程序更加方便人们的生活,也使得它们为人们做的各种服务更加人性化、更加方便,特备是在服务类行业。

分析当今高速发展的社会,服务类行业的发展也越来越居主导地位,贴近我们生活的便是食堂消费。

生活节奏的加快,也使得人们希望在食堂消费时花费的时间尽可能的少,所以在这种形式要求下,做了这个小型的应用软件——食堂饭卡管理。

通过本软件,管理员可以方便的对学生信息进行注册、对饭卡进行充值、挂失和注销饭卡,并且本系统还模拟了学生食堂的消费过程,直观的显示了我们生活中的食堂消费过程,提高了我们的消费效率,使我们的生活更加方便。

 

关键词:

食堂饭卡管理系统注册充值挂失注销消费模拟

引言

饭卡管理系统是一套针对大学校园食堂交费和一般消费等方面的信息管理系统,它包括学生或教职工(后面把这两者统称为持卡者,把这两者的基本信息文档统一放在学校持卡者信息表中)在校内消费的各方面内容:

刷卡消费、查询、充值和持卡者信息管理等,方便对饭卡信息进行各项操作,定时进行数据的备份和更新,保持数据的一致性和准确性。

另外,各方面的内容应该相互联系,最终产生各种查询统计报表,以供持卡者进行检查。

对于此系统的任务就是把人们从繁琐的交费、找零工作中解放出来,用计算实现存款、消费、查询]修改、删除以及存储等功能。

同时,用计算机能够快速准确地完成资料的统计和汇总工作,迅速地打印出各种报表资料以供使用。

 

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系统测试

软件测试是保证软件质量的关键,它是对需求分析设计和编码的最后审核。

在软件生命周期的各个阶段,都不可避免地会产生一些错误,通常在每个软件阶段过后都会对这个软件进行测试,以保证软件的高质量性。

软件测试是为了发现程序中的错误而执行程序的过程,有的测试方案可能迄今为止尚未发现一个错误,有的测试方案的发现错误的频率会比较高。

一般的测试方案有:

白盒测试和黑盒测试。

白盒测试的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法,它是检测程序内部的错误,检测程序中的主要执行通路是否都按照预定要求正确工作;黑盒测试是把程序看作一个黑盒子,完全不考虑程序的内部结构和处理过程,它只是在程序接口出进行测试,它只检查程序功能是否能按程序运行过程中能否保持外部信息的完整性。

 

总结

通过本次课程设计,物品掌握了软件工程的基本概念、基本原理、开发软件项目的工程化的方法和技术以及在开发过程中应遵循的流程、准则、标准和规范等;通过食堂饭卡管理系统的设计,提高了开发整个软件过程的能力,能切实体会到软件工程在实践指导中的重要作用。

通过做课程设计,学会了按软件工程的要求对软件生命周期的各个阶段进行分析、测试和维护,完成了各项软件开发的规范性文档,对提高软件开发的能力和项目管理的能力有重要的参考意义。

一个完整的餐馆点菜食堂饭卡系统就创建完毕了。

在本系统的设计与实现的过程中主要讲述了食堂饭卡系统的系统设计部分,包括功能模块设计、数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1