C#程序超市管理计划系统.doc
/河南机电高等专科学校学生课程设计报告实验课程名称 c#程序设计及应用教程 开课实验室 实字3号楼 301 系、部 计科系 年级 11 专业班 软件111(对口 学 生 姓 名 胡玉祥 学 号 开 课 时 间 2012 至 2013 学年第 一 学期总 成 绩教师签名C#程序设计课程设计报告 2013年 1 月 15日系部计科系年级、专业、班软件111姓名 课程名称C#程序设计项目名称超市管理系统指导教师 教师评语教师签名:年 月 日一、 课程设计目的经过一学期对c#开发语言的学习,利用本学期所学的知识进行一次简单的检测,因此做了本系统。二、实验环境装有Visual studio 2010 和sql数据库的计算机一台。三、实验过程及内容1、课题分析及要求:利用C#编程语言,结合数据库完成本系统开发。需包含模块:进货登记、销售记录管理、库存管理、商品查询、人员管理。2、程序分析:本系统根据要求可分为:登录模块,管理员模块和普通用户模块,其中,管理员模块中又可分为:进货登记、销售记录管理、库存管理、商品查询、人员管理。3、程序流程图(如上图所示)4、程序代码:连接数据库的类Sjk的代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;using System.Data;namespace chaoshiguanlixitong class Sjk public string s = "" public SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=csgl; Integrated Security=SSPI"); public string cx(string sql) DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn) s = "" try adapter.Fill(dt); foreach (DataRow dr in dt.Rows) s = dr0.ToString(); catch (Exception ex) s = ex.ToString(); return s; public string cx(string sql, int i) s = "" DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn) try adapter.Fill(dt); foreach (DataRow dr in dt.Rows) for (int k = 0; k < i; k+) s += drk.ToString() + "," catch (Exception ex) s = ex.ToString(); return s; public string tj(string sql) s = "" SqlCommand myupdater = new SqlCommand(sql, conn); try conn.Open(); myupdater.ExecuteNonQuery(); conn.Close(); catch (Exception ex) s = ex.ToString (); conn.Close(); return s; public int qh(string sql) int i = 0; DataTable dt1 = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn) try adapter.Fill(dt1); foreach (DataRow dr1 in dt1.Rows) i += int.Parse(dr10.ToString(); finally return i; public int xg(string sql) int i=-1; using (SqlCommand cmd = new SqlCommand(sql, conn) try conn.Open(); i = cmd.ExecuteNonQuery(); conn.Close(); catch (Exception ) conn.Close(); return i; 登录窗体Form1的代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace chaoshiguanlixitong public partial class Form1 : Form public static string yhm; public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) if (textBox1.Text = "" | textBox2.Text = "") label3.Text = "账号或密码不能为空!" else string m = "select 密码 from denglu where 账号=" + textBox1.Text + "" string g = "select 管理员 from denglu where 账号=" + textBox1.Text + "" Sjk d = new Sjk(); if (d.cx(m).Trim() = textBox2.Text) yhm = textBox1.Text; if (d.cx(g).Trim() = "t") Form2 f2 = new Form2(); f2.Show(); else Form3 f3 = new Form3(); f3.Show(); this.Hide(); else label3.Text = "账号或密码错误,请重新输入!" 管理员窗口Form2的代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace chaoshiguanlixitong public partial class Form2 : Form Sjk shujuku = new Sjk(); /定义一个数据库的对象 public static string hh, hl;/想xinhuo窗体传递参数 public Form2() InitializeComponent(); private void Form2_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“csglDataSet1.xsb”中。您可以根据需要移动或删除它。 this.xsbTableAdapter1.Fill(this.csglDataSet1.xsb); / TODO: 这行代码将数据加载到表“csglDataSet1.spxx”中。您可以根据需要移动或删除它。 this.spxxTableAdapter1.Fill(this.csglDataSet1.spxx); / TODO: 这行代码将数据加载到表“csglDataSet.denglu”中。您可以根据需要移动或删除它。 this.dengluTableAdapter.Fill(this.csglDataSet.denglu); / TODO: 这行代码将数据加载到表“csglDataSet.spxx”中。您可以根据需要移动或删除它。 this.spxxTableAdapter.Fill(this.csglDataSet.spxx); string h= "select 用户名 from denglu where 账号=" + Form1.yhm + "" label2.Text = Form1.yhm ; this.Text = shujuku .cx(h)+ "(管理员用户)" private void button1_Click(object sender, EventArgs e) DialogResult k1 = MessageBox.Show("你确定要退出当前用户切换到另一用户?", "", MessageBoxButtons.YesNo); if (k1 = DialogResult.Yes) this.Close(); Form1 f1 = new Form1(); f1.Show(); private void button2_Click(object sender, EventArgs e) DialogResult k1 = MessageBox.Show("你确定要退出当前用户?", "", MessageBoxButtons.YesNo); if (k1 = DialogResult.Yes) Application.Exit(); private void button3_Click(object sender, EventArgs e) int sl=0; if (jhspbh.Text = "" | jhsl.Text = "") MessageBox.Show("商品编号或数量不能为空!"); else try /判断输入的进货数量是否为数字 sl = int.Parse(jhsl.Text); catch MessageBox.Show("请输入正确的商品数量!(商品数量必须为大于0的数字)"); jhsl.Text = "" if (sl > 0) string sql = "update spxx set 数量=数量+" + jhsl.Text + "where 商品编号=" + jhspbh.Text + "" int i=shujuku.xg(sql); if (i>=0) if (i = 0) hh = jhspbh.Text; hl = jhsl.Text; xinhuo xh = new xinhuo(); xh.Show(); xh.Visible = false; if (xh.ShowDialog() = DialogResult.OK) MessageBox.Show("商品添加成功!"); jhspbh.Text = "" jhsl.Text = "" this.spxxTableAdapter.Fill(this.csglDataSet.spxx); else MessageBox.Show("打开数据库失败,请重试!"); private void button4_Click(object sender, EventArgs e) /商品查询中的“查询”按钮 if(spcx.Text ="") MessageBox.Show("你还没输入要查询的商品编号呢!"); else string sql = "select * from spxx where 商品编号=" + spcx.Text + "" string j = shujuku.cx(sql, 7).Split(,); label12 . Text = j0.ToString(); label13 . Text = j1.ToString(); label15 . Text = j2.ToString(); label17 . Text = j3.ToString(); label19 . Text = j4.ToString(); label21 . Text = j5.ToString(); label23 . Text = j6.ToString(); sql = "select 出售数量 from xsb where 商品编号=" + spcx.Text + "" label25.Text = shujuku.qh(sql).ToString(); private void button7_Click(object sender, EventArgs e) /人员管理中的删除按钮 if(ryglxm.Text ="") MessageBox.Show("你还没输入要删除的账号呢,不能删除!"); else if (ryglxm.Text = label2.Text) /判断要删除的是不是当前登陆用户 MessageBox.Show("你不能删除当前登陆的账号哦!"); else string sql = "delete from denglu where 账号="+ryglxm.Text +"" shujuku.cx(sql); this.dengluTableAdapter.Fill(this.csglDataSet.denglu); private void button8_Click(object sender, EventArgs e) /人员管理中的提交按钮 char s=f; if (radioButton1.Checked) s=t; if (textBox1.Text = "" | textBox2.Text = "" | textBox3.Text = "" | textBox4.Text = "") MessageBox.Show("用户名,账号和密码不能为空哦!"); else if (textBox3.Text != textBox4.Text) MessageBox.Show("确认密码和密码不一样哦!"); else string sql = "insert into denglu (用户名,账号,密码,管理员)values(" + textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + "," + s + ")" string i=shujuku.tj(sql); if (i = "") MessageBox.Show("添加用户成功!");this.dengluTableAdapter.Fill(this.csglDataSet.denglu); else MessageBox.Show(i); private void button5_Click(object sender, EventArgs e) /新货上架 if (tjhh.Text = "") MessageBox.Show("货号不能为空!"); else string sql ="select * from spxx where 商品编号="+ tjhh.Text +"" string s1 = shujuku.cx(sql); if(s1!="") MessageBox.Show("这件货物存在了哦!"); else hh = tjhh.Text ; xinhuo xh = new xinhuo(); xh.Show(); xh.Visible = false; if (xh.ShowDialog() = DialogResult.OK) MessageBox.Show("添加新货成功!"); this.spxxTableAdapter1.Fill(this.csglDataSet1.spxx); private void button6_Click(object sender, EventArgs e) /货物下架 if (xjhh.Text = "") MessageBox.Show("货号不能为空!"); else string sql = "select * from spxx where 商品编号=" + xjhh.Text + "" string s1 = shujuku.cx(sql); if (s1 = "") MessageBox.Show("这个货物不存在哦!不能删除!"); else DialogResult xh=MessageBox .Show ("你确定要删除这件货物?n如果是请点击确定按钮。","",MessageBoxButtons .YesNo ); if (xh = DialogResult.OK) sql = "delete from spxx where 商品编号="+ryglxm.Texti +"" shujuku.cx(sql); this.spxxTableAdapter1.Fill(this.csglDataSet1.spxx); private void dataGridView4_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e) Int number = Convert.ToInt32(dataGridView4.Rowse.RowIndex.Cells"数量DataGridViewTextBoxColumn2".Value); if (number >100) dataGridView4.Rowse.RowIndex.DefaultCellStyle.BackColor = Color.Red; else if (number<50) dataGridView4.Rowse.RowIndex.DefaultCellStyle.BackColor = Color.Blue; else dataGridView4.Rowse.RowIndex.DefaultCellStyle.BackColor = Color.White; private void button9_Click(object sender, EventArgs e) string sql = "select sum(销售量) from spxx " label39.Text =shujuku.cx(sql); sql = "select sum(销售金额) from spxx" label40.Text = shujuku.cx(sql); 普通用户的窗口Form3的代码: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;using System.Data.SqlClient;namespace chaoshiguanlixitong public partial class Form3 : Form public static string whe="" string s=new string 50; public int k=0; Sjk shujuku = new Sjk(); public Form3() InitializeComponent(); private void Form3_Load(object sender, EventArgs e) SqlConnection conn = new SqlConnection("Data Source=(local);Initial Catalog=csgl; Integrated Security=SSPI"); /连接对象 string sql = "select 用户名,账号 from denglu where 账号=" + Form1.yhm + "" DataTable dt = new DataTable(); using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conn) try a