C#与.NET 4.0数据库开发课程设计ATM 交易管理系统_第1页
C#与.NET 4.0数据库开发课程设计ATM 交易管理系统_第2页
C#与.NET 4.0数据库开发课程设计ATM 交易管理系统_第3页
C#与.NET 4.0数据库开发课程设计ATM 交易管理系统_第4页
C#与.NET 4.0数据库开发课程设计ATM 交易管理系统_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告课程名称: c#与.net 4.0数据库开发 设计题目: atm 交易管理系统 系 别: 信息科学系 专 业: 计算机科学与技术 学 号: 姓 名: 指导教师: 时 间:2011 2012 学年第 一 学期南京人口学院信息科学系课程设计题目 atm交易管理系统课程设计目的及要求:课程设计目的(1)通过本次设计掌握使用c#语言中窗体的建立,各个控件的使用,以及界面的设计(2)进一步巩固所学的c#及数据库的相关理论知识,提高分析和解决实际问题的能力(3)初步掌握使用c#工具设计一个具体实例的方法,包括软件的设计,调试的全过程1.1系统的用户需求描述 随着计算机技术的发展,atm越来越多

2、的出现在人们的日常生活中,在atm机上进行存、取款等业务可以大大减少银行工作人员的工作,提高银行效率,而且可以节省人们排队等候时间。所以atm系统的开发可以很好的方便人们的生活。 通过atm机,用户可以进行一些基本的功能实现,例如:存款、取款、查询余额、转账、修改账户密码等等。系统的总体功能如下图atm系统用户功能用户注册功能用户注销注销功能注册信息存 款查询余额转 账取 款图1.2-1 atm系统总体功能 2.1.1 课设任务(1)根据技术要求和现有开发环境,分析题目(2)选定设计方案(3)画出软件框架结构图,关键程序流程图(4)使用c#语言和.net框架,并结合数据库,实现软件(5)调试,

