1公交卡管理系统的设计与实现学生姓名:陈繁星指导老师:肖增良摘要本课程设计主要解决公家卡的管理问题,设计开发一个简单的公家卡管理系统,实现公交卡的创建、注册、缴费、挂失、注销等基本功能。在课程设计中,系统开发平台为WindowsXP,程序设计语言采用C#,数据库采用SQLServer2000,程序运行平台为Windows98/2000/Xp。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在公交管理部门的管理中,解决实际问题。关键词信息管理系统;数据库;公交卡管理21引言1.1设计目的随着经济的日益增长,车辆作为最重要的交通工具,在当今社会中得以普及。由于汽车数量的增加,而道路的承载能力有限。因此,城市公交车的迅速发展成为一种必然趋势。在这样的情况下,公交车运营商的车辆数目已经增加了许多,而且车型也不再单一,与此同时便产生了车辆资源的合理分配和使用问题。该问题涉及到车辆的档案管理、驾驶员档案管理、车辆管理、公交车运营线路的分配和管理等。如何对公交车公司的车辆进行合理的分配,科学的使用,使其发挥最大的价值是本问探讨的重点。该管理系统的提出,对于一个公交车运营商来说,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,信息明确,避免责任混乱等一系列相应问题的解决,(加从学习的角度来写设计目的)1.2设计任务提高信息准确度;改进管理和服务;系统设计优良,界面设计精美、友好、快捷,人性化设计,后台管理功能强大、效率高;更简便、信息化程度更高的公交卡管理流程。2.2用户的特点本软件的最终用户是面向管理员(公交卡管理员和其它管理人员),管理员具有一定的计算机应用基础,可以比较熟练操作计算机。管理员是经常性用户。系统维护人员为计算机专业人员,熟悉数据库、操作系统、网络维护工作。维护人员为间隔性用户。32需求分析3.1.需求分析3.1.1需求规定在公交卡管理系统中,管理员要为每个用户建立账户,并且录入用户信息,包括基本的姓名、性别、联系方式等,用户通过管理员注册后,会发放给用户一张公交卡,包括卡号和用户姓名和照片等基本信息。持有公交卡的用户,通过接触公交车上的刷卡机器,用户即可正常的乘坐公交车。当然,系统还提供强大的信息查询服务,查询可以通过多种方式实现,包括通过用户名查询、公交卡号查询和用户的身份证号码查询的方式。通过这些方式可以查询用户的基本信息和用户的消费情况。公交卡管理员通过该系统能够提供公交卡的挂失和注销服务,为丢失了公交卡的用户或者不愿再使用公交卡的用户提供更加优质的服务。3.1.2数据流图3.1.3功能描述4一.管理员身份登陆(1)公交卡管理公交卡注册:通过此功能,通过用户提供的信息,管理员录入注册信息即可完成公交卡的注册,用户即可正常使用公交卡公交卡的充值:用户可以完成对公交卡的充值,可以继续使用公交卡公交卡的注销:如果用户要换卡或者不想继续使用公交卡可以通过此项功能实现公交卡挂失:挂失丢失的公交卡,冻结公交卡上的余额,让丢失的公交卡不能再被其他人使用公交卡激活:对挂失的公交卡进行激活,用户可以继续使用53数据库设计3.1E-R图通过对公交卡理系统的需求分析和数据流图的分析,可以等处该系统涉及的实体包括管理员、用户、公交卡、用户公交卡关系、公交卡注销表、公交卡类别表、公交卡状态表3.2.2数据实体描述3.2数据库表设计1.管理员信息表属性类型约束备注管理员名Varchar(20)主键管理员密码Varchar(20)长度必须大于6位2.用户信息表6属性类型约束备注用户编号Int主键标识列用户名Varchar(20)唯一约束密码Varchar(20)长度大于6位用户姓名Varchar(20)性别Varchar(2)身份证件号Varchar(18)前17位必须是数字,唯一约束手机号码Varchar(11)可以为空地址Varchar(20)邮箱Varchar(20)检查约束可以为空3.公交卡信息表属性类型约束备注卡编号Int主键卡号Varchar(20)唯一约束卡类型编号Int外键卡状态编号Int外键余额Float4.公交卡类型表属性类型约束备注卡类型编号Int主键类型名Varchar(20)使用规则Varchar(200)5.公交卡状态表属性类型约束备注7卡状态编号Int主键状态名Varchar(20)用户-卡关系/注册表属性类型约束备注用户编号Int外键卡编号Int外键注册时间Datetime6.公交卡挂失表属性类型约束备注用户编号Int外键卡编号Int外键挂失时间Datetime7.公交卡注销表属性类型约束备注用户编号Int外键卡编号Int外键注销时间Datetime8.公交卡激活表属性类型约束备注用户编号Int外键卡编号Int外键激活时间Datetime3.3创建数据库ifexists(select*fromsys.databaseswherename='gongjiaoka')8dropdatabasegongjiaka--建库createdatabasegongjiaokaon(name='gongjiaoka_datafile',filename='G:\数据库课程设计\gongjiaoka_datafile.mdf',size=10MB,filegrowth=5mb)logon(name='gongjiaka_logfile',filename='G:\数据库课程设计\gongjiaoka_logfile.ldf',size=5mb,filegrowth=2mb)94详细设计4.1系统登录模块4.2公交卡管理模块根据需求改系统功能包括:系统登录模块、公交卡管理模块、信息查询模块和系统管理模块。系统登录模块功能:本模块的主要功能是对用户身份进行,,验证只有系统的合法用户才能进入系统。其窗体如下图:在进行系统登录过程中,登录模块将调用数据库里的用户清单,并对账号和密码进行验证,只有录才会成输入了正确的账号和密码后,系统登功。并在输入了错误的或者是不存在的账户和密码时,系统会给出出错信息提示,指明登录过程中的错误输入或者错误操作,以便用户进行正确的登录。公交卡管理模块功能:实现公交卡的管理,包括公交卡的注册、公交卡充值、公交卡注销、公交卡挂失和激活等功能。用户通过注册可以获得一张公交卡,注册后可对公交10卡进行充值、注销、挂失和挂失后激活的功能。系统管理模块:系统管理功能模块主要实现对操作员的管理,在操作员管理子功能中用户可以进行新增操作员,也可以对现有的操作进行更新以及删除等操作。用户注册模块处理过程:在新用户来访问后,首先要求他们注册,注册用户时,验证用户名是否已经有人注册;密码的确认;其它一些选择性问题的填写。系统登录模块流程图:4测试与评价(运行的界面)公交卡管理系统功能测试:1.公交卡注册:通过此功能,通过用户提供的信息,管理员录入注册信息即可完成公交卡的注册,用户即可正常使用公交卡,该功能严格要求用户输入正确的信息方能注册!否则不能完成注册进入系统用户名、密码及校验码登录系统合法NY结束开始Y112.公交卡充值:用户输入输入正确的公交卡号,即可完成对公交卡的充值,否则,提示该公交卡号不存在,不能充值3.公交卡挂失:输入正确的公交卡号,身份证号码,即可完成对公交卡的挂失;否则提示用户输入错误,不能挂失。4.公家卡激活:输入正确的公交卡号,身份证号码,即可完成对公交卡的激活;否则提示用户输入错误,不能激活5.公家卡注销:输入正确的公交卡号,身份证号码,即可完成对公交卡的注销;否则提示用户输入错误,不能注销经过测试,程序能够完成预定设想的功能:能够实现注册公交卡、充值公交卡、挂失、注销和激活公交卡等的功能。并且没有其他异常和错误,程序能够正常运行。但是程序对于公交卡的流程考虑的不够周到,如对于公交卡的计费和使用规则,注册时候的交付押金的规则等,都是有待改进的地方,世上没有完美的东西,都要不断的改进。结束语课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容在本次设计的全过程中,我对所学的知识有了一个比较系统的认识和理解。涉及了各方面的知识,大大扩展了我的知识面,同时是我学会了如何使用所学的知识去解决一些实际的问题。在设计中我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。知识不是知道,了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在的联系。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。在设计阶段,通过对课题的深入分析与研究,迫使我对技术有了一定的了解。在遇到问题时,得到了指导老师与同学的悉心帮助,使我感受到集体的力量是无穷的。通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!计算机技术的高速发展,使我深深地认识到只有不断12的加强学习,才能在计算机技术方面不至于被淘汰,今后,我还要加强学习,努力使自己成为一位专业的计算机人员,为我自己所从事的工作服务。参考文献[1]施伯乐,丁宝康,汪卫.数据库系统教程(第3版)[M],北京:高等教育出版社,2008.[2]萨师煊,王珊.数据库系统概论(第三版)[M].北京:高等教育出版社,2000.[3]王晟,万科.数据库开发案例解析[M].北京:清华大学出版社,2003[4]钱乐秋等,《软件工程》[M],青还大学出版社;[5]张害藩,《软件工程导论》[M](第四版),清华大学出版社;[6]王珊等,《数据库原理及设计》[M],清华大学出版社;13附录源代码清单:publicSqlConnectiongetConnection(){SqlConnectionconn=newSqlConnection();//创建数据库连接对象conn.ConnectionString=ConfigurationManager.ConnectionStrings[stu].ConnectionString;//连接字符串try{conn.Open();}//打开数据库连接catch(SqlExceptionex){returnnull;}//发生异常时数据库连接失败finally{conn.Close();}//关闭数据库连接returnconn;}//获取查询结果集publicDataTableSelect(Stringsql){DataTabledt=newDataTable();//创建适配器及数据集对象SqlConnectionconn=getConnection();SqlDataAdapteradapter=newSqlDataAdapter(sql,conn);try{adapter.Fill(dt);}catch(SqlExceptionex){}returndt;}14//登录判断protectedvoidbtnok_Click1(objectsender,EventArgse){intcount=0;//计数intuid=0;//用户编号初始化intindex=0;sqlservers=newsqlserver();//实例化SqlServer对象stringuserName=username.Text;//获取文本框的内容stringpass=password.Te