2.10项目总结汇报

目录

[任务目标]****2

(1) 掌握应用系统设计流程;****2

(2) 回顾设计过程中的知识点:窗口、控件、事件、方法;****2

(3) 回顾数据库编程的知识点。****2

[任务解析]****2

第一章 小组成员分工****2

第二章 任务2.1 系统需求分析,链接(已完成)****2

第三章 任务2.2 系统登录界面的制作,链接(已完成)****2

第四章 任务2.3 系统主界面的制作,完成人,链接****2

第五章 任务2.4 系统数据库设计,完成人,链接****3

第七章 任务2.5 登录用户验证功能设计,****3

第八章 任务2.6 密码修改界面功能设计 完成人,链接****3

第十章 任务2.7 商品信息录入界面功能设计 完成人,链接****3

第十一章 任务2.8 商品信息查询修改界面功能设计 完成人,链接****3

第十二章 任务2.9 系统程序的部署 完成人,链接****3

《2.3 系统主界面的制作》具体要求:****3

《2.4系统数据库设计》具体要求:****5

《2.5 登录用户验证功能设计》具体要求:****6

《2.6 密码修改界面功能设计》具体要求:****8

《2.7 商品信息录入界面功能设计》具体要求:****10

《2.8 商品信息查询修改界面功能设计》具体要求:****12

《2.9 系统程序的部署》具体要求:****14

[任务目标]

(1) 掌握应用系统设计流程;
(2) 回顾设计过程中的知识点:窗口、控件、事件、方法;
(3) 回顾数据库编程的知识点。

[任务解析]

第一章 小组成员分工

小组分工.png

第二章 任务2.1 系统需求分析,链接(已完成)
完成人:石紫诚,连接https://www.jianshu.com/p/117127c452b8?utm
第三章 任务2.2 系统登录界面的制作,链接(已完成)
完成人:余清河 ,连接https://www.jianshu.com/p/54ff3dc6495a?utm_
第四章 任务2.3 系统主界面的制作,完成人,链接
完成人:刘德智,连接:https://www.jianshu.com/p/bfa7edb1ccd7
第五章 任务2.4 系统数据库设计,完成人,链接
完成人:徐振博,链接https://www.jianshu.com/p/9a4c35141bc6
第七章 任务2.5 登录用户验证功能设计,
完成人:徐振博,链接https://www.jianshu.com/p/cd767c154357
第八章 任务2.6 密码修改界面功能设计 完成人,链接
完成人:刘春燕,链接:https://www.jianshu.com/p/dfdf5a05f986
第十章 任务2.7 商品信息录入界面功能设计 完成人,链接
完成人:刘春燕,链接https://www.jianshu.com/p/1752084e86d2
第十一章 任务2.8 商品信息查询修改界面功能设计 完成人,链接
完成人:刘春燕,链接https://www.jianshu.com/p/8e444ac8e659
第十二章 任务2.9 系统程序的部署 完成人,链接
完成人:刘德智,连接:https://www.jianshu.com/p/341ff490476d

《2.3 系统主界面的制作》具体要求:

1.完成MDI界面程序的制作,具备多个菜单选项,其中,点击“登陆->打开”选项可以弹出子界面收银员,库管员。

图片1.png

图片2.png

2.实现MDI主界面的主要步骤#MDI界面程序制作
右击项目“添加”添加windows窗体
在新窗体里面添加MenuItem,ToolStrip,StatusStrip,timer控件如图
图片3.png

将要作为“父窗体” 的窗体的IsMdiContainer属性设置为true(通过属性窗口设计即可)。
将要作为“子窗体” 的窗体的MdiParent属性属性指定为“父窗体”。
只有通过代码,在实例化“子窗体”后设置,如下:
FormChild formChild1 = new FormChild(); // 创建子窗体对象
formChild1.MdiParent = this; // 设置子窗体的父窗体为当前窗体formChild1.Show(); // 在MDI中显示子窗体
3.主界面中涉及到的控件以及控件的重要属性、方法
菜单项(MenuItem)、组合框(ComboBox)、文本框(TextBox)
工具栏和状态栏
工具栏()ToolStrip、菜单栏(StatusStrip)
ImageScalingSize: 工具栏或状态栏的项显示图像的大小
Items : 在工具条或状态条上显示的项的集合
DisplayStyle : 设置图像和文本的显示方式,包括显示文本、显示图像、显示文本和图像或什么都不显示
Image: 按钮/标签上显示的图片
Click: 单击按钮/标签时,触发该事件
Text : 单击按钮/标签时,触发该事件
Spring : 指定项是否填满剩余空间
4.主界面的功能如何与系统结构图对应
数据库验证登陆成功,进入对应子窗体。
5.贴入重要代码片段,并进行详细描述
FormChild formChild1 = new FormChild(); // 创建子窗体对象
formChild1.MdiParent = this; // 设置子窗体的父窗体为当前窗体
formChild1.Show(); // 在MDI中显示子窗体`

