软件工程课程设计编码与测试

合集下载

软件工程编码与测试实现

软件工程编码与测试实现

9
编码风格
3. 语句构造:每个语句都应该简单而直接
可以使用一些规则使语句构造简单, 如:尽量避免复杂的条件测试,不要为 了节省空间而把多个语句写在同一行等。
2021/1/12
10
编码风格
4. 输入输出 在设计和编写程序时应考虑输入和输出
风格的规则。
2021/1/12
11
编码风格
5. 效率:处理机时间和存储器容量 三条基本原则: a. 效率是性能要求,需求分析阶段确定 b. 效率是靠好设计来提高的 c. 程序的效率和程序的简单程度是一致的
2021/1/12
12
编码风格
5. 效率 程序运行时间:写程序的风格对执行速度有影响 存储器效率:提供存储器效率 输入输出的效率:提高人机通信的效率
2021/1/12
13
软件测试基础
软件测试阶段的根本目标是尽可 能多地发现并排除软件中潜藏的错误, 最终把一个高质量的软件系统交给用 户使用。
20前2一1页/1/12


子系统测试是把经过单元测试的
试 模块放在一起形成一个子系统来测试。

模块相互间的协调和通信是这个测试 过程中的主要问题。
步 骤
这个步骤着重测试模块的接口。
20前2一1页/1/12
23

系统测试


系统测试是把经过测试的子系统装配 成一个完整的系统来测试。在这个过程中

不仅应该发现设计和编码的错误,还应该
14
基本概念
▪ 软件测试的目标 ▪ 软件测试准则 ▪ 测试方法 ▪ 测试步骤 ▪ 测试阶段的信息流
20前2一1页/1/12
15
软件测试的目标

软件工程实验报告模板3--实验4 编码及测试

软件工程实验报告模板3--实验4 编码及测试

实验报告课程名称软件工程实验项目实验4 编码及测试系别___ 计算机学院 _ ______专业____ 网络工程 _ ___班级/学号________网工1101_______组长姓名 __薛又蜚 2011011312___同组成员荣理 2011011325胡跃伟 2011011313孙昊 2011011323 实验日期_ XXXX.XX.XX成绩___________________ ___指导教师田英爱1 实验内容学生根据系统的特点,选取适当的编程语言实现系统,并对系统功能实施测试。

2 实验要求完成系统的编码和测试工作,书写实验报告。

3 分组说明组长姓名:[薛又蜚]负责任务说明:[选择开发语言,编码,给组员分配任务。

]成员姓名:[孙昊]各自负责任务说明:[在本次实验中参与关于系统测试的构想和讨论。

]成员姓名:[荣理]各自负责任务说明:[在本次实验中同样参与关于系统测试的构想和讨论。

]成员姓名:[胡跃伟]各自负责任务说明:[对测试用例进行实施与测试。

]4系统题目4.1 请根据所选系统,说明所利用的开发语言,并说明所开发系统的编码结构。

使用了php,mysql,javascript4.2 根据系统用例及所实现的系统功能,编写4-5个具有代表性的测试用例。

(1)登录模块测试登录、密码模块测试本测试采用黑盒测试法:为了检测不同权限的用户在登录时,是否能进入对应的模块并得到对应有的权限,检查密码模块的正确有效测试用例1(正确输入)【输入:】用户;lc 密码:lc【期望输出】:登录成功,显示前台销售管理窗体【实际输出】:登录成功,显示前台销售管理窗体测试用例2(无该用户)【输入】:用户名:aa 密码:aa【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误测试用例3 (密码错误)【输入】:用户;lc 密码:aa【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误测试用例4(无输入)【输入】:用户:密码:【期望输出】:提示用户名或密码错误【实际输出】:提示用户名或密码错误(2)销售管理模块测试本测试是采用黑盒与白盒测试,为了检测系统的销售时的收银业务销售定价等功能的输入输出进行验证。

第6章 软件工程——结构化软件开发——详细设计编码测试

第6章 软件工程——结构化软件开发——详细设计编码测试


名字不是越长越好,应当选择精炼的意义明确的名字。必要 时可使用缩写名字,但这时要注意缩写规则要一致,并且要 给每一个名字加注释。同时,在一个程序中,一个变量只应 用于一种用途。
21
源程序文档—注释



程序中的注释是程序员与日后的程序读者之间通信的重要 手段。 注释决不是可有可无的。 一些正规的程序文本中,注释行的数量占到整个源程序的1 /3到1/2,甚至更多。 注释分为序言性注释和功能性注释。
10
11

