二级课题任务书农资店信息管理系统_第1页
二级课题任务书农资店信息管理系统_第2页
二级课题任务书农资店信息管理系统_第3页
二级课题任务书农资店信息管理系统_第4页
二级课题任务书农资店信息管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中中 原原 工工 学学 院院二二 级级 课课 题题 任任 务务 书书 2011 年 6 月 13 日学生姓名学生姓名孙军超孙军超学号学号201007132122专专 业业软件技术软件技术班级班级编码编码 j101课题名称课题名称农资店信息管理系统农资店信息管理系统课题来源课题来源二级实训模拟课题二级实训模拟课题指导教师指导教师郭彦宾郭彦宾专业专业计算机科学与技术计算机科学与技术职称职称集成项目经理集成项目经理课题说明:农资店信息主要有农资货物的各种信息,如:货物的名字、类型、课题说明:农资店信息主要有农资货物的各种信息,如:货物的名字、类型、单价、生产日期、保质期等;其次是客户的各种信息,如:

2、客户的名字、地址、电单价、生产日期、保质期等;其次是客户的各种信息,如:客户的名字、地址、电话、购得货物种类、数量及时间、备注等。本系统主要实现上述信息的增删改查功话、购得货物种类、数量及时间、备注等。本系统主要实现上述信息的增删改查功能,对特殊信息的汇总等其他功能。能,对特殊信息的汇总等其他功能。承担的任务:承担的任务:1系统分析与设计系统分析与设计2实现实现 dao 层各种方法层各种方法中中 原原 工工 学学 院院二二 级级 课课 题题 任任 务务 书书 2011 年 6 月 14 日工作进度安排:工作进度安排:时间轴时间轴 2011-6-13 至至 2011-6-28(除周(除周日)日)

3、负责人负责人审审核核人人任务名称任务名称123456789101112孙军超总体进度30%62%8%范金梅整理资料范金梅编写代码孙军超代码测试朱俐楠整理文档朱俐楠郭彦宾指导教师签字:指导教师签字: 2011 年年 6 月月 28 日日实训单位意见实训单位意见签章:签章: 年年 月月 日日学学院院意意见见签章:签章: 年年 月月 日日中中 原原 工工 学学 院院二二 级级 课课 题题 评评 审审 表表学号学号201007132122姓名姓名孙军超专业专业软件技术班级班级编码 j101题目题目农资店信息管理系统指指导导教教师师评评语语成绩(百分制):成绩(百分制): 指导教师签名:指导教师签名:

4、2011 年年 6 月月 日日软软软软 件件件件 学学学学 院院院院二级课题实训报告二级课题实训报告课题名称:课题名称: 农资店信息管理系统农资店信息管理系统 专专 业:业: 软件技术 班班 级:级: 编码 j101 学学 号:号: 201007132122 学生姓名:学生姓名: 孙军超 指导教师:指导教师: 郭彦宾 2011 年年 6 月月 28 日日摘摘 要要.3 3第第 1 1 章章 项目分析项目分析.4 41.1 问题描述.41.2 技术分析.41.3 工程进度计划.4第第 2 2 章章 系统分析与设计系统分析与设计.5 52.1 系统分析.52.1.1 参与者.52.1.2 需求分析

5、.52.1.3 可行性分析.52.2 系统设计.62.2.1 系统规划.62.2.2 类图.62.2.3 e-r 图.72.3 数据库设计.72.3.1 表结构设计.72.3.2 系统功能结构图.8第第 3 3 章章 实现与测试实现与测试.9 93.1 部分功能模块展示.93.1.1 界面.93.1.2 代码.10第第 4 4 章章 结束语结束语.1515附录:主要源代码附录:主要源代码.1616摘 要随着计算机的普及和计算机科学技术的飞速发展,人们开始越来越多地利用计算机来解决实际问题。现在连街头的小商店有些都有自己信息管理系统,帮助店主有条理的管理自己的货物。同样跟生活杂物商店功能及性质差

6、不多的农资商店的货物种类以及各种账目数量一点也不亚于其他种类的商店,为了解决这个问题,我们小组经过协商之后决定利用这次做课题的机会,做一套方便农资店主管理货物和账目的小型软件。首先实现整个登陆界面及菜单界面、根据所要实现的功能实现各种 swing界面并添加相应的监听器,再根据提前规划的功能实现 dao 层中的各种方法,再实现监听器方法体中的具体代码。整个系统从操作简便、界面友好、灵活、实用、安全的要求出发,完成对进货登记、销售查询、账目管理,包括对系统数据的维护,信息的添加、删除、查询等。计算机信息化管理以其存储信息量大、速度快、便于管理等优点将会受到更多用户的青睐。关键词:监听器、数据库连接

