软件工程课程设计编码与测试.docx
《软件工程课程设计编码与测试.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计编码与测试.docx(29页珍藏版)》请在冰豆网上搜索。
![软件工程课程设计编码与测试.docx](https://file1.bdocx.com/fileroot1/2023-1/5/4720d4da-f6f1-41e3-a23a-275f46b76ef5/4720d4da-f6f1-41e3-a23a-275f46b76ef51.gif)
软件工程课程设计编码与测试
淮海工学院计算机工程学院
实验报告书
课程名:
《软件工程》
题目:
图着色理论在仓库系统中的应用
——编码和测试
班级:
网络122
学号:
2012122683
姓名:
叶婷
1、实验目的与要求
(1)选定项目中以模块,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术设计若干测试用例。
然后,使用测试用例进行实际测试操作实验,并给出测试结果;
(2)了解一些典型的自动化测试软件和方法,建议有条件可下载、安装MercuryInteractive公司的负载测试工具LoadRunner、功能测试工具WinRunner和测试管理工具TestDirector;IBM-Rational公司的测试套件RationalSuiteTestStudio的RationalRobot、RationalTestManagerhe、RationalQuantify等工具。
2、实验内容
一、编码
1.1系统界面设计描述
当用户启动程序后真接显示主界面,在主界面中有‘用户管理’,‘商品入库’,‘商品出库’,‘库存管理’以及退出系统。
当用户在未登录的状态下执行任何操作时系统会自动判断是否已经登录,若用户还没有登录则显示登录界面,让用户进行登录。
若登录的帐号不存在则表示该用户还不是员工,故需要用户重新申请新的用户,新用户的类型为普通员工,当普通用户已经通过管理员审核,并且分配了相关的权限后就可以登录系统。
若用户是管理员则该用户可以对普通用户进行相关的修改和删除,而且还可以修改、查询、删除库存表及商品出入库表中的相关信息。
若用户是普通员工则只能进行商品的出入库及查询。
1.1.1登录界面设计
用户通过输入登录的账号和密码及类型系统进行验证
1.1.2商品出入库界面设计
1.1.3库存界面设计
1.2编码
1.2.1登录界面(主要代码)
publicbooleanisExistsEmply(Stringid){
booleanflags=false;
try
{
intcount=0;
Stringsql1="select员工号fromUserswhere员工号=?
";
PreparedStatementps=conn.prepareStatement(sql1);
ps.setString(1,(String)id);
ResultSetresult=ps.executeQuery();
while(result.next())
{
count=result.getRow();
}
result.close();
ps.close();
if(count>0)
{
this.UID=id;
flags=true;
getInfo(id);
returnflags;
}
else
{
error.errorDialog((String)id);
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnflags;
}
//根据‘工号’分别获取对应的的信息
publicvoidgetInfo(Stringuid){
try
{
Stringsql2="select员工姓名,密码,员工类型,是否员工fromUserswhere员工号=?
";
PreparedStatementpps=conn.prepareStatement(sql2);
pps.setString(1,uid);
ResultSetresult=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(Exceptione)
{
e.printStackTrace();
}
}
//对登录的'工号'进行密码验证
publicbooleanlogin(Stringid,Stringpwd,Stringtype){
booleanisEmploy=false;
try
{
if(id.equals(UID)&&pwd.equals(password)&&type.equals(employtype))
{
isEmploy=true;
returnisEmploy;
}
else
{
returnisEmploy;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnisEmploy;
}
//判断用户是否已经通过管理员的审核
publicbooleanY_NEmply(){
booleanisE=false;
if(this.emplooy.equals("是"))
{
System.out.println("员工号:
"+UID+"已经通过了审核.................");
main.showMainFarme();
isE=true;
returnisE;
}
elseif(this.emplooy.equals("否"))
{
error.noEmplo0y(UID);
returnisE;
}
returnisE;
}
1.2.2出库界面(主要代码)
publicObjectsetSdata2(){
try
{
Stringsql2="select*fromOutStore";
Statementst=conn.createStatement();
ResultSetresult=st.executeQuery(sql2);
Sdata2=newObject[Row2][Column2];
intn=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();
returnSdata2;
}
catch(Exceptione)
{
e.printStackTrace();
}
returnSdata2;
}
//先判断库存表中是否存在要出库的商品编号
publicbooleanisExistsGid(Stringgid){
booleanflags=false;
try
{
intcount=0;
Stringsql3="selectcount(商品编号)fromStoreManagewhere商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql3);
ps.setString(1,gid);
ResultSetresult=ps.executeQuery();
while(result.next())
{
count++;
}
result.close();
ps.close();
if(count>0)
{
flags=true;
returnflags;
}
else
{
returnflags;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnflags;
}
//判断库存表中的库存量是否满足出库的笨条件
publicbooleanlookNumber(Stringgid,intnumber){
booleanflags=false;
try
{
intnum=0;
Stringsql4="select库存量fromStoreManagewhere商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql4);
ps.setString(1,gid);
ResultSetresult=ps.executeQuery();
while(result.next())
{
num=result.getInt
(1);
}
result.close();
ps.close();
if(number<=num)
{
flags=true;
}
else
flags=false;
returnflags;
}
catch(Exceptione)
{
e.printStackTrace();
}
returnflags;
}
//商品出库向出库表写入一条数据的出库记录
publicvoidnewStoreOuput(Stringoutgid,Stringoutgname,intoutgnum){
try
{
Stringsql5="insertintoOutStore(商品编号,商品名称,出库数量,出库人,出库时间)values(?
?
?
?
getdate())";
PreparedStatementps=conn.prepareStatement(sql5);
ps.setString(1,outgid);
ps.setString(2,outgname);
ps.setInt(3,outgnum);
ps.setString(4,outpeople);
ps.executeQuery();
ps.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//这是要修改库存表中的库存量
publicvoidupdateStoreManage(Stringoutgid,intnum){
try
{
Stringsql6="updateStoreManageset库存量=(select库存量fromStoreManagewhere商品编号=?
)-?
where商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql6);
ps.setString(1,outgid);
ps.setInt(2,num);
ps.setString(3,outgid);
ps.executeQuery();
ps.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//向出库表模型中添加一条新一出库记录
publicObjectaddOutStoreToTable(Stringoutgid){
try
{
Stringsql7="select*fromOutStorewhere商品编号=?
and出库编号=(selectcount(*)fromOutStore)";
PreparedStatementps=conn.prepareStatement(sql7);
ps.setString(1,outgid);
ResultSetresult=ps.executeQuery();
while(result.next())
{
newStoreOfOut[0]=newInteger(result.getInt
(1));
newStoreOfOut[1]=result.getString
(2).toString().trim();
newStoreOfOut[2]=result.getString(3).toString().trim();
newStoreOfOut[3]=newInteger(result.getInt(4));
newStoreOfOut[4]=result.getString(5).toString().trim();
newStoreOfOut[5]=result.getString(6).toString().trim();
}
result.close();
ps.close();
returnnewStoreOfOut;
}
catch(Exceptione)
{
e.printStackTrace();
}
returnnewStoreOfOut;
}
1.2.3入库界面
publicObjectsetSdata(){
try
{
Stringsq2="select*fromInStore";
Statementst=conn.createStatement();
ResultSetresult=st.executeQuery(sq2);
Sdata=newObject[Row][Column];
intn=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();
returnSdata;
}
catch(Exceptione)
{
e.printStackTrace();
}
returnSdata;
}
//向入库表中插入新的数据
publicvoidgoodsInserData(Stringgid,Stringgname,intgnum){
try
{
Stringsql3="insertintoInStore(商品编号,商品名称,入库数量,入库人,入库时间)values(?
?
?
?
getdate())";
PreparedStatementps=conn.prepareStatement(sql3);
ps.setString(1,gid);
ps.setString(2,gname);
ps.setInt(3,gnum);
ps.setString(4,inpeople);
ps.executeUpdate();
ps.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//判断库存表中是否有相同商品编号的商品存在
publicbooleanisExistsGood(Stringgid){
booleanflags=false;
try
{
Stringsql4="select*fromStoreManagewhere商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql4);
ps.setString(1,gid);
ResultSetresult=ps.executeQuery();
inti=0;
while(result.next())
{
i++;
}
result.close();
ps.close();
if(i>0)
{
//如果库存表中存在该商品的商品编号,则调用修改函数
flags=true;
returnflags;
}
else
{
//若库存表中不存在则调用插入函数新插入一条数据
returnflags;
}
}
catch(Exceptione)
{
e.printStackTrace();
}
returnflags;
}
//若库存表中不存在则新建一条信息
publicvoidinsertStoreManage(Stringgid,Stringgname,intgnum){
try
{
Stringsql5="insertintoStoreManage(商品编号,商品名称,库存量)values(?
?
?
)";
PreparedStatementps=conn.prepareStatement(sql5);
ps.setString(1,gid);
ps.setString(2,gname);
ps.setInt(3,gnum);
ps.executeUpdate();
ps.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//如果存在直接修改原有的数量
//1、先获取原有的库存量
publicintgetStoreNumber(Stringgid){
intnum=0;
try
{
Stringsql6="select入库数据fromStoreManagewhere商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql6);
ps.setString(1,gid);
//ps.executeQuery();
ResultSetresult=ps.executeQuery();
while(result.next())
{
num=result.getInt
(1);
}
result.close();
ps.close();
returnnum;
}
catch(Exceptione)
{
e.printStackTrace();
}
returnnum;
}
//2、再修改库存量
publicvoidupdateStoreManage(intcount,Stringgid){
try
{
intNUM=getStoreNumber(gid)+count;
Stringsql7="updateStoreManageset库存量=NUMwhere商品编号=?
";
PreparedStatementps=conn.prepareStatement(sql7);
ps.setString(1,gid);
//ps.setInt(1,count);
//ps.setString(2,gid);
ps.executeUpdate();
ps.close();
}
catch(Exceptione)
{
e.printStackTrace();
}
}
//error!
没有注意到出库表会存在多条相同的记录
//向入库表模型中添加一条入库记录
publicvoidaddStoreOnInStore(Stringgid){
Object[]newRow=newObject[6];
try
{
Stringsql8="select*fromInStorewhere商品编号=?
and入库编号=(selectcount(*)fromInStore)";
PreparedStatementps=conn.prepareStatement(sql8);
ps.setStrin