软件设计文档要求
概要设计说明书:规定软件结构

内容:以层次图表形式表示的软件总体结构、模块的
外部设计
详细设计说明书:描述程序的过程

内容:表示软件结构的图表、对逐个模块的程序描述
12

复审



复审:设计复审指对设计文档的复审。 目的在于及早发现设计中的缺陷和错误。 复审指导原则: 概要设计复审(PDR)和详细设计复审(DDR)应该分 开进行。 复审的内容: 概要设计复审(PDR): 重点在系统的总体结构、模块的划分、内外接口 详细设计复审(DDR): 重点在各个模块的具体设计上 软件设计时复审,可以找出软件中50%——65%的错误
22
序言性注释

通常臵于每个程序模块的开头部分,它应当给出程序的整体 说明,对于理解程序本身具有引导作用。有些软件开发部门 对序言性注释做了明确而严格的规定,要求程序编制者逐项 列出。 有关项目包括: 程序标题; 有关本模块功能和目的的说明; 主要算法; 接口说明:包括调用形式,参数描述,子程序清单; 有关数据描述:重要的变量及其用途,约束或限制条件, 以及其它有关信息; 模块位臵:在哪一个源文件中,或隶属于哪一个软件包; 开发简历:模块设计者,复审者,复审日期,修改日期 及有关说明等。

软件工程第6章 编码和测试(终)

软件工程第6章  编码和测试(终)

第6章编码和测试案例6教务管理系统“教务管理系统”在开发中,需要考虑到其用户量大以及活动时间集中的现状,必须做好相应的算法优化以及缓存措施。

教务系统还有开学期间批量提供学生注册等功能,所以必须考虑到高校有大量学生,很都工作都必须要实现可以批量完成。

高校教务管理系统还提供大量学生成绩记录和查询,而很多学生都精通计算机相关知识,所以安全性上要做较多考虑。

同时考虑到我国一些高校实行学年制,一些高校实行学年学分制,所以教务管理系统要同时支持两种制度。

教务管理系统,可以一个模块一个模块的测试,例如注册,排课等,单元测试通过后,再组合在一起。

测试时,需要模拟大量学生同时操作,以测试系统在高负载情况的反应,是否能正常运转。

同时由于教学程序的敏感性,需要做一定数据安全性设计,防入侵,防灾害损失,如断电,水灾等。

【知识导入】在完成了项目的总体设计和详细设计之后,也就结束了项目的全部设计工作。

此时需要考虑如何将设计变为代码,也就进入我们本章节要学习的内容,编码是将软件设计的结果转换成某种程序设计语言书写的程序,是软件工程实施过程中一个必不可少的阶段。

程序编码是把“详细设计”转换成用某一种程序设计语言编写可在实际环境中运行的实际程序。

在此过程中,编程语言的选择和程序设计风格会影响到软件的质量与可维护性。

对源程序的质量要求主要有3点:①语法正确。

②源程序具有良好的结构性。

③良好的程序设计风格。

在软件开发,特别是大型软件的开发过程中,每一个阶段都可能引入新的错误。

虽然可以在每个阶段结束之前通过正式的技术评审和管理复审的方法发现并纠正软件中的差错,但审查并不能发现所有的错误。

软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。

通过软件测试,可以发现软件中绝大部分潜伏的错误,从而大大提高软件产品的可用性、正确性、可靠性,进而可显著提高软件产品质量。

统计表明,软件测试工作量往往占软件开发总工作量的40%以上。

而对于那些可靠性要求极高的系统,如在关键的实时嵌入式计算机系统的软件测试成本可能是软件开发其它阶段总成本的3—5倍以上。

《软件工程》教学课件 第4章 软件编码和软件测试

《软件工程》教学课件 第4章  软件编码和软件测试

的 ➢ Apple公司的iOS移动操作系统需要使用Objective-C语言,新发布的语言是Swift。

