付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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#课程设计,使学生能将学到的面向对象的程序设计思想应用到具体的工作和学习中,加深对类与对象的理解。进一步巩固所学的c#及数据库的相关理
2、论知识,提高分析和解决实际问题的能力。2、系统的分析与设计ATM机很方便,没有休息日,上班时间也长,除了换钱的半个小时左右,可以通宵达旦的工作。几乎相当于3个银行工作人员倒班干活。大大提高了银行效率,节约了人力和储户的时间。缺点是,有些人不会使用,会产生吞卡等现象,给部分人带来麻烦。但随着人们素质放入提高,这些缺点的影响已经越来越小了。2.1 需求分析2.1.1 课设任务(1)根据技术要求和现有开发环境,分析题目。(2)选定设计方案,包括,软件功能结构,画出软件框架结构图,关键程序流程图,数据库中表的结构设计等。(4)使用C#语言和.net框架,并结合数据库,实现软件。(5)调试,修改并完善程
3、序。2.1.2 课设要求(1)仿某银行的运行界面。(2)用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)(3)取款、交费、转账、查询余额、修改密码等功能。(4)其他功能(包括开户,存款,销户等功能)。2.2 系统的设计2.2.1 :用户通过键盘进行输入。2.2.2 :可使用户在无任何经验的情况下进行操作ATM自助式服务。2.2.3 方面:取款、查询余额、修改密码、记录查询、交费、转账。2.2.4 数据库的分析与设计由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模
4、拟软件的功能要求,在Databasel数据库中建立两张表来存储信息,分别为userinfo和recordinfo。userinfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1用户基本信息表(userinfo)列名数据类型长度允许为空是否为主键说明Yonghunvarchar20否是mimanvarchar20否否密码yuemoney是否余额recordinfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2用户操作信息表(recordinfo)列名数据类型长度允许为空是否为主键说明yonghunvarchar19否是卡号标识shijiand
5、atetime否否操作时间leixingnvarchar20是否操作类型kayuedecimal(18,0)是否交易金额2.2.5 逻辑层次的设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、记录查询和交费等基本业务。ATM自动提款机结构基本框图图2-1ATM系统的基本框图2.3 程序设计用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码
6、错误次数大于3次,则锁定该帐号。2.3.1 程序流程图软件设计程序流程图如图2-2所示:开始业劳选择输入密码业务处理锁定卡号结束图2-2程序流程图2.3.2 系统实施本系统主要通过运用C刷Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操2-3所示:作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图图2-3登陆界面代码如下:namespaceWindowasd(publicpartialclassForml:Form(publicForm1()(Initial
7、izeComponent();intc;publicstaticstringlockID;privatevoidbutton4_Click(objectsender,EventArgse)(maskedTextBox1.Text=""privatevoidbutton3_Click(objectsender,EventArgse)(if(maskedTextBox2.Text.Trim()!="")(SqlConnectionconn=newSqlConnection("DataSource=.SQLEXPRESS;AttachDbFilena
8、me=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True");conn.Open();stringssql="select*fromuserinfowhereyonghu='"+maskedTextBox2.Text.Trim()+""';SqlCommandccmd=newSqlCommand(ssql,conn);SqlDataReaderdr1=ccmd.ExecuteReader();if(dr1
9、.Read()dr1.Close();lockID=maskedTextBox2.Text.Trim().ToString();stringisornot="selectmimafromuserinfowhereyonghu='"+maskedTextBox2.Text.Trim().ToString()+"'"SqlCommandcmd0=newSqlCommand(isornot,conn);SqlDataReaderdrr=cmd0.ExecuteReader();if(drr.Read()&&drr"mi
10、ma".ToString()="1")MessageBox.Show("您的帐号已被锁定,请与银行管理员联系!");drr.Close();elsedrr.Close();stringsql="select*fromuserinfowhereyonghu='"+maskedTextBox2.Text.Trim().ToString()+"'andmima='"+maskedTextBox1.Text.Trim().ToString()+""'SqlCom
11、mandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()maskedTextBox2.Text=dr"yonghu".ToString();Form2frm=newForm2();frm.Show();this.Hide();elseif(this.c+<3)MessageBox.Show("您密码不正确,请重新输入!","提示!MessageBoxButtons.OK,MessageBoxIcon.Error);maskedTextB
12、ox2.Text=""maskedTextBoxl.Text="")else(dr.Close();stringsqll="updateuserinfosetmima='1'whereyonghu='"+maskedTextBox2.Text.Trim()+""'SqlCommandcmd1=newSqlCommand(sql1,conn);if(cmd1.ExecuteNonQuery()=1)(MessageBox.Show("您已经输入超过三次,该帐号将被锁定,请联系
13、银行管理员!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);)else(MessageBox.Show("账号不正确");)conn.Close();)else(MessageBox.Show("请输入卡号与密码!","警告!",MessageBoxButtons.OK,MessageBoxIcon.Warning);maskedTextBox2.Text=""maskedTextBox1.Text="")priv
14、atevoidbutton1_Click(objectsender,EventArgse)(Application.Exit();)privatevoidForm1_Load(objectsender,EventArgse)()2-4所示:(2)ATM自动取款机服务界面,主菜单可以实现以下服务,其界面如图图2-4主菜单代码如下:namespaceWindowasd(publicpartialclassForm2:Form(publicForm2()(InitializeComponent();)privatevoidbutton2_Click(objectsender,EventArgse)(
15、Form3frm=newForm3();frm.Show();this.Hide();)privatevoidbutton5_Click(objectsender,EventArgse)(Form4frm=newForm4();frm.Show();this.Hide();privatevoidbutton3_Click(objectsender,EventArgse)(Form5frm=newForm5();frm.Show();this.Hide();)privatevoidbutton4_Click(objectsender,EventArgse)(Form6frm=newForm6()
16、;frm.Show();this.Hide();)privatevoidbutton7_Click(objectsender,EventArgse)(Form1frm=newForm1();frm.Show();this.Hide();/Application.Exit();)privatevoidbutton1_Click(objectsender,EventArgse)(Form7frm=newForm7();frm.Show();this.Hide();)privatevoidbutton6_Click(objectsender,EventArgse)(Form8frm=newForm8
17、();frm.Show();this.Hide();)privatevoidForm2_Load(objectsender,EventArgse)(3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图2-5所示:图2-5:取款界面代码如下:namespaceWindowasd(publicpartialclassForm3:Form(publicForm3()(InitializeComponent();)privatevoidbutton3_Click(objectse
18、nder,EventArgse)(Form2frm=newForm2();frm.Show();this.Hide();)privatevoidbutton2_Click(objectsender,EventArgse)(maskedTextBoxl.Text=""SqlConnectionconnprivatevoidbutton1_Click(objectsender,EventArgse)(newSqlConnection("DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.md
19、f;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True");conn.Open();stringsql="SELECT*FROMuserinfoWHEREyonghu=""+Form1.lockID+"”'SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();dr.Read();decimaljine=Convert.ToDecimal(dr2);decimalsqje=Con
20、vert.ToDecimal(maskedTextBoxl.Text);decimalchange=sqje;stringpresentname=Convert.ToString(dr1);stringcardid=""'+Form1.lockID+""';stringtime=Convert.ToString(DateTime.Now);dr.Close();if(jine>sqje)(if(sqje%100=0)(MessageBox.Show("请在秒内取款11);decimalleftmoney=jine-sqje
21、;stringssql="Updateuserinfosetyue='"+leftmoney+"'whereyonghu='"+Form1.lockID+""'SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show("取款成功");inti=ccmd.ExecuteNonQuery();if(i=1)(maskedTextBox1.Text="")else(MessageBox.Show("本机只提
22、供以百元为单位的金额,请正确输入金额!");maskedTextBox1.Text="")else(MessageBox.Show("您的余额不足!");maskedTextBoxl.Text="")conn.Close();)privatevoidForm3_Load(objectsender,EventArgse)(4)存款窗体:通过该界面用户可以从自己的账户中进行取存款操作,但是存款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,其界面如图2-6所示:返回修改确认图2-6存款界面代码如下:namespac
23、eWindowasdpublicpartialclassForm4:FormpublicForm4()InitializeComponent();)privatevoidbutton3_Click(objectsender,EventArgse)maskedTextBox1.Text=""privatevoidbutton2_Click(objectsender,EventArgse)(Form2frm=newForm2();frm.Show();this.Hide();privatevoidbutton1_Click(objectsender,EventArgse)(Sq
24、lConnectionconn=newSqlConnection("DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;Use门nstance=True");conn.Open();stringsql="SELECT*FROMuserinfoWHEREyonghu=""+Forml.lockID+""';SqlCommandcmd=newSqlCom
25、mand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();dr.Read();decimaljine=Convert.ToDecimal(dr2);decimalsqje=Convert.ToDecimal(maskedTextBoxl.Text);stringpresentname=Convert.ToString(dr1);stringcardid="'"+Forml.lockID+"'"decimalchange=sqje;stringtime=Convert.ToString(DateT
26、ime.Now);dr.Close();if(sqje%100=0)(MessageBox.Show("操作正在,请稍侯11);decimalleftmoney=jine+sqje;stringssql="Updateuserinfosetyue='"+leftmoney+"'whereyonghu='"+Forml.lockID+""';SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show("存款成功!");mas
27、kedTextBoxl.Text=""inti=ccmd.ExecuteNonQuery();if(i=1)(maskedTextBoxl.Text=""else(MessageBox.Show("操作失败,请重试!","提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);else(MessageBox.Show("本机只提供以百元为单位的金额,请正确输入金额!");)privatevoidForm4_Load(objectsender,EventAr
28、gse)()(6)转账窗体:通过该界面用户可以给除自己外的其他账户进行转账,其界面如图2-7所示:图2-7转账窗口代码如下:namespaceWindowasd(publicpartialclassForm5:Form(publicForm5()(InitializeComponent();)privatevoidbutton3_Click(objectsender,EventArgse)(SqlConnectionconnnewSqlConnection("DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database
29、1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True");conn.Open();stringsql="SELECT*FROMuserinfoWHEREyonghu=""+Forml.lockID+"”'SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();dr.Read();decimaljine=Convert.ToDecimal(dr2);stringwo=Co
30、nvert.ToString(dr1);decimalsqje=Convert.ToDecimal(maskedTextBoxl.Text);dr.Close();if(jine>sqje)(MessageBox.Show("正在操作,请稍侯11);decimalleftmoney=jine-sqje;stringssql="Updateuserinfosetyue='"+leftmoney+"'whereyonghu='"+Forml.lockID+"”'SqlCommandccmd=newSq
31、lCommand(ssql,conn);inti=ccmd.ExecuteNonQuery();if(i=1)(stringsqql="select*fromuserinfowhereyonghu='"+maskedTextBox2.Text.Trim()+"'"SqlCommandcmdd=newSqlCommand(sqql,conn);SqlDataReaderdrr=cmdd.ExecuteReader();if(drr.Read()(decimalje=Convert.ToDecimal(drr2);stringpresentn
32、ame=wo;stringcardid=""'+Forml.lockID+"”'decimalchange=sqje;stringtime=Convert.ToString(DateTime.Now);je=je+sqje;drr.Close();stringsqqll="Updateuserinfosetyue='"+je+"'whereyonghu='"+maskedTextBox2.Text.Trim()+""'SqlCommandcmmdd=newS
33、qlCommand(sqql1,conn);intn=cmmdd.ExecuteNonQuery();if(n=1)(MessageBox.Show("转账成功!");maskedTextBox2.Text=""maskedTextBoxl.Text="")else(MessageBox.Show("转账失败!");maskedTextBox2.Text=""maskedTextBox1.Text="")else(MessageBox.Show("操作失败,请重试!
34、","提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);)else()else(MessageBox.Show("您的余额不足,请重新输入金额!");maskedTextBox1.Text="")privatevoidbutton1_Click(objectsender,EventArgse)(maskedTextBox1.Text="")privatevoidbutton2_Click(objectsender,EventArgse)(Form2frm=ne
35、wForm2();frm.Show();this.Hide();)privatevoidForm5_Load(objectsender,EventArgse)()privatevoidlabel2_Click(objectsender,EventArgse)()2-8所示:(7)交费窗体:通过该界面用户可以自行交费,其界面如图图2-8交费窗口代码如下:namespaceWindowasd(publicpartialclassForm6:Form(publicForm6()(InitializeComponent();privatevoidmaskedTextBox1_MaskInputReje
36、cted(objectsender,MaskInputRejectedEventArgse)(privatevoidbutton1_Click(objectsender,EventArgse)(Form2frm=newForm2();frm.Show();this.Hide();privatevoidbutton2_Click(objectsender,EventArgse)(maskedTextBox1.Text="")privatevoidbutton3_Click(objectsender,EventArgse)(SqlConnectionconn=newSqlCon
37、nection("DataSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True");conn.Open();stringsql="SELECT*FROMuserinfoWHEREyonghu=""+Forml.lockID+""';SqlCommandcmd=newSqlCommand(sql,conn);SqlDataRe
38、aderdr=cmd.ExecuteReader();dr.Read();decimaljine=Convert.ToDecimal(dr2);decimalsqje=Convert.ToDecimal(maskedTextBoxl.Text);stringpresentname=Convert.ToString(dr1);stringcardid="'"+Forml.lockID+"'"decimalchange=sqje;stringtime=Convert.ToString(DateTime.Now);dr.Close();if(j
39、ine>sqje)(MessageBox.Show("操作正在,请稍侯11);decimalleftmoney=jine-sqje;stringssql="Updateuserinfosetyue='"+leftmoney+"'whereyonghu='"+Forml.lockID+""';SqlCommandccmd=newSqlCommand(ssql,conn);MessageBox.Show("交费成功!");maskedTextBoxl.Text="
40、;"inti=ccmd.ExecuteNonQuery();if(i=1)(maskedTextBoxl.Text="")else(MessageBox.Show("操作失败,请重试!","提示:",MessageBoxButtons.OK,MessageBoxIcon.Error);)else(MessageBox.Show("您的余额不足!");maskedTextBoxl.Text=""privatevoidForm6_Load(objectsender,EventArgse)(
41、9)修改密码窗体:通过该界面用户可以给自己的账户进行修改密码的操作,两次输入的新密码一样将修改成功,否则将失败,其界面如图2-9所示:图2-9修改密码代码如下:namespaceWindowasd(publicpartialclassForm7:Form(publicForm7()(InitializeComponent();privatevoidbutton1_Click(objectsender,EventArgse)(Form2frm=newForm2();frm.Show();this.Hide();privatevoidbutton3_Click(objectsender,Event
42、Argse)(SqlConnection("DataSecurity=True;Connect"'whereyonghu='"+SqlConnectionconn=newSource=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Database1.mdf;IntegratedTimeout=30;UserInstance=True");conn.Open();stringpassword1=maskedTextBox2.Text.Trim().ToString();stringpassword2
43、=maskedTextBox3.Text.Trim().ToString();if(password1=password2)(stringsqql="Updateuserinfosetmima='"+password1+Form1.lockID+"”'SqlCommandcmdd=newSqlCommand(sqql,conn);inti=cmdd.ExecuteNonQuery();if(i=1)(MessageBox.Show("密码修改成功!");maskedTextBox2.Text=""maskedTextBox3.Text=""else(MessageBox.Show("密码修改失败,请重试!");else(MessageBox.Show("两次输入密码不一至!");maskedTextBox3.Text="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西国际商务职业技术学院单招综合素质笔试备考试题含详细答案解析
- 2026年春季湘艺版小学音乐一年级下册教学计划含教学进度表
- 4.7.4 选择健康的生活方式(第二课时)教学设计-2025-2026学年人教版生物(2024)八年级上册
- 2026广东韶关市乐昌市黄圃镇人民政府消防专职人员招聘1人笔试备考试题及答案解析
- 2026福建龙岩新罗区大池中心幼儿园招聘3人笔试备考题库及答案解析
- 2026福建漳州市龙海区人力资源和社会保障局招聘1人笔试备考试题及答案解析
- 2026广东肇庆市高要区事业单位招聘高层次人才5人笔试备考试题及答案解析
- 2026中原科技学院许昌校区招聘240人笔试备考题库及答案解析
- 2026福建宁德古田县实验小学招聘编外工作人员的1人笔试备考题库及答案解析
- 2026河南驻马店高新技术产业开发投资有限公司招聘工作人员1人笔试备考试题及答案解析
- 安全生产费用投入等制度
- 2026版离婚协议书(官方标准版)
- 生产过程安全基本要求
- 北京市2025北京市公园管理中心所属事业单位招聘111人笔试历年参考题库典型考点附带答案详解(3卷合一)2套试卷
- 湖北交投集团考试真题及答案
- 超声科医学教育与学术交流的未来
- T/CADBM 3-2018竹木纤维集成墙面
- 服装行业质量控制流程
- 知识产权保护国别指南(澳大利亚)
- 廉洁应征承诺书
- SPSS教程中文完整版
评论
0/150
提交评论