农行卡密码锁定怎么办,学生卡的钱还能划向饭卡吗

银行不需要密码,直接可以划走你银行卡里的钱?_小额贷款_贷款攻略 - 融360
公积金政策
银行不需要密码,直接可以划走你银行卡里的钱?
  最近,总有关于&银行存款丢失&相关的新闻,而在各种关于银行的新闻下面,总有网友对银行的各种吐槽。
  在很多网友眼里,银行,已经成了大反派。
  甚至有网友问:为什么银行和保险公司不需要密码,直接就可以划走你银行卡里的钱?
  首先,银行内部有两种操作:抹账、冲账。
  这两个操作一般是用于银行员工操作错误或内部账目处理用的。
  比如,当你去银行取钱2000元,但柜员操作失误,输入电脑打成了存钱2000元。
  遇到上面的情况,就只能通过抹账处理。
  就是把存入2000元这笔账目抹去,你的账户余额回到没有错误存入之前的状态,当然并不会把存款记录也抹了,只是多了一条抹账记录,账户的流水也会显示抹账的。
  但抹账手续非常麻烦,操作复杂,而且要经过主管和授权中心的审核,更重要的是,抹账是要扣钱的,并且影响整个网点的考核评价,所以抹账这个操作,能不用就不用。
  另外一个操作,冲账,原理跟抹账一样,只是冲账是用于冲正以前的错误。
  所以当时发现错误的,用抹账,事后发现错误的,用冲账。不过这两个操作一般只限于给银行员工出错用的。
  其次,在我们实际生活中,其实有很多不需要银行取款密码及验证码就可以直接进行扣款的情况,这种扣款模式就是&代扣&。
  比如水费、电费、房贷、车贷、信用卡还款等等,包括支付宝和微信支付这种快捷支付其实也是&代扣&模式的一种包装。
  注意,这种代扣划账的前提是你给了银行授权的,并不是银行莫名其妙就把你的钱给划走了。
  总结而言,很多人对银行不满,各种吐槽,一方面是因为银行一出现负面新闻都会被大肆报道,作为弱势群体的普通储户,肯定会对银行不满;
  另一方面,银行服务也确实有待提高,因为绝大部分储户是享受不到银行的VIP服务的,去银行办个业务动辄等半天,还要看银行员工脸色,肯定想吐槽。
  其实,99.9%的储户,一辈子也没有遇到过银行存款丢失之类的问题,只是大家看到新闻,担心类似的问题发生在自己身上而已。
  但目前而言,银行存款虽然利息很低,但银行依然是资金最安全的地方,没有之一。
延伸阅读:
【独家稿件及免责声明】凡注明 “融360原创”之作品,未经融360书面授权,任何单位、组织和个人均不得转载、摘编或者采取其他任何方式使用上述作品。已获书面授权的,注明来源融360。违反上述声明对融360合法权益造成侵害的,将依法追究其法律责任。作品中的材料及结论仅供用户参考,不构成操作建议。获取书面授权请发邮件至:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
4G时代,三大运营商之间的竞争越来越激烈,部分市民在不同的运营商之间切换,手机号码也随之改变。然而,很多人在换了新的手机号后, 旧号注销时未和先前绑定的账户解绑,这一举动可...
福州市民小林最近在一个网站上看到广告,说可以办理无抵押无担保贷款。他照着上面写的联系电话,与对方取得联系,表示要办理贷款。 小林按照对方的要求,到邮政储蓄银行办理了一张储...
随着时代的发展,骗子的骗术也在日新月异,不断翻新。人们一个不留神就可能坠入圈套。继今年年初演员汤唯遭遇电信诈骗被卷走21万元后,近日一名长春小伙也遇到类似骗局,这让他损失了...
银行推行磁条卡更换芯片卡是为了提高卡的安全性,避免用户的银行卡被盗刷,但是,近期又出现了针对银行信用卡的诈骗新招运用变号软件、伪基站等技术将来电号码显示为银行官方客服热...
向银行申请贷款,不仅解决了广大市民的消费需求,而且随着资金流动性的增加,还能够帮助银行分散贷款过于集中的风险。为了抵御通货膨胀带来的损失,越来越多的市民开始通过向银行贷...
您可能也感兴趣:
相关专题:
上周给大家分享了一些微粒贷知识,很多人都在...
相关部门对现金贷的整治将如期而至,很多不合...
口子哥(公众号:zhaokouzi)今天突然收到微粒贷提额...
用他自己的话说:“低于5000的我都不想借”...
天有不测风云,人有祸福旦夕,谁都有手头紧、...
进入3月,正式开启了全国两会时间,经历了201...
12月全国首套房平均利率为4.45%,与上月持平。国...
11月全国首套房平均利率为4.45%,首次回涨。国家...
10月全国首套房平均利率为4.44%,和上月持平。同...
9月全国首套房平均利率为4.44%,和上月持平。同...
融360 - 贷款平台 版权所有
Copyright (C) 2015 Rong360.com Inc. All Rights Reserved. 京公网安备号事实证明,无需银行卡密码,就可以把钱转走!
我的图书馆
事实证明,无需银行卡密码,就可以把钱转走!
总是听到报道投诉银行卡上的钱莫名其妙的丢失,卡在自己手里,网银在自己手里,密码未告诉别人,怎么丢失的呢?
一直以为卡里的钱出了问题,银行应该负责,可是了解到真相后,我震惊了!
先看看两个真实的案例报道:&
当你的银行卡忽然在不知情的某天被绑上了别人的快捷支付,且未经自己银行卡支付密码的验证便被刷走卡内所有现金,这种惊心动魄的切身体验是否还会让你继续一往无前地依赖那种“方便”与“快捷”?
&案例一:莫名其妙的投诉:
日,董女士通过农行银行ATM机存入该农行账户10万元。日,董女士查询这张储蓄卡余额,却惊讶发现这张银行卡的余额只有492.92元,卡内99600元存款不知去向。
  董女士立即拨通中国农业银行全国客服热线电话,客服建议董女士冻结账户并立即报警。董女士在报警后又与开卡网点农业银行辽宁分行盘锦双兴支行取得联系,查询交易记录,并请银行协助调查。
  董女士说:““我从农业银行柜台打印了交易记录,上面显示在11月24日至11月26日之间,我的银行卡发生很多笔交易,而我本人毫不知情。农业银行告诉我这些钱都是在网上通过第三方支付平台的快捷支付功能转走的,第三方支付平台分别是京东网银在线、黔汇通超级转账、中国石化销售有限公司网上交易支付平台”。
    “我这张银行卡办了之后使用的次数并不多,银行卡信息也没有向别人泄露过,从来没有在网上交易过,更没有办理过这个三个第三方支付平台的快捷支付功能。”董女士表示。
  若持卡人在第三方支付平台上开通快捷支付,需要给银行卡预留的手机号码发送动态验证码,正确输入验证码之后才能开通。董女士的手机从来没有收到过任何有关验证码的短信通知,且盗刷发生后,董女士与农业银行确认,她的银行卡预留的手机号码没有发生过变更。
  那么董女士的银行卡为何会被开通快捷支付?新浪财经致电农业银行辽宁分行盘锦双兴支行个贷部负责人吴先生,对方也不能给出解释。
  在发现银行卡通过第三方支付平台交易之后,董女士多次与第三方支付平台取得联系。从第三方支付平台中,均可查询到交易记录。从京东网银在线上消费的钱用于购买京东E卡,8笔交易,合计39300;通过黔汇通超级转账网上交易转账到一个工行账户;而通过中国石化销售有限公司网上交易支付平台的钱用来购买中石化的加油卡。
网银与快捷支付是毫不相干的两项业务,用户在使用快捷支付时并不需要开通网上银行业务,是否关闭网银与是否能成功使用快捷支付并不构成任何关联影响。
近日,托人代办信用卡的李先生(化名)由于将银行预留手机号码、身份证与储蓄卡的高清照片都泄露给了骗子,尽管存款当天便惊醒回神,迅速去银行柜面关闭网银并更改预留联系方式,但仍未能避免三日后卡内现金被悉数盗刷而空的命运。
“用户的账户一旦绑定了快捷支付,账户验证和支付的流程就进入了支付宝的后台系统了,银行无法全面查询与掌握。”某国有大行内部人士对中国网财经记者表示。
  记者就此走访多家银行,得到的回应不约而同地为“交行确实不算推卸责任”,各大银行均对记者表示,快捷支付的风险并非今日才浮出水面,也并非最近才引起银行的重视。据中国网财经记者获悉,以民生和交行为代表的数家商业银行早已向监管部门提交了关于与快捷支付合作的风险报备,但出于鼓励创新及互联网金融的角度,银行们得到的指示为“把控风险,风险自负”。