择 ➢ Microsoft公司的Windows Phone操作系统所用的编程语言是C,C++,C#等。
14
14
4.1 结构化程序设计
4.1.2 程序设计风格
结构化 程序 设计
(1)结构化程序设计(SP)强调模块采用自上而下、逐步求精的设 计方法,只使用顺序、选择和循环3种基本控制结构构造程序。
找出来,以保证软件
总之,软件测试是指通过人工或计算机执行程序,来有意识地。
22
22
4.2 软件测试目标
软件测 试目标
(1)测试是为了发现程序中的错误而执行程序的过程。
(2)好的测试方案能够发现尚未发现的错误。
(3)成功的测试是发现了尚未发现的错误的测试。
如果认为测试是为了表明程序是正确的,那么从主观上不是为了查找错误而进行测试,这样的测试是不大会 发现错误的,测试者没有发现错误的愿望。 如果认为“成功的测试是没有发现错误的测试”,则很可能存在着没有发现的错误而自以为测试成功了,就 像医生没有查出病人的病就自以为此人无病。
4.1.1
其中,汇编语言是面向机器的语言,可以对外部设备的一些接口进行操作;Ada适合于实时并行系
统。此外还有Mesa,Occam,Fortran 90,Linda,以及用于通讯领域的程序设计语言都有实时
程 功能,如Gypsy,CHILL。
序 设
(4)系统软件。此类软件支持与硬件相关的低级操作。编写系统软件(如操作系统,编译、解释

2) 结构化程序设计的定义是:只
B
使用顺序、选择和循环3种基本控

软件工程导论第7章 编码与测试3

软件工程导论第7章 编码与测试3
第七章 实现(编码与测试)
新章导入: (1)在软件的生命周期中,编码与测试处在第几阶段?
问题定义 可行性研究 需求分析 概要设计 详细设计 实现
(2)本章与第六章详细设计的关系?
1
第七章 实现(编码与测试)
• 7.1 编码
软件
• 7.2 软件测试基础
测试
• 7.3 单元测试
综合
• 7.4 集成测试
要点: –注释要正确。 –描述一段程序,而不是每一个语句。 –用缩进和空行,使程序与注释容易区别。
10
★ 视觉组织: 空格、空行和移行
• 恰当地利用空格,可以突出运算的优 先性,避免发生运算的错误。例如 , 将表达式
(A<-17)ANDNOT(B<=49)ORC
写成 (A<-17) AND NOT (B<=49) , length, width, cost, price 写成 integer cost, length, price , size, width
c. 如果设计时使用了一个复杂的数据结构,则应该用 注解说明该数据结构的方法和特点。
13
(3)语句构造
应该遵循的原则是:
26
7.2.2 软件测试准则 问题之二——什么时候测试? 应当把“尽早地和不断地进行软件测试” 作 为软件开发者的座右铭。 注意: 程序编写的许多错误是“先天的”:据 统计,属于需求分析和软件设计的错误约占 64%,属于程序编写的错误仅占36%。
27
开发前期出现错误的扩展
测 编 设 需求
试 码 计 分析 计划 A
• 名字不是越长越好,应当选择精炼的意义明确的名字。 必要时可使用缩写名字,但要注意缩写规则要一致, 并且要给每一个名字加注释。同时,在一个程序中, 一个变量只应用于一种用途。

软件开发实习的编码与测试工作

软件开发实习的编码与测试工作

软件开发实习的编码与测试工作在软件开发过程中,编码与测试是两个非常重要的环节。

作为一名软件开发实习生,掌握编码与测试技能是必不可少的。

本文将重点探讨软件开发实习中的编码与测试工作,并给出一些相关的实践建议。

一、编码工作编码是软件开发的核心环节,它是将需求转化为可执行代码的过程。

作为一名软件开发实习生,在编码工作中应该注意以下几个方面:1. 了解项目需求:在进行编码之前,首先要对项目的需求进行全面的了解。

可以阅读需求文档、与项目经理进行沟通等方式,确保自己对项目需求有清晰的认识。

2. 熟悉编程语言和开发工具:不同的项目可能会使用不同的编程语言和开发工具,作为实习生应该熟悉所使用的编程语言和开发工具,并不断学习和提升自己的技术能力。

3. 使用合适的编码规范:编码规范是软件开发中非常重要的一环,它可以提高代码的可读性和可维护性。

在进行编码工作时,应该遵循团队所制定的编码规范,编写出高质量的代码。

4. 代码版本控制:在软件开发过程中,往往需要多人协同工作。

使用代码版本控制工具,如Git,可以方便地管理和追踪代码的变动,保证代码的安全性和可追溯性。

5. 进行代码复审:代码复审是保证代码质量的重要环节。

作为实习生,应该参与代码复审的工作,学习他人的经验和技巧,并不断改进自己的编码能力。

