基于COM技术的ATM自动存款机实现(C#版)

本文介绍了一个基于.NET 4.0和C#的ATM自动存款机实现,利用COM技术进行组件设计。功能包括存款、取款、查询、转账和修改密码。客户端包括多个窗体类,COM组件包含数据库连接函数和业务操作函数,数据库设计包括用户、卡信息、交易和管理员表,使用存储过程。程序实现了基本的ATM功能,但存在安全性问题和功能不完善等缺点。
摘要由CSDN通过智能技术生成

说明:程序是在.NET 4.0下用C#语言编写

      COM组件也是用C#编写

转载请标明出处:http://blog.csdn.net/u012027907

一.  功能需求: 

1. 能存款

2. 能取款

3. 能查询余额及交易明细

4. 能转账

5. 能修改密码

二.  总体设计计:

1.    客户端设计:

(1)  Admin类(登录窗体)

(2)  MainForm类(主窗体)

(3)  WithDraw类(取款窗体)

(4)  Deposit类(存款窗体)

(5)  TransForm类(转账窗体)

(6)  Query类(查询余额及明细窗体)

(7)  ModifyPwd类(修改密码窗体)

(8)  OpenAccountInfo类(开户窗体)

2.    COM组件端的函数设计:

(1)  连接数据库函数组

A.  ReadSqlConnString()(读取连接字符串)

B.  GetConnection()(打开与数据库的连接)

C.  Con_Close()(关闭与数据库的连接)

D.  GetDataSet()(将查询结果表填充在DataSet中)

(2)  Proc_Admin()(用户登录验证)

(3)  Manager_Admin(管理员登录验证)

(4)  WhithDraw()(取款)

(5)  Deposit()(存款)

(6)  TransForm()(转账)

(7)  Query()(查询)

(8)  ModifyPwd()(修改密码)

(9)  Proc_CreateAccount()(开户)

3.    数据库设计:

(1)     表设计

userInfo(用户信息表)

cardInfo(卡信息表)

transInfo(交易信息表)

manager(管理员信息表)

(2)     增加约束条件

如:设置主键

电话号码必须为数字

身份证号为18位

存款类型:活期、定期及定活两便三者之一

等约束。

(3)    创建存储过程

(proc_createAccount)开户存储过程

(proc_takeMoney)存取款存储过程

(proc_randCardNo)随机产生卡号存储过程

(proc_tranMoney)转账存储过程

三.  详细设计:

   1. 客户端设计:

(1)  登录窗体

(2)主窗体

(3)取款窗体

(4)存款窗体

(5)查询余额及明细窗体


(6)修改密码窗体

(7)开户窗体

 

2.COM组件端的函数设计:

(8) 连接数据库函数组

A.  ReadSqlConnString()(读取连接字符串)

#region 读取连接字符串
        ///<summary>
        ///
        ///</summary>
        public static string ReadSqlConString()
        {
            StreamReader sr = new StreamReader("DatabaseLinkString.ini");
            string DatabaseLinkString = "";
            while (!sr.EndOfStream)                    
            {
                DatabaseLinkString += sr.ReadLine();       
            }
            sr.Close();
            return DatabaseLinkString;
        }
        #endregion
B.GetConnection()(打开与数据库的连接)
#region 打开与数据库的连接
        ///<summary>
        ///打䨰开a与®?数ºy据Y库a的Ì?连¢?接¨®
        ///</summary>
        ///<returns>返¤¦Ì回?SqlConnection对?象¨®</returns>
        public static SqlConnection GetConnection()
        {
            try
            {
               // StrConn = ReadSqlConString1(ID,Pwd);
                StrConn = ReadSqlConString();
                conn = new SqlConnection(StrConn); //用®?SqlConnection对?
                if (conn.State != ConnectionState.Open)
                    conn.Open(); //打开与数据库的连接¨®
                return conn; //返¤¦Ì回?SqlConnection对?象¨®
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

        }
        #endregion
C.Con_Close()(关闭与数据库的连接)
  #region 关?闭À?数ºy据Y库a连¢?接¨®
        ///<summary>
        ///关?闭À?数ºy据Y库a连¢?接¨®
        ///</summary>
        public void Con_Close()
        {
            if (conn.State == ConnectionState.Open) //判D断?数ºy据Y库a是º?否¤
            {
                conn.Close();   //关?闭À?数ºy据Y库a连¢?接¨®
                conn.Dispose(); //释º¨ª放¤?My_con
            }
        }
        #endregion
D.GetDataSet()(将查询结果表填充在DataSet中)
#region 执¡ä行DSQL语®?句?,返¤¦Ì回?DataSet对?象¨®
        /// <summar
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值