4月4日,由于工作单位问题限制导致办信用卡困难重重的李先生主动找到声称可以代办信用卡的张某(化名),并在张某的要求下当天便在交通银行广州分行的大石支行开通一张新储蓄卡,“这一点确实是我的过错在先,”李先生说,“张某要求我在开户时登记的是他的电话号码,并且让我把卡和身份证都拍了照片发给他,我便轻信并照做了。”
  李先生对中国网财经记者表示,资料发去之后,张某又以交行办信用卡要“考核财力”为由要求其往卡内存入2万元现金。“那时我已心生警惕,所以4月8日存入现金后当天下午,我就去了开户支行柜台办理更改联系电话业务,并关闭了网上银行和电子银行业务,但没想到4月13日晚上11点收到短信,钱还是被转出了。”
  调查记录显示,李先生的卡被绑定了快捷支付,卡里的款项正是通过快捷支付的方式支出。但李先生表示不解:明明已经关闭了网银和电子银行业务,为何钱款依然能被快捷支付扣走?
 支付宝方面对中国网财经记者解释,网银与快捷支付是毫不相干的两项业务,用户在使用快捷支付时并不需要开通网上银行业务,是否关闭网银与是否能成功使用快捷支付并不构成任何关联影响。
但相对而言更让李先生气愤的是,此番快捷支付扣除他的款项,竟无需经过他银行卡支付密码的验证。
让我们再认识一下什么是快捷支付?“百度百科”一下!结果我震惊了!快捷支付的妈妈竟然是支付宝,不是银行!
“快捷支付
快捷支付是由支付宝率先在国内推出的一种全新支付理念,具有方便、快速的特点,是未来消费的发展趋势,其特点体现在“快”。
快捷支付指用户购买商品时,不需开通网银,只需提供银行卡卡号、户名、手机号码等信息,银行验证手机号码正确性后,第三方支付发送手机动态口令到用户手机号上,用户输入正确的手机动态口令,即可完成支付。如果用户选择保存卡信息,则用户下次支付时,只需输入第三方支付的支付密码或者是支付密码及手机动态口令即可完成支付。
 警方提醒,不宜将工资卡等账户与快捷支付功能关联,最好每次交易完成后及时关闭该功能,避免银行卡里的钱被人转走。当银行卡被陌生支付宝账户绑定,市民应先冻结银行(注意,不是关闭网银或者不是更换银行短息通知号码)卡。卡主更换或者注销已绑定过手机金融服务业务的号码时,原有绑定并不会因更换或注销而消除,应提高自身安全防范意识,及时申请解除绑定服务,防止被犯罪分子利用造成财产损失。”
快捷支付的风险及漏洞  
记者调查获悉,开通快捷支付业务并不繁琐,只需在支付宝快捷支付页面提供本人的姓名、身份证号码、银行卡号以及银行预留手机号等有效个人信息,即可快速开通,而后期支付时也无需经过原有银行卡的支付密码验证,只需在支付页面上输入支付密码或关联银行卡信息即可完成资金交易。
  “这是非常典型的轻信了对方从而泄露自己个人信息结果被诈骗的案例。对方已经掌握了名字,手机号,身份证号,包括你办过那张储蓄卡所有卡面信息,完全可以拿你的身份在网上再注册一个网络账号,通过快捷支付的方式绑定银行卡,所有的密码可以自行设置,而且校验手机号也是他的,这样你卡里的钱当然就只能由他来支配了。”支付宝方面某负责人对中国网财经记者表示,该案例并非首发,支付宝此前便已收到过类似案件的投诉,因而“非常了解作案流程”。
  而对于为何支付转账等走款流程要越过银行卡支付密码的环节,支付宝方面则对中国网财经记者表示:“这是国际上的规定和惯例,不允许在网上支付的时候输入银行卡密码。”
服务小贴士小编的测试:快捷支付来了,转账支付,银行卡密码,统统不用!
先实验自己的一张卡绑定支付宝账户,发现全程未验证银行卡的密码,就可以开通快捷支付,绑定后,即可直接对外转账、缴费:这是多么恐怖的一件事情啊!具体看下方截图:
谁给的快捷支付这么大的权力,可以绕过储户的密码,去动客户银行卡里面的钱呢?
真相是:银行与支付宝并非“无缝对接”,支付宝是个独立的王国,快捷支付的妈妈不是银行,而是支付宝;用户的储蓄卡账户一旦绑定了快捷支付,整个验证的流程都对应在支付宝的系统里,银行将无法查证
&  如果网银与快捷支付不相干,银行卡密码与快捷支付也不相干,那么为何开通快捷支付需要的银行办卡的预留手机号呢?李先生向中国网财经记者表达了自己的疑惑,自己明明已经提前去银行更改了预留手机号,为何最后却还是被绑上了别人的快捷支付,更改之后的号码只是收到了一条“2万元被转出”的事后通知?
  交行方面对中国网财经解释称,李先生当日是在ATM机上自助更改的联系方式,且操作记录显示,更改的仅仅是“短信通知”的联系方式而非其他验证。但不少银行内部人士却对记者透露,即便更改了预留手机号,用户的储蓄卡账户绑定快捷支付后整个验证流程都对应在支付宝的系统,银行也无法查到快捷支付方面的联系方式验证是否会自动与银行同步。
  “用户的储蓄卡账户一旦绑定了快捷支付,整个验证的流程都对应在支付宝的系统里,所以我们银行也没法确定,绑定后若只在银行柜台进行验证手机联系方式的更换、而不在快捷支付页面进行手动更新,控制用户快捷支付走款流程的验证号码,究竟是新的还是旧的。”前述国有某大行内部人士对中国网财经记者如是表示。
  “如果不能自动匹配更新,假如我不知道别人拿我的号码绑定了快捷支付,我根本不可能自己去快捷支付的页面手动更改;或者即便我知道被别人绑定了,我也没办法知道别人设定的登录密码,同样无法手动更改。这样验证走款依然在旧的号码,我还能自主掌控自己的储蓄资金么?”一位刚刚关闭了快捷支付的用户如此质疑。
  中国网财经记者多次就此问题咨询支付宝相关负责人,但截至发稿未曾收到对此问题的任何回应。
  无独有偶,此前曾试图开通快捷支付的孟小姐(化名)对中国网财经记者反映称,某天其手机突然收到来自招商银行一条内容为“账户通过快捷支付转出0.1元”的提示短信,心生警惕的孟小姐旋即前往招商银行柜面查询,柜员调取记录告知称该0.1元为快捷支付方式转账,但也仅限于能查到转账方式是快捷支付,而更多的信息,柜员表示银行无法查看。
  “此前在支付宝页面开通快捷支付显示开通失败,我便没有再继续开通,结果毫无防备就被快捷支付的方式转走卡里的钱,我不知道这是怎么做到的,连银行都查不到,我觉得心惊胆战。”孟小姐对中国网财经记者如是说。
  “银行和支付宝并非是无缝对接的,”某银行界业内人士对中国网财经记者表示,“一旦用户的账户绑定了快捷支付,很多方面都是银行无法控制的。”
  中国人民银行高级工程师吴晓光对此曾公开表示:“快捷支付业务模式里,银行的服务界面被屏蔽在客户的支付流程之外,银行从用户支付结算的前台,退到了代理第三方清算的后台,只扮演‘账房先生’的角色,被动地处理来自支付机构的指令,不再认证用户的身份,不再掌握用户的支付行为。” 
“最安全支付”让银行“愤怒又无奈”
&银行无法控制,那支付宝控制的系统安全性能又当如何?
  “美国paypal的风险率是千分之几,国内的风险率比国外低,而快捷支付的风险率是十万分之一,比国内外所有同行都要低。”支付宝方面信心满满地告知中国网财经记者。
  “虽然没有银行卡密码,但支付宝会在别的环节做好功课,比如短信校验码,若手机遗失被人试图重置密码,我们还会验证本人身份证信息和银行卡信息。”支付宝如是对中国网财经记者表示。
  一位接近央行的分析人士表示:“目前,以快捷支付为代表的第三方支付机构的客户实名认证为非面对面的间接身份认证,流程一般为‘客户基本信息+ 身份证件上传与审核+小额打款回填’,该认证流程与银行实施的客户柜台面签的实名认证流程相比,强度要弱得多。”
一位不愿透露姓名的用户向记者提供了一份访客与支付宝在线客服“云在线”的咨询记录,在记录中“云在线”对客户坦言,若身份证被人知晓便可以注册新账户,若银行卡与手机同时落入他人之手,便可以给新注册的账户开通快捷支付。当该客户质疑银行卡和身份证号并非隐私信息身边已有多人知晓当如何防范时,客服回应称“无法防止,建议保管好自己的手机”。
  而当客户质疑此漏洞更易被身边熟悉之人趁虚利用时,客服却匪夷所思地反问了一句:“您身边的人都很坏吗?”
  “如此这般,用来规范与约束整个金融市场的,便不需要法律和规范了,全凭人的道德修养自律。”一位资深金融界人士对记者笑称。
支付宝方面对记者表示,李先生类似的案例,从快捷支付问世至今,他们“只接到了一两例”“前段时间银行与支付宝的纷争其实就在这里,”某国有行高层对中国网财经记者表示,“快捷支付的安全漏洞被不法分子趁虚而入,发生了大量跟李先生此案类似的案例,而受害人为了最有效率地收到赔付成果,往往把银行一并告上被告席,因为银行不会不回应,并且会在客观上帮忙举证,而支付宝承诺的72小时赔付机制其实条件并不宽松。但长此以往,银行会承受不了如此的重压。所以只好选择调低交易额度上限,一旦风险发生,损失能在客观上尽量降到最低。”
  另一位国有行内部人士则向记者表达了无奈:“其实银行挺委屈,明明是为了保障客户安全,舆论却被煽动得一边倒,我们反而被自己努力保护的人斥责说‘垄断’与‘打压’。现在支付过程中用户过多贪图了快捷方便,但实际上网上支付最重要的应该是安全,若有天‘被盗刷’的案件发生在自己身上,到时候再想起来重视可能就来不及了。”