二、测试工作测试是软件开发中一个同样重要的环节,它是为了验证所开发的软件是否符合需求和预期。

作为一名软件开发实习生,在测试工作中应该注意以下几个方面:1. 了解测试需求:在进行测试工作之前,首先要了解测试需求。

可以与测试人员沟通,明确测试的范围和目标,为测试工作做好准备。

2. 编写测试用例:测试用例是进行软件测试的基本单位,它描述了测试的输入数据、预期输出和测试步骤。

作为实习生,应该学习如何编写高质量的测试用例,并不断完善自己的测试能力。

3. 执行测试用例:执行测试用例是测试工作的核心任务,它通过输入一组测试数据,观察输出结果是否符合预期,从而验证软件的功能和性能。

软件工程课程设计编码与测试

软件工程课程设计编码与测试

淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:图着色理论在仓库系统中的应用——编码和测试班级:网络122学号:83姓名:叶婷1、实验目的与要求(1)选定项目中以模块,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术设计若干测试用例。

然后,使用测试用例进行实际测试操作实验,并给出测试结果;(2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive 公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具。

2、实验内容一、编码1. 1系统界面设计描述当用户启动程序后真接显示主界面,在主界面中有‘用户管理’,‘商品入库’,‘商品出库’,‘库存管理’以及退出系统。

当用户在未登录的状态下执行任何操作时系统会自动判断是否已经登录,若用户还没有登录则显示登录界面,让用户进行登录。

若登录的帐号不存在则表示该用户还不是员工,故需要用户重新申请新的用户,新用户的类型为普通员工,当普通用户已经通过管理员审核,并且分配了相关的权限后就可以登录系统。

若用户是管理员则该用户可以对普通用户进行相关的修改和删除,而且还可以修改、查询、删除库存表及商品出入库表中的相关信息。

若用户是普通员工则只能进行商品的出入库及查询。

1.1.1登录界面设计用户通过输入登录的账号和密码及类型系统进行验证1.1.2商品出入库界面设计1.1.3库存界面设计编码1.2.1登录界面(主要代码)public boolean isExistsEmply(String id){boolean flags=false;try{int count=0;String sql1="select 员工号from Users where 员工号=";PreparedStatement ps=(sql1);(1, (String)id);ResultSet result=();while()){}();();if (count>0){=id;flags=true;getInfo(id);return flags;}else{((String)id);}}catch(Exception e){();}return flags;}oString().trim();password=(2).trim();employtype=(3).toString().trim();emplooy=(4).toString().trim();}();();}catch(Exception e){();}}...............");();isE=true;return isE;}else if "否")){(UID);return isE;return isE;}1.2.2出库界面(主要代码)public Object setSdata2(){try{String sql2="select * from OutStore";Statement st=();ResultSet result=(sql2);Sdata2=new Object[Row2][Column2];int n=0;while()){Sdata2[n][0]=(1).toString().trim();Sdata2[n][1]=(2).toString().trim();Sdata2[n][2]=(3).toString().trim();Sdata2[n][3]=(4).toString().trim();Sdata2[n][4]=(5).toString().trim();Sdata2[n][5]=(6).toString().trim();n++;}();();return Sdata2;}catch(Exception e){();}return Sdata2;}oString().trim();newStoreOfOut[2]=(3).toString().trim();newStoreOfOut[3]=new Integer(4));newStoreOfOut[4]=(5).toString().trim();newStoreOfOut[5]=(6).toString().trim();}();();return newStoreOfOut;}catch(Exception e){();return newStoreOfOut;}1.2.3入库界面public Object setSdata(){try{String sq2="select * from InStore";Statement st=();ResultSet result=(sq2);Sdata=new Object[Row][Column];int n=0;while()){Sdata[n][0]=(1).toString().trim();Sdata[n][1]=(2).toString().trim();Sdata[n][2]=(3).toString().trim();Sdata[n][3]=(4).toString().trim();Sdata[n][4]=(5).toString().trim();Sdata[n][5]=(6).toString().trim();n++;}();();return Sdata;}catch(Exception e){();}return Sdata;}oString().trim();newRow[2]=(3).toString().trim();newRow[3]=new Integer(4));newRow[4]=(5).toString().trim();newRow[5]=(6).toString().trim();}();();1.2.4oString().trim();Sdata[n][1]=(2).toString().trim();Sdata[n][2]=(3);n++;();();return Sdata;}catch(Exception e){}return Sdata;}public void init(){1.1.1分析研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,可以节省时间、财力和精力,并且避免了专业方面的困难.及早地预测项目的可行性,在可行的前提下获得最好的实施方案。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

