资源描述
-摘要公交卡信息管理是城市公交管理中的一局部,城市人口的增多,人流量增加,为了减少堵车,保护环境,很多人选择乘公交车出行。为了加快上车速度,减少站点停车时间,增加人们的出行效率,有了无人售票系统,并使用公交卡乘车。公交卡管理信息系统主要解决公交卡的信息管理问题,设计开发一个简单的公交卡管理系统,实现公交卡的注册、充值、挂失、激活和注销,用户信息的修改,操作员密码的修改和一些简单的查询功能。在课程设计中,系统开发平台为Win7,程序设计语言采用C*,数据库采用SQLServer2005,程序运行平台为Win7。程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在公交管理部门的管理中,解决实际问题。目 录一引言2二开发环境和开发工具22.1 C*语言简介22.2开发背景32.3开发环境3三公交卡管理信息系统的分析与设计43.1 系统需求分析43.2 系统总体设计4系统总体构造设计5系统功能模块设计5四数据库设计64.1数据库需求分析64.2 数据库概念构造设计64.3数据库逻辑构造设计9五系统详细设计与实现105.1 公共类设计与实现105.2数据访问层类设计与实现115.3界面设计与实现125.3.1 登陆界面设计与实现12主界面设计与实现155.4 测试19完毕语28参考文献30一引言城市公交的无人售票系统经过多年的运作,在管理上已日趋完善,但新的课题又呈现在我们的面前。零钞不够,这是实行无人售票以来乘客与公交公司之间最大的矛盾。无人售票对车辆的承运速度和业务管理无疑是起很大的促进作用,但是由于不设找赎,对身上没有足够零钞的乘客来讲,肯定是增加了经济负担,这正是推行 无人售票之后,乘客最大意见之处。无人售票需要完善,另外随着经济环境的变化,取消月票,也是势在必行。非接触式IC卡技术的推出为实现城市公交自动收费提供了现代技术的支持。二开发环境和开发工具2.1C*语言简介C*是美国微软公司推出的windows操作系统下的应用程序开发平台Visual S简称VS.net家族中的一员,C*是对C+进展了很大改良的一种完全面向对象的可视化程序设计语言。由于C*采用了类似于Visual Basic的较易使用的程序设计界面,从而成为了一种更加简单易学、功能强大的应用程序开发工具。C*是一种先进的、面向对象的语言,使用语言可以让开发人员快速的建立大围的基于网络平台的应用,并且提供大量的开发工具和效劳,帮助开发人员开发基于计算机和通信的各种应用。由于C*是一种面向对象的开发语言,所以C*可以大围地适用于高层商业应用和底层系统的开发。即使是通过简单的C*构造,也可以让各种组件便的转变为基于Web的应用,并且能够通过Internet被各种系统或是其他开发语言所开发的应用调用。2.2开发背景随着科学技术的不断开展,计算机科学日渐成熟,其强大的功能已为人们所深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。采用计算机进展信息化管理已成为现在管理式的变革向,而公交卡管理的全面自动化、信息化则也是其变革的向之一。公交卡信息管理的好坏对公交车和乘客来说都至关重要,在很大程度上影响着人们的出行。因此,本文所研究的公交卡管理信息系统具有一定的使用价值和现实意义。一直以来,人们乘坐公交都使用现金,售票员找零。到现在使用无人售票系统,在人们的零钞不够等原因的情况下,就逐渐开场了使用公交卡乘车的法,但公交卡管理工作量大、容易混乱,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。鉴于此,本文研究了一种基于关系型数据库的公交卡信息管理案。利用SQL SERVER2005数据库管理系统灵活性和开发效率高的特点,采用面向对象的法,开发出公交卡管理信息系统。该系统所具有的优点:检索迅速、查找便、可靠性高、存储量大、性好、信息利用率高、本钱低等。该系统能够极提高公交卡信息管理的效率,节省管理公交卡所需要的人力、物力,降低公交公司的管理费用,为公交卡信息管理的信息化、正规化奠定了坚实的根底。2.3开发环境本文所采用的开发环境主要是基于数据库系统的SQL SERVER 2005和基于面向对象程序设计的C*。利用SQL SERVER2005创立公交卡注册信息表,充值表,挂失表,注销表,激活表以及用连接数据库用的管理员信息表。利用C*中的控件按钮以及一些程序代码实现一些特定的功能,例如:用户注册、充值、挂失、查询用户信息等,极大的提高了公交卡信息管理的效率。这些功能都可以在此文研究的系统中简单的实现,当然对于一些复杂的操作还要再仔细的考虑!SQL SERVER2005是我们大二学的容,里面的查询语句是重点,而C*和 SQL SERVER2005的结合就能够解决我们需要解决的问题。三公交卡管理信息系统的分析与设计3.1 系统需求分析在公交卡管理系统中,管理员要为每个用户建立账户,并且录入用户信息,包括根本的、性别、联系式等,用户通过管理员注册后,会发放给用户一公交卡,包括卡号和用户和照片等根本信息。持有公交卡的用户,通过接触公交车上的刷卡机器,用户即可正常的乘坐公交车。当然,系统还提供强大的信息查询效劳,查询可以通过多种式实现,包括通过公交卡号查询和用户的查询的式。通过这些式可以查询用户的根本信息和用户的充值消费情况。公交卡管理员通过该系统能够提供公交卡的挂失和注销效劳,为丧失了公交卡的用户或者不愿再使用公交卡的用户提供更加优质的效劳。3.2系统总体设计3.2.1系统总体构造设计系统分三个模块:公交卡管理模块,用户管理模块和查询模块。系统功能总构造图如下:主界面公交卡管理用户管理综合查询3.2.2系统功能模块设计系统要实现的主要是公交卡的管理,而公交卡管理有以下功能:1公交卡注册:通过此功能,通过用户提供的信息,管理员录入注册信息即可完成公交卡的注册,用户即可正常使用公交卡;2公交卡的充值:用户可以完成对公交卡的充值,可以继续使用公交卡;3公交卡的注销:如果用户要换卡或者不想继续使用公交卡可以通过此项功能实现;4公交卡挂失:挂失丧失的公交卡,冻结公交卡上的余额,让丧失的公交卡不能再被其他人使用;5公交卡激活: 对挂失的公交卡进展激活,用户可以继续使用。公交卡管理功能构造图:公交卡管理注 册充 值挂 失激 活注 销用户管理功能构造图:用户管理查询用户信息修改用户信息四数据库设计4.1数据库需求分析根据系统需求分析,要完成系统预定功能,需建立数据表:注册表、充值表、挂失表、激活表、注销表、管理员表等六表。4.2 数据库概念构造设计数据库E-R图设计如下:卡号卡状态卡编号卡余额卡类型公交卡用户卡编号*号*性别地址管理员账号*密码注册卡编号注册时间充值卡编号充值时间充值钱数挂失卡编号挂失时间激活卡编号激活时间注销卡编号注销时间4.3数据库逻辑构造设计公交卡管理系统主要管理公交卡的信息,一个用户对应一个公交卡,故数据库设计中将公交卡与用户作为一个实体创立数据表。管理员信息表用户-卡信息/注册表充值表挂失表激活表注销表五系统详细设计与实现5.1 公共类设计与实现using System;using System.Collections.Generic;using System.Linq;using System.Te*t;namespace 公交卡管理系统classuser publicstaticstring userid;publicstaticstring username;publicstaticstring userpassword;/产生验证码函数publicstaticstring GetVailidateCode(int n) string sourceCode = a, b, c, d, e, f, g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,*,y,z, 2, 4, 3, 5, 6, 7, 8, 9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,*,Y,Z ;Random r = newRandom();/string ValidateCode=;StringBuilder s = newStringBuilder();for (int i = 0; i 0) /用户ID、密码正确int i = string.pare(te*tBo*3.Te*t, label5.Te*t, true);if (i=0) /验证码正确/登陆成功,保存用户信息,隐藏login窗体,翻开mainform窗体 user.userid = te*tBo*1.Te*t; user.userpassword = te*tBo*2.Te*t; user.username=ds.Tablesyonghu.Rows0.ItemArray1.ToString();this.Hide(); mainform f = new mainform(); f.Show(); else MessageBo*.Show(验证码错误!); else /用户名、密码不一致 MessageBo*.Show(请仔细核对用户ID和密码!); te*tBo*2.Clear(); te*tBo*1.Focus(); catch (E*ception e*) MessageBo*.Show(e*.Message); finally /点击退出,退出程序privatevoid button2_Click(object sender, EventArgs e) Application .E*it (); /鼠标点击验证码文本框时,文本框清空privatevoid te*tBo*3_MouseClick(object sender, MouseEventArgs e) te*tBo*3.Clear(); 5.3.2主界面设计与实现主界面设计:主界面代码:using System;using System.Collections.Generic;using System.ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Te*t;using System.Windows.Forms;namespace 公交卡管理系统publicpartialclassmainform : Form public mainform() Initializeponent();/窗体居中 StartPosition = FormStartPosition.CenterScreen; privatevoid mainform_Load(object sender, EventArgs e) timer1.Interval = 1000; timer1.Enabled = true; privatevoid 退出ToolStripMenuItem_Click(object sender, EventArgs e) /弹出退出确定窗口,确定时退出if (MessageBo*.Show(确定退出., 提示, MessageBo*Buttons.YesNo, MessageBo*Icon.Question) = DialogResult.Yes) Application.E*it(); privatevoid 注销ToolStripMenuItem1_Click(object sender, EventArgs e) /弹出注销确定窗口,确定时注销if (MessageBo*.Show(确定注销该账号., 提示, MessageBo*Buttons.YesNo, MessageBo*Icon.Question) = DialogResult.Yes) this.Close(); Login l = new Login(); l.Show(); privatevoid 修改密码ToolStripMenuItem_Click(object sender, EventArgs e) *iugaimima * = new *iugaimima(); *.Show(); privatevoid 充值ToolStripMenuItem_Click(object sender, EventArgs e) chongzhi cz = new chongzhi(); cz.Show(); privatevoid 挂失ToolStripMenuItem_Click(object sender, EventArgs e) guashi gs = new guashi(); gs.Show(); privatevoid 激活ToolStripMenuItem_Click(object sender, EventArgs e) jihuo jh = new jihuo(); jh.Show(); privatevoid 注册ToolStripMenuItem_Click(object sender, EventArgs e) regedit rd = new regedit(); rd.Show(); privatevoid 注销ToolStripMenuItem_Click(object sender, EventArgs e) zhu*iao z* = new zhu*iao(); z*.Show(); privatevoid timer1_Tick(object sender, EventArgs e) toolStripStatusLabel3.Te*t = DateTime.Now.ToString(); privatevoid 统计查询ToolStripMenuItem_Click(object sender, EventArgs e) cha*un c* = new cha*un(); c*.Show(); privatevoid 查询用户ToolStripMenuItem1_Click_1(object sender, EventArgs e) user*C u = new user*C(); u.Show(); privatevoid 修改用户ToolStripMenuItem_Click(object sender, EventArgs e) updateUser ud = new updateUser(); ud.Show(); 5.4 测试修改密码功能:注册功能:当所注册卡号与已有卡号重复时,提示卡号重复:当注册时号不满足1518位数字的要求时,提示充值界面:输入卡号查询用户余额,点击充值按钮,充值成功冲值成功后自动刷新当前用户余额,挂失界面:挂失后激活界面:假设不挂失,不能激活注销界面:修改用户信息界面:选中一行,下面标签中显示当前选中行的详细可修改信息修改标签容后,自动更新用户信息表中数据,查询界面:根本信息查询,可以按公交卡号和号查询充值记录查询,也可以按公交卡号和号查询,点击确定按钮界面关闭分类查询界面:充值统计可以统计每个注册过的卡号的充值总数,并按充值总数降序排列,为根据每个卡当月充值总数超过一定量后卡类型进展自动升级做准备。完毕语课程设计对学生而言是其对所学课程容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学容在本次设计的全过程中,我对所学的知识有了一个比拟系统的认识和理解。涉及了各面的知识,大大扩展了我的知识面,同时是我学会了如使用所学的知识去解决一些实际的问题。 在设计中我深知自己掌握的知识还远远不够,掌握的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。知识不是知道,了解就好,一定要去应用它,开展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着在的联系。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。在设计阶段,通过对课题的深入分析与研究,迫使我对技术有了一定的了解。在遇到问题时,得到了指导教师与同学的悉心帮助,使我感受到集体的力量是无穷的。通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,表达团队精神,才能使工作做得更为出色。通过这次设计,我学到了多书本上学不到的知识,增强了自己的动手能力。即将毕业我十分珍惜这次锻炼的时机,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的缺乏之处,恳请教师多多指教!计算机技术的高速开展,使我深深地认识到只有不断的加强学习,才能在计算机技术面不至于被淘汰,今后,我还要加强学习,努力使自己成为一位专业的计算机人员,为我自己所从事的工作效劳。参考文献1 宇军:C*程序设计根底M,:清华大学,20112 ,岩,明廷堂:C*工程案例导航M,:电子工业,20123 欧立奇:Visual c*.NET案例开发集锦M,:电子工业,20094 晓英:ASP.NET实用教程M,:理工大学,2009.75珊,萨师煊:数据库系统概论M, :高等教育,20076阿奇:SQL server数据库教程,人民邮政,2008年7 小科:C*从入门到精通.清华大学,2011年8 段德亮,余建,仁才:C*案例精编.清华大学,2012年9 罗富强:C*程序设计经典教程 ,清华大学,2012年10小科,梁冰:视频学C*,人民邮电,2010年11晓非:C*课程设计根底教程与实验指导,清华大学,2012年12贤明:C*课程设计,清华大学,2012年13宇军:C*语言程序设计根底,清华大学,2011年14小科:C*开发宝典,机械工业,2012年. z.
展开阅读全文