服务小贴士
不可否认,快捷支付给用户和金融支付带来了巨大的便利,但是,同时对于金融知识缺乏的用户来讲无疑也是一场灾难,同时对于利用快捷支付的漏洞进行金融诈骗的犯罪分子则是一场盛宴。
如果把银行卡比喻成一个封闭的箱子,密码就是唯一的一道门锁,而钥匙只有我们自己才有。可是,现在才明白,我们箱子的后面还有个洞,可以自由的进出!数家商业银行早已向监管部门提交了关于与快捷支付合作的风险报备,但出于鼓励创新及互联网金融的角度,银行们得到的指示为“把控风险,风险自负”。
那么我们银行卡的密码岂不是形同虚设?谁给的快捷支付这么大的权力,可以绕过储户的密码,去动客户银行卡里面的钱呢?
因此,我们强烈建议快捷支付不能再这么任性下去,必须加入银行卡密码验证验密!所谓的国际接轨都是扯淡,国外信用卡还都只认签字不用输密码呢,在中国能行得通吗?
整理此文的目的是为了让更多的用户认识什么是快捷支付,更加清楚由此带来的风险。
如有侵权及争议,请联系微信号:服务小贴士版主。
TA的最新馆藏[转]&
喜欢该文的人也喜欢请问,我用支付宝给清华大学的校园卡充了100块钱,然后怎么圈存进饭卡呢?_百度知道
请问,我用支付宝给清华大学的校园卡充了100块钱,然后怎么圈存进饭卡呢?
在南园食堂的圈存机里面只能从银行卡往里圈钱,没有支付宝圈钱的选项,我查余额里面也没钱,现在也不知道那钱是在哪里,哪位大神知道的话帮忙指点一下,不胜感激~
我有更好的答案
//its,请刷卡”时.edu,可按功能快捷键或使用上翻、下翻键选取相应功能。目前已开通网点9个:  财务处门厅、中央主楼212室、紫荆园、桃李园、照澜院建行,可将校园卡放置在读卡区域,按照提示完成领款操作、计算机开放实验室划卡处.tsinghua.edu.cn/info/xs_xyykt/1528" target="_blank">http://its.tsinghua。参照这里<a href="http。如需进行其他操作,请按“取消”键,进入自助领款机主菜单界面,我刚才也试了一下,估计你早就领了……需要到自主领款机上去领钱,南区食堂没有自助领款机使用说明:  自助领款机提供以下功能(数字为功能快捷键):  0——待领款领取  1——校园卡余额查询  2——修改卡密码  当自助领款机屏幕显示“待领款领取、饮食广场、图书馆总借还书处、紫荆服务楼109室好吧
采纳率:100%
按照提示进行自助充值与自动充值、饮食广场、图书馆总借还书处。当校园卡余额低于设定的发起金额时,持卡人将在次日收到支付宝短信通知。  持卡人在短信通知当日22:30前回复确认短信有效。  自动充值优先用支付宝账户余额为校园卡充值、桃李园,余额不足时,将从最近成功扣款的账户中扣除。自助领款机使用说明:  自助领款机提供以下功能(数字为功能快捷键):  0——待领款领取  1——校园卡余额查询  2——修改卡密码  当自助领款机屏幕显示“待领款领取、紫荆园支付宝充值领款说明支付宝向校园卡充值功能现已开通。  完成充值后。如需进行其他操作,请按“取消”键,进入自助领款机主菜单界面,可将校园卡放置在读卡区域,按照提示完成领款操作。注意事项:  支付宝发送短信号码固定为,请刷卡”时,并设置校园卡自动充值发起金额与自动充值金额,再使用银行卡充值。  如绑定了多张快捷支付账户,选择“校园一卡通”应用,按照提示信息完成确认后支付宝将自动向校园卡充值,需持卡到自助领款机上领取该笔充值,具体操作请见自助领款机使用说明。支付宝相关介绍:  使用支付宝自助充值功能,可为本人或他人的校园卡进行充值。  使用支付宝自动充值功能,需在支付宝网站完成与校园卡的绑定。或选择手机应用“支付宝钱包”进入“校园一卡通”,用户可登录支付宝网站,进入应用中心、紫荆服务楼109室、计算机开放实验室划卡处、照澜院建行,可按功能快捷键或使用上翻、下翻键选取相应功能。目前已开通网点9个:  财务处门厅、中央主楼212室
请问你的校园卡卡号是多少,姓名,可帮你查询。
为您推荐:
其他类似问题
支付宝的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置: >>
软件工程课程设计报告-校园卡设计
软件工程课程设计报告项目名称 项目负责人校园卡管理系统 李晓晶 曲博 沈信伟 胡文国项目开发单位090084目1/53录 一 问题定义 .................................................................................................................................... 3 二 可行性研究报告 ........................................................................................................................ 41 引言 ......................................................................................................................................................................... 4 2 可行性研究的前提 ................................................................................................................................................. 5 3 对现有系统的分析 ................................................................................................................................................ 8 4 所建议的系统 ........................................................................................................................................................ 9 5 可选择的其他系统方案 ....................................................................................................................................... 11 6 投资及效益分析 ................................................................................................................................................... 11 7 社会因素方面的可行性 ...................................................................................................................................... 11三 需求分析 .................................................................................................................................. 121 引言 ....................................................................................................................................................................... 12 2.任务概述 ............................................................................................................................................................... 13 3.需求规定 ............................................................................................................................................................... 13 4 运行环境规定 ....................................................................................................................................................... 23四 结构化分析、设计部分 .......................................................................................................... 23一 总体设计说明书 ................................................................................................................................................ 23 1.引言 .................................................................................................................................................................... 23 2.总体设计 ............................................................................................................................................................ 24 3 接口设计 .............................................................................................................................................................. 25 4 运行设计 .............................................................................................................................................................. 27 5 系统数据结构设计 .............................................................................................................................................. 27 6 系统出错处理设计 .............................................................................................................................................. 28 7 数据流划分 .......................................................................................................................................................... 28 二、详细设计 .......................................................................................................................................................... 29 1 引言 ....................................................................................................................................................................... 29 2 入口程序 entry() 设计说明 ................................................................................................................................ 30 3 查询模块 search() 设计说明 .............................................................................................................................. 31 4 消费模块 pay() 设计说明 ................................................................................................................................... 32 5 存款模块 deposit() 设计说明 .............................................................................................................................. 33五、面向对象分析、设计部分 .................................................................................................... 341.引言 .................................................................................................................................................................... 34 2.对象模型 ............................................................................................................................................................ 34 4.功能模型 ............................................................................................................................................................ 37 3.动态模型 ............................................................................................................................................................ 38六、界面,代码 ............................................................................................................................ 421.权限界面 ............................................................................................................................................................... 42 2.提示界面 ............................................................................................................................................................ 43 3.消费界面 ............................................................................................................................................................ 43 4 学生查询界面 ...................................................................................................................................................... 45 5.挂失界面 ............................................................................................................................................................ 46 6.管理员界面 ........................................................................................................................................................ 46七、软件测试报告 ........................................................................................................................ 471.引言 .................................................................................................................................................................... 47 2.静态测试 ............................................................................................................................................................ 47 3.动态测试 ............................................................................................................................................................ 47八、课程设计总结 ........................................................................................................................ 502/53 1.结构化分析、设计与面向对象分析、设计的不同 ........................................................................................... 50 2.对概念、原理和方法的体会 ............................................................................................................................... 52 3.参考文献和资料 ................................................................................................................................................... 53一 问题定义校园卡管理系统 是一套针对大学校园食堂饮食交费,一般消费等方 面的信息管理系统,它包括了同学在校内消费各方面内容:刷卡消费、查 询、存款,学生信息管理等。方便的对同学饭卡信息进行各项操作,定时 进行数据的备份更新,保持数据的一致性和准确性,各方面的内容应该相 互联系,最终产生各种查询统计报表,以供同学进行检查。 校园卡卡管理系统 的主要任务就是把人们从繁琐的交费,找零工作 中解放出来,用计算机实现对销售合同资料进行存款,消费,查询、修改、 删除以及存储等功能。同时,用计算机能够快速准确地完成共档案资料的 统计和汇总工作,迅速地打印出各种报表资料以供使用。 进行数据库设计的首要任务是考虑信息要求,也就是数据库要存入什 么样的数据。当然,创建数据库并非仅仅为了存储数据,更主要的目的是 从中提取有用信息。所以除了要考虑数据库存储什么数据外,还应该考虑 数据的存储方式、目的、用途以及性能要求。 1.背景:用户通过系统首页面,创建饭卡,存入钱。消费时根据饭 卡 ID 判断该用户是否是合法用户,同时进行消费操作。管理员可以对系统 进行新建饭卡、注销饭卡、修改饭卡信息等操作,而学生进行消费的操作。 2.项目目标:建立校园卡管理系统,使管理员和拥护和客户都能够 方便的进行销售合同的查询。 3.项目范围:硬件和软件利用现有微机和数据库等软件进行系统的 开发和研制。3/53 4.系统设计设想:该系统具有数据处理(饭卡信息的增加和删除) 、 信息修改、多种方式查询、备份、以及多种条件方式的打印。 5.可行性研究:进行 1 天的可行性研究。二 可行性研究报告 1 引言1.1 编写目的 进一步分析和澄清问题定义,推导出系统的逻辑模型,对以后的行动方 针提出建议。如果问题没有可行的解,那么花费在这项工程上的任何时间、 资源、人力、经费、都是无谓的浪费。为了避免这些,我们要用最小的代价 在尽可能短的时间内确定问题是否能够解决。对此项的报告即为可行性研究 报告。 1.2 背景 a.所建议开发的软件系统的名称:校园卡管理系统; b.本项目的任务提出者:软件工程课程设计 开发者:李晓晶 曲博 沈信伟 胡文国 用户:刷卡消费人员 1.3 定义: 本文件中用到的专门术语的定义及外文首字母词组的原词组: (1) 系统流程图:用图形符号以黑盒子形式描绘系统的每个部件(程序, 文档,数据库,人工过程) 。表达数据在系统各部件之间流动的情况。 (2) 数据流图(DFD) :没有任何具体的物理部件,描绘信息流和数据从输 入移动到输出的过程中经受的变换。4/53 (3) 数据字典(DD) :是对数据流图中包含的所有元素的定义的集合。其 内容为数据流、数据元素、数据存储、处理。2 可行性研究的前提2.1 要求 a.功能: 1 实现消费使用卡片扣钱(取代现金) ; 2 在固定保险的地方存钱; 3 有消费记录功能; 4 有挂失功能。 b.性能; 1 刷卡消费时,要求快速,准确,可撤销; 2 在查询消费记录时,达到一般的查询速度。c. 输出: 在刷卡器上,每次消费时: 1 存额 2 此次消费额 3 剩余额 刷卡器上,额外的信息如: 1 出错信息 2 锁卡信息 3 剩余不多提示信息5/53 报单: 1 每学年或者每月,可选择性的(需学生主动要求)输出消费记录报单。 详细程度可由使用者,自行定义。 2 存款时,可选择性的(需学生主动要求)输出存款记录报单。 3 注销卡时,返还剩余额(钱) 。 d.输入: 刷卡器上,每次消费时: 1 卡 ID(可由读卡器自动读入) 2 消费额 3 操作符(确认,撤消,后退,计算(加减乘除) ,存款(有权限限制) , 其他功能) 数据库管理电脑上: 1 输入学生信息 2 学生存款额(由读卡器端输入器完成) 3 查询,修改,删除功能输入e.在安全与保密方面的要求: 1 使用者之间的 ID 号不能重复; 2 ID 号不被他人轻易知道; 3 即便知道也能有快速相应的机制,予以弥补; 4 有使用追踪功能,可以让用户了解,自己使用的情况。f.完成期限:6/53 2007 年 7 月 18 日之前完成.2.2 目标 主要开发目标: a.处理速度的提高; b.安全系统的改进; c.用户使用上的便捷。2.3 条件、假定和限制 a.所建议系统的运行寿命的最小值:1 年; b.进行系统方案选择比较的时间:1 天; c.经费、投资方面的来源和限制:无; d.法律和政策方面的限制:无; e.硬件、软件、运行环境和开发环境方面的条件和限制:无; f.可利用的信息和资源:图书馆;2.4 进行可行性研究的方法 从以下几个方面研究解法的可行性: (1)经济可行性分析:从开发软件系统所需的总时间,总费用,及其中可 行性研究所需的费用,以及系统软件开发完成后,所能预计的市场占有率等 方面进行考虑,看该软件系统是否能达到一定的经济效益。 (2)技术可行性分析:由于新的系统需要对变化的数据进行动态的存贮,即 数据库中数据要随着管理员对系统的操作来随时更新,并且具有定时数据备7/53 份功能。因此要从技术角度方面研究者性功能是否可以是实现。 (3)操作可行性分析:要分析设计出的系统在用户的操作上是否简便,这一 点很重要,因为它会影响到用户对该系统的反应。3 对现有系统的分析分析现有系统的目的是为了进一步阐明建议中的开发新系统或修改现有系 统的必要性。(因为本身开发的系统就是想尽量接近于现有系统。所以对于这次 试验,这一步没有什么实际意义) 3.1 处理流程和数据流程 现有系统的基本的处理流程和数据流程。此部分请浏览 4. 2 中的数据流程图 3.2 工作负荷 人工操作频繁加减存款。工作繁琐,枯燥,容易出错,完成工作所需要的时 间较长,工作效率比较低。 3.3 费用开支 由于运行现有系统所引起的费用开支,如人力、设备、空间、支持性服务、 材料等项开支以及开支总额。 (由于缺房相关调查,此处从略) 3.4 人员 由于现有系统的技术性含量比较低,操作不便,工作量大,因此需要较多 的人才能完成工作。而新系统将具有较高的技术操作性,但它确使工作变得较 为简便,因此只需要少量的高素质人才就可完成。 3.5 设备 1,读卡器(带输入器) 2,中央电脑(数据库)8/53 3.6 局限性 人工处理的主要局限性表现在系统依赖于大量的人力和物质投入,工作效率 较低和成本较高。4 所建议的系统用来说明所建议系统的目标和要求将如何被满足。 4.1 对所建议系统的说明 使用饭卡可以快速便捷的进行消费。 中央电脑--数据库对饭卡的操作相应至 关重要。在高峰时刻,也能保证,存款,消费无错误,并且可记录,撤销操作。 4.2 处理流程和数据流程 系统的处理流程申请新卡录入学生 信息,饭 卡ID学生信息和存款 额以及消费记录提交饭卡刷卡消费存款使用报表挂失注销卡数据流程9/53 学生信息 学生 卡ID 余额信息 饭卡系统 存款额 管理员消费额 刷卡服务 员4.3 改进之处 相对于原有系统,新系统较大的方便了管理员的工作。比原先系统效率更 高,功能更全。 4.4 影响 1 对设备的影响 设备不变 2 对软件的影响 新系统使用具有较高技术的软件(例如数据库软件等) 2 对对象的影响: 新系统要求对客户、合同、操作人员有较为详细地记录,在其它方面没 有什么带大的变化。 3 对系统运行过程的影响: 系统的运行更加高速、有效。 4 对开发的影响: 新系统的开发环境要求不高,只需要现有设备就可以完成,且不会在开 发过程中影响到现有系统的使用。 5 对地点和设施的影响: 开发新系统不用考虑地点等方面的问题。10/53 6 技术条件方面的可能性 开发新系统的技术虽较现有系统比较先进,但总的来看,这些技术均已比 较成熟,因 此新系统的俄开发在技术方面应该不会有带大的困难。4.5 局限性 因为时间有限,软件局限性很大。 4.6 技术条件方面的可行性 a.在当前的限制条件下,该系统的功能目标能够达到; b.利用现有的技术,该系统的功能能实现; c.对开发人员的数量和质量的要求能满足; d.在规定的期限内,本系统的开发能够完成。5 可选择的其他系统方案没有供选择的系统方案可考虑。6 投资及效益分析新系统开发完成后,只需要 2~3 面管理员,大大减少的人员方面的开支,同 时由于数据冗余度也大大降低,在物质方面也降低了开销,因此会有较好的 市场效益。7 社会因素方面的可行性7.1 法律方面的可行性 软件完全合法 7.2 使用方面的可行性 完全可行11/53 A.8 结论 通过技术、经济、具体操作等方面的研究可知,新系统可开发风险较低,可 以开始进行具体的开发工作。三 需求分析 1 引言1.1 编写目的 需求分析是软件系统生存期中定义阶段的最后一个步骤。这个阶段 的任务不是具体解决问题,而是准确确定为解决问题系统必须具备哪些 功能。这个阶段的一个重要任务是用正式的文档准确地记录目标系统的 需求。该文档将最终交给软件具体的开发人员进行具体的开发。 1.2 背景 开发的软件系统的名称: 饭卡管理系统 本项目的任务提出者:软件工程课程设计 开发者:李杜松 实现该软件的计算站:图书馆计算机中心 1.3 定义 本文件中用到的专门术语的定义和外文首字母词组的原词组。 实体―联系图(E-R 图) :包含实体(即数据对象) 、关系和属性。作 为用户与分析员之间有效交流的工具。 状态转换图:通过描绘系统的状态及引起系统的状态转换的事件来表 示系统的行为。提供行为建模机制。 层次方框图:用树形结构的一系列多层次的矩形框描绘数据的层次结12/53 构。 输入-处理-输出图(IPO 图):方便描绘输入数据、对数据的处理和输 出数据之间的关系。 1.4 参考资料 同可行性研究报告处2.任务概述2.1 目标 主要开发目标是能够对饭卡信息进行查询和更新管理,且具有反映敏捷 准确。 2.2 用户的特点 由于系统的界面清晰、美观,操作简单、方便,所以操作人员只需要具备 一定的电脑操作技能即可。管理员(维护人员)不需要任何数据库专业技 能知识。本系统可以极大的提高工作效率,预期使用频度较高。 2.3 假定和约束 系统的规模较小,适于 Windows 和操作系统,SQL 数据库系统。3.需求规定3.1 对功能的规定 (1)更准确的系统流程图13/53 申请新卡 学校学生信息库录入学生信 息,从学生信 息库确认信息饭卡存款额,历 史学生饭卡信息备 份创建学生饭卡信息 报表提交饭卡挂失刷卡消费存款注销卡(2)更准确的数据流程图 -------------0 层-------------学生 其他信息 刷卡器 显示器 查询结果 学生信息 卡ID 余额信息 其他信息 饭卡系统 存款额 管理员消费额 刷卡服务 员-------------1 层-------------14/53 查询条件3 查询历史消费信息学生1 新建饭卡 信息饭卡信息 创建信息 饭卡信息数据存款额 注册信息 管理员 卡ID 响应信息 挂失信息 消费额 余额 消费额 存款额 2 存款-消费注销信息 挂失计时注销信息5 注销刷卡器 显示器刷卡服务员锁信息4 挂失注销信息-------------2 层-------------管理员 注册信息学生+卡信息1.3 创建饭卡信 息历史记录表确认信息 1.1 判断学生简 单信息一致性1.2 读取学生其 他信息,创建卡 ID全部创建信息饭卡信息数据 学生信息 学生简单信息 在校学生信息15/53 存款额卡ID2.1 存钱 余额 余额 存款额 饭卡信息数据管理员消费额 余额 2.2 消费 余额 卡ID 消费额 刷卡服务员刷卡器 显示器3.1 判断条件 输入条件 合法性管理员学生查询结果3.2 查询饭卡信息查询结果饭卡信息数据3.3 产生报表4.2 挂失计时设置时间饭卡信息数据管理员 挂失信息计时开始信号 4.1 挂失状态 转换锁信息16/53 5.1 判断挂失 倒时注销卡ID挂失时间饭卡信息数据注销信息5.2 注销产生注销信息学生-------------3 层-------------卡ID2.1.3 存款消费额管理员2.1.2 显示余额存款完毕信息,或者错误信息 卡余额信息 存入额 确认 锁信息卡ID学生卡ID2.1.1 读取卡ID, 并确认卡ID饭卡信息数据卡ID 2.2.3 2.2.4是选择关系2.2.4 消费消费额刷卡服务员确认扣除 2.2.2 显示余额 消费完毕信息,或者错误信息 卡余额信息 变价消费 锁信息卡ID消费完毕信息,或者错误信息饭卡信息数据2.2.1 读取卡ID, 并确认 卡ID卡ID定价消费额 卡ID 确认扣除信息2.2.3 定价消费 学生17/53 (3)IPO 图学生信息新建饭卡信息锁卡信息挂失状态转换空历史纪录刷卡(卡ID)简单查询卡状态消费额消费 卡余额 复杂查询 卡历史纪录 存款查询条件存款额(4)状态变化图冲钱,消费没有卡do/ 申请卡(创建)持有卡 申请成功event event event event 需要存款/ 充值 需要消费/ 消费 丢失/ 挂失 余额不足/ 警告挂失注销无法使用event 找到饭卡/ 解锁 event 一定时间之后/ 注销注销注销do/ 注销(5)层图18/53 饭卡管理系统新建饭卡信息存款-消费查询历史挂失注销判 断 学 生 简 单 信 息 一 致 性读 取 学 生 其 他 信 息, 创 建 卡 ID创 建 饭 卡 信 息 历 史 记 录 表判 断 条 件 合 法 性查 询产 生 报 表挂 失 状 态 转 换挂 失 计 时判 断 挂 失 倒 时注 销存款消费读 取 卡 ID, 并 确 认显 示 余 额存 款读 取 卡 ID, 并 确 认显 示 余 额定 价 消 费消 费(6)动态数据动态数据包括程序运行时输入和输出的数据,具体是数据库的各个表的 各个不同元组与属性值,就查阅信息。 数据库描述 本系统的实体有:学生信息、卡信息它们之间的关系是一对一的。卡信 息和卡历史是一对多的。19/53 E-R 图如下:(4)更准确的数据字典 数据字典 1 学生信息: 学生学号 = [数字|字母] 卡 ID = [数字|字母] 学生姓名 = [汉字] 性别 = [男|女|null] 电话号码 = [数字] 地址 2 卡信息 卡 ID = [数字|字母] 余额= [数字] 锁=[true|false] 3 卡历史 卡 ID = [数字|字母]20/53= [汉字|数字|字母] 时间=[时间格式] 款额=[数字] 操作=[存款|消费|其他] 数据元素的数据字典卡片: 学生信息 名字:学生信息 别名: 描述:记录学生相关信息 定义:学生信息=学生学号+卡 ID+学生姓名+性别+电话号码+地址 位置:数据库卡信息 名字:卡信息 别名: 描述:记录卡的信息 定义:卡信息 =卡 ID+余额+锁 位置:数据库卡历史信息 名字:卡历史信息 别名: 描述:记录卡历史的信息 定义:客户信息=卡 ID+时间+款额+操作 位置:数据库学生信息库(student_info)21/53 列名 学生学号 卡 ID 学生姓名 性别 电话号码 地址 卡信息(card_info) 列名 卡 ID 余额 锁 卡历史(card_his) 列名 卡 ID 时间 款额 操作 id daytime sum op id sum lock stu_num id name male tel address数据类型 int int Char(20) boolean Char(20) Char(50) 数据类型 int float boolean 数据类型 int daytype float Char(20)3.2 对性能的规定 3.2.1 精度 输入数据:查询最大查询范围 1 年内;卡 ID 合法性;客户信息合法性; 输出数据:余额以 213.12 的形式最多小数点后两位,即到分为止显示。(小于的部分不可能出现) 3.2.2 时间特性要求 刷卡响应时间不超过 1 秒; 查询响应时间不超过 5 秒; 3.3 故障处理要求 刷卡响应时间超过 1 秒后,自动提出警告。要求重新刷卡。 查询超过 5 秒,要显示查询时间长的提示信息。以免误认为死机。 当计算机突然死机、重启、断电时自动存储备份数据。即便没有存上。 也有备份数据库,供恢复。22/53 3.4 其他专门要求 普通学生只能刷卡消费,系统管理员还可以进入管理员界面;刷卡服务 员可以操作刷卡器。 界面清晰、美观,操作简单、方便。 所有数据存储在学校服务器端,数据存储安全可靠。4 运行环境规定4.1 设备 a. 中央电脑,要求容量大,CPU 能够满足查询的。 b. 刷卡器,要求读取 ID 敏捷,准确。 c. 要求刷卡器与中央电脑连接。通信量要满足查询精度和速度。 d. 刷卡器上的功能建,要求显示明确,意思表达精确。四 结构化分析、设计部分 一 总体设计说明书 1.引言1.1 编写的目的 总体设计的主要任务是设计程序的体系结构,也就是确定程序有哪些模 块组成以及模块计的关系。总体设计过程首先寻找实现目标系统的各种不同 的方案,需求分析阶段得到的数据流图是设想各种可能方案的基础。然后分 析员从这些供选择的方案中选取若干个合理的方案,为每个合理的方案都准 备一份系统流程图,列出组成系统的所有物理元素,进行成本/效益分析,并 且制定实现这个方案的进度计划。分析员应该综合分析比较这些合理的方案,23/53 从中选出一个最佳方案向用户和使用部门负责人推荐。如果用户和使用部门 的负责人接受了推荐的方案,分析员应该进一步为这个最佳方案设计软结构, 通常,进行必要的数据库设计,确定测试要求并且是定测试计划。 1.2 定义 总体设计――又叫概要设计,主要是确定系统的具体实施方案和确定 软件结构。2.总体设计IPO 图并不能得到很好的体现出 H 图(层次图) ,所以在下面增添了一个 HIPO 图以及后边的层次图,以方便突出不同的重点。 HIPO 图 (层次图加输入/处理/输出图) 为了能使 HIPO 图具有可追踪性。 , IPO 图:新建饭卡信息 1.0 挂失状态转换 4.1 简单查询 2.1.1 or 2.2.2 消费 2.2 复杂查询 3.2 存款 2.1 空历史纪录学生信息锁卡信息刷卡(卡ID)卡状态消费额卡余额查询条件卡历史纪录存款额在 H 图(层次图)离除了最顶层的方框之外,每个方框都加了编号如下:24/53 饭卡管理系统新建饭卡信息 1.0存款-消费 2.0查询历史 3 .0挂失 4.0注销 5.0判 断 学 生 简 单 信 息 一 致 性读 取 学 生 其 他 信 息, 创 建 卡 ID创 建 饭 卡 信 息 历 史 记 录 表判 断 条 件 合 法 性查 询产 生 报 表挂 失 状 态 转 换挂 失 计 时判 断 挂 失 倒 时注 销1.11.21.33.13.23.34.14.25.15.2存款 2.1消费 2.2读 取 卡 ID, 并 确 认显 示 余 额存 款读 取 卡 ID, 并 确 认显 示 余 额定 价 消 费消 费2.1 .12.1 .22.1 32.2 .12.2 .22.2 32.2 .43 接口设计3.1 用户接口 (1) 用户类别: 1 有提供学生查阅的学生界面。 2 提供管理员操作的管理员界面。 3 提供刷卡的刷卡服务员界面。25/53 (2) 管理员界面菜单 1 状态 1.1 登陆; 1.2 注销; 2 新建--新建学生信息界面; 3 查询更新 3.1 学生消费历史 3.2 学生信息 4 挂失 4.1 加锁 4.2 解锁 5 注销卡 (3)学生查询菜单 1 状态 1.1 登陆; 1.2 注销; 2 查询历史 3 查询学生信息 (4)刷卡界面 1 状态 1.1 登陆; 1.2 注销; 2 消费方式26/53 2.1 正常 2.2 定价 3 显示上次输出3.2 外部接口 说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系 统与各支持软件之间的接口关系。 3.3 内部接口 查询和更新都要调用数据库的操作。4 运行设计4.1 运行模块组合 具体软件的运行模块组合为程序多窗口的运行环境,各个模块在软件运 行过程中能较好的交换信息,处理数据。 4.2 运行控制 软件运行时有比较友好的用户界面,基本能够实现用户的数据处理要求。 4.3 运行时间 系统的运行时间基本可以达到用户所提出的要求。5 系统数据结构设计5.1 物理结构设计 系统的物理结构具体由数据库来设计与生成,此处略。 5.2 数据结构与程序的关系27/53 系统的数据结构由标准数据库语言 SQL 生成。6 系统出错处理设计6.1 出错信息 1 在学生刷卡后,卡 ID 被锁,将会出现错误信息:“Kard Locked” 2 学生卡信息丢失,查询时或者消费-存款时,不认卡情况 3 存款额大于 999.99 元,刷卡器只显示小于等于 999,99 元部分 4 消费时消费额大于存款额。系统将会提示错误,不作其他任何操作。6.2 措施(号码对应) 1 只能解卡锁 2 有备份数据库,随时可以恢复 3 只能更换刷卡器 4 计时充钱7 数据流划分7.1 变换型查询历史合法数据查询结合法数据果查询结果输入流:有合法性判断得出的合法数据 变换中心:查询判 断 条 件 合 法 性 查 询 产 生 报 表输出流:查询结果 数据按照 输入―变换―输出 的时间顺序流动。 左图 DFD 可以看出典型的变换型数据流。28/53 7.2 事务型事务中心:存款-消费 数据流以“事务中心”为核心。 当时数据沿通路到达事务存储消费存款存款-消费时,消费根据输入 数据的类型在存款、消费中选择一个执行。 具体上是根据按键,分消费和存钱按键。二、详细设计 1 引言1.1 编写目的 详细设计阶段的任务就是把解法具体化,解决具体应怎样实现这个系统。 也称为模块设计,详细地设计每个模块,确定实现模块所需的功能需要 的算法和数据结构。 1.2 定义 在软件具体设计阶段的专用术语有:程序流程图、盒图(N―S 图)、判定29/53 表、判定树、PAD 图2 入口程序 entry() 设计说明2.1 程序描述 提供管理员和学生用户,刷卡服务三种环境,限制用户对系统的使用权 限。 特点:非常驻内存;单独的一个程序;顺序处理。 2.2 输入项 权限:三个单选项。Level。 管理员用户名:字符串类型,user,长度不超过 20,可以是数字(不能开 头)和字母、汉字; 管理员密码 :字符串类型,pass, 长度不超过 20, 可以是数字和字母, 区分大小写 2.3 输出项 欢迎或者提示错误信息。 2.4 流程逻辑 1 程序流程图30/53 程序开始输入权限类别学生查询权限判断什么权限刷卡服务员权限学生查询 界面管理员权限刷卡服务 界面用户名 密码提示错误错误判断用户名和密 码是否合法管理员管理库正确 欢迎提示 管理员界 面界面2 盒图Case 输入权限类别学生查询权 限 管理员权限 输入用户名 密 码 检验 用户名 密 码 给欢迎信息 刷卡服务权 限学生查询界 面刷卡服务界 面否是给提示错误DO-Until 输入用户名,密码 正确管理员界面3 查询模块 search() 设计说明3.1 程序描述31/53 完成对系统(数据库)的查找。 3.2 输入项 学生卡信息,时间信息,消费信息等。 3.3 输出项 查找结果。 3.4 流程逻辑 PAD 图输入查询条件 正确 查询条件 给出题是错误 从数据库读数据 查询 显示结果在屏幕 打印 打印报表 打印与否4 消费模块 pay() 设计说明4.1 程序描述 完成消费部分。对输入和消费额,进行合法性验证。 4.2 输入项 卡 ID,定价与否,消费额。 4.3 输出项 卡余额,错误提示。 4.4 流程逻辑 判断树32/53 确认消费,并显示余额 定价消费 余额不足,提示错误 卡未锁 卡ID正确 提示显余额 正常消费 确认消费,显示余额卡锁,输出错误 消费余额不足,提示错误卡ID错误提示错误5 存款模块 deposit() 设计说明5.1 程序描述 完成存款部分。对输入和存款额,进行合法性验证。 5.2 输入项 卡 ID,存款额。 5.3 输出项 卡余额,错误提示。 5.4 流程逻辑 判断表学生代号 读卡成功 卡没有锁 存款成功 显示余额 题是错误 显示存款 成功信息 显示存款 失败信息 提示 不显示 不显示 不显示 显示 1 N N N 2 Y N N 显示 3 N Y N 不可能 不可能 不可能 不可能 4 N N Y 不可能 不可能 不可能 不可能 不显示 显示 5 Y Y N 显示 6 Y N Y 不可能 不可能 不可能 不可能 7 N Y Y 不可能 不可能 不可能 不可能 显示 不显示 8 Y Y Y 显示33/53 五、面向对象分析、设计部分 1.引言面向对象分析首要的工作, 是建立问题域的对象模型, 这个模型描述了现实 世界中的“类于对象”以及它们之间的关系,表示了目标系统的静态数据结构。 其中对象是对问题域中有意义的事务的抽象,他们既可能是物理实体, 也可能 是抽象概念。要确定类和对象,我们先要找出候选的类于对象,然后在从中筛 选出正确的类于对象。2.对象模型1 有四个类: (1) 类名:学生帐户 属性:学号,卡 ID,余额,锁 方法:创建(学生,卡,历史) ,更新属性,更新数据 库,注销(学生,卡,历史) ,返回(学号,卡 ID,余额, 锁) ,消费,存款,设定(号,卡 ID,余额,锁) ,撤销历 史,显示历史 (2) 类名:读卡器 属性:卡 ID 方法:读取 ID,确认卡,警告,设定 ID (3) 类名:输入器 属性:值,临时值 1,临时值 2 方法:读入,加法,减法,乘法,等于,定价,常用, 最 后一次输入,取消卡,消费 (4) 类名:屏幕 属性:值 1,值 2,值 3,定价 方法:显示当前输入,显示卡余额,清屏,定价,34/53 2 类间关系 无直接关系 3 细化对象模型,生成 Java 代码框架 //=============(1) 学生帐户============= { } public void unDoHis() { } public void printHis() { } public Integer getStu_num() { } public Integer getCard_id() { } public Double getSum() { } public Boolean getLock() { }}public class StudentInfo createCardHis(Integer id) { private Integer stu_ { } private Integer card_ private public void updateAttr() D { } private B public void updateDB() public StudentInfo() { } { } public void deposit(Double public void value) createStuInfo(Integer stu_num, { } Integer card_id, String name, public void delCardHis() Boolean male, Integer tel, String { } address) public void delCardInfo() { } { } public void public void delStuInfo() createCardInfo(Integer id) { } { } public void spend(Double public void value) //=============(2)读卡器============= public class CardReader { } { public Boolean judgeId() private Integer card_ { } public CardReader() public void alarm() { } { } public Integer readId() public Integer getCard_id() //=============(3)输入器============= public class Inputer public Double minus() { private Double value = 0; { } private Double temp = 0; public Double multiply() public Inputer() { } { } public void equal() public Double read() { } { } public void fixPrice() public Double plus() { } { } public void commonUse() //=============(4)屏幕============= public class Screen35/53 public setCard_id(Integer { } }{} void id){ } public void lastVal() { } public void denyCard() { } public void spend() { } } {private Integer value1; private B public Screen() { } public void printNow() { } public void printSum() { } public void cls() { } public void setFix(Boolean state) { }}36/53 4.功能模型1 用例图 表示从用户角度对系统的要求。刷卡消费新建饭卡刷卡存款挂失 刷卡服务员 学生 搜索历史 管理员撤销操作 取消消费 注销2 经济用例图 表示从管理者(服务者)的角度的功能。管理数据库管理饭卡 学生们 服务人员管理学生信息37/53 3.动态模型1 脚本 刷卡人员与学生,刷卡消费过程。 ? ? ? ? ? ? ? ? ? ? ? ? 2 状态图 (学生本日第一次刷卡) 学生输入卡 ID 卡被正确输入则进行下一步,如果没有正确输入,则提示错误。 系统检测卡的合法性和是否被锁。 进入消费界面 如果是定价,直接消费,并显示余额,退出。 如果不是等待输入消费额 刷卡服务员计算消费额 确认消费 显示卡余额 如果在 10 秒内不进行操作,自动清屏 退出消费,充值帐户开启entry/ 卡号是否合法 entry/ 卡是否被锁 event 确认消费/ 消费 event 消费/ 记录历史 do/ 读取余额 event 超时/ 关闭帐户 do/ 关闭帐户 do/ 锁卡 event 确认充值/ 充值 event 充值/ 记录历史请求上锁或者解锁,或者超时上锁 帐户被锁do/ 解锁 event 超时/ 关闭帐户 ...请求关闭或者开启 帐户关闭entry/ 备份历史 event 唤起操作/ 登录 do/ 登录超时关闭3 事件跟踪图38/53 (1)Collaboration 框图2: judgeOK( ) 7: setCard_id(Integer) 1: readId( ) : 学生 : CardReader 4: sentGetCard_id( ) 6: judgeId( ) 23: alarm( ) 3: openCardInfo( ) 5: getCard_id(Integer) 8: getSum( ) : 刷卡服务员 12: 重复输入 16: 重复输入: StudentInfo9: printSum( ) 22: printSum( ) 21: spend(Double) 10: read( ) 13: plus( ) 15: read( ) 18: equal( ) 20: spend( ) : Inputer 11: printNow( ) 14: clsNow( ) 17: printNow( ) 19: printNow( ): Screen框图中,对象表示为矩形,角色用简图表示。Collaboration 框图不参 照时间显示对象与角色的互交。并且其中直接通信的对象之间有一条直 线,没有画线的对象之间不直接通信。因此 Collaboration 框图显示的信 息与下面的 Sequence 框图类似,但本框图具有不同的作用。(2)Sequence 框图 他显示使用案例的过程流程。框图定不相识了设计的角色和对象。每 个箭头表示角色与对象或者对象与对象之间为完成所需的功能而传递的39/53 信息。40/53 41/53 六、界面,代码 1.权限界面1 数据库联接公共部分 public static Connection conn = public static Statement state = public static void odbc(){ String DBDriver &sun.jdbc.odbc.JdbcOdbcDriver&; String connectionStr &jdbc:odbc:myodbc&; try{ Class.forName(DBDriver); } catch(java.lang.ClassNotFoundException e){System.err.println(&DBconnecton:&+e.getMessage());} try{ conn = DriverManager.getConnection(connectionStr,&&,&&); state = conn.createStatement(); }catch(SQLException ex){ System.err.println(&aq.executeQuery:&+ex.getMessage());} } 2 刷卡选择部分 //=================== 刷卡界面=================== if(this.jRadioButton2.isSelected()){ this.setVisible(false); JOptionPane.showMessageDialog(null,&欢迎进入刷卡界面!&); Spend.main(null); } //=================== 管理员界面=================== if(this.jRadioButton1.isSelected()){ String nstr,pstr, nstr = this.jTextField1.getText(); pstr = this.jTextField2.getText(); sql = &select * from admin where name like &#39;&+nstr+&&#39;&; ResultSet rs = try{ rs = Main.state.executeQuery(sql); if(rs.next()){42/53= = if(pstr.compareTo(rs.getString(&pass&))==0){ this.setVisible(false); JOptionPane.showMessageDialog(null,&欢迎进入管理员界面!&); Admin.main(null); }else JOptionPane.showMessageDialog(null,&密码错误&); }else{JOptionPane.showMessageDialog(null,&用户名错误&); } }catch(SQLException ex){ System.err.println(&aq.executeQuery:&+ex.getMessage());} } //=================== 学生查询界面=================== if(this.jRadioButton3.isSelected()){ this.setVisible(false); JOptionPane.showMessageDialog(null,&欢迎进入学生查询界面!&); StuInfo.main(null); }2.提示界面3.消费界面1 搜索部分 if(Ids.getText().equals(&&) ){ JOptionPane.showMessageDialog(null,& 卡 号 不能为空!&); Ids.setFocusable(true); }else{ try{ String sql = &select * from card_info where id = &+Ids.getText(); ResultSet rs = Main.state.executeQuery(sql); if(rs.next()){ if(rs.getBoolean(3)){ JOptionPane.showMessageDialog(null,&卡已43/53 Sum.setText(rs.getString(2)); 经被锁,如要解锁,请与管理员联系否则 10 jButton12.setEnabled(true); 日后 自动注销!&); }else{ jButton13.setEnabled(true); if(DjCheck.isSelected()){ jButton14.setEnabled(true); Sum.setText(rs.getString(2)); jButton15.setEnabled(true); this.result=String.valueOf(Integer. } parseInt(Sum.getText())-Integer.pa } rseInt(Dingjia.getText())); }else{ JOptionPane.showMessageDialog(null,&消费完毕, 卡 剩余&+ result +&。 如果要继续消费请在 10 秒内操作, JOptionPane.showMessageDialog(null,&卡号错误! &); } 只后自动关闭帐户&); Sum.setText(result); }catch(SQLException }else{ ex){ System.err.println(&aq.executeQuery:&+ex.getMe Ids.setEditable(false); ssage());} this.jButton26.setEnabled(false); } this.jPanel1.setVisible(true); 2 消费部分 try{ this.result=String.valueOf((Integer.parseInt(Sum.getText()) - Integer.parseInt(Now.getText()))); String sql = &update card_info set sum = &+result+& where id = &+Ids.getText(); if(Main.state.executeUpdate(sql)==0){ JOptionPane.showMessageDialog(null,&消费失败&); }else{ this.nows =Now.getText(); this.sums =Sum.getText(); JOptionPane.showMessageDialog(null,&消费完毕,卡剩余&+ result +&。如果要继续消费请在 10 秒内操作,只后自动关闭帐户&); Sum.setText(result); } }catch(SQLException ex){ System.err.println(&aq.executeQuery:&+ex.getMessage());} 3 加减乘部分 if(Jisuan.getText().compareTo(&&) == 0){ }else{ Jisuan.setText(Now.getText()); Now.setText(&0&); Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan. } getText()) * Integer.parseInt(Now.getText()))); else { switch(ops){ Now.setText(Jisuan.getText()); case 3: } int a= 0; a=Integer.parseInt(Jisuan.getText()) Integer.parseInt(Now.getText()); if(a&999){ * case 2: int b=0; b Integer.parseInt(Jisuan.getText()) Integer.parseInt(Now.getText()); if(b&999){44/53= +JOptionPane.showMessageDialog(null,& 计 算 量 超 过 消费最大值!&); JOptionPane.showMessageDialog(null,& 计 算 量 超 过 消费最大值!&); }else{ Jisuan.setText(String.v alueOf(Integer.parseInt(Jisuan.getText()) + Integer.parseInt(Now.getText()))); Now.setText(Jisuan.getText()); } case 1: int c=1; c=Integer.parseInt(Jisuan.getText()) Integer.parseInt(Now.getText()); if(c&999||c&=0){ JOption Pane.showMessageDialog(null,&计 算 量 超 过 消 费 有 效值!&); }else{ Jisuan.setText(String.valueOf(Integer.parseInt(Jisuan. getText()) - Integer.parseInt(Now.getText())));Now.setText(Jisuan.getText()); } } } ops = 0 ; Op.setText(&=&);4学生查询界面1 查找信息部分 if(num.getText().equals(&&) ){ JOptionPane.showMessageDialog(null,&卡 不能为空!&); num.setFocusable(true); }else{ try{ String sql = &select * from student_info where stu_num = &+num.getText(); ResultSet rs = Main.state.executeQuery(sql); if(rs.next()){ id.setText(rs.getString(2)); name.setText(rs.getString(3)); if(rs.getBoolean(4)) sex.setText(&男&); else sex.setText(&女&); tel.setText(rs.getString(5)); address.setText(rs.getString(6)); }else{ JOptionPane.showMessageDialog(null,&卡号错误!&); } }catch(SQLException ex){ System.err.println(&aq.executeQuery:&+ex.getMessage());}45/53号 }5.挂失界面1 锁卡部分 if(rs.next()){ if(rs.getString(7).compareTo(pass.getText( ))==0) { JOptionPane.showMessageDialog(null,& 请 按 确 认锁键,确认锁卡!&); num.setEnabled(false); pass.setEnabled(false); this.jButton1.setEnabled(false); this.jButton2.setEnabled(true); ids=rs.getInt(1); }else { JOptionPane.showMessageDialog(null,& 学 生 密码错误!&); } }else{ JOptionPane.showMessageDialog(null,& 学 生 学号错误!&); } }c atch(SQLException ex){ System.err.println(&aq.executeQuery:&+e x.getMessage());} }if(num.getText().equals(&&) ){ JOptionPane.showMessageDialog(null,& 学 生 学 号 不 能 为 空 ! &); num.setFocusable(true); }else{ try{ String sql = &select * from student_info where stu_num = &+num.getText(); ResultSet rs = Main.state.executeQuery(sql);6.管理员界面46/53 七、软件测试报告 1.引言软件测试的目的就是在软件投入生产性运行之前,尽可能多的发现软件中的 错误。这一目的决定了如何去组织测试。目前软件测试仍然是保证软件质量的 关键步骤,它是对软件规格说明、设计和编码的最后审核。2.静态测试1 代码会审 代码会审时有一组人通过阅读讨论和正义对程序进行静态分析的过程。 会审小组由组长、2~3 名设计人员、测试人员及程序员组成。会前要先将程 序清单分发给与会者,让他们熟悉要审查的材料。开会时程序作者逐句朗读 和讲解程序,其他人则集中精力,捕捉程序中在结构、功能与编码风格等方 面可能存在的问题,并展开热烈的讨论甚至争议,以揭示错误的关键所在。2 走查 与会审相似,走查也是一小组的方式进行的。每小组 3~5 人,每次持续 1~2 小时。被审程序也要提前发给参加者,并要求他们在会前熟悉这些材料。 与会审的差别,走查要求与会者扮演“计算机”的角色,用人工的方法 来运行被审程序, 也可以仿照走查对程序进行人工运行。 早期因程序规模小, 常采用这种方法。3.动态测试1 测试用例47/53 见下图 1 2 黑盒测试 也称功能测试或者数据驱动测试。她实在抑制产品所具有的功能的基础 上,通过测试来检测每个功能是否都能正常运行并达到预期结果。 (1) 等价分类法---见下图 2-1 (2) 边界值分析法 3 白盒测试 也称结构测试或逻辑驱动测试,它是已知产品内部工作过程,通过测试 来检测产片内部动作是否按照规格说明书的规定正常运行。按照程序的内部 结构测试程序,检测程序中的每条通路是否都能甘于定要求正确运行。 (1) 语句覆盖 --(2) 判定覆盖 --(3) 条件覆盖 --(4) 条件组合覆盖 --(5) 点覆盖 --(6) 边覆盖 --(7) 路径覆盖 ---见下图 3-748/53 结结Sa1结结结结结结结 NYS1:结结结结结结 结1 bg7m3结结结结结结YS3:结结结结结结结结3i9o13uENd4结结结结结YS4:结结结结4j10peNY5 k 11qs5结结结结结YS5:结结结结结结fN S6:结结结结 6结结结结6l12rNt 14S7:结结结结结结数据图 黑盒测试策略 等价分类法 有效等价类 输入卡号: 5 卡号正确 卡没有被锁 并且是定价 6 卡号正确 卡没有被锁 并且是正常消费 并且消费回馈正确 黑盒测试用例 序号 1 2 3 4 5 6 序号 1 2 3 4 6 5 测试内容 空输入 卡号错误 卡被锁 消费不正常 定价 正常消费 测试数据 空 卡号 12 卡号 1 卡号 2 卡号 2 定价 不选 卡号 2 定价 选定 1,3,4,5,11,13 卡号 12 卡号 1 卡号 2 卡号 2 定价 选定 卡号 2 定价 不选 百合测试用例 1,7,13 1,3,9,13 1,3,4,10,13 测试节点 测试数据 ?图 2-1流程图?图 1无效等价类 1 输入为空 2 卡号错误 3 卡被锁 4 消费不正常 希望结果 提示空输入错误 提示卡号错误 提示卡被锁 提示消费不正常 提示正确消费 提示正确消费 测试边 agmu abiou abdjpu abdefjrtjsu abdekqu?图 3-71,3,4,5,6,12,14,6,12,1349/53 八、课程设计总结 1.结构化分析、设计与面向对象分析、设计的不同结构化设计历来备受责备的就是需求和设计之间的鸿沟,开始不是很理 解这个鸿沟的原因。现在再看,在结构化设计中模块和模块之间的关系,被 紧紧局限于信息流,这限制了对模块之间众多关系的表达,也无法体现模块 和模块之间其他的众多关系,包含各种各样的结构、行为、依赖、包含(在 结构化设计中这种关系隐含在分层中) 、继承、关联关系等等。它仅仅解决了 模块在封装和信息隐藏方面的问题。 再看面向对象设计方法, 充分挖掘了 “关 系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现,而这些关 系是实现设计的关键。可以这样比喻目前为什么面向对象方法如此流行,记 得小时候经常在各种杂志上看到许多这样的图画“一个钢球,从高处落下, 击中某个翘起的装置,装置受到钢球的冲击,另一端抬起后,原来被截断的 水流开始流通,并引发另一个设备开始工作??,最终在另一端的某个蜡烛 被点燃” 。这就是在工业时代,众多人被机械设计的灵巧和创意所深深吸引的 其中一份图画。姑且不论这样的装置是否有实用价值,但它肯定带给构思者 无限的快乐和想象力,以至于当时经常可以看到各种各样这样的图画。而面 向对象的方法正是因使用对象的概念让设计更接近于上面的各种设备,而让 机械设计时代的疯狂和无尽的创造力进入了软件工程师的视野。由于能够充 分表达事物之间各种各样的关系(更接近于结构和行为方面) ,面对对象设计 方法在今天创造了一个奇迹,各式各样巧妙的设计实现、设计模式的流行, 几乎在永无止境的激发着爱好设计的人们的想象力和创造力。再看最流行的 类比:建筑和软件。建筑最主要的特征是什么――结构。这也是为什么建筑50/53 能够和软件设计(最终设计都要体现在模块上)进行类比的潜在原因。相比 之下,我更倾向于拿机械设计来和软件设计进行类比。 回到结构设计化方法上来,虽然很多人都说结构化设计和面向对象设计 没有本质上的区别,那是因为某些关系依然可以通过转换映射到信息流上, 但这毕竟绕了一个大弯,而且由于缺乏足够的表达各种关系的能力,极大的 限制了软件设计者的想象力和创造力。 结构化设计方法使用自顶向下的手段, 通过 Process 的逐层分解来理解和构建系统,然后把 Process 分配给模块,这 里的“分配”这几乎让每一个初次接触结构化设计方法的人大惑不解,似乎 模块是 Process 分解的结果, 甚至在如果已知了某些模块时又直接将模块映射 成一个黑盒的 Process, Process 和模块究竟是什么关系?沿着这个思路, 很容 易陷进“鸡生蛋,蛋生鸡”的困境。而事实是,模块和 Process 的诞生,两者 之间根本没有任何关联,都是独自根据经验所产生的。为什么会产生这样的 问题?究其原因,结构化设计方法和我们自出生以来认识事物的方式有着很 大的不同。因为打我们一出生,眼里落入的就是各式各样的实体,而我们区 分它们主要依靠就是事物各式各样的特征,包括事物不同的结构和特定的行 为,而结构化设计方法试图通过信息流及其转换来认识系统,这天生造成了 某种障碍。相比之下,面向对象方法则和我们所熟悉的认识世界的方式相吻 合,更加的自然。那么结构化设计的优点到底是什么呢?考虑警察破案时, 需要根据证人不断的描述犯罪嫌疑人特征对犯罪嫌疑人进行画像的场景,就 可以理解结构化设计方法优点在于:当我们面对一个一无所知的系统时,它 可以帮助我们逐步理解系统的功能,从而产生系统的雏形。这样也可以理解 为什么结构化设计方法比面向对象设计方法更早的诞生。 结构化分析:51/53 这种方法把软件生命周期的全过程依次划分为若干个阶段,然后顺序的 完成每个阶段的任务。从对问题的抽象逻辑分析开始,一个阶段,一个阶段地 进行开发。把软件生命周期华分成若干个阶段,每个阶段的任务相对独立, 而且比较简单,便于不同人员分工协作,降低了整个软件开发过程的困难程 度。 面向对象分析: 面向对象方法学的出发点和基本原则是,尽量模拟人类习惯的思维方式, 使软件开发的方法与过程尽可能接近人类认识世界解决问题的方法与过程, 从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。 对象彼此间仅能通过发送消息互相联系。对象与传统数据有本质区别, 他不是被动的等待外界对他施加操作,相反,是数据处理的主体,必须向它 发消息请求它执行它的某个操作以及处理它的数据,而不能从外界直接对它 的数据进行处理。 把对象作为融合了数据及在数据上的操作行为的统一的软件构件,程序 中任何元素都是对象,复杂对象由比较简单的对象组合而成。 把所有的对象都划分成类,每个类都定义了一组数据和一组操作,类是 对具有相同数据和相同操作的一组相似对象的定义。2.对概念、原理和方法的体会真是不容易,又是完成了一个课设。此次课设,使我从管理的角度,全面的 系统的体验了一下。 ,对软件的各个方面从策划,设计,测试,到运行,所有角 色都扮演了一遍。发现完成一项开发软件的工程,真是不容易的事情。 尤其,在需求分析阶段,除编码外,时间花的最长的阶段。即便如此,在编52/53 程的时候,还是觉得前面需求分析做的不是很彻底。但因时间原因,也没法做 得再细致了。 操作方面,对 RationalRose 和 Visio 的操作,更加熟练了,更加快速了。对 于系统,数据流程图,层图,ipo 图,状态转换图,程序流程图,盒图,PAD 图, 判定表,判定树,用例图,时间跟踪图,类图,等,都进行了设计。 在新知识方面,我仅仅是在以前没有接触过的 JavaSwing 编程方面和 Java 数 据 库 方 面 , 浏 览 了 有 关 材 料 。 发 现 Java 数 据 库 比 起 C,B 好 连 。 就 一 句 Class.forName(&sun.jdbc.odbc.JdbcOdbcDriver&);显示加入 jdbc.odbc 桥,即可。其 他就是把 ODBC 要设置好,操作数据库,犹如四两拨千斤(其实我想说这件事 特特别简单,得心应手! )般简单,嗯。 希望以后能够在工作时用到这些!3.参考文献和资料《软件工程与软件开发工具》 张宏 主编 清华大学出版社 2004 年 9 月第 一版 《精通 Java Swing 程序设计》 杨智杨 等编辑 中国铁道出版社 2002 年 2 月 第一版 《Java 数据库高级教程》张晓东 等编著 清华大学出版社 2004 年 4 月第一 版53/53
更多搜索:
赞助商链接
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 农行手机银行密码锁定 的文章

 

随机推荐