目录
第一章开发背景
1.1引言
1.1.1课题的选取原因
1.1.2系统的功能要求
1.1.3系统的性能要求
1.2可行性研究
1.2.1可行性分析
1.2.2重新分析问题
1.3需求分析
1.3.1需求分析意义
第二章总体设计
2.1结构设计的目标及思想
2.1.1结构设计目标
2.1.2结构设计思想
2.2系统的逻辑模型
2.3数据库设计
第三章详细设计及编码测试
3.1系统中各窗体的设计
3.1.1主窗口设计
3.1.2家庭畜牧业情况窗口设计
第四章。结论
致谢
参考文献
第一章引言
1.1引言
随着国民经济的不断增长和信息化的服务越来越完善。我国农业信息化内涵丰富,外延广泛。它包括农业资源环境的信息化、农村社会经济的信息化以及农业生产、农业生产资料市场、农产品市场、农业管理的信息化等。其基本涵义是指信息及知识越来越成为农业生产活动的基本资源和发展动力,信息和智力活动对农业增长的贡献越来越大,信息和技术咨询服务业越来越成为整个农业结构的基础产业之一。这是一个有史以来最复杂、知识综合集成度最高、规模最大的社会化系统工程。
1:农业信息化是国民经济和社会信息化的重要方面之一。
2:加快农业信息化建设是知识经济、信息经济时代的基本要求。
3:加快农业信息化是当前进行农业产业结构战略性调整的迫切要求。
4:加快农业信息化建设是政府部门转变职能的必然选择。
市场经济的生产经营主体是农民和农业企业,政府的工作应从过去的催种催收转变为如何引导农民和农业企业搞好生产经营并提供各种服务上来。如何引导,怎么服务,用什么手段,服务什么内容,无疑将成为转变职能后思考的主要问题。而提供信息服务,建立信息体系应该是思考的首要问题,也应该成为各级农业和涉农部门的主要工作方面和基本工作内容。
1.1.1课题背景
这套系统主要是为了方便管理员,简化管理员的工作强度,使管理员可以快速、准确、直观的了解到数据库当前农村居民家庭基本情况,农村居民生产居住情况,农村住户人口与劳动力就业情况,农村居民家庭收入与支出情况方面的大致情况或是具体个人存储信息。通过查询库信息,也可以使管理员得到存储的具体户主的基本信息以及成员的信息的等方面的信息。
确切的定义问题是十分必要和明显的,但是在实践中它却可能是最容易被忽视的一个步骤,因此我们因当高度重视该阶段对今后的影响。
1.1.2系统的功能要求
不但可以减轻农村信息管理人员的工作量,而且能够保证工作质量,还可以提高工作效率,节省劳动力,还可以节省开支。对我国对有效的调查农村人口的生产生活水平也可做到及时、准确。
现将系统功能简明描述如下:
1、系统管理数据的安全性
2、信息输入的管理包括户主及家庭成员信息的登记
3、查询与更新数据查询数据和更改数据
1.1.3系统的性能要求
1、实用性本系统是本着实用的原则进行开发的,为的是开发完毕后即能尽快投入使用,使户籍管理的工作人员能够尽快摆脱手工劳作的劳累。
2、易维护性易维护性是一个优秀软件所必备的性能,由于农村信息管理员并非专门的软件工作人员,所以我们尽量使软件易维护。
3、安全可靠性对于数据库的设计,一个关键的内容便是数据库的安全性。
4、可扩充性和标准化原则考虑到将来扩充的方便,我们尽量把文档及其代码写的标准化,并且如果将来有可能我们将实现其网络化的功能。
1.2可行性研究
1.2.1可行性分析
目的:农村信息管理系统,是为了减轻农村信息管理人员的工作量,同时使得一些复杂的工作简单化,也使得数据的管理及时,准确。无论是现在还是今后都有很重要的意义,因此开发该管理系统是必然趋势。
技术可行性:现在的软件开发技术及硬件设备完全可以实现该系统。这套系统应用不会有什么风险可言,它实现的功能是关于:编辑,存储、修改、查询、等几个基本模块。
1.3需求分析
1.3.1需求分析意义
需求分析是软件生命周期的一个重要阶段,它最根本的任务是确定为了满足用户的需要系统必须作什么。具体的说,应该确定系统必须具有的功能和性能,系统要求的运行环境,并且预测系统发展的前景,必须仔细分析系统中的数据,即要分析系统中的数据流又要分析长期使用的数据存储。通过分析应该得出用数据流图。
图形工具比数字叙述能更好地表述一个系统的信息,数据是把一个系统的各个组成元素连接在一起的“粘合剂”,为了成功的把所有系统元素连接起来,这些元素必须共享公共的数据定义,数据字典正是这些数定义的集合。算法同样是重要的,分析的目的是确定系统必须做什么,广义的说,任何以及算计系统的基本功能都是把输入数据转变成输出数据算法定义了转变的规则,因此,没有对算法得了解就不能确切知道系统必须做什么,此外,在需求分析阶段还应该根据对目标系统的更深入更具体的认识,修正开发目标系统得计划。
需求分析是在可行性研究的基础上进行的,可行性研究是一次完整的分析和设计过程,只不过是在抽象的层次上进行的大大压缩和简化了分析的设计过程,因此在可行性研究阶段已经进行了某些初步的分析,特别是已经得出了高层次的数据流图,但是,需求分析阶段的主要任务是得出了详细的系统逻辑模型,通常需求分析工作从可行性研究得出的数据流图出发,首先确定构成输出数据的各个数据元素,沿数据流图回溯寻求每个数据元素的源,在次过程中确定必要的处理算法并补充必要的数据元素,同时也回产生一些新的问题,在寻求这些问题的答案时,将澄清一些算法并划分出更多的数据元素,可能也回再遇到一些问题。对这些问题的解答又将导致对系统的更深入更具体的认识,在对系统的主要处理算法有充分了解之后,应该把数据流图进一步分层细化。通过需求分析应该得出用数据流图,数据字典描绘的精确的系统逻辑模型。为了提高文档的可理解性,还可以用层次方框图等等工具辅助描绘系统中得数据结构。
需求分析的结果是软件的基础,必须仔细验证它的正确性,开发人员必须和用户取的完全一直的意见,需求分析的文档应该被用户所确认,然而这并不意味着分析员应该不加分析的完全接受。对于该系统这个庞大的数据源,我们拿到的一些资料里有8个大表,每个大表里面有多则十几个小表,少则五六个小表,表与表之间没有直观的联系。其中大表包括农村居民家庭基本情况其中包括(一)户别,1:个体工商户2:干部户3:个体工商户和干部户4:五保户5:其他(二)家庭结构,1:单身或夫妇2:夫妇与一个孩子3:夫妇与两个孩子4:夫妇与三个孩子5:单亲与孩子6:三代同堂7:其他;还又主要耐用消费品拥有情况,其中包括25种家用电器,我们就不一一罗列了。这个表里含包括劳动最高文化程度;期末拥有生产性固定资产情况,等等的很细微的统计都具体到方方面面。类似与这样的表一共有8个,再比如农村居民家庭出售产品情况一表中,包括了农业和林业两个大的方面。农业中包括出售小麦数量,出售小麦金额,出售小麦种子数量,出售小麦种子金额,等11种农作物的数量和金额;还包括了经济作物中十几种经济作物的金额和数量。林业中包括了出售园林水果数量,包括出售采集林产品金额,出售天然林和人工林地采集果实,出售采集野生植物和果实金额等等。这样说吧,每个大表里包括很多个小表,每个小表又拆分成好几个最后可以建到数据库了的表。这样总结下来,一共建立了6个表。但是表与表之间没有必然的联系。最终我们分析了很久,确定表与表之间在微观上是通过户码相联系的。这个数据库一共建了六个表。这些表的建立使得管理员更精确的进行查询,添加,删除和管理。对于这个数据源建立起了一个系统的数据库对信息的管理可以大大的提高对农村信息一个系统、精确的管理。满足了用户的需求。
第二章:总体设计
2.1总体的目标及思想
2.1.1总体设计目标
结构设计阶段的目标是,综合采用各种技术手段,将系统需求转换为数据结构、模块结构(或对象/类结构)的表达形式,并实现系统的性能、安全性、可靠性要求。结构设计是一个自顶向下,逐步具体的综合性的设计过程。它的主要内容有:
※综合分析系统的各种实现方案,提出最佳实现方案的建议。
※制定设计规范、标准及约定原则。
※软件结构的设计。
※数据结构以及接口设计。
※系统性能设计。
※系统安全性设计。
※系统可靠性设计。
※设计文档的编写。
※设计的审查和复审。
2.1.2总体思想
结构化设计的核心思想是:如何应用抽象的原则,将系统功能逐层分解为层次化模块结构。模块的划分不是随意的,它需要遵循一些模块划分的指导性原则。
在本设计中,我们用了一个公共模块:数据模块(DataAccess)块都要调用它,它是其它模块进行数据库操作的一个纽带。当其它模块要连接数据库时,就可调用数据模块中的方法和数据。这样简化了其它模块的关于数据库的操作,而且还增强了系统的一致性,当我们需要
把系统用另外的机子上时,我们只需修改数据模块中的数据库连接,则所有的数据库连接就都修改了,而不用到每个模块中修改其数据库的连接。
2.2系统的逻辑模型
在本节中我们主要利用各种流图(主要是系统模块图、数据流图、系统流图)及数据字典来了解系统结构。通过这几种逻辑模型加深用户对人事档案管理系统的了解。对于我们开发小组的成员来说,也能使我们对本系统的设计作到心中有数,以便在今后的设计中减少不必要的错误,使设计更加完善,贴近用户需求。
农村基本信息系统主要对农村基本信息进行编辑、存储、修改、查询对农村信息的编辑很重要,因为关于农村的信息很多,我们收集了有关农村各方面的资料,能尽可能使用户更加全面把握农村信息,更加方便快捷的了解农村信息,更好的服务于城乡。根据市场需求调整结构,发展特色产业,提高经济效益,增加收入。
2.3数据库设计
在农村信息管理系统中,我们可以看到包括了农村方方面面的信息,确定以下数据项和数据结构如下:
调查粮食总产量:户码、小麦,水稻,玉米,大豆,薯类,棉花,油料作物,糖类作
物,叶菜类,瓜菜,块根块茎类,茄果类,葱蒜类,采用豆类,水生菜类,菌类,其他蔬菜类,水果。
总的来说,该农村信息系统中包括了农村信息的方方面面。以至细微到农民住房中的设备问题,包括取暖设备,卫生设备,使用的燃料,用水源,住房情况,住房面积,类型,结构,包括了农村住户人口与劳动力就业情况,细微到每个细节。在后面的附录中将给出我们的资料。对于这个庞大的建表和分析表与表之间的关系的问题,我们在前期做了大量的工作。这是一个复杂而烦琐的工作。但是正是因为它的复杂和烦琐才更能减轻管理员和用户系统,简单的对该系统的操作。通过大小表的建立,我们找到所有的信息是通过无形的一个主健相关联的。那就是户主代码。所以在每个表里我们都建立了户码这个关键字,所以通过户码可以查询到该用户的所有信息。但是表与表之间有不冲突,可以分开进行查找。很直观和通俗易操作。对于数据的分析是我们做该题目的关键。
第三章:详细设计及编码测试…
3.1系统中各窗体的设计
3.1.1主窗体的设计
原代码如下:、
namespace农村信息管理系统{publicclassfrmMain:System.Windows.Forms.Form{
publicfrmMain(){
InitializeComponent();
}
protectedoverridevoidDispose(booldisposing)
{if(disposing){if(components!=null){components.Dispose();
}
}
base.Dispose(disposing);
}
privatevoidmenuExit_Click(objectsender,System.EventArgse)
{
Application.Exit();
}
privatevoidmenuFamily_Click(objectsender,System.EventArgse){
FamilyF_Family=newFamily();F_Family.Show();
}
privatevoidmenuWork_Click(objectsender,System.EventArgse){WorkF_Work=newWork();F_Work.Show();}
privatevoidmenuIncome_Click(objectsender,System.EventArgse){IncomeF_Income=newIncome();F_Income.Show();}
privatevoidmenuCattle_Click(objectsender,System.EventArgse){CattleF_Cattle=newCattle();F_Cattle.Show();
}
privatevoidmenuGlebe_Click(objectsender,System.EventArgse){GlebeF_Glebe=newGlebe();F_Glebe.Show();
}
privatevoidmenuProvision_Click(objectsender,System.EventArgse){ProvisionF_Provision=newProvision();F_Provision.Show();}
privatevoidfrmMain_Closed(objectsender,System.EventArgse){
Application.Exit();}
privatevoidfrmMain_Load(objectsender,System.EventArgse){if(user==“普通用户”){menuUser.Enabled=false;this.Text=user.ToString();}
else
{this.Text=user.ToString();
}
}
privatevoidmenuAddUser_Click(objectsender,System.EventArgse)
{WinNewF_WinNew=newWinNew();F_WinNew.Text=“添加新用户”;F_WinNew.Operate=“添加新用户”;F_WinNew.Show();
}
privatevoidmenuDelUser_Click(objectsender,System.EventArgse){
WinNewF_WinNew=newWinNew();F_WinNew.Text=“删除用户”;F_WinNew.Operate=“删除用户”;F_WinNew.Show();
}
privatevoidmenuModifyPsw_Click(objectsender,System.EventArgse){WinNewF_WinNew=newWinNew();F_WinNew.Text=“修改密码”;F_WinNew.Operate=“修改密码”;F_WinNew.Show();
}
privatevoidtreeView1_AfterSelect(objectsender,System.Windows.Forms.TreeViewEventArgse){SqlConnectioncnn=newSqlConnection(DataAccess.ConnectionString);ds=newDataSet();
stringstrDataSource=this.treeView1.SelectedNode.Text;
mySQL=“select*from[”+strDataSource+“]”;
SqlDataAdapterda=newSqlDataAdapter(mySQL,cnn);da.Fill(ds,“”+strDataSource+“”);
dataGrid1.DataSource=ds.Tables[strDataSource];}
privatevoidmenuLogin_Click(objectsender,System.EventArgse)
{LoginF_Login=newLogin();F_Login.Show();this.Hide();
}
privatevoidmenuHelp_Click(objectsender,System.EventArgse)
{stringhelpfile=“D:\\VisualStudio.Net\\农村信息管理系统\\bin\\Debug\\农村信息管理系统。CHM”;
Help.ShowHelp(this,helpfile);
}
}}
3.1.2家庭畜牧业生产情况设计
在Cattle类的构造函数部分首先通过调用Connect函数将数据库与前台程序连接起来,接下来还调用Bind函数把数据库的各个列于前台程序的TextBox邦定起来。
toolBar1_ButtonClick事件里对于不同的toolBarButton分别进行数据浏览和修改数据。在修改数据部分先判断对数据库的操作(添加,删除,修改)。在数据修改类(AddCattle)中根据关键字StringOperation进行不同的操作。namespace农村信息管理系统
namespace农村信息管理系统{
publicclassCattle:System.Windows.Forms.Form{
privateBindingManagerBaseMyBinding;
publicCattle(){
Connect();
InitializeComponent();Bind();
}
protectedoverridevoidDispose(booldisposing){if(disposing){if(components!=null){components.Dispose();
}
}
base.Dispose(disposing);
}
privatevoidCattle_Load(objectsender,System.EventArgse){
MyBinding=this.BindingContext[ds,“家庭畜牧业生产情况”];}
publicvoidConnect(){stringstrConn=DataAccess.ConnectionString;stringsql=“select*from家庭畜牧业生产情况”;SqlConnectionConn=newSqlConnection(strConn);ds=newDataSet();Conn.Open();
SqlDataAdapterda=newSqlDataAdapter(sql,Conn);da.Fill(ds,“家庭畜牧业生产情况”);Conn.Close();Conn.Dispose();da.Dispose();}
publicvoidBind(){t_Huma.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。户码”);t_Ma.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。马”);t_Niu.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。牛”);t_Lu.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。驴”);t_Luo.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。骡”);t_Luoto.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。骆驼”);
t_Zhu.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。猪”);
t_Mianyang.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。绵羊”);t_Shanyang.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。山羊”);t_Jia.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。家禽”);t_Tu.DataBindings.Add(“Text”,ds,“家庭畜牧业生产情况。兔”);
}privatevoidtoolBar1_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgse)
{if(e.Button==this.toolBarExit)this.Close();
if(e.Button==this.toolBarFirst)
{MyBinding.Position=0;
}
if(e.Button==this.toolBarPre){MyBinding.Position-=1;}
if(e.Button==this.toolBarNext){MyBinding.Position+=1;}
if(e.Button==this.toolBarLast){MyBinding.Position=MyBinding.Count-1;}
}
}
}
参考文献:
BennyJohnansen,MatthewReynolds等着,张哲峰译Windows应用高级编程C#编程篇,清华大学出版社2003年1月
SimonRobinson,BurtHarveyC#高级编程清华大学出版社2002年4月
王华杰,李律松,孙一波等编着精通C#数据库编程清华大学出版社2004年4月
SimonRobinson着,王军译高级。Net程序设计清华大学出版社2003年7月
徐可,熊杰,袁和金编着ViasualC#深入编程京希望电子出版社2001年12月
KlausMichelsen着,云巅工作室译C#PrimerPlus人民邮电出版社2002年7月
王宏编着C#程序设计案例教程清华大学出版社2002年1月
刘启芬,顾韵华编着SQLServer实用教程电子工业出版社2003年6月