7、、dao、swing第 1 章 项目分析1.1 问题描述 实现各种 swing 界面及监听器,统一编写 dao 层中实现各种功能的方法,完善监听器方法体中的内容。1.2 技术分析 swing 界面的容器采用 jframe 编写,底层数据库采用 mysql,实现功能时连接数据库采用-使用某个功能前,连接一次数据库,使用完毕后,立即关闭数据库的模式。添加监听器时,统一使用一个监听器内部类,监听器方法采用判断名字进行区分各个 button 之间的不同。汇总各种信息使用 jtable 组件,所有监听器方法统一写在一个 dao 包中进行封装。客户、货物、用户信息使用 javabean 封装,使用其 ge

8、t、set 方法进行信息在数据库和 swing 界面之间的流通。欢迎、菜单界面友好、易懂,便于用户使用,并且有友好的提示界面。数据库是一项技术,主要包括数据的管理和处理两部分;在数据库的设计中,重点在数据库的需求分析中,构化出来,把用户所需的要求统统分析出来,再进一步的进行设计;完成相应的需求分析后,就是对数据库结构的设计,数据库结构设计主要分为数据库结构设计和数据库行为设计,数据库结构设计是在需求分析的基础上逐步形成对数据库概念,逻辑,物理结构的描述了、概念结构要有丰富的语义表达能力,表达用户的各种需求;概念设计的策略主要有三种:自上向下,自顶向外,自里向外和混合策略;逻辑结构设计主要是把在

9、概念设计中设计的基本 e-r 模型转换为具体数据库管理系统支持的组织层数据模型;一般包括将概念结构转换为组织层数据模型;对组织层数据模型进行优化;物理结构设计是利用数据库管理系统提供的方法,对已确定数据库逻辑结构进行优化存储结构,数据存取路径,合理的位置以及存储分配等;从而设计出一个高效,可实现的无理数据结构。1.3 工程进度计划 6 月 13 日到 6 月 17 日:需求分析 6 月 17 日到 6 月 19 日:结构设计(概念、逻辑、物理结构设计) 6 月 19 日到 6 月 22 日:行为设计(功能设计、事务设计、程序设计)6 月 22 日到 6 月 25 日:代码实现6 月 25 日到

10、 6 月 27 日:代码测试6 月 27 日到 6 月 28 日:整理文档第 2 章 系统分析与设计2.1 系统分析2.1.1 参与者 老师、孙军超、范金梅、朱俐楠2.1.2 需求分析经过对几个农资店铺的日常工作的调查研究及管理流程的分析,要求本系统具有以下功能:农资信息查询功能,方便店员销售货物时掌握价格的尺度。农资信息的删除、修改、增加功能,确保信息的准确性和完整性。客户信息的增删改查功能,利用备注信息掌握客户的各种信息。账目总结功能,防止漏帐,错帐的状况发生。统一、友好的操作界面,以保证系统的易用性。2.1.3 可行性分析根据调查得知,现在大多数小型农资商店采取手工方式对农资信息进行管理

11、。将不好记住的价格弄个标签贴在货物架上,当进价调整时再统一换一遍,工作量大,也不免出现差错。对客户信息也是采用纯手工操作,既费时又费力,一旦账本等用作记录的本子丢失,将死无对证。基于这一系列的问题,实在是有必要建立一个农资信息管理系统,使农资店的日常生活管理工作规范化、系统化、程序化、避免管理的随意性,提高信息处理的速度和准确性,能够及时、有效准确地完成每天的销售、账目管理任务,为广大农资店主提供方便。2.2 系统设计2.2.1 系统规划本系统由货物管理、客户管理、账目管理三个功能模块组成,以后也可扩充,具体内容如下:货物管理货物管理主要实现货物的增删改查功能。客户管理客户管理主要实现客户的增