《2.4系统数据库设计》具体要求:

1. 描述抽象数据库表的过程,绘制流程图(提示:四个步骤)抽象数据库表
库管员——>工号,姓名,登录密码,电话 收银员:——>工号,姓名,登录密码,电话 商品信息:——>价格,名称,条码,规格
2. 流程图

图片4.png

3.ER图
图片5.png

4.给出智慧商超涉及到的数据库表的各个字段
登陆涉及字段: 工号,姓名,登录密码,电话 商品涉及字段: 价格,名称,条码,规格

《2.5 登录用户验证功能设计》具体要求:

1. 贴效果图,最好是GIF文件

图片6.png

2. 描述画面主要功能,并列出支持这些功能的后台数据库表结构
主要功能:验证用户登录
表结构: 收银员表:工号(主键),姓名,密码,电话 库管员表:工号(主键),姓名,密码,电话
3. ADO.NET查询数据库的流程

方法一
  1. 导入命名空间;
  2. 运用Connection对象建立与数据库连接;
  3. 打开连接;
  4. 利用Command对象的ExecuteReader()方法执行Select查询语句;
  5. 利用ExecuteReader()方法返回的DataReader对象读取数据,显示到界面上;
  6. 关闭连接。
方法二
  1. 通过Connection对象建立与数据库的连接
  2. 利用Command对象执行SQL语句或存储过程
  3. .通过DataReader对象将Command对象执行SQL语句查询后的具体数据从数据库中一条一条读取到DaraReader对象中
  4. 在客户端将数据呈现出来
    4. 贴入重要代码片段,并进行详细描述
    //连接数据库
    sqlConn.Open();
    String SqlStr = "";
    if (this.comboBox1.Text == "收银员")
    {
    //注意USER是SQL Sever关键字,表名不能命名为USER,而应当用USERS
    SqlStr = "select * from EMPLOYEE where ID=@id and password=@pwd";
    }
    else
    {
    SqlStr = "select * from EMPLOYEE where ID=@id and password=@pwd";
    }
    //执行SQL语句
    SqlCommand cmd = new SqlCommand(SqlStr,sqlConn);
    //为SQL语句中的参数赋值
    cmd.Parameters.Add(new SqlParameter("@id", this.textBox1.Text.Trim()));
    cmd.Parameters.Add(new SqlParameter("@pwd", this.textBox2.Text.Trim()));
    SqlDataReader dr = cmd.ExecuteReader();
    // 如果从数据库中查询到记录,则表示可以登录
    if (dr.HasRows)
    {
    dr.Read();
    //将数据库中的字段赋值给C#中的参数
    userid = dr["id"].ToString();
    String userName = dr["name"].ToString();
    String userPwd = dr["password"].ToString();
    String userPhone = dr["tel"].ToString();
    String userType = this.comboBox1.Text;
    MessageBox.Show(userType + "登录成功");
    // 处理登录,判断用户类型
    if (userType == "收银员")
    {
    //MessageBox.Show("登录成功123");
    // 显示收银员主界面
    Form3 formUser = new Form3();
    formUser.Show();
    // 隐藏登录界面
    this.Hide();
    }
    if (userType == "经理")
    {
    // 显示经理主界面
    Form2 formAdmin = new Form2();
    formAdmin.Show();
    // 隐藏登录界面
    this.Hide();
    }
    }
《2.6 密码修改界面功能设计》具体要求:

1. 贴效果图,最好是GIF文件

图片7.png

2. 描述画面主要功能,并列出支持这些功能的后台数据库表结构
用户名直接显示不能更改,输入新密码,再确认密码,两次一样才能确定更改成功
图片8.png

