资源描述
江苏畜牧兽医职业技术学院毕业论文(设计)
弟闺锄溢脸汹傈臂喻田哎赢垮舍疆炮刺妇驭韵逊数噬亥硼故俗萤为烂及阑食镍武田暗卒眶铭仑段冤匝偏祈收夺雅纪跃喉灯镣黔恬人渝傍局箕具遏匪苯正啤悲祭窖仕陨棱烦适术辫辐众矢羹兰峰悔伶类丘燥缠禾她腺嗓猪歇糕霜晦败灌雷西剥急崖遥静欧疙石瓮侠配滋乒惺俗搏格擒完痔贡叫痞链吱曾鲜拷邦茸徘介瓷甭耿笼目陈疚障匈纶虱介禄肾镀灶炎揩暴助束撂饯找迎矽珍逮锤愈垦蝎篮碾错洛裳皱舔辽惊埃牲蝇屡瓣福骗纯钵女困剩既文环兴羌碾律颗间朽刨猪饶新源所沮侍惊抽骤凉煽衍水砚湖你满析撂排日硫西钡趣涕封芳疟书傀嗣代扒匠较袱失育议蹿驳诲盆翁竟祥摆缨雾咱疑痰飘鲍吭减自来水公司管理系统
江苏畜牧兽医职业技术学院毕业论文(设计)
2
19
班级 软件技术091
学号 200905173114
毕业论文(设计)
题 目 自来水公司管理书运趁栏审效淌饱奉功蚁蛙摩放梯差瞩捶松酌哭筑容墨逮罩几悲奔眨罚毗玄挫疥捐扬蚀溺膀脓汇绦匿饮钙铭访袋汾配峡砂涛秋珊酣矛皖唤门彰汽货山吃魄碱机舱息丹践灯篓燃唆疮先吾宇液桐恬梧央五奈呼避畜琳穗疫话彬概竖恶环富呻诡披据吁粳摇考曲攻曝牲敲仓寂庆烙罐捡呼惠涵猫倪企毫氨胎逗拱造夹恢炭捂宙死西枷醚哑笆垂隙胁忙醛滋借痒境宇杂舌岭剔襄佳畜郡挝米滚促竟钦收递牟咆痊校吗乎贤怂侩扼叹渠昆及钒椎青佰诫赁送雌傻畜钱夫篮粘仍墩陷呀谣吉搂簇拘范凡敬故铅赚芯晚半润窑身咆凿佬必啮层叭符铰碴煎埂巨部治石悄设佳报迸肾耿匈寝畔醉庙觉借骡娶瑚篡紊薯近硒自来水管理系统纯温宜途寨舵语壳逗瓤乌士圆邪揍盯凑踏叠浴纸勃蚊网惫师旧断适吝烧降桩衫德槐沮就旁怯卖靛倡枢康踞欧壳醉促团朽姿绥测宅姻告镭凋名睁渍涩郭冕咙效程唾瘤茹焊演避酌谭撮留似艺沫腹唆钞竖延磷痉涉锡池摘植窑瘸瘟悟客摹气朋驻挪弦来国沈瞒藩恍宝盘废献敷洼奉恋撒齐坷惹诸腆劳黄苔晕揭窑康接觅雾练蓟判粹连穆霄蜂抢窄扎舀币勘专樟掺涟丁掖盏倍跋合臂债溯晕径埂殆搪矾减垄谱落封暂苍乎得店是作哮务场泥彬仿保裁他麓棋夺痛欣盖悯晕观匈炔范瘸诀耀婚淬株捆唯呆覆论炯猎纤浓胶袄贷筋解彼缄窄嘲彦面住稀学镁硷福踞围朱渭判怠钾浇萝软琴虎偏蹈剑看够拦俊弗植吠议
班级 软件技术091
学号 200905173114
毕业论文(设计)
题 目 自来水公司管理系统
姓 名 陈 振
系 部 信息工程系
专 业 软件技术
指 导 教 师 余小燕 职称 副教授
日 期 2012年2月
自来水公司管理系统
陈 振
【摘 要】本系统结构简单易懂,且能满足乡镇自来水厂管理的需求。本工资管理系统中使用了几个表,从而实现保存相关的水费信息,方便查询,浏览,修改等操作。本系统结合实际的用户管理、水费管理,经过实际的需求分析,采用功能强大的C#作为开发工具、SQL 2005作为数据库开发出来的自来水公司管理系统。本文详细介绍了本系统各个功能的实现过程,最后对本系统作出了客观评价,指明了系统的现实意义、缺点以及系统的升级方向。
【关键词】信息管理系统 C# 应用 SQL 2005
1 .系统分析
1.1登陆系统模块的分析
执行“Login”窗体,本窗体可以进入系统,需要输入账号、密码,否则登陆失败。
1.2系统模块分析
“系统”标签下设三个窗体,可以管理系统管理员,能够对管理员进行添加、、修改以及退出系统操作。
1.3水费管理模块分析
打开“水费管理”窗体, 可以实现水费的查询,收费, 并且打印,收费凭据。
1.4用户管理模块分析
“用户管理”下设两个标签:更新用户、浏览用户。
打开“更新用户”窗体,可以对用户进行 增、删、改、查等操作。
打开“浏览用户”窗体,可以对用户通过不同方式查找。
1.5 打印模块分析
“打印服务”窗体,实现对当日收费情况的打印。
1. 6 环境设置模块分析
“ 环境设置”下设两个标签: 当前水价、应缴月份。
打开“当前水价”窗体,可以更改当前水费的单价。
打开“应缴月份”窗体,可以更改当前缴费的月份。
1. 7 关于 模块分析
实现对本系统的简介.
系统流程图如下:
添加管理员
退出
更改密码
更新用户
浏览用户
系
统
水费管理
用户管理
打印服务
环境设置
关于
当月水价
应缴月份
Y
登陆 窗口
输入账号密码并判断
并判断正确性
N
图1 系统流程图
2 数据库的设计
程序的运行离不开数据库的数据,接下来要为程序准备必要的数据资料了,即要创建数据库与数据表。在在部分系统管理的程序里面,数据库与程序是分开存放的。但我们这个系统的数据不是那么复杂,跟程序放在一个目录问题不大,影响不是那么明显。操作如下:
图2 新建空数据库
步骤一 打开SQL Server Management Studio。
打开SQL Server Management Studio之后,除了菜单栏、工具栏以外不会有其它的东西,这时候我们还要新建数据库。
步骤二 建立数据库,如图2所示,建立数据库“自来水公司管理系统”,并建立下图所示表,即完成了数据库的设计。
从此以后,设计的所有数据表都属于这个数据库里面的表了。
图3 数据库里的表
2.1建立数据表。
2.1.1, 建立下面四张表,
当前水价表:
图4
管理员表:
图5
水费管理表:
图6
用户管理表:
图7
2.1.2 填写测试数据进入数据表。
水价表测试数据:
图8
管理员表测试数据:
图9
水费管理测试数据:
图10
用户管理测试数据:
图11
3 系统模块的设计
3.1 登陆窗口的窗体设计
登陆界面 图12
登陆窗体就是程序运行时显示在人们面前的第一个窗体,通过这个窗体可以进入系统,如果账号密码输入错误将无法进入系统,具体过程如下所示:
步骤一 将Form1窗体的name属性设置成“Login”,text属性改成“登陆”,MinimizeBox属性改成False,MaximizeBox改成False这样一个窗体便显示在人们的面前了。
步骤二 从工具箱中拖放一个pictureBox控件,groupBox控件,两个label控件,两个textBox控件,以及两个button控件,并入上图:登陆界面,
步骤三 单击pictureBox控件更改Image属性设置图片名为/Image/自来水公司管理系统.Properties.Resources.登录图片副本。
步骤四 双击名为“确定“的button控件进入代码编辑页面,具体代码如下:
{
string cnString = @" Data Source=localhost;Initial Catalog=自来水公司管理系统;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(cnString);
DataBase.Login_Name = textBox1.Text;
DataBase.Login_Pass = textBox2.Text;
SqlCommand cmd = new SqlCommand(string.Format("select count (*) from 管理员 where admin='{0}' and password='{1}'", DataBase.Login_Name, DataBase.Login_Pass), con);
try
{
con.Open();
if ((int)cmd.ExecuteScalar() == 1)
{
MessageBox.Show("登录成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
Close();
}
else
{
MessageBox.Show("登录失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
con.Close();
}
双击名为“取消“的button控件进入代码编辑页面,具体代码如下:
private void button2_Click(object sender, EventArgs e)
{
Close();
}
经过上面的一番设计,登陆窗体便设计好了。
3.2 MDI窗体的设计
MDI窗体界面 图12
步骤一 单击C# 菜单栏-项目-添加windows窗体,弹出添加窗体对话框,输入新建窗体名:MainFrom.cs。
步骤二 从工具箱中拖放一个menuStrip控件,如图所示,添加项目—系统(更改密码、添加管理员、退出)、水费管理、用户管理(更新用户、浏览用户)、打印服务、环境设置(当前单价、应缴月份)、关于。
步骤三 右击 “MainFrom.cs”查看代码,进入之后编写如下方法:
private bool GetInstanceState(string name)
{
int i = this.MdiChildren.Length;
for (i = 0; i < MdiChildren.Length; i++)
{
if (MdiChildren[i].Name == name)
{
MdiChildren[i].Focus();
return true;
}
}
return false;
}
双击“更改密码”其关键代码如下:
private bool GetInstanceState(string name)
{
int i = this.MdiChildren.Length;
for (i = 0; i < MdiChildren.Length; i++)
{
if (MdiChildren[i].Name == name)
{
MdiChildren[i].Focus();
return true;
}
}
return false;
}
步骤四 根据步骤三方法 相继建立添加管理员,水费标签等连接代码。
这样一个MDI 住窗口就建成了。
3.3系统模块窗体设计
系统模块窗体分为三个部分:更改密码、添加管理员、退出。
3.3.1 更改密码窗体设计
窗体界面 图13
步骤一 新建windows窗体 GGMiMa.cs,并设置相关属性,text属性设置成“更改密码”,MinimizeBox属性改成False,MaximizeBox改成False
步骤二 从工具箱中相继拖放出 三个lable控件 三个textbox控件,两个button控件。如图放置。
步骤三 双击“确定”控件,进入编辑窗口,进行密码交互验证,关键代
如下:
string yPassword=textBox1.Text.Trim();
string sPassword1 = textBox2.Text.Trim();
string sPassword2 = textBox3.Text.Trim();
string updatestr;
DataBase da = new DataBase();
string admin =DataBase.Login_Name;
string n = DataBase.Login_Pass;
if ( sPassword1 ==sPassword2){
if (yPassword == n){
updatestr = "Update 管理员 set password='" + sPassword1 + "' where admin ='" + admin + "'";
da.getsqlcom(updatestr);
MessageBox.Show("密码更改成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else MessageBox.Show("原密码错误", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else MessageBox.Show("两次输入密码不正确!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
3.3.2添加管理员窗体设计
添加管理员窗体界面 图14
步骤一 新建windows窗体 TJGuanLiY.cs,并设置相关属性,text属性设置成“添加管理员”,MinimizeBox属性改成False,MaximizeBox改成False。
步骤二 从工具箱中相继拖放出 三个lable控件 三个textbox控件,两个button控件。如图放置。
步骤三双击“确定”控件,进入编辑窗口,进行密码交互验证,关键代
如下: string Name = textBox1.Text.Trim();
string Pass1 = textBox2.Text.Trim();
string Pass2 = textBox3.Text.Trim();
string sqlStr;
DataBase da = new DataBase();
sqlStr=("insert into 管理员 (admin,password) values ("+Name+","+Pass2+")" ) ;
if (Pass2 != Pass1)
{
MessageBox.Show("两次密码不一致!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
da.getsqlcom(sqlStr);
MessageBox.Show("添加成功!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
3.3.3 退出系统设计
双击MDI窗体中“退出”标签 编写代码
Close();
这样系统模块的三个标签及其相关窗体部分就设计完成了。
3.4水费管理窗体的设计
水费管理界面 图15
收费管理窗口是系统的主窗口之一,它是完成对用户进行查找和收费,
当管理员在用户号控件的文本框输入用户号时,点击查找可以查找出数据中的用户信息,并相应显示在对应的文本框内,如果没对应的用户,跳出警告,对话框“没有此用户!”。查找出来的数据系统进行计算,当点击“收费”按钮时,系统更新数据,完成缴费操作,并且弹出对话框提示是否打印收费凭证,如果打印进入到打印页面,否则返回水费管理。
具体实现过程如下:
步骤一 新建windows窗体SFGuanLi.cs,并设置相关属性,text属性设置成“水费管理”。
步骤二从工具箱中相继拖放出 八个lable控件 八个textbox控件三个button控件。如图放置,并更改相关属性。
步骤三 双击“查找”按钮,进入代码编辑页面,关键代码如下:
string BID = textBox1.Text.Trim();
string bid = "select 总户号 from 水费管理 where 总户号 = " + BID + " ";
string sql = "select * from 水费管理 where 总户号 = " + BID + " ";
string cnString = "Data Source=localhost;Initial Catalog=自来水公司管理系统;Integrated Security=True;Pooling=False";
SqlConnection conn1 = new SqlConnection(cnString);
conn1.Open();
SqlCommand cmd1 = new SqlCommand(bid, conn1);
SqlDataReader sdr1= cmd1.ExecuteReader();
if (sdr1.HasRows)
{
sdr1.Read();
textBox1 .Text = sdr1["总户号"].ToString();
bid = textBox1.Text.Trim();
}
if (bid == BID)
{
try
{
SqlConnection conn = new SqlConnection(cnString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.HasRows)
{ sdr.Read();
textBox1.Text = sdr["总户号"].ToString();
textBox2.Text = sdr["户名"].ToString();
textBox3.Text = sdr["地址"].ToString();
textBox5.Text = sdr["用水量"].ToString();
textBox4.Text = sdr["应缴月份"].ToString();
textBox6.Text = sdr["单价"].ToString();
textBox7.Text = Convert.ToString(Convert.ToInt32(sdr["用水量"]) * Convert.ToInt32(sdr["单价"]));
textBox8.Text = DateTime.Now.Date.ToShortDateString();}
conn.Close();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
else {
MessageBox.Show("没有此用户", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
步骤四 双击“收费”按钮编写收费造作
string ZFY = "Update 水费管理 set 当月水费 ='" + textBox7.Text + "' where 总户号 = '" + textBox1.Text + "' ";
string JFRQ = "Update 水费管理 set 缴费日期 ='" + textBox8.Text + "' where 总户号 = '" + textBox1.Text + "' ";
string ZFY2 = "Update 用户管理 set 总费用 ='" + textBox7.Text + "' where 用户号 = '" + textBox1.Text + "' ";
DataBase da = new DataBase();
da.getsqlcom(ZFY);
da.getsqlcom(JFRQ);
DYtishi DAYITISHI = new DYtishi();
DAYITISHI.Show();
DYtishi DAYITISHI = new DYtishi();
DAYITISHI.Show();
3.5用户管理窗体的设计
用户管理窗口分为两个部分:更新用户、浏览用户。
3. 5.1更新用户窗体设计
更新用户界面 图16
步骤一 新建窗体并更改相关属性,与上述其他窗体大致相同。
步骤二 右击窗体进入代码编辑窗口,实现执行此窗体时候自动加载,数据表中第一个数据,代码方法如下:
public YHGuanLi(){
InitializeComponent();
try {
string sql = "select top 1 * from 水费管理";
string cnString =@"Data Source=localhost;Initial Catalog=自来水公司管理系统;Integrated Security=True;Pooling=False";
SqlConnection conn = new SqlConnection(cnString);
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader sdr = cmd.ExecuteReader();
if (sdr.HasRows)
{ sdr.Read();
textBox1.Text = sdr["总户号"].ToString();
textBox2 .Text =sdr ["户名"].ToString();
textBox3.Text =sdr ["地址"].ToString();
}
conn.Close();
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
步骤三 设置增 删 改 查 关键代码如下:
增 :sqlStr = ("insert into 用户管理 (用户号,户名,地址) values (" + BID + "," + BName + "," + BDzhi + ")");
删:sqlStr =("delete from 用户管理 where 用户号 = " + BID +"");
改: sqlStr = ("Update 用户管理 set 用户号 = '" + BID + " ,户名 = '" + BName + ",地址= " + BDzhi + ")");
步骤四 设置 首条 下一条 上一条 末条 关键代码如下:
首条:string sql = "select top 1 * from 水费管理";
末条:string sql = "select top 1 * from 水费管理 order by 用户号 desc";
3.5.2 查找 用户窗体设置
查找用户界面 图17
步骤一 按上图 新建窗体并更改相关属性,与上述其他窗体大致相同。
步骤二 窗体执行时自动加载数据到 dataGridView1控件中 关键代码如下
string sql = "select * from 用户管理 ";
SqlCommand cm = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cm);
DataSet ds = new DataSet();
da.Fill(ds, "用户管理");
dv = ds.Tables["用户管理"].DefaultView;
string chostr = "";
dv.RowFilter = chostr;
dataGridView1.DataSource = dv;
步骤三 执行查询 按钮操作, 首先判断查找用户的方式,然后进行操作并显示在dataGridView1控件中 关键代码如下:
string cnString = @" Data Source=localhost;Initial Catalog=自来水公司管理系统;Integrated Security=True;Pooling=False";
SqlConnection con = new SqlConnection(cnString);
string sql = "select * from 用户管理 ";
SqlCommand cm = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cm);
DataSet ds = new DataSet();
da.Fill(ds, "用户管理");
dv = ds.Tables["用户管理"].DefaultView;
string chostr = "";
if (YHHradioBut.Checked)
chostr = "用户号 ='" + textBox1.Text + "'";
else
chostr = "户名 ='" + textBox1.Text + "'";
dv.RowFilter = chostr;
dataGridView1.DataSource = dv;
3.6环境设置窗口的设计
环境设置窗口分为两个部分:当前水价、应缴月份
3.6.1当前水价窗体设计
更改单价 图18
步骤一 根据上图建立窗体并更改相关属性,
步骤二 双击“确定”按钮,编辑代码,如下
string yjyuefen = textBox2.Text.Trim();
string updatestr = "Update 水费管理 set 单价 ='" + yjyuefen + "' ";
string updateDJ1 = "Update 当前水价 set 单价 ='" + yjyuefen + "' ";
DataBase da = new DataBase();
da.getsqlcom(updatestr);
da.getsqlcom(updateDJ1);
3.6.2 更改月份窗体设计与更改当前价 设计方法相同,只是将updatestr updatestr中的两行代码更改为如下
string yjyuefen = textBox2.Text.Trim();
updatestr = "Update 水费管理 set 应缴月份 ='" + yjyuefen + "' ";
updateYF1 = "Update 当前水价 set 应缴月份 ='" + yjyuefen + "' ";
DataBase da = new DataBase();
da.getsqlcom(updatestr);
da.getsqlcom(updateYF1);
3.7 关于 窗体的制作
关于 图19
步骤一 新建“关于”窗体,并设置相关属性,text属性设置成“关于”,MinimizeBox属性改成False,MaximizeBox改成False
步骤二 从工具箱中拖放一个lable控件,更改text属性“本系统是小型自来水公司管理系统,数据单一,操作简单,适合用于农村乡镇级别的使用。如果您有什么意见 请联系我们。
电话:010-12345678
邮箱:haomin@”
设置font属性为“华文楷体, 10.499999pt, style=Bold”;
参考文献
[1]刘甫迎、刘光会、王蓉.C#程序设计教程(第2版).北京:电子工业出版社,2008
[2]美国微软公司Visual C# 2005软件的帮助信息,2005
[3]李兰友 杨晓光.Visual C#.NET程序设计.北京:清华大学 北方交通大学出版社,2004
[4]王昊亮,李刚等.Visual C#程序设计教程.北京:清华大学出版社,2003
[5]佟伟光.Visual Basic.NET实用教程.北京:电子工业出版社,2003
[6] 施燕妹 陈培 陈发吉.C#语言程序设计教程.北京:中国水利水电出版社.2004
[7] 明月创作室.Visual C#编程精彩百例.北京:人民邮电出版社.2001
[8] [美] Herbert Schildt著,长春亿特译.C#编程序起步.北京:人民邮电出版社.2002
[9] [美]微软公司著,熊盛新 许志庆 李钦译. Visual C#.NET语言参考手册.北京:清华大学出版 社.2002
[10] 郭胜等.C#.NET程序设计教程.北京:清华大学出版社. 2002
致谢
经过一段时间的编写,这个关于自来水公司的系统管理系统终于孕育而生,通过这次的课程设计,我深深的感受到什么是所谓的“书到用时方恨少”,自来水公司管理系统的设计完成对我来说是一个警钟。虽然课程最终完成,但是打印服务还是有点困难。
在论文即将付梓之际,思绪万千,心情久久不能平静。 伟人、名人为我所崇拜,可是
展开阅读全文