C/S结构用户界面设计

发布时间 2024-01-09 15:20:02作者: wardream

C/S结构用户界面设计

 


【实验编号】

10003809547j   图形用户界面设计

【实验学时】

8学时

【实验环境】

l  所需硬件环境为微机;

l  所需软件环境为Microsoft Visual Studio 2013

【实验内容】

编写一整套Mis系统UI界面,Mis系统名称自拟,尽量运用到如下控件:

l  窗体

l  菜单

l  工具栏

l  状态栏控件

l  标签控件

l  按钮控件

l  文本框控件

l  单选按钮控件

l  复选框控件

l  列表框控件

l  组合框控件

l  分组框控件

l  面板控件

l  图片框控件

l  定时器控件

l  滚动条控件

l  月历控件

 

【关键步骤】

ico原图

 

 

背景原图

 

数据库连接代码(Dao)

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Data.SqlClient;

 

namespace ACE

{

  

    internal class Dao

    {

        SqlConnection sc;

        public SqlConnection connect()

        {

            String str = @"Data Source = LEGION_XIMENG; Initial Catalog = ACEDB; Integrated Security = True";

            sc = new SqlConnection(str);//创建数据库连接

            sc.Open();//打开数据库

            return sc; //返回连接对象

        }

       

        public SqlCommand command(String sql)

        {

            SqlCommand cmd = new SqlCommand(sql,connect());

            return cmd;

        }

 

        public int Execute(string sql)//更新操作

        {

            return command(sql).ExecuteNonQuery();

        }

 

        public SqlDataReader read(String sql)//读取操作

        {

            return command(sql).ExecuteReader();

        }

 

        public void DaoClose()

        {

            sc.Close();

        }

 

    }

}

 

主页面及登录相关代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace ACE

{

    public partial class Form1  : Form

    {

        public Form1()

        {

            InitializeComponent();

            this.BackgroundImage = Image.FromFile(@"C:\Users\27769\Desktop\work\c#\ACE\ACE\images\ACE.png");

            this.BackgroundImageLayout = ImageLayout.Stretch;

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            if (textBox1.Text != "" && textBox2.Text != "")

            {

                login();

            }

            else

            {

                MessageBox.Show("输入有空,请重新输入");

            }

        }

 

        public void login()

        {

            if (radioButtonUser.Checked == true)

            {

                Dao dao = new Dao();

                string sql = "select * from t_user where id = '" + textBox1.Text + "' and psw = '" + textBox2.Text + "'";

                IDataReader dc = dao.read(sql);

                if (dc.Read())

                {

 

                    Data.UID = dc["id"].ToString();

                    Data.UName = dc["name"].ToString();

 

                    MessageBox.Show("登陆成功,开始意识训练吧!");

 

                    ACER1 ACER =new ACER1();

                    this.Hide();

                    ACER.ShowDialog();

                    this.Show();

 

                }

                else

                {

                    MessageBox.Show("登陆失败,请重新登录");

                }

 

                dao.DaoClose();

 

                //MessageBox.Show(dc[0].ToString() + dc["name"].ToString());

 

               

            }

            else if (radioButtonAdmin.Checked == true)

            {

                Dao dao = new Dao();

                string sql = "select * from t_admin where id = '" + textBox1.Text + "' and psw = '" + textBox2.Text + "'";

                //MessageBox.Show(sql);

                IDataReader dc = dao.read(sql);

                if (dc.Read())

                {

 

                    

 

                    MessageBox.Show("登陆成功,欢迎ACE意识训练系统管理员");

 

                    Admin1 Admin = new Admin1();

                    this.Hide();

                    Admin.ShowDialog();

                    this.Show();

                }

                else

                {

                    MessageBox.Show("登陆失败,请重新登录");

                }

 

                dao.DaoClose();

 

            }

            else

            {

                MessageBox.Show("登陆失败,请选择身份");

            }

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

 

        }

 

        private void Form1_Load(object sender, EventArgs e)

        {

 

        }

 

       

    }

}

 

意识体管理,包含意识体数据的增删改查

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace ACE