淮海工学院计算机工程学院实验报告书课程名:《软件工程》题目:图着色理论在仓库系统中的应用——编码和测试班级:网络122学号:2012122683姓名:叶婷1、实验目的与要求(1)选定项目中以模块,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术设计若干测试用例。

然后,使用测试用例进行实际测试操作实验,并给出测试结果;(2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装Mercury Interactive 公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件Rational Suite TestStudio的Rational Robot、Rational TestManagerhe、Rational Quantify等工具。

2、实验内容一、编码1. 1系统界面设计描述当用户启动程序后真接显示主界面,在主界面中有‘用户管理’,‘商品入库’,‘商品出库’,‘库存管理’以及退出系统。

当用户在未登录的状态下执行任何操作时系统会自动判断是否已经登录,若用户还没有登录则显示登录界面,让用户进行登录。

若登录的帐号不存在则表示该用户还不是员工,故需要用户重新申请新的用户,新用户的类型为普通员工,当普通用户已经通过管理员审核,并且分配了相关的权限后就可以登录系统。

若用户是管理员则该用户可以对普通用户进行相关的修改和删除,而且还可以修改、查询、删除库存表及商品出入库表中的相关信息。

若用户是普通员工则只能进行商品的出入库及查询。

1.1.1登录界面设计用户通过输入登录的账号和密码及类型系统进行验证1.1.2商品出入库界面设计1.1.3库存界面设计1.2编码1.2.1登录界面(主要代码)public boolean isExistsEmply(String id){boolean flags=false;try{int count=0;String sql1="select 员工号from Users where 员工号=?";PreparedStatement ps=conn.prepareStatement(sql1);ps.setString(1, (String)id);ResultSet result=ps.executeQuery();while(result.next()){count=result.getRow();}result.close();ps.close();if (count>0){this.UID=id;flags=true;getInfo(id);return flags;}else{error.errorDialog((String)id);}}catch(Exception e){e.printStackTrace();}return flags;}//根据‘工号’分别获取对应的的信息public void getInfo(String uid){try{String sql2="select 员工姓名,密码,员工类型,是否员工from Users where 员工号=?";PreparedStatement pps=conn.prepareStatement(sql2);pps.setString(1,uid);ResultSet result=pps.executeQuery();while(result.next()){name=result.getString(1).toString().trim();password=result.getString(2).trim();employtype=result.getString(3).toString().trim();emplooy=result.getString(4).toString().trim();}result.close();pps.close();}catch(Exception e){e.printStackTrace();}}//对登录的'工号'进行密码验证public boolean login(String id,String pwd,String type){boolean isEmploy=false;try{if (id.equals(UID) && pwd.equals(password) && type.equals(employtype)){isEmploy=true;return isEmploy;}else{return isEmploy;}}catch(Exception e){e.printStackTrace();}return isEmploy;}//判断用户是否已经通过管理员的审核public boolean Y_NEmply(){boolean isE=false;if (this.emplooy.equals("是")){System.out.println("员工号:"+UID+"已经通过了审核.................");main.showMainFarme();isE=true;return isE;}else if (this.emplooy.equals("否")){error.noEmplo0y(UID);return isE;}return isE;}1.2.2出库界面(主要代码)public Object setSdata2(){try{String sql2="select * from OutStore";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sql2);Sdata2=new Object[Row2][Column2];int n=0;while(result.next()){Sdata2[n][0]=result.getString(1).toString().trim();Sdata2[n][1]=result.getString(2).toString().trim();Sdata2[n][2]=result.getString(3).toString().trim();Sdata2[n][3]=result.getString(4).toString().trim();Sdata2[n][4]=result.getString(5).toString().trim();Sdata2[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();return Sdata2;}catch(Exception e){e.printStackTrace();}return Sdata2;}//先判断库存表中是否存在要出库的商品编号public boolean isExistsGid(String gid){boolean flags=false;try{int count=0;String sql3="select count(商品编号) from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql3);ps.setString(1, gid);ResultSet result=ps.executeQuery();while(result.next()){count++;}result.close();ps.close();if (count>0){flags=true;return flags;}else{return flags;}}catch(Exception e){e.printStackTrace();}return flags;}//判断库存表中的库存量是否满足出库的笨条件public boolean lookNumber(String gid,int number){boolean flags=false;try{int num=0;String sql4="select 库存量from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, gid);ResultSet result=ps.executeQuery();while(result.next()){num=result.getInt(1);}result.close();ps.close();if (number<=num){flags=true;}elseflags=false;return flags;}catch(Exception e){e.printStackTrace();}return flags;}//商品出库向出库表写入一条数据的出库记录public void newStoreOuput(String outgid,String outgname,int outgnum){ try{String sql5="insert into OutStore (商品编号,商品名称,出库数量,出库人,出库时间) values(?,?,?,?,getdate())";PreparedStatement ps=conn.prepareStatement(sql5);ps.setString(1, outgid);ps.setString(2, outgname);ps.setInt(3, outgnum);ps.setString(4, outpeople);ps.executeQuery();ps.close();}catch(Exception e){e.printStackTrace();}}//这是要修改库存表中的库存量public void updateStoreManage(String outgid ,int num){try{String sql6="update StoreManage set 库存量=(select 库存量from StoreManage where 商品编号=?)-? where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql6);ps.setString(1,outgid);ps.setInt(2, num);ps.setString(3, outgid);ps.executeQuery();ps.close();}catch(Exception e){e.printStackTrace();}}//向出库表模型中添加一条新一出库记录public Object addOutStoreToTable(String outgid){try{String sql7="select * from OutStore where 商品编号=? and 出库编号=(select count(*) from OutStore)";PreparedStatement ps=conn.prepareStatement(sql7);ps.setString(1, outgid);ResultSet result=ps.executeQuery();while(result.next()){newStoreOfOut[0]= new Integer(result.getInt(1));newStoreOfOut[1]=result.getString(2).toString().trim();newStoreOfOut[2]=result.getString(3).toString().trim();newStoreOfOut[3]=new Integer(result.getInt(4));newStoreOfOut[4]=result.getString(5).toString().trim();newStoreOfOut[5]=result.getString(6).toString().trim();}result.close();ps.close();return newStoreOfOut;}catch(Exception e){e.printStackTrace();}return newStoreOfOut;}1.2.3入库界面public Object setSdata(){try{String sq2="select * from InStore";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sq2);Sdata=new Object[Row][Column];int n=0;while(result.next()){Sdata[n][0]=result.getString(1).toString().trim();Sdata[n][1]=result.getString(2).toString().trim();Sdata[n][2]=result.getString(3).toString().trim();Sdata[n][3]=result.getString(4).toString().trim();Sdata[n][4]=result.getString(5).toString().trim();Sdata[n][5]=result.getString(6).toString().trim();n++;}result.close();st.close();return Sdata;}catch(Exception e){e.printStackTrace();}return Sdata;}//向入库表中插入新的数据public void goodsInserData(String gid,String gname,int gnum){try{String sql3="insert into InStore (商品编号,商品名称,入库数量,入库人,入库时间) values(?,?,?,?,getdate())";PreparedStatement ps=conn.prepareStatement(sql3);ps.setString(1, gid);ps.setString(2, gname);ps.setInt(3, gnum);ps.setString(4, inpeople);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//判断库存表中是否有相同商品编号的商品存在public boolean isExistsGood(String gid){boolean flags=false;try{String sql4="select * from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, gid);ResultSet result=ps.executeQuery();int i=0;while(result.next()){i++;}result.close();ps.close();if (i>0){//如果库存表中存在该商品的商品编号,则调用修改函数flags=true;return flags;else{//若库存表中不存在则调用插入函数新插入一条数据return flags;}}catch(Exception e){e.printStackTrace();}return flags;}//若库存表中不存在则新建一条信息public void insertStoreManage(String gid,String gname,int gnum){try{String sql5="insert into StoreManage (商品编号,商品名称,库存量) values(?,?,?)";PreparedStatement ps=conn.prepareStatement(sql5);ps.setString(1, gid);ps.setString(2, gname);ps.setInt(3, gnum);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//如果存在直接修改原有的数量//1、先获取原有的库存量public int getStoreNumber(String gid){int num=0;try{String sql6="select 入库数据from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql6);ps.setString(1,gid);//ps.executeQuery();ResultSet result=ps.executeQuery();num=result.getInt(1);}result.close();ps.close();return num;}catch(Exception e){e.printStackTrace();}return num;}//2、再修改库存量public void updateStoreManage(int count,String gid){try{int NUM=getStoreNumber(gid)+count;String sql7="update StoreManage set 库存量=NUM where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql7);ps.setString(1,gid);//ps.setInt(1, count);//ps.setString(2, gid);ps.executeUpdate();ps.close();}catch(Exception e){e.printStackTrace();}}//error!没有注意到出库表会存在多条相同的记录//向入库表模型中添加一条入库记录public void addStoreOnInStore(String gid){Object[] newRow=new Object[6];try{String sql8="select * from InStore where 商品编号=? and 入库编号=(select count(*) from InStore)";PreparedStatement ps=conn.prepareStatement(sql8);ps.setString(1,gid);ResultSet result=ps.executeQuery();newRow[0]= new Integer(result.getInt(1));newRow[1]=result.getString(2).toString().trim();newRow[2]=result.getString(3).toString().trim();newRow[3]=new Integer(result.getInt(4));newRow[4]=result.getString(5).toString().trim();newRow[5]=result.getString(6).toString().trim();}result.close();ps.close();//向表模式中添加一行新数据dtm1.addRow(newRow);}catch(Exception e){e.printStackTrace();}}1.2.4库存管理界面public Object setSData(){try{String sql2="select * from StoreManage";Statement st=conn.createStatement();ResultSet result2=st.executeQuery(sql2);Sdata=new Object[Row][Column];int n=0;while(result2.next()){Sdata[n][0]=result2.getString(1).toString().trim();Sdata[n][1]=result2.getString(2).toString().trim();Sdata[n][2]=result2.getInt(3);n++;}result2.close();st.close();return Sdata;}catch(Exception e){System.out.println(e.getMessage());}return Sdata;public void init(){//先调用方法获得表头和二维表的表数据//this.setSData();//this.setHeader();this.setTitle("天涯仓库管理");this.setSize(700,300);this.setLocation(300, 150);this.setLayout(new GridLayout(2,1));dtm1=new DefaultTableModel(Sdata,Sheader);jtable=new JTable(dtm1);pane1=new JScrollPane(jtable);jtable.setRowHeight(30);jtable.setGridColor(Color.blue);jp1.add(jlbl1);jp1.add(jtxt1);jp1.add(jlbl2);jp1.add(jtxt2);jp1.add(jlbl3);jp1.add(jtxt3);jp1.add(btnupdate);jp1.add(btndel);btnupdate.addActionListener(this);btndel.addActionListener(this);jtable.addMouseListener(this);//dtm1.addTableModelListener(jtable);this.add(pane1);this.add(jp1);this.show();}public boolean UpdateStoreDate1(String goodid,String goodname,int goodnum){ boolean flags=false;try{String Sql3="update StoreManage set 商品名称=?,库存量=? where 商品名称='goodid'";PreparedStatement ps=conn.prepareStatement(Sql3);ps.setString(1, goodname);ps.setInt(2, goodnum);ps.executeUpdate();flags=true;}catch(Exception e){System.out.println(e.getMessage());}return flags;}//更新数据public boolean UpdateStoreDate(String goodid,String goodname,int goodnum){ boolean flags=false;try{String Sql3="update StoreManage set 商品名称=?,库存量=? where 商品名称=?";PreparedStatement ps=conn.prepareStatement(Sql3);ps.setString(1, goodname);ps.setInt(2, goodnum);ps.setString(3, goodid);ps.executeUpdate();ps.close();flags=true;}catch(Exception e){System.out.println(e.getMessage());}return flags;}//删除选中的数据public boolean DelStoreDate(String goodid){boolean flags=false;try{String sql4="delete from StoreManage where 商品编号=?";PreparedStatement ps=conn.prepareStatement(sql4);ps.setString(1, goodid);ps.executeUpdate();ps.close();flags=true;}{System.out.println(e.getMessage());}return flags;}//判断是否缺货public boolean IsDeletio(){boolean flags=false;try{String sql5="select count(商品编号) from StoreManage where 库存量<=50";Statement st=conn.createStatement();ResultSet result=st.executeQuery(sql5);int m=0;while(result.next()){m++;}//判断是否有商品缺失if (m>0){flags=true;}}catch(Exception e){System.out.println(e.getMessage());}return flags;}二、测试1.1引言1.1.1编写目的本软件是用来有效的管理超市仓库货物数量及种类,以方便超市工作人员可以全面的了解超市仓库库存货物数量和种类来方便高效的管理超市仓库。

相关文档
最新文档