您好,欢迎访问三七文档
当前位置:首页 > 金融/证券 > 金融资料 > C#课程设计—自动取款机模拟软件设计解读
**学院课程设计说明书(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、系统的分析与设计ATM机很方便,没有休息日,上班时间也长,除了换钱的半个小时左右,可以通宵达旦的工作。几乎相当于3个银行工作人员倒班干活。大大提高了银行效率,节约了人力和储户的时间。缺点是,有些人不会使用,会产生吞卡等现象,给部分人带来麻烦。但随着人们素质放入提高,这些缺点的影响已经越来越小了。2.1需求分析2.1.1课设任务(1)根据技术要求和现有开发环境,分析题目。(2)选定设计方案,包括,软件功能结构,画出软件框架结构图,关键程序流程图,数据库中表的结构设计等。(4)使用C#语言和.net框架,并结合数据库,实现软件。(5)调试,修改并完善程序。2.1.2课设要求(1)仿某银行的运行界面。(2)用户凭正确的卡号和密码进入系统(若输入密码错误次数达到上限,锁定账号)。(3)取款、交费、转账、查询余额、修改密码等功能。(4)其他功能(包括开户,存款,销户等功能)。2.2系统的设计(1)输入:用户通过键盘进行输入。(2)性能:可使用户在无任何经验的情况下进行操作ATM自助式服务。(3)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。2.2.1数据库的分析与设计由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求,在Database1数据库中建立两张表来存储信息,分别为userinfo和recordinfo。userinfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段表2-1用户基本信息表(userinfo)列名数据类型长度允许为空是否为主键说明Yonghunvarchar20否是卡号mimanvarchar20否否密码yuemoney是否余额recordInfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。表2-2用户操作信息表(recordInfo)列名数据类型长度允许为空是否为主键说明yonghunvarchar19否是卡号标识shijiandatetime否否操作时间leixingnvarchar20是否操作类型kayuedecimal(18,0)是否交易金额2.2.2逻辑层次的设计本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、记录查询和交费等基本业务。ATM自动提款机结构基本框图:图2-1ATM系统的基本框图2.3程序设计用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。2.3.1程序流程图软件设计程序流程图如图2-2所示:登陆界面主菜单退出系统取款交费转账修改密码存款查询余额启动图2-2程序流程图2.3.2系统实施本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示:图2-3登陆界面代码如下:namespaceWindowasd{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}intc;publicstaticstringlockID;privatevoidbutton4_Click(objectsender,EventArgse){maskedTextBox1.Text=;}privatevoidbutton3_Click(objectsender,EventArgse){if((maskedTextBox2.Text.Trim()!=)){SqlConnectionconn=newSqlConnection(@DataSource=.\SQLEXPRESS;AttachDbFilename=|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.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[mima].ToString()==1){MessageBox.Show(您的帐号已被锁定,请与银行管理员联系!);drr.Close();}else{drr.Close();stringsql=select*fromuserinfowhereyonghu='+maskedTextBox2.Text.Trim().ToString()+'andmima='+maskedTextBox1.Text.Trim().ToString()+';SqlCommandcmd=newSqlCommand(sql,conn);SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()){maskedTextBox2.Text=dr[yonghu].ToString();Form2frm=newForm2();frm.Show();this.Hide();}else{if(this.c++3){MessageBox.Show(您密码不正确,请重新输入!,提示!,MessageBoxButtons.OK,MessageBoxIcon.Error);maskedTextBox2.Text=;maskedTextBox1.Text=;}else{dr.Close();stringsql1=updateuserinfosetmima='1'whereyonghu='+maskedTextBox2.Text.Trim()+';SqlCommandcmd1=newSqlCommand(sql1,conn);if(cmd1.ExecuteNonQuery()==1){MessageBox.Show(您已经输入超过三次,该帐号将被锁定,请联系银行管理员!,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);}}}}}else{MessageBox.Show(账号不正确);}conn.Close();}else{MessageBox.Show(请输入卡号与密码!,警告!!!!,MessageBoxButtons.OK,MessageBoxIcon.Warning);maskedTextBox2.Text=;maskedTextBox1.Text=;;}}privatevoidbutton1_Click(objectsender,EventArgse){Application.Exit();}privatevoidForm1_Load(objectsender,EventArgse){}}(2)ATM自动取款机服务界面,主菜单可以实现以下服务,其界面如图2-4所示:图2-4主菜单代码如下:namespaceWindowasd{publicpartialclassForm2:Form{publicForm2(){InitializeComponent();}privatevoidbutton2_Click(objectsender,EventArgse){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();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();frm.Show();this.Hide();}privatevoidForm2_Load(objectsender,EventArgse){}}}(3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图2-5所示:图2-5:取款界面代码如下:namespaceWindowasd{publicpartialclassForm3:Form{publicForm3(){InitializeComponent();}privatevoidbutton3_Click(objectsender,EventArgse){Form2frm=newForm2();frm.Show();this.Hide();}privatevoidbutton2_Click(objectsender,EventArgse){maskedTextBox1.Text=;}privatevoidbutton1_Click(objectsender,EventArgse){SqlConnectionconn=newSqlConnection(@DataSource=.\
本文标题:C#课程设计—自动取款机模拟软件设计解读
链接地址:https://www.777doc.com/doc-1879666 .html