资源描述
学 号:
0120810340929
课 程 设 计
题 目
资产管理系统软件设计
学 院
计算机科学与技术
专 业
计算机科学与技术
班 级
计算机0809
姓 名
娄俊凯
指导教师
汪祥莉
2012
年
01
月
10
日
武汉理工大学《软件综合课程设计》
目 录
题目:资产管理系统软件设计 3
1.系统描述 4
1.1目的 4
1.2设计原理及开发平台 4
2.系统分析 4
2.1资产管理流程图 4
2.2系统功能结构图 5
3.数据库设计 5
3.1数据表设计 5
3.2数据库关系图 6
3.3数据表内容 6
3.3.1资产信息表 6
3.3.2员工表 6
3.3.3用户表 7
4.系统设计 7
4.1程序主文件架构 7
4.2资产处理文件架构 7
4.3员工信息文件架构 8
5.运行结果 8
5.1程序登录 8
5.2主窗口 10
5.3资产信息 10
5.4资产处理 11
5.4.1增加资产 11
5.4.2修改资产 12
5.4.3减少资产 12
5.5员工信息 13
5.5.1员工信息主界面 13
5.5.2增加员工信息 13
5.5.3修改员工信息 14
5.5.4删除员工信息 14
5.6返回登录 15
5.7退出系统 15
6.主要代码 16
6.1数据库连接相关代码 16
6.2数据库操作相关代码 16
6.2.1验证用户名相关代码 16
6.2.2增加数据操作相关代码 17
6.2.3修改数据操作相关代码 18
6.2.4删除数据操作相关代码 19
7.软件评估 20
8结论及心得体会 20
附录 21
F1参考文献 21
课程设计任务书
学生姓名: 娄俊凯 专业班级: 计算机0809
指导教师: 汪祥莉 工作单位: 计算机学院
题目:资产管理系统软件设计
初始条件:
一个公司希望为管理它的每批资产(如PC机、打印机、汽车、桌子、椅子等)建立一个数据库。资产被分为几类,如计算机和设备。一个资产被分配给一个员工。财务人员要检查每批资产的现有市场价值,并记录下日期和现有价值。公司也许会决定卖掉现有资产。同样,每批资产都要进行维护。
预备内容:数据结构,软件工程,面向对象程序设计,数据库技术,编译原理,可视化编程
要求完成的主要任务:
1. 根据上述的初始条件,进行调查分析并设计适当的属性。设计系统总体方案并用UML加以描述,设计体系架构,确定计算模式,确定开发技术,设计一个资产管理数据库,实现资产分类、分配等相关信息的管理,DBMS可选SQL Server 2005、ORACLE、DB2、XML、MYSQL等。
2. 基于该数据库,实现应用程序,程序设计语言(工具)使用C#.NET 2010/2008/Eclipse/Jbuilder。
3. 完成课程设计说明书,其格式遵守学校今年的新规定。主要内容包括:应用软件系统分析,设计,实现,评估等。
时间安排:
本学期第17-19周:
1. 查阅、消化资料,系统调查 2天
2. 系统分析(采用UML工具) 3天
3. 总体设计,实施计划(采用UML工具) 3天
4. 系统开发与实现(用指定语言工具) 5天
5. 撰写报告 2天
指导教师签名: 2011年12月23日
系主任(或责任教师)签名: 年 月 日
资产管理系统软件设计
1.系统描述
1.1目的
运用所学的知识,通过对资产管理系统的设计,实现对C#编程语言和SQL Server数据库的综合应用,加强对软件工程设计思想的理解,进一步实现对UML建模语言的熟练应用;C#编程的语言的使用,掌握一种新的语言,增强编程能力;SQL Server 的使用,能更加了解数据库的应用;通过Visual C#与SQL Server的结合,既学到了一门新的编程语言——C#,又很好的对数据库查询、删除、修改等数据库操作相关语句的内容进一步加深了理解。
1.2设计原理及开发平台
利用软件工程的思想,对设计系统的总体方案用UML加以描述,设计体系架构,确定计算模式。利用C#的面向对象编程语言,结合SQL Server数据库管理软件进行管理系统的开发。
操作系统:Windows 7
开发平台:Visual Studio 2008、SQL Server 2005
语言:C#
2.系统分析
否
是
系统
登录
是否登录
资产维护
资产检查
资产减少
资产增加
资产变卖
资产信息
2.1资产管理流程图
2.2系统功能结构图
资产管理系统
资产信息
资产处理
员工信息
增加资产
删除资产
维护更新
增加员工
删除员工
修改信息
3.数据库设计
3.1数据表设计
user表,用于存储登录用户名密码
资产信息表assets
员工表staff
3.2数据库关系图
Assets表通过外键使用员工号和staff表相连接
3.3数据表内容
3.3.1资产信息表
3.3.2员工表
3.3.3用户表
4.系统设计
4.1程序主文件架构
4.2资产处理文件架构
4.3员工信息文件架构
5.运行结果
5.1程序登录
数据库中保存了的用户名为123,密码为123的用户,使用此帐号登录,登录成功
如果不输入用户名、密码直接登录,出现提示,如下图
当输入的用户名、密码错误时,清空文本框,如下提示
5.2主窗口
当登录成功点击确定后进入主窗口,如图
5.3资产信息
在主窗口点击资产信息可以预览到所以资产分类、维护以及被使用的信息,如图
5.4资产处理
如果要对资产进行处理,点击主窗口的资产处理可以得到如下界面
5.4.1增加资产
在文本框里输入相应的信息进行资产的增加操作,点击增加资产按钮,增加成功有一下提示,如图
点击确定按钮,可以看到数据表中信息已经更新
5.4.2修改资产
进行资产价值评估以及维护后,都需要对资产的信息进行修改,在数据框中点击任意资产的一个单元格信息,会出现在文本框中,然后进行修改,点击更新资产信息按钮,修改成功有以下提示,如图
点击确定按钮,可以看到数据表中信息已经更新
5.4.3减少资产
当公司变卖了资产后,就需要删除此条资产信息,在数据框中点击任意资产的一个单元格信息,会出现在文本框中,然后进行删除,点击减少资产按钮,删除成功有以下提示,如图
点击确定按钮,可以看到数据表中信息已经更新
5.5员工信息
5.5.1员工信息主界面
如果要对员工信息进行处理,点击主窗口的员工信息可以得到如下界面
5.5.2增加员工信息
当需要增加员工时,在文本框中输入相关信息,点击增加按钮,添加成功有如下提示
点击确定按钮,可以看到数据表中信息已经更新
5.5.3修改员工信息
当员工信息需要修改时,在数据框中点击任意资产的一个单元格信息,会出现在文本框中,然后进行修改,点击修改按钮,修改成功有以下提示,如图
点击确定按钮,可以看到数据表中信息已经更新
5.5.4删除员工信息
当员工辞职或者其他原因需要删除员工信息时候,在数据框中点击任意资产的一个单元格信息,会出现在文本框中,然后进行修改删除,点击删除按钮,删除成功有如下提示,如图
点击确定按钮,可以看到数据表中信息已经更新
5.6返回登录
当点击返回登录按钮时候,返回到登录界面
5.7退出系统
当操作结束需要退出时候,点击退出按钮或者右上角的X,有如下提示,
点击“是”退出应用程序
6.主要代码
6.1数据库连接相关代码
class DBConnection
{
//定义MyConnection方法,用户在使用时只需调用这个方法就可以连接数据库
public static SqlConnection MyConnection() //建立一个静态方法
{
//返回数据库连接字符串
return new SqlConnection ("server=WIN-7SGESPPEL05\\SQLEXPRESS;database=assetsmana;uid=sa;pwd=123456");
}
}
class DBOperate //数据库操作
{
public static SqlConnection conn;
public int OperateData(string strSql)
{
conn.Open();
SqlCommand cmd = new SqlCommand(strSql,conn);
int i = (int)cmd.ExecuteNonQuery();
conn.Close();
return i;
}
}
6.2数据库操作相关代码
6.2.1验证用户名相关代码
string name = username.Text.Trim();
string pwd = password.Text.Trim();
SqlConnection conn = PMSClass.DBConnection.MyConnection();
conn.Open();
SqlCommand cmd = new SqlCommand("select * from [user] where 用户名='" + name + "' and 密码='" + pwd + "'", conn);
SqlDataReader sdr = cmd.ExecuteReader();
sdr.Read();
if (sdr.HasRows)
{
……
}
6.2.2增加数据操作相关代码
private void staffadd_Click(object sender, EventArgs e)
{
try
{
//实例SqlConnection对象打开数据库连接
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=WIN-7SGESPPEL05\\SQLEXPRESS;uid=sa;pwd=123456;database=assetsmana";
conn.Open();
string SqlIns = "insert into staff values('" + staffID.Text + "','" + staffname.Text + "','" + staffsex.Text+ "')";
//创建SqlCommand对象实例
SqlCommand command = new SqlCommand();
//设置SQL语句
command.CommandText = SqlIns;
//调用打开数据库连接方法
command.Connection = conn;
//执行添加数据
command.ExecuteNonQuery();
MessageBox.Show("数据添加成功!");
//创建SqlDataAdapter对象实例
SqlDataAdapter AdapterSelect = new SqlDataAdapter("select * from staff", conn);
//创建DataTable对象实例
DataTable dt = new DataTable();
AdapterSelect.Fill(dt);
//填充控件
staffview.DataSource = dt.DefaultView;
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
}
6.2.3修改数据操作相关代码
private void staffchange_Click(object sender, EventArgs e)
{
try
{
if (staffID.Text == "")
{
MessageBox.Show("员工号不能为空!");
return;
}
if (staffname.Text == "")
{
MessageBox.Show("员工姓名不能为空!");
return;
}
if (staffsex.Text == "")
{
MessageBox.Show("员工性别不能为空!");
return;
}
//实例SqlConnection对象打开数据库连接
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=WIN-7SGESPPEL05\\SQLEXPRESS;uid=sa;pwd=123456;database=assetsmana";
conn.Open();
//构建字符串
string strselect = "select * from staff where 员工号='" + staffID.Text + "'";
SqlCommand cmd = new SqlCommand(strselect,conn);
//查询输入编号是否有效
int intCount = Convert.ToInt32(cmd.ExecuteScalar().ToString());
if (intCount!= 0)
{
string SqlIns = "update staff set 员工号='" + staffID.Text + "',员工姓名='" + staffname.Text + "',员工性别='"+staffsex.Text+"' where 员工号='"+staffID.Text + "'";
//创建SqlCommand对象实例
SqlCommand command = new SqlCommand();
//设置SQL语句
command.CommandText = SqlIns;
//调用打开数据库连接方法
command.Connection = conn;
//执行添加数据
command.ExecuteNonQuery();
MessageBox.Show("数据修改成功!");
fillDataview();
}
else
{
MessageBox.Show("员工号有错误,无法修改记录!");
}
}
catch (Exception ee)
{
MessageBox.Show(ee.Message.ToString());
}
}
6.2.4删除数据操作相关代码
private void staffsub_Click(object sender, EventArgs e)
{
try
{
if (staffID.Text == "")
{
MessageBox.Show("请输入员工号信息!","删除信息");
return;
}
//实例SqlConnection对象打开数据库连接
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Server=WIN-7SGESPPEL05\\SQLEXPRESS;uid=sa;pwd=123456;database=assetsmana";
conn.Open();
//构建字符串
string strselect = "select * from staff where 员工号='" + staffID.Text + "'";
SqlCommand cmd = new SqlCommand(strselect,conn);
//查询输入编号是否有效
int intCount = Convert.ToInt32(cmd.ExecuteScalar().ToString());
if (intCount != 0)
{
string SqlIns = "delete from staff where 员工号='"+staffID.Text+"'";
//创建SqlCommand对象实例
SqlCommand command = new SqlCommand();
//设置SQL语句
command.CommandText = SqlIns;
//调用打开数据库连接方法
command.Connection = conn;
//执行添加数据
command.ExecuteNonQuery();
MessageBox.Show("删除修改成功!","删除信息提示");
fillDataview();
}
else
{
MessageBox.Show("员工号输入错误,无法删除信息记录!");
}
}
catch(Exception ee)
{
MessageBox.Show(ee.Message,ToString());
}
}
7.软件评估
软件在设计构建开发完成之后,运行正常,数据增加、删除、修改正常,整体来说没有什么问题,属于小巧可用型。但是软件所存在的一个缺陷就是所能实现的功能太少,虽然软件能实现的功能已经基本符合了所开发的要求,操作也很方便,但是软件的功能显得过于简单、单调,具体功能不够细分详细。
8结论及心得体会
本次课程设计使用的语言是C#,在之前的学习当中所用到语言基本上没有用过C#语言,学校在开设的课程当中也没有C#语言程序开发这门课程。所以本次课程设计使用的C#语言基本上属于一种陌生的语言,在开发软件过程中边学习,边开发。由于使用visual studio 2008做C# windows窗体应用程序开发和使用visual C++ 6.0 做MFC的开发有点类似,所以就以MFC的基础进行了软件的开发。因为是对C#语言掌握的不熟悉,开发的时候还得重新学习这门语言,所以导致开发的软件功能比较简单,但是在软件开发好后,运行没有出现什么问题。
本次课程设计收获最大的就是重新认识了一门新语言——C#。
附录
F1参考文献
【1】《学通C#的24堂课》 王小科 赵会东 等编著 清华大学出版社 2011.06
【2】《C#程序设计标准教程》 王小科 吕双 编著 人民邮电出版社 2009.03
【3】《Visual C#+SQL Server数据库开发与实例》 李律松 马传宝 李婷 编著 清华大学出版社 2006.08
【4】《C#入门经典(第4版)》 Karli Waston ,Christian Nagel 等著 清华大学出版社 2008.12
【5】《数据库系统概论(第四版)》 王珊 萨师煊 高等教育出版社 2006.05
21
本科生课程设计成绩评定表
班级:计算机0809 姓名:娄俊凯 学号:0120810340929
序号
评分项目
满分
实得分
1
学习态度认真、遵守纪律
10
2
设计分析合理性
10
3
设计方案正确性、可行性、创造性
20
4
设计结果正确性
40
5
设计报告的规范性
10
6
设计验收
10
总得分/等级
评语:
注:最终成绩以五级分制记。优(90-100分)、良(80-89分)、中(70-79分)、
及格(60-69分)、60分以下为不及格
指导教师签名:
20 年 月 日
3、通过活动,使学生养成博览群书的好习惯。
B比率分析法和比较分析法不能测算出各因素的影响程度。√
C采用约当产量比例法,分配原材料费用与分配加工费用所用的完工率都是一致的。X
C采用直接分配法分配辅助生产费用时,应考虑各辅助生产车间之间相互提供产品或劳务的情况。错
C产品的实际生产成本包括废品损失和停工损失。√
C成本报表是对外报告的会计报表。×
C成本分析的首要程序是发现问题、分析原因。×
C成本会计的对象是指成本核算。×
C成本计算的辅助方法一般应与基本方法结合使用而不单独使用。√
C成本计算方法中的最基本的方法是分步法。X
D当车间生产多种产品时,“废品损失”、“停工损失”的借方余额,月末均直接记入该产品的产品成本
中。×
D定额法是为了简化成本计算而采用的一种成本计算方法。×
F“废品损失”账户月末没有余额。√
F废品损失是指在生产过程中发现和入库后发现的不可修复废品的生产成本和可修复废品的修复费用。X
F分步法的一个重要特点是各步骤之间要进行成本结转。(√)
G各月末在产品数量变化不大的产品,可不计算月末在产品成本。错
G工资费用就是成本项目。(×)
G归集在基本生产车间的制造费用最后均应分配计入产品成本中。对
J计算计时工资费用,应以考勤记录中的工作时间记录为依据。(√)
J简化的分批法就是不计算在产品成本的分批法。(×)
J简化分批法是不分批计算在产品成本的方法。对
J加班加点工资既可能是直接计人费用,又可能是间接计人费用。√
J接生产工艺过程的特点,工业企业的生产可分为大量生产、成批生产和单件生产三种,X
K可修复废品是指技术上可以修复使用的废品。错
K可修复废品是指经过修理可以使用,而不管修复费用在经济上是否合算的废品。X
P品种法只适用于大量大批的单步骤生产的企业。×
Q企业的制造费用一定要通过“制造费用”科目核算。X
Q企业职工的医药费、医务部门、职工浴室等部门职工的工资,均应通过“应付工资”科目核算。X
S生产车间耗用的材料,全部计入“直接材料”成本项目。X
S适应生产特点和管理要求,采用适当的成本计算方法,是成本核算的基础工作。(×)
W完工产品费用等于月初在产品费用加本月生产费用减月末在产品费用。对
Y“预提费用”可能出现借方余额,其性质属于资产,实际上是待摊费用。对
Y引起资产和负债同时减少的支出是费用性支出。X
Y以应付票据去偿付购买材料的费用,是成本性支出。X
Y原材料分工序一次投入与原材料在每道工序陆续投入,其完工率的计算方法是完全一致的。X
Y运用连环替代法进行分析,即使随意改变各构成因素的替换顺序,各因素的影响结果加总后仍等于指标的总差异,因此更换各因索替换顺序,不会影响分析的结果。(×)
Z在产品品种规格繁多的情况下,应该采用分类法计算产品成本。对
Z直接生产费用就是直接计人费用。X
Z逐步结转分步法也称为计列半成品分步法。√
A按年度计划分配率分配制造费用,“制造费用”账户月末(可能有月末余额/可能有借方余额/可能有贷方余额/可能无月末余额)。
A按年度计划分配率分配制造费用的方法适用于(季节性生产企业)
展开阅读全文