3. ADO.NET更新数据库的流程

  1. 导入命名空间;
  2. 定义数据库连接字符串,运用Connection对象建立与数据库连接;
  3. 打开连接;
  4. 利用Command对象的ExecuteNoQuery()方法执行Update语句;
  5. 通过ExecuteNoQuery()方法返回值判断是否修改成功,并在界面上提示;
  6. 关闭连接
    4. 贴入重要代码片段,并进行详细描述
    if (newPwd.Equals(""))
    {
    MessageBox.Show("请输入新密码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    return;
    }
    else if (confPwd.Equals(""))
    {
    MessageBox.Show("请输入确认密码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    return;
    }
    else if(newPwd != confPwd)
    {
    MessageBox.Show("两次密码不一致", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    return;
    }
    // 连接字符串,注意与实际环境保持一致
    stringconnStr = "Data Source=.;Initial Catalog=ldz2017270397;Integrated Security=True";
    SqlConnectionsqlConn = new SqlConnection(connStr);
    try
    {
    //连接数据库
    sqlConn.Open();
    // 构造UPDATE命令
    StringsqlStr = "update EMPLOYEE set password=@pwd where id=@id";
    SqlCommandcmd = new SqlCommand(sqlStr, sqlConn);
    // SQL字符串参数赋值
    cmd.Parameters.Add(new SqlParameter("@pwd", newPwd));
    cmd.Parameters.Add(new SqlParameter("@id", userName));
    // 将命令发送给数据库
    intres = cmd.ExecuteNonQuery();
    // 根据返回值判断是否修改成功
    if(res != 0)
    {
    MessageBox.Show("密码修改成功");
    this.Close();
    }
    else
    {
    MessageBox.Show("密码修改错误");
    }
《2.7 商品信息录入界面功能设计》具体要求:

1、贴效果图,最好是GIF文件

图片9.png

2、描述画面主要功能,并列出支持这些功能的后台数据库表结构
输入商品条码,商品名称,商品价格,商品规格可以录入商品信息,更新后可以在数据库表中查询。
图片10.png

3、ADO.NET插入数据库的流程

  1. 导入命名空间;
  2. 定义数据库连接字符串,运用Connection对象建立与数据库连接;
  3. 打开连接;
  4. 利用Command对象的ExecuteNoQuery()方法执行Insert语句;
  5. 通过ExecuteNoQuery()方法返回值判断是否修改成功,并在界面上提示;
  6. 关闭连接
    4、 画面功能是如何迭代的,描述迭代过程(无外键à有外键)
    5、ComboBox数据绑定流程
    // 连接字符串,注意与实际环境保持一致
    StringconnStr = ConfigurationManager.ConnectionStrings["ldz2017270397"].ConnectionString;
    SqlConnectionsqlConn = new SqlConnection(connStr);
    try
    {
    // 连接数据库
    sqlConn.Open();
    // 构造命令
    StringsqlStr = "insert into goodes(id, name, price, spec, remark) values(@id, @name, @price, @spec, @remark)";
    SqlCommandcmd = new SqlCommand(sqlStr, sqlConn);
    6、贴入重要代码片段,并进行详细描述
    图片11.png
《2.8 商品信息查询修改界面功能设计》具体要求:

1、 贴效果图,最好是GIF文件

图片12.png

2、输入商品条码或者商品名称可以查询到商品信息,也可以直接查询出所有商品信息。

图片13.png

3、ADO.NET删除数据库的流程

  1. 导入命名空间;
  2. 定义数据库连接字符串,创建Connection对象;
  3. 打开连接;
  4. 利用DataAdapter对象,建立与数据库的连接桥;
  5. 通过DataAdapter桥,将查询结果存储到DataSet对象中;
  6. DataGridView控件绑定DataSet,将查询结果显示出来
  7. 关闭连接。
    4、 画面功能是如何迭代的,描述迭代过程(无供应商à有供应商)
    5、DataGridView数据绑定流程
    //点击修改链接
    if (e.RowIndex != -1 && e.ColumnIndex == 0)
    { // 获取所要修改关联对象的主键
    stringgoodsId = this.dataGridView1["Column1", e.RowIndex].Value.ToString();
    Form7form7 = new Form7(goodsId);
    form7.Show();
    }
    else if (e.RowIndex != -1 && e.ColumnIndex == 1)
    {
    if (MessageBox.Show("确认删除?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
    {
    //获取所要删除关联对象的主键
    stringgoodsId = this.dataGridView1["Column1", e.RowIndex].Value.ToString();
    }
    6、贴入重要代码片段,并进行详细描述
    图片14.png
《2.9 系统程序的部署》具体要求:

1. 贴效果图,最好是GIF文件

图片15.png

图片16.png

2. 系统部署前的准备工作(制作图标、添加关于菜单)
图片17.png

3. 应用系统打包流程描述
(1)在项目名上右键,选择“添加à新建项”,新建“关于框”
(2)在框属性添加所用的ico图片设置窗口图片
图片18.png

(3)显示关于菜单
private void tsm_About_Click(object sender, EventArgs e)
{
AboutBox about = new AboutBox();
about.ShowDialog();
}
(4)在项目名上右键,选择属性在程序集信息设置软件信息,下方添加设置应用程序图标
图片19.png

(5)点击发布选择发布位置。

你可能感兴趣的:(2.10项目总结汇报)