12、删改查功能。账目管理账目管理主要实现账目的添加和总结功能。2.2.2 类图agriculturaldao-conn: connection+getconnection():connection+add(clienteleinformationdo a):int+add(agriculturallinformationdo a):int+add(userinformationdo a):int+closeconnection(resultset r,preparedstatement p,connection conn):void+delete(agriculturallinformationd

13、o a):int+delete(clienteleinformationdo a):int+delete(userinformationdo a):int+update(agriculturallinformationdo a):int+update(clienteleinformationdo a):int2.2.3 e-r 图货物客户销售idnametypedatebeizhupricekidknametelpaybeizhuaddressbeizhunumber2.3 数据库设计2.3.1 表结构设计load 表结构字段名字段名数据类型数据类型是否为空是否为空是否主键是否主键默认值默认值

14、useridint(11)no是0uservarchar(255)yes是nullpwdvarchar(255)yes否nullagricultural information 表结构字段名字段名数据类型数据类型是否为空是否为空是否主键是否主键默认值默认值agriculturalidint(11)no是0namevarchar(20)yes否nulltypevarchar(255)yes否nullpricevarchar(255)yes否nulldatevarchar(255yes否null)beizhuvarchar(255)yes否nullclientele information 表结构

15、字段名字段名数据类型数据类型是否为空是否为空是否主键是否主键默认值默认值clienteleidint(11)no是0kehunamevarchar(20)yes否nulltelvarchar(20)yes否nullpayvarchar(255)yes否nulladdressvarchar(255)yes否nullbeizhuvarchar(255)yes否nullsale information 表结构字段名字段名数据类型数据类型是否为空是否为空是否主键是否主键默认值默认值clienteleidint(11)no是0agriculturalidint(11)no是0numbervarchar(

16、255)yes否nullbeizhuvarchar(255)yes否null2.3.2 系统功能结构图农资店管理系统农资店管理系统货物信息管理客户信息管理账目管理添加货物信息删除货物信息修改货物信息查询货物信息修改客户信息删除客户信息添加客户信息查询客户信息年终结账退出系统第 3 章 实现与测试3.1 部分功能模块展示3.1.1 界面3.1.2 代码import javax.swing.imageicon;import javax.swing.jbutton;import javax.swing.jframe;import javax.swing.jlabel;import javax.swi

17、ng.joptionpane;import javax.swing.jpanel;import javax.swing.jpasswordfield;import javax.swing.jtextfield;import do.userinformationdo;import dao.agriculturaldao;import java.awt.*;import java.awt.event.actionevent;import java.awt.event.actionlistener;public class loadswing extends jframeprivate textfi

18、eld f1 = new textfield(5);private jpasswordfield f2 = new jpasswordfield(5);private jbutton b1 = new jbutton(登陆);private jbutton b2 = new jbutton(重置);private jbutton b3 = new jbutton(注册用户);private jlabel jl1 = new jlabel(用户名: );private jlabel jl2 = new jlabel(密码: );private agriculturaldao adao = new

