zoukankan      html  css  js  c++  java
  • 三个数混合运算和三层架构

    1,数据访问层

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Windows.Forms;
    
    namespace SQL1
    {
        class DB1//数据访问层!
        { 
    
            public SqlConnection conn = new SqlConnection();
            public  DataSet ds = new DataSet();
            public DataTable dt = new DataTable();
            public SqlDataAdapter sda = new SqlDataAdapter();
            public void dbcon(string constr)//连接数据库!
            {
                try
                {
                    conn = new SqlConnection(constr);
                }
                catch(Exception e)
                {
                    MessageBox.Show("数据库连接失败!" +e.ToString());
                }
     
            }
            public void opens()//打开数据库!
            {
                conn.Open();
            }
            public void closes()//关闭数据库!
            {
                conn.Close();
            }     
            public void Inster(string comstr)//插入数据!
            {
                SqlCommand comm = new SqlCommand(comstr,conn);
                try
                {
                    int a = comm.ExecuteNonQuery();
                    if (a > 0)
                    {
                        MessageBox.Show("保存成功!");
                    }
                    else
                    {
                        MessageBox.Show("保存失败!");
                    }
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.ToString());
                }
     
            }
            public void Read(string comstr)//读取数据!
            {
                sda = new SqlDataAdapter(comstr, conn);
                sda.Fill(ds);
                dt = ds.Tables[0];
     
            }
            public void del(string comstr)//删除数据!
            {
                SqlCommand comm = new SqlCommand(comstr,conn);
                int a = comm.ExecuteNonQuery();
                if (a > 0)
                {
                    MessageBox.Show("删除失败!");
                }
                else
                {
                    MessageBox.Show("删除成功!");
                }
            }
        }
    }

    2,业务逻辑层

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace SQL1
    {
        
        class DB2//业务逻辑层
        {
            DB1 db1 = new DB1();
            public string number1;
            public string number2;
            public string number3;
            public string operation1;
            public string operation2;
            private int i = 0;
            string constr = "Data Source=.;Initial Catalog=Tiku1;Integrated Security=True";
            public void lianjie()//连接数据库!
            {
                db1.dbcon(constr);
            }
            public void charu(string a, string f1, string b, string f2, string c)//插入数据!
            {
                lianjie();
                string comstr = @"insert into Ti(number1,operation1,number2,operation2,number3) values('" + a + "','" + f1 + "','" + b + "','"+f2+"','"+c+"')";
                db1.opens();
                db1.Inster(comstr);
                db1.closes();
            }
            public void duqu(string comstr)//读出题
            {
                lianjie();       
                db1.Read(comstr);
                if (i < db1.dt.Rows.Count)
                {
                    number1 = db1.dt.Rows[i][0].ToString().Trim();
                    operation1 = db1.dt.Rows[i][1].ToString().Trim();
                    number2 = db1.dt.Rows[i][2].ToString().Trim();
                    operation2 = db1.dt.Rows[i][3].ToString().Trim();
                    number3 = db1.dt.Rows[i][4].ToString().Trim();
                    if (i == (db1.dt.Rows.Count - 1))
                {
                    MessageBox.Show("你的题做完了,去休息吧!一会我们继续!");
                }
    
                }
                i++;
             
            }
            public void qingchu(string sltstr)//清除题库
            {
                lianjie();
                db1.opens();
                db1.del(sltstr);
                db1.closes();
    
            }
            public void jisuan(double a, string operation1,double b, string operation2,double c, string rightanswer)
            {
                bool aa = false;
                if (operation1 == "+" || operation1 == "-")
                {
                    if (operation2 == "*" || operation2 == "/")
                    {
                        aa = true;
                    }
                    else
                    {
                        aa = false;
                    }
    
                }
                else
                {
                    aa = false;
                }
                if (aa == true)
                {
                    Factionsss fass = new Factionsss(operation2);
                    double answer1 = fass.cal(b, c);
                    fass = new Factionsss(operation1);
                    double answer = fass.cal(a, answer1);
                    if (rightanswer == answer.ToString())
                    {
                        MessageBox.Show("回答正确!");
                    }
                    else
                    {
                        MessageBox.Show("回答错误!");
                    }
    
                }
                else
                {
                    Factionsss fas = new Factionsss(operation1);
                    double ans = fas.cal(a, b);
                    fas = new Factionsss(operation2);
                    double answer = fas.cal(ans, c);
                    if (rightanswer == answer.ToString())
                    {
                        MessageBox.Show("回答正确!");
                    }
                    else
                    {
                        MessageBox.Show("回答错误!");
                    }
    
     
                }
     
            }
            
        }
    }

    3,表现层代码

    form1代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace SQL1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            DB2 db2 = new DB2();
           
             
            private void button1_Click(object sender, EventArgs e)
            {
             
                db2.charu(textBox1.Text, comboBox1.Text, textBox2.Text, comboBox2.Text, textBox3.Text);
                textBox1.Clear();
                textBox2.Clear();
                textBox3.Clear();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                string sltstr = @"truncate table Ti";//清除表中数据
                db2.qingchu(sltstr);
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                Form2 fas = new Form2();
                fas.ShowDialog();
            }
        }
    }

    form2代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace SQL1
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            DB2 db = new DB2();
            private void button1_Click(object sender, EventArgs e)
            {
                chuti();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void textBox4_KeyDown(object sender, KeyEventArgs e)
            {
                double a = double.Parse(textBox1.Text);
                double b = double.Parse(textBox2.Text);
                double c = double.Parse(textBox3.Text);
                string operation1 = label1.Text;
                string operation2 = label2.Text;
                if (e.KeyCode == Keys.Enter)
                {
                    db.jisuan(a, operation1, b, operation2, c, textBox4.Text);
                    textBox4.Clear();
                    chuti();
                }
                
    
            }
    
            private void Form2_Load(object sender, EventArgs e)
            {
                chuti();
            }
    
            private void chuti()
            {
                string comstr = @"select  number1,operation1,number2,operation2,number3  from Ti";
                db.duqu(comstr);
                textBox1.Text = db.number1;
                textBox2.Text = db.number2;
                textBox3.Text = db.number3;
                label1.Text = db.operation1;
                label2.Text = db.operation2;
     
            }
        }
    }
    

    4, 计算类以及策略模式的实现

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace SQL1
    {
        interface Iation//定义计算接口
        {
            double Calation(double a, double b);
        }
        class Add : Iation//加法
        {
            public double Calation(double  a, double b)
            {
                return a + b;
            }
        }
        class Sub : Iation//减法
        {
            public double Calation(double a, double b)
            {
                return a - b;
            }
        }
        class Mul : Iation//乘法
        {
            public double Calation(double a, double b)
            {
                return a * b;
            }
        }
        class Div : Iation//除法
        {
            public double Calation(double a, double b)
            {
                if (b == 0)
                {
                    throw new Exception("除数不能为零!");
                }
                else
                {
                    return a / b;
                }
            }
        }
        class Factionsss//实现策略模式!
        {
            private Iation clation;
            public Factionsss(string operation)
            {
                switch (operation)
                {
                    case "+":
                        clation = new Add();
                        break;
                    case "-":
                        clation = new Sub();
                        break;
                    case "*":
                        clation = new Mul();
                        break;
                    case "/":
                        clation = new Div();
                        break;
                }
     
            }
            public double cal(double a, double b)
            {
                return clation.Calation(a, b);
            }
        
        }
    }

    5,测试

    6.总结:

    不知道这样写属不属于三层架构,我倒目前为止是这样理解的!也请老师指正一下!???

  • 相关阅读:
    一只iPhone的全球之旅
    iOS开发之在地图上绘制出你运行的轨迹
    iOS开发之一些字符串常用的代码
    json格式化和查看工具
    iOS开发之结合asp.net webservice实现文件上传下载
    更改GROOVE的文件夹位置
    调试Windows Service
    从数据库中获取Insert语句
    iOS开发学习笔记(一)
    《影响力》的影响
  • 原文地址:https://www.cnblogs.com/lizanqirxx/p/5042356.html
Copyright © 2011-2022 走看看