{

    public partial class Admin2 : Form

    {

        public Admin2()

        {

            InitializeComponent();

            this.BackgroundImage = Image.FromFile(@"C:\Users\27769\Desktop\work\c#\ACE\ACE\images\ACE.png");

            this.BackgroundImageLayout = ImageLayout.Stretch;

 

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            admin2_1 admin = new admin2_1();

            admin.ShowDialog();

            Table();

        }

 

 

        private void Admin2_Load(object sender, EventArgs e)

        {

            Table();

            String id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取id

            String name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取id

            label1.Text = id;

            label2.Text = name;

        }

 

        public void Table()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person";

            IDataReader dc = dao.read(sql);

            while(dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        //根据编号查询

        public void TableID()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person where id = '"+textBox1.Text+"'";

            IDataReader dc = dao.read(sql);

            while (dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        //根据名称查询

        public void TableName()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person where name like '%" + textBox2.Text + "%'";

            IDataReader dc = dao.read(sql);

            while (dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            try

            {

                String id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取id

                String name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取id

                label1.Text = id;

                label2.Text = name;

                DialogResult dr = MessageBox.Show("确认删除","信息提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);

                if(dr == DialogResult.OK)

                {

                    String sql = "delete from t_person where id = '" + id + "'";

                    Dao dao = new Dao();

                    if(dao.Execute(sql)>0)

                    {

                        MessageBox.Show("删除成功");

                        Table();

                    }

                    else

                    {

                        MessageBox.Show("删除失败"+sql);

                    }

                }

            }

            catch

            {

                MessageBox.Show("请先选中意识体!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

            }

        }

 

        private void dataGridView1_Click(object sender, EventArgs e)

        {

            String id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取id

            String name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取id

            label1.Text = id;

            label2.Text = name;

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            try

            {

                string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

                string name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();

                string sex = dataGridView1.SelectedRows[0].Cells[2].Value.ToString();

                string birthday = dataGridView1.SelectedRows[0].Cells[3].Value.ToString();

                string number = dataGridView1.SelectedRows[0].Cells[4].Value.ToString();

                Admin2_2 admin = new Admin2_2(id,name,sex,birthday,number);

                admin.ShowDialog();

                Table();

            }

            catch

            {

                MessageBox.Show("ERROR");

            }

           

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

            TableID();

        }

 

        private void button6_Click(object sender, EventArgs e)

        {

            TableName();

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            Table();

            textBox1.Text = "";

            textBox2.Text = "";

        }

 

        private void textBox1_TextChanged(object sender, EventArgs e)

        {

 

        }

 

        private void textBox2_TextChanged(object sender, EventArgs e)

        {

 

        }

 

    }

}

其中包含即时显示所选项的功能

 

用户使用同理,以下为用户使用意识体训练的代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Reflection.Emit;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

 

namespace ACE

{

    public partial class ACER2 : Form

    {

        public ACER2()

        {

            InitializeComponent();

            this.BackgroundImage = Image.FromFile(@"C:\Users\27769\Desktop\work\c#\ACE\ACE\images\ACE.png");

            this.BackgroundImageLayout = ImageLayout.Stretch;

        }

 

        private void ACER2_Load(object sender, EventArgs e)

        {

            Table();

            String id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取id

            String name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取id

            label1.Text = id;

            label2.Text = name;

        }

 

        public void Table()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person";

            IDataReader dc = dao.read(sql);

            while (dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        public void TableID()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person where id = '" + textBox1.Text + "'";

            IDataReader dc = dao.read(sql);

            while (dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        //根据名称查询

        public void TableName()

        {

            dataGridView1.Rows.Clear();//清空旧数据

            Dao dao = new Dao();

            String sql = "select * from t_person where name like '%" + textBox2.Text + "%'";

            IDataReader dc = dao.read(sql);

            while (dc.Read())

            {

                dataGridView1.Rows.Add(dc[0].ToString(), dc[1].ToString(), dc[2].ToString(), dc[3].ToString(), dc[4].ToString());

            }

            dc.Close();

            dao.DaoClose();

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

            TableID();

        }

 

        private void button6_Click(object sender, EventArgs e)

        {

            TableName();

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            string id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();

            int number = int.Parse(dataGridView1.SelectedRows[0].Cells[4].Value.ToString());

            if (number < 1)

            {

                MessageBox.Show("意识体余量不足,请等待");

            }

            else

            {

                string sql = "insert into t_training(uid,pid,datetime) values('"+Data.UID+"','"+id+"',getdate());update t_person set number=number-1 where id='"+id+"'";

                Dao dao = new Dao();

                if(dao.Execute(sql) > 1)

                {

                    MessageBox.Show(Data.UName+"使用意识体"+id+"训练,训练开始");

                    Table();

                }

            }

        }

 

        private void dataGridView1_Click(object sender, EventArgs e)

        {

            String id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//获取id

            String name = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//获取id

            label1.Text = id;

            label2.Text = name;

        }

 

        private void textBox1_TextChanged(object sender, EventArgs e)

        {

           

        }

 

        private void textBox2_TextChanged(object sender, EventArgs e)

        {

 

        }

    }

}

过多的不再杂叙,详情看源码(sln工程)

【程序运行截图】

 

 

 

 

 

 

 

 

 

 

 

 

【实验体会】

Cs系统由于是从网上找视频一步步搭建的,所以很多人的系统其实都大同小异,不过我还是在系统上添加了一部分我个人的风格。

首先是整体的功能框架,我设想的是ace意识训练系统,灵感来源于我最近在玩的一款游戏,图标和背景也都从游戏中截图并做修改

然后是功能方面,管理员管理意识体,ACER(训练人员)使用意识体进行训练和归还,并且我因此修改了一部分数据库,让意识体的各项数据进行了储存与读取

C#的界面编写个人感觉比java简单很多,语法并不复杂,并且主要图形界面都是直接拖动编辑的,整个搭建过程还是比较有趣的