目录
[任务目标]****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) 回顾数据库编程的知识点。
[任务解析]
第一章 小组成员分工
第二章 任务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界面程序的制作,具备多个菜单选项,其中,点击“登陆->打开”选项可以弹出子界面收银员,库管员。
2.实现MDI主界面的主要步骤#MDI界面程序制作
右击项目“添加”添加windows窗体
在新窗体里面添加MenuItem,ToolStrip,StatusStrip,timer控件如图
将要作为“父窗体” 的窗体的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. 流程图
3.ER图
4.给出智慧商超涉及到的数据库表的各个字段
登陆涉及字段: 工号,姓名,登录密码,电话 商品涉及字段: 价格,名称,条码,规格
《2.5 登录用户验证功能设计》具体要求:
1. 贴效果图,最好是GIF文件
2. 描述画面主要功能,并列出支持这些功能的后台数据库表结构
主要功能:验证用户登录
表结构: 收银员表:工号(主键),姓名,密码,电话 库管员表:工号(主键),姓名,密码,电话
3. ADO.NET查询数据库的流程
方法一
- 导入命名空间;
- 运用Connection对象建立与数据库连接;
- 打开连接;
- 利用Command对象的ExecuteReader()方法执行Select查询语句;
- 利用ExecuteReader()方法返回的DataReader对象读取数据,显示到界面上;
- 关闭连接。
方法二
- 通过Connection对象建立与数据库的连接
- 利用Command对象执行SQL语句或存储过程
- .通过DataReader对象将Command对象执行SQL语句查询后的具体数据从数据库中一条一条读取到DaraReader对象中
- 在客户端将数据呈现出来
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文件
2. 描述画面主要功能,并列出支持这些功能的后台数据库表结构
用户名直接显示不能更改,输入新密码,再确认密码,两次一样才能确定更改成功
3. ADO.NET更新数据库的流程
- 导入命名空间;
- 定义数据库连接字符串,运用Connection对象建立与数据库连接;
- 打开连接;
- 利用Command对象的ExecuteNoQuery()方法执行Update语句;
- 通过ExecuteNoQuery()方法返回值判断是否修改成功,并在界面上提示;
- 关闭连接
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文件
2、描述画面主要功能,并列出支持这些功能的后台数据库表结构
输入商品条码,商品名称,商品价格,商品规格可以录入商品信息,更新后可以在数据库表中查询。
3、ADO.NET插入数据库的流程
- 导入命名空间;
- 定义数据库连接字符串,运用Connection对象建立与数据库连接;
- 打开连接;
- 利用Command对象的ExecuteNoQuery()方法执行Insert语句;
- 通过ExecuteNoQuery()方法返回值判断是否修改成功,并在界面上提示;
- 关闭连接
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、贴入重要代码片段,并进行详细描述
《2.8 商品信息查询修改界面功能设计》具体要求:
1、 贴效果图,最好是GIF文件
2、输入商品条码或者商品名称可以查询到商品信息,也可以直接查询出所有商品信息。
3、ADO.NET删除数据库的流程
- 导入命名空间;
- 定义数据库连接字符串,创建Connection对象;
- 打开连接;
- 利用DataAdapter对象,建立与数据库的连接桥;
- 通过DataAdapter桥,将查询结果存储到DataSet对象中;
- DataGridView控件绑定DataSet,将查询结果显示出来
- 关闭连接。
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、贴入重要代码片段,并进行详细描述
《2.9 系统程序的部署》具体要求:
1. 贴效果图,最好是GIF文件
2. 系统部署前的准备工作(制作图标、添加关于菜单)
3. 应用系统打包流程描述
(1)在项目名上右键,选择“添加à新建项”,新建“关于框”
(2)在框属性添加所用的ico图片设置窗口图片
(3)显示关于菜单
private void tsm_About_Click(object sender, EventArgs e)
{
AboutBox about = new AboutBox();
about.ShowDialog();
}
(4)在项目名上右键,选择属性在程序集信息设置软件信息,下方添加设置应用程序图标
(5)点击发布选择发布位置。