版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、*学院课程设计说明书(2012/2013学年第一学期)课程名称 : 软件程序设计 题 目 : 自动提款机模拟软件 专业班级 : 学生姓名 : 放羊娃 学 号: 指导教师 : 设计周数 : 2周 设计成绩 : 2013年1月18日目 录 1、课程设计目的 2、系统的分析与设计 2.1需求分析 2.1.1 课设任务 2.1.2 课设要求 2.2系统的设计 2.2.1 数据库的分析与设计 2.2.2逻辑层次的设计 2.3程序设计 2.3.1 程序流程图 2.3.2系统实施 3、课程设计总结或结论 4、参考文献1、 课程设计目的通过c#课程设计,使学生能将学到的面向对象的程序设计思想应用到具体的工作和
2、学习中,加深对类与对象的理解。进一步巩固所学的c#及数据库的相关理论知识,提高分析和解决实际问题的能力。2、系统的分析与设计 ATM机很方便,没有休息日,上班时间也长,除了换钱的半个小时左右,可以通宵达旦的工作。几乎相当于3个银行工作人员倒班干活。大大提高了银行效率,节约了人力和储户的时间。缺点是,有些人不会使用,会产生吞卡等现象,给部分人带来麻烦。但随着人们素质放入提高,这些缺点的影响已经越来越小了。2.1需求分析2.1.1 课设任务(1)根据技术要求和现有开发环境,分析题目。(2)选定设计方案,包括,软件功能结构,画出软件框架结构图,关键程序流程图, 数据库中表的结构设计等。(4)使用C#
3、语言和.net框架,并结合数据库,实现软件。(5)调试,修改并完善程序。2.1.2 课设要求(1) 仿某银行的运行界面。(2) 用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)。(3) 取款、交费、转账、查询余额、修改密码等功能。(4) 其他功能(包括开户,存款,销户等功能)。2.2系统的设计(1)输入:用户通过键盘进行输入。(2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。2.2.1 数据库的分析与设计由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据
4、提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求,在Database1数据库中建立两张表来存储信息,分别为userinfo和recordinfo。userinfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1 用户基本信息表(userinfo)列名数据类型长度允许为空是否为主键说明Yonghunvarchar20否是卡号 mima nvarchar20否否密码yuemoney是否余额recordInfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2 用户操作信息表(recordInfo)列名数据类型长度
5、允许为空是否为主键说明 yonghunvarchar19否是卡号标识shijiandatetime否否操作时间leixingnvarchar20是否操作类型kayuedecimal(18,0)是否交易金额2.2.2逻辑层次的设计 本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、记录查询和交费等基本业务。 ATM自动提款机结构基本框图:退出系统交费查询余额修改密码存款取款转账启动登陆界面主菜单图2-1 ATM系统的基本框图2.3程序设计用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,
6、并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。2.3.1 程序流程图软件设计程序流程图如图2-2所示: 图2-2程序流程图2.3.2系统实施本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示: 图2-3登陆界面代码如下:namespace Wind
7、owasd public partial class Form1 : Form public Form1() InitializeComponent(); int c; public static string lockID; private void button4_Click(object sender, EventArgs e) maskedTextBox1.Text = "" private void button3_Click(object sender, EventArgs e) if (maskedTextBox2.Text.Trim() != "&
8、quot;) SqlConnection conn = new SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); string ssql = "select * from userinfo where yonghu='" + maskedTextBox2.Text.Trim
9、() + "'" SqlCommand ccmd = new SqlCommand(ssql, conn); SqlDataReader dr1 = ccmd.ExecuteReader(); if (dr1.Read() dr1.Close(); lockID = maskedTextBox2.Text.Trim().ToString(); string isornot = "select mima from userinfo where yonghu='" + maskedTextBox2.Text.Trim().ToString()
10、 + "' " SqlCommand cmd0 = new SqlCommand(isornot, conn); SqlDataReader drr = cmd0.ExecuteReader(); if (drr.Read() && drr"mima".ToString() = "1") MessageBox.Show("您的帐号已被锁定,请与银行管理员联系!"); drr.Close(); else drr.Close(); string sql = "select * from
11、 userinfo where yonghu='" + maskedTextBox2.Text.Trim().ToString() + "'and mima='" + maskedTextBox1.Text.Trim().ToString() + "'" SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() maskedTextBox2.Text = dr"yon
12、ghu".ToString(); Form2 frm = new Form2(); frm.Show(); this.Hide(); else if (this.c+ < 3) MessageBox.Show("您密码不正确,请重新输入!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Error); maskedTextBox2.Text = "" maskedTextBox1.Text = "" else dr.Close(); string sql1
13、 = "update userinfo set mima='1' where yonghu='" + maskedTextBox2.Text.Trim() + "'" SqlCommand cmd1 = new SqlCommand(sql1, conn); if (cmd1.ExecuteNonQuery() = 1) MessageBox.Show("您已经输入超过三次,该帐号将被锁定,请联系银行管理员!", "错误", MessageBoxButtons.OK, Message
14、BoxIcon.Error); else MessageBox.Show("账号不正确"); conn.Close(); else MessageBox.Show("请输入卡号与密码!", "警告!", MessageBoxButtons.OK, MessageBoxIcon.Warning); maskedTextBox2.Text = "" maskedTextBox1.Text = "" ; private void button1_Click(object sender, EventAr
15、gs e) Application.Exit(); private void Form1_Load(object sender, EventArgs e) (2)ATM自动取款机服务界面,主菜单可以实现以下服务,其界面如图2-4所示: 图2-4主菜单代码如下:namespace Windowasd public partial class Form2 : Form public Form2() InitializeComponent(); private void button2_Click(object sender, EventArgs e) Form3 frm = new Form3()
16、; frm.Show(); this.Hide(); private void button5_Click(object sender, EventArgs e) Form4 frm = new Form4(); frm.Show(); this.Hide(); private void button3_Click(object sender, EventArgs e) Form5 frm = new Form5(); frm.Show(); this.Hide(); private void button4_Click(object sender, EventArgs e) Form6 fr
17、m = new Form6(); frm.Show(); this.Hide(); private void button7_Click(object sender, EventArgs e) Form1 frm = new Form1(); frm.Show(); this.Hide(); /Application.Exit(); private void button1_Click(object sender, EventArgs e) Form7 frm = new Form7(); frm.Show(); this.Hide(); private void button6_Click(
18、object sender, EventArgs e) Form8 frm = new Form8(); frm.Show(); this.Hide(); private void Form2_Load(object sender, EventArgs e) (3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图2-5所示: 图2-5:取款界面代码如下:namespace Windowasd public partial class Form3 : Form public
19、 Form3() InitializeComponent(); private void button3_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void button2_Click(object sender, EventArgs e) maskedTextBox1.Text = "" private void button1_Click(object sender, EventArgs e) SqlConnection conn
20、 = new SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID+ "'" SqlCommand cmd = n
21、ew SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); decimal change = sqje; string presentname = Convert.ToString(dr1); string cardid = "'" + Form1.lockID + "'
22、" string time = Convert.ToString(DateTime.Now); dr.Close(); if (jine > sqje) if (sqje % 100 = 0) MessageBox.Show("请在秒内取款"); decimal leftmoney = jine - sqje; string ssql = "Update userinfo set yue = '" + leftmoney + "' where yonghu ='" + Form1.lockID
23、+ "'" SqlCommand ccmd = new SqlCommand(ssql, conn); MessageBox.Show("取款成功"); int i = ccmd.ExecuteNonQuery(); if (i = 1) maskedTextBox1.Text = "" else MessageBox.Show("本机只提供以百元为单位的金额,请正确输入金额!"); maskedTextBox1.Text = "" else MessageBox.Show("
24、您的余额不足!"); maskedTextBox1.Text = "" conn.Close(); private void Form3_Load(object sender, EventArgs e) (4) 存款窗体:通过该界面用户可以从自己的账户中进行取存款操作,但是存款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,其界面如图2-6所示: 图2-6 存款界面代码如下:namespace Windowasd public partial class Form4 : Form public Form4() InitializeComponent(
25、); private void button3_Click(object sender, EventArgs e) maskedTextBox1.Text = "" private void button2_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection("Da
26、ta Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID + "'" SqlCommand cmd = new SqlCommand(sql, conn); Sq
27、lDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); string presentname = Convert.ToString(dr1); string cardid = "'" + Form1.lockID + "'" decimal change = sqje; string time = Convert
28、.ToString(DateTime.Now); dr.Close(); if (sqje % 100 = 0) MessageBox.Show("操作正在,请稍侯"); decimal leftmoney = jine + sqje; string ssql = "Update userinfo set yue = '" + leftmoney + "' where yonghu ='" + Form1.lockID + "'" SqlCommand ccmd = new SqlC
29、ommand(ssql, conn); MessageBox.Show("存款成功!"); maskedTextBox1.Text = "" int i = ccmd.ExecuteNonQuery(); if (i = 1) maskedTextBox1.Text = "" else MessageBox.Show("操作失败,请重试!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Error); else MessageBox.Show(&quo
30、t;本机只提供以百元为单位的金额,请正确输入金额!"); private void Form4_Load(object sender, EventArgs e) (6)转账窗体:通过该界面用户可以给除自己外的其他账户进行转账,其界面如图2-7所示: 图2-7转账窗口代码如下:namespace Windowasd public partial class Form5 : Form public Form5() InitializeComponent(); private void button3_Click(object sender, EventArgs e) SqlConnect
31、ion conn = new SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID + "'" SqlComman
32、d cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read(); decimal jine = Convert.ToDecimal(dr2); string wo = Convert.ToString(dr1); decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); dr.Close(); if (jine > sqje) MessageBox.Show("正在操作,请稍侯"); decimal leftmo
33、ney = jine - sqje; string ssql = "Update userinfo set yue = '" + leftmoney + "' where yonghu ='" + Form1.lockID + "'" SqlCommand ccmd = new SqlCommand(ssql, conn); int i = ccmd.ExecuteNonQuery(); if (i = 1) string sqql = "select * from userinfo wher
34、e yonghu='" + maskedTextBox2.Text.Trim() + "'" SqlCommand cmdd = new SqlCommand(sqql, conn); SqlDataReader drr = cmdd.ExecuteReader(); if (drr.Read() decimal je = Convert.ToDecimal(drr2); string presentname = wo; string cardid = "'" + Form1.lockID + "'&q
35、uot; decimal change = sqje; string time = Convert.ToString(DateTime.Now); je = je + sqje; drr.Close(); string sqql1 = "Update userinfo set yue='" + je + "'where yonghu='" + maskedTextBox2.Text.Trim() + "'" SqlCommand cmmdd = new SqlCommand(sqql1, conn);
36、int n = cmmdd.ExecuteNonQuery(); if (n = 1) MessageBox.Show("转账成功!"); maskedTextBox2.Text = "" maskedTextBox1.Text = "" else MessageBox.Show("转账失败!"); maskedTextBox2.Text = "" maskedTextBox1.Text = "" else MessageBox.Show("操作失败,请重试!&qu
37、ot;, "提示:", MessageBoxButtons.OK, MessageBoxIcon.Error); else else MessageBox.Show("您的余额不足,请重新输入金额!"); maskedTextBox1.Text = "" private void button1_Click(object sender, EventArgs e) maskedTextBox1.Text = "" private void button2_Click(object sender, EventArgs
38、e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void Form5_Load(object sender, EventArgs e) private void label2_Click(object sender, EventArgs e) (7)交费窗体:通过该界面用户可以自行交费,其界面如图2-8所示: 图2-8 交费窗口代码如下:namespace Windowasd public partial class Form6 : Form public Form6() InitializeComponent(); p
39、rivate void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e) private void button1_Click(object sender, EventArgs e) Form2 frm = new Form2(); frm.Show(); this.Hide(); private void button2_Click(object sender, EventArgs e) maskedTextBox1.Text = "" private void bu
40、tton3_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"); conn.Open(); string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID + "'" SqlCommand
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 策划展中活动方案(3篇)
- 食堂问卷策划活动方案(3篇)
- 药品制造项目可行性研究报告
- 五粮液中秋节活动传播方案
- 工业园区新建液流电池保温材料制造项目可行性研究报告
- 就业指导与简历制作
- 2026年中国高强塑料格栅行业市场规模及投资前景预测分析报告
- 网络通信协议工程师面试经验
- 中医情志护理方法
- 2025年公共卫生专业流行病学模拟题
- 采购分散采购管理办法
- 退婚彩礼返还协议书范本
- 妇科盆底疾病科普讲堂
- 配送司机面试题及答案
- 宜宾市属国有企业人力资源中心宜宾国有企业管理服务有限公司2024年第四批员工公开招聘笔试参考题库附带答案详解
- 开学第一课:小学生收心教育
- 《土壤固化技术》课件
- 春天来了(教案)-2023-2024学年花城版音乐三年级下册
- 废塑料催化热解资源化利用的技术进展与前景探讨
- 2025小学苏教版(2024)科学一年级下册教学设计(附目录)
- GB/T 3920-2024纺织品色牢度试验耐摩擦色牢度
评论
0/150
提交评论