C#课程设计—自动取款机模拟软件设计
更新时间:2023-08-27 23:57:01 阅读量: 教育文库 文档下载
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
**学院
课程设计说明书
(2012/2013学年第一学期)
课程名称 : 软件程序设计 题 目 : 自动提款机模拟软件 专业班级 :
学生姓名 : 放羊娃 学 号: 指导教师 :
设计周数 : 2周
设计成绩 :
2013年1月18日
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
目 录
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、参考文献
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
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)功能方面:取款、查询余额、修改密码、记录查询、交费、转账。
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
2.2.1 数据库的分析与设计
由自动提款机模拟软件系统的需求分析我们可以知道,本系统应为windows应用窗体的设计,据提供的实验环境及以前所学的理论知识,采用SQL数据库,根据自动提款机模拟软件的功能要求,在Database1数据库中建立两张表来存储信息,分别为userinfo和recordinfo。
userinfo表中用来存储用户的卡号,密码,用户名,余额及用于卡号锁定的字段
recordInfo表中用于存储用户的卡号,用户名,存取结余,主要用于数据库的更新操作。
表2-2 用户操作信息表(recordInfo)
2.2.2逻辑层次的设计
本次课设的自动提款机模拟软件系统可以使用户进行登录、取款、转账、查询余额、修改密码、记录查询和交费等基本业务。
ATM自动提款机结构基本框图:
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
图2-1 ATM系统的基本框图
2.3程序设计
用户进入后,点击用户登录进入登陆界面,在登录窗口中输入卡号和密码,判断卡号与
密码是否正确,若卡号与密码正确则进入用户操作界面,并根据用户的相关操作给用户提供相应的服务。若卡号与密码不正确,弹出对话框提示用户确认卡号和密码错误后重新输入,并对输入错误次数进行计数,若输入密码错误次数大于3次,则锁定该帐号。
2.3.1 程序流程图
软件设计程序流程图如图2-2所示:
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
图2-2 程序流程图 2.3.2系统实施
本系统主要通过运用C#的Windows窗体的设计进行开发和实施,主要通过如下几个功能模块来完成系统的具体的实施过程:
(1)用户登陆窗体:通过登陆界面可以进行用户的登陆过程,进而实现相应的用户操作。即当用户名与密码都正确时用户就可以登陆进行所需的操作,其界面如图2-3所示:
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
图2-3 登陆界面
代码如下:
namespace Windowasd {
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() != "")) {
SqlConnection Timeout=30;User Instance=True");
conn
=
new
SqlConnection(@"Data Security=True;Connect
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
conn.Open();
string ssql = "select * from userinfo where yonghu='" + maskedTextBox2.Text.Trim() + "'"; 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() + "' ";
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
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["yonghu"].ToString(); Form2 frm = new Form2(); frm.Show(); this.Hide(); } else {
if (this.c++ < 3) {
MessageBox.Show("您密码不正确,请重新输入!", "提示!", MessageBoxButtons.OK, MessageBoxIcon.Error);
maskedTextBox2.Text = "";
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
maskedTextBox1.Text = "";
} else {
dr.Close();
string sql1 = "update userinfo set mima='1' where yonghu='" + maskedTextBox2.Text.Trim() + "'";
SqlCommand cmd1 = new SqlCommand(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 = ""; ; } }
private void button1_Click(object sender, EventArgs e) {
Application.Exit(); }
private void Form1_Load(object sender, EventArgs e) { }
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
}
(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(); frm.Show(); this.Hide(); }
private void button5_Click(object sender, EventArgs e) {
Form4 frm = new Form4(); frm.Show();
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
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 frm = 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(object sender, EventArgs e) {
Form8 frm = new Form8(); frm.Show(); this.Hide(); }
private void Form2_Load(object sender, EventArgs e) {
} }
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
}
(3)取款窗体:通过该界面用户可以从自己的账户中进行取款操作,但是取款的金额必须在规定范围内且为100元的整数倍,否则无法进行操作,当用户余额不足以提取时提示余额不足,其界面如图2-5所示:
图2-5:取款界面 代码如下:
namespace Windowasd {
public partial class Form3 : Form {
public 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) {
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
maskedTextBox1.Text = ""; }
private void button1_Click(object sender, EventArgs e) {
SqlConnection Timeout=30;User Instance=True"); conn.Open();
string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID+ "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read();
decimal jine = Convert.ToDecimal(dr[2]);
decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); decimal change = sqje;
string presentname = Convert.ToString(dr[1]); string cardid = "'" + Form1.lockID + "'"; 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 + "'";
SqlCommand ccmd = new SqlCommand(ssql, conn); MessageBox.Show("取款成功"); int i = ccmd.ExecuteNonQuery(); if (i == 1) {
maskedTextBox1.Text = ""; } } else {
MessageBox.Show("本机只提供以百元为单位的金额,请正确输入金额!"); maskedTextBox1.Text = ""; } } else {
conn
=
new
SqlConnection(@"Data Security=True;Connect
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
MessageBox.Show("您的余额不足!"); 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(); }
private void button3_Click(object sender, EventArgs e) {
maskedTextBox1.Text = ""; }
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
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 Timeout=30;User Instance=True"); conn.Open();
string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID + "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read();
decimal jine = Convert.ToDecimal(dr[2]);
decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); string presentname = Convert.ToString(dr[1]); string cardid = "'" + Form1.lockID + "'"; decimal change = sqje;
string time = Convert.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 SqlCommand(ssql, conn); MessageBox.Show("存款成功!"); maskedTextBox1.Text = ""; int i = ccmd.ExecuteNonQuery(); if (i == 1) {
maskedTextBox1.Text = ""; } else {
MessageBox.Show("操作失败,请重试!", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
conn
=
new
SqlConnection(@"Data Security=True;Connect
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
else {
MessageBox.Show("本机只提供以百元为单位的金额,请正确输入金额!"); } }
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) {
SqlConnection
conn
=
new
SqlConnection(@"Data
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Timeout=30;User Instance=True"); conn.Open();
Security=True;Connect
string sql = "SELECT * FROM userinfo WHERE yonghu='" + Form1.lockID + "'"; SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader dr = cmd.ExecuteReader(); dr.Read();
decimal jine = Convert.ToDecimal(dr[2]); string wo = Convert.ToString(dr[1]);
decimal sqje = Convert.ToDecimal(maskedTextBox1.Text); dr.Close(); if (jine > sqje) {
MessageBox.Show("正在操作,请稍侯……"); decimal leftmoney = 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 where yonghu='" + maskedTextBox2.Text.Trim() + "'";
SqlCommand cmdd = new SqlCommand(sqql, conn); SqlDataReader drr = cmdd.ExecuteReader(); if (drr.Read()) {
decimal je = Convert.ToDecimal(drr[2]); string presentname = wo;
string cardid = "'" + Form1.lockID + "'"; 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); int n = cmmdd.ExecuteNonQuery(); if (n == 1) {
MessageBox.Show("转账成功!"); maskedTextBox2.Text = "";
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
maskedTextBox1.Text = ""; } else {
MessageBox.Show("转账失败!"); maskedTextBox2.Text = ""; maskedTextBox1.Text = ""; }
} else {
MessageBox.Show("操作失败,请重试!", "提示:", 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 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) { } } }
C#课程设计—自动取款机模拟软件设计,附软件界面截图、程序源代码和数据库设计,仅供学习使用。
(7)交费窗体:通过该界面用户可以自行交费,其界面如图2-8所示:
图2-8 交费窗口 代码如下:
namespace Windowasd {
public partial class Form6 : Form {
public Form6() {
InitializeComponent(); }
private 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 = "";
正在阅读:
C#课程设计—自动取款机模拟软件设计08-27
礼貌原则03-05
铁路营业线施工安全专项施工方案09-30
逻辑学复习12-10
假如我来当老师作文350字06-24
学年上海市虹口区英语中考一模卷 - 图文01-10
健康促进社区培训记录09-10
小学生一年级上拼音过关试卷06-06
合同违约方能否主张解除合同08-21
基于51单片机电子万年历论文05-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C#
- 设计
- 模拟软件
- 取款机
- 课程
- 自动
- Marketing management strategy Lecture 8
- 2015-2020年中国糖尿病治疗机市场未来发展趋势及投资战略研究报告
- 电大专科政治经济学A试题及答案按字母顺序排序
- 数据结构(C语言版)实验指导书
- 最详实的淘宝开店教程之三(支付宝独立注册)
- 实用现代汉语语法-刘月华
- 临床检验、腔镜检查、各种功能检查适应症与禁忌症
- 分析宜家家居成功营销策略看中国家具行业发展
- 淘宝发布宝贝规则
- 65(2)时间的计算(第二课时)
- 2015高考漫画作文指导
- 核能发电厂和新能源发电厂
- 窦桂梅葡萄沟说课稿(共7篇)
- 特种设备报审需提供的资料清单
- 自然辩证法在农业机械发展领域的应用
- 单片机汇编语言—冒泡排序
- 非道路移动机械排气污染防治办法
- 中国煤炭资源产业竞争态势专项调查及企业发展商机评估报告
- 1.3区域发展阶段与人类活动
- 化疗药物的配置与垃圾分类