1、C#课程设计自动存取款机软件设计解读科信学院课程设计说明书(2012/2013学年第一学期)课程名称 : 软件程序设计 题 目 : 自动存取款机软件设计 专业班级 : 学生姓名 : 放羊娃 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2013年1月18日1 课程设计目的(1)初步掌握使用C#工具设计一个具体实例的方法,包括软件的设计,调试的全过程。(2)通过本次设计掌握使用c#语言中窗体的建立,各个控件的使用,以及界面的设计。(3)进一步巩固所学的C#及数据库的相关理论知识,提高分析和解决实际问题的能力。2 课程的分析ATM自动取款机系统向用户提供一个方便、简单、及时、随时随地可
2、以随心所欲存取款的互联的现代计算机化的网络系统。可以大大减少工作人员,节约人力资源的开销,同时由于手续程序减少也可以减轻业务员的工作负担,有效地提高了整体的工作效率和精确度。 减少了用户办理业务的等待时间;用户可以随时随地可以随心所欲存取款,并且操作简单易懂;用户还可以选择在柜台办理业务或自己在自动提款机和自动取款机办理业务。2.1需求分析2.1.1 课设任务(1)根据技术要求和现有开发环境,分析题目(2)选定设计方案(3)画出软件框架结构图,关键程序流程图(4)使用C#语言和.net框架,并结合数据库,实现软件(5)调试,修改并完善程序2.1.2 课设要求(1)模仿银行ATM的运行界面。(2
3、)凭正确的卡号和密码进入系统。(3)实现取款,余额查询,修改密码,交费,转账,存款操作。2.2系统的设计(1)输入:用户通过键盘进行输入。(2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、存款、交费、转账。2.2.1 数据库的分析与设计由自动提款机模拟软件系统的需求分析可知,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求,在shuju数据库中建立两张表来存储信息,分别为Table1和RecordIofo。Table1表中用来存储用户的卡号,密码,用户名,余
4、额及用于卡号锁定的字段用户基本信息表(Table1)列名数据类型长度允许为空是否为主键说明kahaonvarchar19否是卡号 mima nvarchar6否否密码xingmingnvarchar20是否姓名dianhuanvarchar11是否电话yuemoney是否余额locknvarchar2是否卡号锁定recordIofo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。 用户操作信息表(recordIofo)列名数据类型长度允许为空是否为主键说明 kahaonvarchar19否是卡号xingmingnvarchar20是否姓名shijiandatetime否否操
5、作时间leixingnvarchar20是否操作类型kashangyuyedecimal(18,0)是否交易金额2.2.2 取款机逻辑层次设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、存款和交费等基本业务。 ATM系统基本结构框图如图2-1所示:2.3 程序设计用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定
6、该帐号。2.3.1 程序流程图2.3.2 窗体的具体实施和代码(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作。代码为:if (mask1.Text.Trim() != ) string connString = Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|shuju.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; SqlConnection conn =
7、new SqlConnection(connString); conn.Open(); string ssql = select * from Table1 where kahao= + mask1.Text.Trim() + ; SqlCommand ccmd = new SqlCommand(ssql, conn); SqlDataReader dr1 = ccmd.ExecuteReader(); if (dr1.Read() dr1.Close(); name = mask1.Text.Trim().ToString(); string isornot = select lock fr
8、om Table1 where kahao= + mask1.Text.Trim().ToString() + ; SqlCommand cmd0 = new SqlCommand(isornot, conn); SqlDataReader drr = cmd0.ExecuteReader(); if (drr.Read() & drrlock.ToString() = 1) MessageBox.Show(您的帐号已被锁定,请与银行管理员联系!); mask2.Text = ; mask1.Text = ; drr.Close(); else drr.Close(); string sql
9、= select * from Table1 where kahao= + mask1.Text.Trim().ToString() + and mima= + mask2.Text.Trim().ToString() + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() mask1.Text = drkahao.ToString(); FrmMian frm = new FrmMian(); frm.Show(); this.Hide(); e
10、lse if (this.A+ = sqje) if (sqje % 100 = 0) MessageBox.Show(请在30秒内取款); decimal leftmoney = jine - sqje; string ssql = Update Table1 set yue = + leftmoney + where kahao = + frmlo.name + ; SqlCommand ccmd = new SqlCommand(ssql, conn); draw frm = new draw(); frm.Show(); this.Hide(); int i = ccmd.Execut
11、eNonQuery(); if (i = 1) else MessageBox.Show(操作失败,请重试!, 提示, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(本机只提供以百元为单位的金额,请正确输入金额!); txt1.Text = ; else MessageBox.Show(您的余额不足!); txt1.Text = ; conn.Close();(4)交费窗体:通过该界面用户可以进行交费。代码为: string connString = Data Source=.SQLEXPRESS;Attac
12、hDbFilename=|DataDirectory|shuju.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; SqlConnection conn = new SqlConnection(connString); conn.Open(); string sql = SELECT * FROM Table1 WHERE kahao= + frmlo.name + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.Exe
13、cuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr4); decimal sqje = Convert.ToDecimal(textBox1.Text); string presentname = Convert.ToString(dr4); string cardid = + frmlo.name + ; decimal change = sqje; string time = Convert.ToString(DateTime.Now); dr.Close(); if (jine = sqje) MessageBox.S
14、how(操作正在,请稍侯); decimal leftmoney = jine - sqje; string ssql = Update Table1 set yue = + leftmoney + where kahao = + frmlo.name + ; SqlCommand ccmd = new SqlCommand(ssql, conn); MessageBox.Show(交费成功!); textBox1.Text = ; int i = ccmd.ExecuteNonQuery(); if (i = 1) textBox1.Text = ; else MessageBox.Show
15、(操作失败,请重试!, 提示:, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show( 您的余额不足!); textBox1.Text = ; (5)转账窗体:通过该界面用户可以给除自己外的其他账户进行转账。代码为: string connString = Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|shuju.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; S
16、qlConnection conn = new SqlConnection(connString); conn.Open(); string sql = SELECT * FROM Table1 WHERE kahao= + frmlo.name + ; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr4); string wo = Convert.ToString(dr1); dec
17、imal sqje = Convert.ToDecimal(text2.Text); dr.Close(); if (jine = sqje) MessageBox.Show(正在操作,请稍侯); decimal leftmoney = jine - sqje; string ssql = Update Table1 set yue = + leftmoney + where kahao = + frmlo.name + ; SqlCommand ccmd = new SqlCommand(ssql, conn); int i = ccmd.ExecuteNonQuery(); if (i =
18、 1) string sqql = select * from Table1 where kahao= + maske1.Text.Trim() + ; SqlCommand cmdd = new SqlCommand(sqql, conn); SqlDataReader drr = cmdd.ExecuteReader(); if (drr.Read() decimal je = Convert.ToDecimal(drr4); string presentname = wo; string cardid = + frmlo.name + ; decimal change = sqje; s
19、tring time = Convert.ToString(DateTime.Now); je = je + sqje; drr.Close(); string sqql1 = Update Table1 set yue= + je + where kahao= + maske1.Text.Trim() + ; SqlCommand cmmdd = new SqlCommand(sqql1, conn); int n = cmmdd.ExecuteNonQuery(); if (n = 1) MessageBox.Show(转账成功!); maske1.Text = ; text2.Text
20、= ; else MessageBox.Show(转账失败!); maske1.Text = ; text2.Text = ; else MessageBox.Show(操作失败,请重试!, 提示:, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(操作失败,请重试!, 提示:, MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(您的余额不足,请重新输入金额!); text2.Text = ; conn.Close();(6)查询余额窗体:在业务类型窗体上点击余额查询,可查询当前用户银行卡上的可用余额。代码为:string connString = Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|shuju.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True; SqlConnection conn = new SqlConnection(connString); conn.Open(); string sql =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1