




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品资料推荐学生学号0120710340502实验课成绩武汉理工大学实验课程名称 开课学院 指导老师姓名 学生姓名 学生专业班级学生实验报告书软件工程计算机科学与技术学院顾志华穆忙涛计算机070520092010学年第二学期i精品资料推荐简易银行卡管理系统的开发1题目简易银行卡管理系统2功能描述分析、设计并实现一个银行卡管理系统,系统中有两类用户,普通用户和管理员用户,普通用户可以对自己的信息管理,而管理员用户则对所有的用户都可以进行管理。对于普通用户,需要实现以下功能:( 1) 开户( 2) 存款( 3) 取款( 4) 挂失( 5) 消户( 6) 转帐( 7) 查询操作历史对于管理员账户,需
2、要实现的功能是:( 1) 创建用户( 2) 删除用户( 3) 查看用户信息( 4) 更改用户信息要实现对用户账户的管理,就要用数据库保存用户的信息,登录时通过对用户账户和用户密码的验证,使用户获得相应的权限。登陆后,用户可以根据提示选择相应的操作,以实现对账户的管理操作。对账户的管理实际上是对用户信息数据的操作,数据的信息保存在数据库中,所以用户的操作实际上是对数据库的操作。可以将用户的操作映射成以下的数据库操作普通用户操作:开户:向数据库中添加一条新纪录存款、取款、挂失:修改数据库中的某些字段值销户:删除一条记录查询操作历史:对数据库的查询管理员操作:创建用户:添加一条记录删除用户:删除一条
3、记录查询用户信息:查询数据库更改用户信息:修改记录字段值3数据定义系统有两种用户,并且要保存用户的账户信息以及操作记录,所以用四个表来存储所有的信息,分别为guest,guest_log,admin,admin_logguest用来存储普通客户的账户信息guest_log:用来保存用户的操作记录,以便于查询操作历史admin:是管理员表,记录管理员的账户信息admin_log:用来记录管理员操作的历史,以防管理员的错误操作普通用户的操作仅能涉及guest,guest_log两个表,而管理员可是管理所有的表。各个表的定义如下:guest字段名数据类型作用guest_idint客户的唯一标识符,逐
4、渐guest_numchar(5)用户登录的银行卡号,务-使用5位passwordvarchar(10)登录密码,不大于10包,可义长g_namevarchar(10)客户相关信息,客户姓名,g_sexchar(1)客户性别,x表示男,y表小女reg_datedatatime账户注册时间moneyInt当前用户金额Debtchar(1)用户账户状态,0正常,1挂失,2注销guest_log:字段名数据类型作用log_idint操作记录id,唯,标识一个操作事件logtimedatetime事件发生的时间g_idInt发生操作事件的用户id'motionvarchar(20)所执行的操作
5、类型entityint操作涉及的金额remarktext对操作的备注管理员账户表和普通客户表的内容很类似,所以简化了一些,并且管理员账户没有账户金额等字段,所以相对较小。admin:字段名数据类型作用admin_idInt管理员唯一的标志符admin_logNamevarchar(10)管理员登录用户名passwordvarchar(10)登录密码sexchar(1)性别,x为男,y为女reg_datadatatime注册日期admin_log:字段名数据类型作用log_idint操作记录id,唯,标识一个操作事件log_timedatetime事件发生的时间admin_loginNameVa
6、rchar(10)执行操作的管理员账户名motionvarchar(20)所执行的操作类型guest_numChar(10)操作涉及到的用户entityint操作涉及的金额remarktext对操作的备注以上是四个表的数据定义,在此基础上,通过对数据库的操作,实现对用户信息的操作。4总体设计和各模块接口说明系统总体可以分为三个模块:I.Main主调用模块2 .Guest管理模块3 .Admin管理模块这单个模块的简单关系为:Main模块是程序的入口,用户通过Main的操作,引导用户进入Guest模块或Admin模块,直到用户退出。(1) Main模块Main模块是程序的入口,程序的初始化都在此
7、模块,包括数据库的连接,数据库的初始化,全局变量的初始化等。该模块定义了两个出口,即Guest和Admin,用户在该模块选择入口,已决定想要进行的操作,直到退出。Main模块的数据库连接,将应用程序同DBM族接起来,以使应用程序能够对数据库进行操作。Main模块的数据库初始化,包括创建表,对表中数据的初始操作。使应用程序在执行时可以获得必要的信息。全局变量的初始化,包括登录状态、当前用户名等信息,使应用程序可以在操作时可以得到相应的环境变量。Main模块提供了两个出口,分别指向Guest和Admin。(2) Guest模块Guest模块包含了对普通用户的所有操作,开户、存款、取款、挂失、消户、
8、转帐和查询操作历史。根据选择,执行不同的操作,每一个操作都是对数据库的操作。Guest盒形图(包括对数据库的操作)(3) Admin模块Admin模块的内容同Guest模块的内容类似,不过Admin模块的操作涉及到更多的数据表,admin和admin_log。5程序设计的说明程序设计包括两个部分的设计:数据库设计和功能设计。(1)数据库设计本程序采用MySQL数据库,为实现以上数据库设计,使用如下语句创建数据库:/创建guest表charguest="createtableguest(g_idINT,guest_numCHAR(5),passwordVARCHAR(10),g_nam
9、eVARCHAR(10),g_sexCHAR(1),reg_dateDATETIME,moneySMALLINT,debtCHAR(1),PRIMARYKEY(g_id,guest_num)"创建guest_logScharguest_log="createtableguest_log(log_idINT,log_timeDATETIME,g_idINT,motionVARCHAR(20),entrySMALLINT,remarkTEXT,PRIMARYKEY(log_id)"创建admin表charadmin="createtableadmin(adm
10、in_idINT,admin_loginNameVARCHAR(10),passwordVARCHAR(10),sexCHAR(1),reg_dateDATETIME,PRIMARYKEY(admin_id)";/创建admin_log表charadmin_log口="createtableadmin_log(log_idINT,admin_loginNameVARCHAR(10),log_timeDATETIME,motionVARCHAR(20),user_numCHAR(5),entrySMALLINT,remarkTEXT,PRIMARYKEY(log_id)&qu
11、ot;在MySQL查看新建表,用describetablename果如下:表guest:Xysqldescribeguest;!Field11Type!Null11Me!Default1!Extra!-11-县44-441!NOPRI:0guestchar<5>!NOFBI:NULLpassviorduai-char<19>!VES:NULLSfjianevarchar<19>!YES:NULLff-sexchar<i>:YEH:NULLreg_datedatetine1YES!NULLsiidlllnt<6>:YEStNULLdeb
12、tchar<l>i¥ES!NULL|8rowsinset<0,09sec>表guest_log:describeguest_log(;-i-4h-+-41-4+-iFiela!Ty隧iHull11KepIDefault11Extt,aflanrrnn:NOFBI:0losr_timeclavetime!YES!NULLg-idinc<ll>:¥ES:NULLmo七IonVES!NULLentrysnailint<6>!VEG!NULLrenarktextiYESiNULL一41*k-+brovisinset<0.03se
13、c>表admin:hysql>describeadmin;FieIdliFpe!Null!Key!Default!Extraadmin.id:11NO1Ifui:n!11adnir>_loginNaneiva.rchAi*<10>11YES11;NULL11passi/ord!1VES1!NULL!11sexchai<l>11VEG11:NULL;11rej_datedatetime11VES1k««.一»d:NULL:-fl111一一».一Browsinset<0.02sec>表admin_log:
14、MysqLAdesrci*ilpead.n±n_lo!grT-il-ji=Type11NullAi-i=Ke_yijDefaulth1Extr*-X_T1a1A_FieldT-11-r-11intendii1NO-iPR118T11*11ddinin.loyinName1uarcgm目)ii¥E£1NULL11I11l_tiae11datetinei1YES1NULL1111notion1vai*c1VEEINULL|1111Ufi6p-_nnm11chai*(S5I1VESII1NULL11111entpy11EmAllintC631iVESI1I1NULL1|
15、11411_-is._tet11YESI11NULL111_二Y=TTT?vowsinset<0.03sec)为了给每一个新注册的用户分配号码,并且给每一条新的记录分配唯一的id值,因此需要一个计数的变量用来存储,表中记录的总量,所以在创建表的时候,初始添加一条记录,用来充当计数器的作用,添加记录的语句如下。charfirst_record_guest口="insertintoguest(g_id,guest_num)value(0,"00000")"charfirst_record_guest_log口="insertintoguest
16、_log(log_id,g_id)value(0,0)"charfirst_record_admin口="insertintoadmin(admin_id,admin_loginName)value(0,"admin")"charfirst_record_admin_log口="insertintoadmin_log(log_id,admin_loginName)value(0,"admin")"各个表在添加了初始记录后的内容如下:Guestnysql>se.一ilerct*fromgue葬.”;:
17、L9uefipassword1._L_g-sex:vegjateIRoneydabt11TT-":0:L1NULL-T-11guestI1NULL1NULLiPNULL¥1i_Ju.-NULL-T1.-L1rowinset(0.OQsec>rTT'TGuest_log:T-_JL_lo.time;S-id"+=ll«notion1I_L._."一entryirenark0一T-1NULL110I1HULLT1INULL:NULLJr»,HH,.hysql>select菱fromgueist.lof;*tLrowin
18、set<0.00sec>Admin:12Admin_log:nysql> select * fron adrtin_loi * * -1i log_id ; adnin_lc>sf>nNane ; logr_tine 1La Jiqi mot ion 11 uier_pum 1 entry ; remark1K:0 : aav *Admin1*! NULL1! NULL 1 卜1 NULL:NULL 11 NULL t-L eow in set <0.03 sec>(2)代码设计总共代码有10个文件,头文件有admin.h、common.h、globa
19、l.h、guest.hstdafx.h.c文件有admin.c、common.cglobal.c、guest.cmain.cStdafx.h,文件包含着整个工程所需要的资源文件global.hglobal.c中声明并定义了全局变量common.h,common.c中定义了常用的函数admin.hadmin.c实现了所有Admin模块的操作guest.hguest.c实现了所有Guest模块的操作main.c实现了Main模块的内容Global.h#ifndef_GLOBAL_H/*pleaseinsure_GLOBAL_Hunique*/#define_GLOBAL_H/*avoidquota
20、tioniterativly*/externintLOGIN;/LOGIN为表示登陆,为表示未登陆externintUSER;/USER表示用户类型,表示ADMIN,表示GUEST#endif声明了两个环境变量,LOGIN和USER。Guest.h/注册用户intRegister_guest(MYSQL*lpmysql,char*cardnum);/登陆系统intLogin_guest(MYSQL*lpmysql,char*cardnum);/计数器加一intIncrease_guest(MYSQL*lpmysql,intguest_table);/存款intDeposit(MYSQL*lpm
21、ysql,char*cardnum);/取款intDraw(MYSQL*lpmsql,char*cardnum);/挂失intLoss(MYSQL*lpmysql,char*cardnum);/注销intClose(MYSQL*lpmsql,char*cardnum);/转账intTranfer(MYSQL*lpmysql,char*cardnum);/获得当前的记录总数intGetCurrentNum(MYSQL*lpmysql,intguest_table);声明了guest.c的函数,这些函数都是通过用的输入操作数据库。Mian.cmysql_init(&mysql);if(!m
22、ysql_real_connect(&mysql,"localhost","root","123456","bank",3306,NULL,0)/bank为你所创建的数据库,为端口号,可自行设定printf("数据库连接失败n");returnFALSE;elseprintf("数据库连接成功n");用来连接数据库的语句。6测试和结果说明1.初始化数据库数据先连接型1r仓!建袤est成功以建表yuest_lo0r.成曳以晚表adlmin成I力创建袤dmin_logj肉
23、身gnest添加记录成功gilRst_lnEf泰加记录成功ttdmin添加己录典功Admln_lng卷加记录成功请遗举魁类型,2理甲3.层出2.注册用户3.用户登录操作忏成力 请选择您的操作IW”来新那一个客户账户2 .用户,3,退出Z请输入您的财与i弟吊你还没有账号,请输入请输入用户带科:1234S&堂I在成功I 着选停憋的操作:2 -邺眩二:瓢请输入要存的金额:1 664.数据库变化Guest表select*fromsuest;.-+Ig_id-r-iSfuoo!pAoawoi*dr-11g_njliho-+-1g_oox1T-1-dlato-T-If-1-dcbt!1-+-*+-+-J1AULL:111!AMHR!00001!NULL13345fiii1gnetmobto1NULLX1111NULL2B1O-85-0508:42:4flI41101111:1!21!的阑02!245611i1ning1y11201G-0S-05BS:44口7I0111!31:0033!123151andij1X112B10-0S-3508:45:00Il0111:411JL:00B94;sun11lllong11X11.A一2010-05-35B8:45:22II011_0TT5rowsi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年文字作品委托代理合同范本4篇
- 新解读《GB-T 32616-2016纺织品色牢度试验 试样变色的仪器评级方法》
- 高级设计合同范本
- 运输烟花合同范本
- 电力设备租赁协议2篇
- 酒店冷库安装合同范本
- 解聘终止合同范本模板
- 地暖工程施工劳务承包合同4篇
- 制作风筝数学题目及答案
- 教研室主任工作计划怎么写(5篇)
- USB Type C 基础知识培训讲义课件
- 酒店运营管理课件
- 2023年江苏省十三市中考数学试题
- 2022年红河产业投资集团有限公司招聘笔试题库及答案解析
- 美术是什么 详细版课件
- 淮海战役课件
- Q∕SY 19002-2017 风险事件分类分级规范
- Java-Web程序设计任务教程全书电子教案完整版课件最全ppt整本书教学教程最新讲义
- PLC技术应用ppt课件(完整版)
- 二手车买卖免责协议书范本5篇
- 现代电力电子(研究生)课件
评论
0/150
提交评论