3、修改并完善程序2.1.2 课设要求(1)atm的运行界面,注册帐号(920(2)输入正确密码登入系统(3)实现存款、取款、余额查询等操作(4)实现注销账户功能2.2系统的设计通过本系统可以达到以下目标:(1)功能方面:取款、查询余额、转账、存款、(2)性能:可使用户在无任何经验的情况下进行操作atm自助式服务(3)输入:用户通过键盘进行输入2.2.1 数据库的分析与设计 本次数据库是利用access建立,共包含两张表存取款表,用户个人信息表。具体如下: (1)存取款表(2)用户个人信息表2.2.2逻辑层次的设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、

4、记录查询和交费等基本业务。atm系统基本结构框图如图2.2.3程序设计用户进入系统后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,若输入密码错误次数大于3次,则锁定该帐号。2.2.4 程序流程图软件设计程序流程图如图所示:2.3界面的设计及功能的实现根据个人业务界面所提供的按钮,用户可以进行取款,查询余额,转账,等操作,个人业务界面如图所示:(1)欢迎使用using system;using system.colle

5、ctions.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.media;using system.data.sqlclient;namespace atm自动取款机 public partial class 欢迎使用 : form public 欢迎使用() initializecomponent(); private void button1_click(object sen

6、der, eventargs e) this.visible = false; new 新用户注册().show(); private void button2_click(object sender, eventargs e) this.visible = false; new 用户登录().show(); private void button3_click(object sender, eventargs e) application.exit(); private void button4_click_1(object sender, eventargs e) this.visible

7、 = false; new 欢迎使用().show();private void button4_click_2(object sender, eventargs e) this.visible = false; new 注销用户().show(); (2)新用户注册namespace atm自动取款机public partial class 新用户注册 : form public 新用户注册() initializecomponent(); private void linklabel3_linkclicked(object sender, linklabellinkclickedevent

8、args e) /this.visible = false; /new 欢迎使用().show(); private void linklabel2_linkclicked(object sender, linklabellinkclickedeventargs e) /application.exit(); private void button1_click(object sender, eventargs e) 欢迎使用 a = new 欢迎使用(); if (textbox1.text = ) messagebox.show(用户名不能为空!); textbox1.focus(); r

9、eturn; if (textbox7.text = ) messagebox.show(身份证号不能为空!); textbox7.focus(); return; if (textbox2.text = ) messagebox.show(密码不能为空!); textbox2.focus(); return; if (textbox3.text = ) messagebox.show(住址信息不能为空!); textbox3.focus(); return; if (textbox4.text = ) messagebox.show(联系电话信息不能为空!); textbox4.focus(

10、); return; if (textbox5.text = ) messagebox.show(开户金额不能为空!); textbox5.focus(); return; if (textbox6.text = ) messagebox.show(个人帐号不能为空!); linklabel1.focus(); return; if (textbox10.text = ) messagebox.show(问题答案不能为空!); textbox10.focus(); return; if (textbox12.text = ) messagebox.show(问题答案不能为空!); textbo

11、x12.focus(); return; if (combobox1.text = ) messagebox.show(问题答案不能为空!); combobox1.focus(); return; if (combobox2.text = ) messagebox.show(问题答案不能为空!); combobox2.focus(); return; if (textbox2.visible != regex.ismatch(textbox2.text, d6$) textbox2.visible = true; messagebox.show(密码必须是6位数字,请重新输入!); textb

12、ox2.text = ; textbox2.focus(); return; if (textbox1.visible != regex.ismatch(textbox1.text, u4e00-u9fa52,$) textbox1.visible = true; messagebox.show(姓名必须是两个汉字,请重新输入!); textbox1.text = ; textbox1.focus(); return; if (textbox3.visible = regex.ismatch(textbox3.text, d0,$) textbox3.visible = true; messa

13、gebox.show(住址不能是数字,请重新输入!); textbox3.text = ; textbox3.focus(); return; if (textbox4.visible != regex.ismatch(textbox4.text, d6,$) textbox4.visible = true; messagebox.show(联系电话至少是6位数字,请重新输入!); textbox4.text = ; textbox4.focus(); return; double khje = convert.todouble(textbox5.text); if (khje 2) labe

14、l6 .text =你已登录失败,此账户已冻结” return; 欢迎使用a = new欢迎使用(); string connectionstring = properties.settings.default.atmconnectionstring; sqlconnection conn = new sqlconnection(connectionstring); sqlcommand c = new sqlcommand(); c.commandtext = select * from 用户个人信息 where 个人帐号= + textbox1.text + and 密码=+textbox

15、2 .text +; c.connection = conn; conn.open(); sqldatareader r = c.executereader(); if (r.hasrows) s1 = textbox1.text; this.visible = false; new 个人业务().show(); else label5 .text =此用户不存在或密码错误; cm+; textbox1.focus(); return; private void button3_click(object sender, eventargs e) 欢迎使用 a = new 欢迎使用(); tex

16、tbox1.text = ; textbox2.text = ; private void textbox1_keypress(object sender, keypresseventargs e) 欢迎使用 a = new 欢迎使用(); private void textbox2_keypress(object sender, keypresseventargs e) 欢迎使用 a = new 欢迎使用(); private void 客户登录_load(object sender, eventargs e) (4)个人业务namespace atm自动取款机 public partial

17、 class 个人业务 : form public 个人业务() initializecomponent(); public static string kl=取款; private void button1_click(object sender, eventargs e) this.visible = false; new 查询余额().show(); private void button2_click(object sender, eventargs e) this.visible = false; new 转账().show(); private void button5_click

18、(object sender, eventargs e) this.visible = false; new 欢迎使用().show(); private void button3_click(object sender, eventargs e) this.visible = false; new 取款().show(); private void button4_click(object sender, eventargs e) this.visible = false; new 取款().show(); private void 个人业务_load(object sender, even

19、targs e) /messagebox.show(s2); (5)存款 namespace atm自动取款机 public partial class 存款 : form public 存款() initializecomponent(); private void button4_click(object sender, eventargs e) 欢迎使用 a = new 欢迎使用(); private void button1_click(object sender, eventargs e) 欢迎使用a = new欢迎使用(); this.visible = false; new欢迎使

20、用().show(); public static string s4 ; private void button2_click(object sender, eventargs e) if (textbox1.text = ) label6.text = 你还没输入存款金额; textbox1.focus(); return; try int ckje = convert.toint32(textbox1.text); if (ckje % 100 != 0) label7.text = 只能存整,不能存零; return; if (ckje 5000) label6.text = 一次最多

21、存5000元; textbox1.text = ; textbox1.focus(); return; string kk = datetime.today.tolongdatestring() + datetime.now.tolongtimestring(); sqlconnection connf = new sqlconnection(properties.settings.default.atmconnectionstring); sqlcommand cmdf = new sqlcommand(insert into 存?取?款? values( + s4 + , + label5

22、.text + , + textbox1.text + , + kk + ), connf); try connf.open(); cmdf.executenonquery(); label7.text = 存款成功;connf.close(); catch (exception f) messagebox.show(f.message); return; catch (exception err) messagebox.show(你输入的信息格式不正确!,err .message ); private void button3_click(object sender, eventargs e

23、) 欢迎使用 a = new 欢迎使用(); this.visible = false; new 个人业务().show(); private void textbox1_keypress(object sender, keypresseventargs e) 欢迎使用 a = new 欢迎使用(); label6.text = ; label7.text = ; private void textbox1_mousedown(object sender, mouseeventargs e) label6.text = ; label7.text = ; private void 存款_loa

24、d(object sender, eventargs e) (6)取款namespace atm自动取款机public partial class 取款 : form public 取款() initializecomponent(); public static string s3 ; public void qk(string money) string kk = datetime.today.tolongdatestring() + datetime.now.tolongtimestring(); string connectionstring9 = properties.setting

25、s.default.atmconnectionstring; sqlconnection conn9 = new sqlconnection(connectionstring9); sqlcommand c9 = new sqlcommand(); c9.connection = conn9; conn9.open(); c9.commandtext = select * from 存取款 where 个人帐号= + and 类型=取款; string pa = (string)c9.executescalar();/第一次取款 if (pa = null) try string connec

26、tionstring6 = properties.settings.default.atmconnectionstring; sqlconnection conn6 = new sqlconnection(connectionstring6); sqlcommand c6 = new sqlcommand(); c6.connection = conn6; conn6.open(); c6.commandtext = select 金额 from 存取款 where 个人帐号= + s3 + and 类型=存款; double sum1 = convert.todouble(c6.execut

27、escalar(); double k, l; k = convert.todouble(money); l = convert.todouble(sum1 - k); if (l 0) label6.text = 余额不足; return; else sqlconnection connf = new sqlconnection(properties.settings.default.atmconnectionstring); sqlcommand cmdf = new sqlcommand(insert into 存取款 values( + s3 + , + label5.text + ,

28、 + money + , + kk + ), connf); try connf.open(); cmdf.executenonquery(); label6.text = 取款成功; connf.close(); catch (exception f) messagebox.show(f.message); return; catch (exception err) messagebox.show(err.message);/return; else/第二次取款成功 string connectionstring7 = properties.settings.default.atmconne

29、ctionstring; sqlconnection conn7 = new sqlconnection(connectionstring7); sqlcommand c7 = new sqlcommand(); c7.connection = conn7; try conn7.open(); c7.commandtext = select sum(金额) from 存取款 where 个人账号= + s3 + and 类型=存款; decimal sum7 = convert.todecimal(c7.executescalar(); c7.commandtext = select sum(

30、金额) from 存取款 where 个人帐号= + s3 + and 类型=取款; decimal sum8 = convert.todecimal(c7.executescalar(); double w; w = convert.todouble(sum7 - sum8); double t, u; t = convert.todouble(money); u = convert.todouble(w - t); if (u 0)/余额不足 label6.text = 余额不足; return; else/余额可取时 sqlconnection connff = new sqlconne

31、ction(properties.settings.default.atmconnectionstring); /insert into 存款values( + textbox1.text + , + sdl + , + a + , + textbox3.text + , + datetime.today.tolongdatestring() + datetime.now.tolongtimestring() + ), connf); sqlcommand cmdff = new sqlcommand(insert into 存取款 values( + s3 + , + label5.text

32、 + , + money + , + kk + ), connff); try connff.open(); cmdff.executenonquery(); connff.close(); label6.text = 存取款成功; catch (exception f) messagebox.show(f.message); return; catch (exception err) messagebox.show(err.message);/return; private void button1_click(object sender, eventargs e) 欢迎使用 a = new 欢迎使用(); 自填金额.qx(double.parse(button1.text); qk(button1 .text); private void button2_click(object sender, eventargs e) 欢迎使用a = new欢迎使用(); 自填金额.qx(double.parse(button2.text); qk(button2.text); priv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论