19、 agriculturaldao();private mylistener listener = new mylistener(); public loadswing() jpanel jp = new jpanel(); jp.setlayout(new gridlayout(2,2,5,5); jp.add(jl1); jp.add(f1); jp.add(jl2); jp.add(f2); jpanel jp1 = new jpanel(); jp1.add(b1); jp1.add(b2); jp1.add(b3); jlabel jl = new jlabel(new imageic

20、on(image/农林医院1.jpg); add(jl,borderlayout.north); add(jp,borderlayout.center); add(jp1,borderlayout.south); b1.addactionlistener(listener); b2.addactionlistener(listener); public static void main(string args) jframe frame = new loadswing();frame.settitle(农资店管理系统登陆页面);frame.setlocationrelativeto(null)

21、;frame.setdefaultcloseoperation(jframe.exit_on_close );frame.setvisible(true);frame.pack(); class mylistener implements actionlistener public void actionperformed(actionevent e) userinformationdo u = new userinformationdo(); u.setuser(f1.gettext(); u.setpwd(new string(f2.getpassword(); int flog = ad

22、ao.isload(u); if(e.getsource() = b1) if(flog = 1) new menuswing(); setvisible(false); joptionpane.showmessagedialog(null,登陆成功); else if(f1.gettext() = null) joptionpane.showmessagedialog(null,用户名不能为空); else if(new string(f2.getpassword() = null) joptionpane.showmessagedialog(null,密码不能为空); else if(ne

23、w string(f2.getpassword() = null) joptionpane.showmessagedialog(null,请输入用户名和密码); else joptionpane.showmessagedialog(null,用户名或密码错误); f1.settext(); f2.settext(); else if(e.getsource() = b2) f1.settext(); f2.settext(); else if(e.getsource() = b3) userinformationdo u1 = new userinformationdo(); u1.setus

24、er(f1.gettext(); u1.setpwd(new string(f2.getpassword(); adao.add(u); public class menuswing extends jframe jmenu jmenu = new jmenu(货物信息管理),new jmenu(客户信息管理), new jmenu(账本管理),new jmenu(退出) ; jmenuitem jmenuitem = new jmenuitem(查询货物信息),new jmenuitem(删除货物信息), new jmenuitem(修改货物信息),new jmenuitem(添加货物信息)

25、 ; jmenuitem jmenuitem1 = new jmenuitem(删除客户信息),new jmenuitem(修改客户信息),new jmenuitem(添加客户信息) ; jmenuitem jmenuitem2 = new jmenuitem(查询客户信息),new jmenuitem(年终结账) ; public menuswing() jmenubar jp = new jmenubar(); for(int i = 0; i 4;i+) jp.add(jmenui); jmenu0.add(jmenuitemi); for(int i = 0; i 3;i+) jmen

26、u1.add(jmenuitem1i); for(int i = 0; i 2;i+) jmenu2.add(jmenuitem2i); jlabel jl = new jlabel(new imageicon(image/农林医院.jpg); add(jl,borderlayout.center); add(jp,borderlayout.north);settitle(农资店信息管理系统); setlocationrelativeto(null);setdefaultcloseoperation(jframe.exit_on_close );setvisible(true);pack();

27、jmenuitem0.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new selecthuowuswing(); );jmenuitem1.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new showtableswing().settabelname(agriculturalinformation); );jmenuitem2.addactionli

28、stener(new actionlistener()public void actionperformed(actionevent arg0) new selecthuowuswing(); );jmenuitem3.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new addhuowuswing(); );jmenuitem10.addactionlistener(new actionlistener()public void actionperformed(actio

29、nevent arg0) new showtableswing().settabelname(clienteleinformation); );jmenuitem11.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new selectkehuswing(); );jmenuitem12.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new addkehu

30、swing(); );jmenuitem20.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new selectkehuswing(); );jmenuitem21.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) new showtableswing().settabelname(clienteleinformation); );jmenu3.addact

31、ionlistener(new actionlistener()public void actionperformed(actionevent arg0) setvisible(false); ); 第 4 章 结束语在这此次系统开发过程中,由于本人是初次开发软件,在基础知识、开发经验等各方面都存在着不足。另外,这次课题也有时间限制,因此该系统必然会出现许多缺陷和不足。但也总结了好多经验,为下次开发提供了优势。总的来说有得有失,对开发系统的整个过程有了一个浅显的把握,对基础知识又巩固了一遍,对建立自己的编程思想也有很大帮助。但在数据库设计阶段还有待提高,模块意识也不明显,日后更新维护也不好实施

32、,但这并不能成为我止步不前的理由,我会利用假期时间继续完善这个系统的各种不足,也希望老师能提出宝贵意见,使我在以后的软件道路上少走一些弯路。还有特别需要提的一点就是团队合作,这次课题虽然不大,但是团队合作还是让我见识到了它的重要作用,我们的团队里的每一个成员都完成了自己的任务,最后衔接的也不错,大大降低了开发的复杂性、和所用时间,为以后进入公司积累了经验,受益良多。参考文献:1 何玉洁 等编著的数据库原理与应用教程 机械工业出版社 2010 年 9 月 2 万波 郑海红 李娜 等译的java 语言程序设计基础篇及进阶篇 机械工业出版社3 王国辉 吕海涛 李钟尉 编著的java 数据库系统开发

33、案例精选 人民邮电出版社附录:主要源代码package dao;import java.sql.*;import java.util.vector;import javax.swing.table.defaulttablemodel;import do.*;public class agriculturaldao private static connection conn = null;public connection getconnection()try class.forname(com.mysql.jdbc.driver);conn = drivermanager.getconnec

34、tion(jdbc:mysql:/localhost:3306/agricultural?useunicode=true&characterencoding=gb2312, root, root); catch (classnotfoundexception e) e.printstacktrace(); catch (sqlexception e) e.printstacktrace();return conn;public void closeconnection(resultset rs,preparedstatement pstmt,connection conn)try rs

35、.close();pstmt.close();conn.close(); catch (sqlexception e) / todo 自动生成 catch 块e.printstacktrace();public void closeconnection(preparedstatement pstmt,connection conn)try pstmt.close();conn.close(); catch (sqlexception e) e.printstacktrace();private resultset executequery(string sql) try if(conn=nul

36、l) getconnection();return conn.createstatement(resultset.type_scroll_sensitive,resultset.concur_updatable).executequery(sql); catch (sqlexception e) e.printstacktrace();return null; finally private int executeupdate(string sql) try if(conn=null)getconnection();return conn.createstatement().executeup

37、date(sql); catch (sqlexception e) system.out.println(e.getmessage();eturn -1; finally public resultset select(string tablename,string str)string sql = select * from + tablename + where name = ? ; resultset result = null;try connection conn = getconnection();preparedstatement pstmt = conn.preparestat

38、ement(sql);pstmt.setstring(1, str);result = executequery(sql);closeconnection(result,pstmt,conn); catch (sqlexception e) e.printstacktrace();return result;public defaulttablemodel showtable(string tablename)defaulttablemodel tablemodel = new defaulttablemodel();vector row = new vector();vector colum

39、n = new vector();string sql = select * from + tablename ;int i = 0;try connection conn = getconnection();preparedstatement pstmt = conn.preparestatement(sql);resultset result = executequery(sql);i = result.getmetadata().getcolumncount();system.out.println(影响结果条数: + i);while(result.next()vector singl

40、e = new vector();for(int j = 0; j i;j+)single.addelement(result.getobject(j + 1);row.addelement(single);for(int k = 1;k = i;k+)column.addelement(result.getmetadata().getcolumnname(k);tablemodel.setdatavector(row, column);closeconnection(result,pstmt,conn); catch (sqlexception e) / todo 自动生成 catch 块e

41、.printstacktrace();return tablemodel;public int isload(userinformationdo u)int flag = 0;string sql = select * from where user = + u.getuser() + ;try connection conn = getconnection();preparedstatement pstmt = conn.preparestatement(sql);resultset resultset = pstmt.executequery();if(resultset.next()if

42、(u.getpwd().equals(resultset.getstring(pwd)flag = 1;resultset.last();int rowsum = resultset.getrow();resultset.first();if(rowsum != 1)flag = 0;else flag = 0;elseflag = 0;closeconnection(pstmt,conn); catch (sqlexception e) / todo 自动生成 catch 块flag = 0;return flag; public int add(agriculturalinformatio

43、ndo a) string sql = insert into agriculturalinformation (name,type,price,date,beizhu)values(?,?,?,?,?);int i = 0;try connection conn = getconnection();preparedstatement pstmt = conn.preparestatement(sql);/设置各个占位符的实际参数pstmt.setstring(1, a.getname();pstmt.setstring(2, a.gettype();pstmt.setstring(3, a.

44、getprice();pstmt.setstring(4, a.getdate();pstmt.setstring(5, a.getbeizhu();/执行sqli = pstmt.executeupdate();system.out.println(影响结果条数: + i);closeconnection(pstmt,conn); catch (sqlexception e) e.printstacktrace();return i; public int add(clienteleinformationdo a) string sql = insert into clienteleinfo

45、rmation (name,tel,pay,address,beizhu)values(?,?,?,?,?);int i = 0;try connection conn = getconnection();preparedstatement pstmt = conn.preparestatement(sql);/设置各个占位符的实际参数pstmt.setstring(1, a.getname();pstmt.setstring(2, a.gettel();pstmt.setstring(3, a.getpay();pstmt.setstring(4, a.getaddress();pstmt.

46、setstring(5, a.getbeizhu();/执行sqli = pstmt.executeupdate();system.out.println(影响结果条数: + i);closeconnection(pstmt,conn); catch (sqlexception e) / todo 自动生成 catch 块e.printstacktrace();return i; public int add(userinformationdo a) string sql = insert into load (user,pwd)values(?,?);int i = 0;try connection conn = getconnection();preparedstatement pstmt = conn.preparestatement(sql);pstmt.setstring(1, a.getuser();pstmt.setstring(2, a.getpwd();i = pstmt.executeupdate();system.out.println(影响结果条数: + i);closeconnection(pstm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论