资源描述
课程设计任务书
设计题目 超市管理系统
一、 课程设计目的
该课程设计是信息管理本科集中实践性环节之一,是学习完《数据库基础与应用》和《程序设计方法》课程后进行的一次全面的综合练习。其目的是通过本课程设计使学生对具体问题应用《程序设计方法》课程中所学的方法与技术,进行需求分析及软件设计的过程,不仅对程序设计方法课程中的所有知识点进行一个全面的复习巩固,更重要的是增强学生解决实际问题的能力。
二、 设计内容、技术条件和要求
内容:
1、可对学生信息及权限进行管理;
2、用户根据不同的权限可对学生信息进行添加、删除、修改等操作;
3、可对学生的信息进行各种查询;
4、可对学生信息等进行报表打印和统计功能;
技术条件:powerbuilder开发工具的熟练运用,数据库理论知识和实际操作能力。
要求:
1、本课程设计要求学生独立设计完成。包括规划后台数据库、程序代码的编写以及软件界面的设计。
3、数据库中不能少于两个表。
4、程序应功能完善,界面友好,容错性好,操作方便。
三、 时间进度安排
系统分析与规划 半周
系统设计与调试 一周
撰写课程设计说明书 半周
四、 主要参考文献
郑阿奇.PowerBuilder实用教程.第2版.北京:电子工业出版社,2004.
孙秋冬主编.PowerBuilder 应用开发实用教程.第1版.北京:高等教育出版社,2005.
费雅洁主编.PowerBuilder程序设计教程.第1版.北京:人民邮电出版社,2006.
1. 创建进入窗口
按钮“进入”下的代码
open(w_login)
close(w_main)
2. 创建登录窗口
按钮“登陆”下的代码
string uid_lr,pwd_lr
string uid_db,pwd_db
int i
uid_lr = sle_1.text
pwd_lr = sle_2.text
select count(*)
into :i
from gly
where id = :uid_lr
using sqlca;
if i<1 then
messagebox("对不起","该用户不存在!")
sle_1.text = ""
sle_2.text = ""
sle_1.setfocus()
return
end if
select password
into :pwd_db
from gly
where id = :uid_lr
using sqlca;
if pwd_db <> pwd_lr then
messagebox("对不起","密码错误!")
sle_2.text = ""
sle_2.setfocus()
return
end if
open(w_manage)
close(w_login)
3. 创建进出口货窗口
4. 创建商品信息窗口
按钮“上一条”下的代码
int kk
kk=dw_1.getrow()
if kk=1 then
messagebox("提示信息","已到达第一条!")
else
dw_1.scrollpriorrow()
end if
按钮“下一条”下的代码
if dw_1.getrow() = dw_1.rowcount() then
messagebox("提示","已经是最后一条!")
else
dw_1.scrollnextrow()
end if
按钮“第一条”下的代码
dw_1.scrolltorow(1)
按钮“最后一条”下的代码
int kk
kk=dw_1.rowcount()
dw_1.scrolltorow(kk)
按钮“添加”下的代码
//int kk
// kk=dw_1.insertrow(0)
// dw_1.scrolltorow(kk)
// dw_1.setcolumn("goods")
// dw_1.setfocus()
//
int i
i = dw_1.insertrow(0)
dw_1.scrolltorow(i)
dw_1.setfocus()
按钮“更新”下的代码
int kk,count
dw_1.accepttext()
count=dw_1.modifiedcount()+dw_1.deletedcount()
if count>0 then
if dw_1.update()=1 then
commit using sqlca;
messagebox("提示信息", "已保存"+string(count)+"条数据!")
else
rollback using sqlca;
messagebox("提示信息","数据更新失败!")
end if
end if
按钮“删除”下的代码
int kk
kk=messagebox("提示信息","确定要删除该数据吗?",exclamation!,yesno!)
if kk=1 then
dw_1.deleterow(0)
dw_1.update()
end if
5. 创建供应商信息窗口
按钮“上一页”下的代码
dw_1.scrollpriorrow()
按钮“下一页”下的代码
if dw_1.getrow() = dw_1.rowcount() then
messagebox("提示","已经是最后一条!")
else
dw_1.scrollnextrow()
end if
按钮“保存”下的代码
long rtn
int i_count
i_count = dw_1.modifiedcount()+dw_1.deletedcount()
if i_count > 0 then
IF dw_1.update() = 1 THEN
COMMIT USING SQLCA;
messagebox("提示","您已经成功保存"+string(i_count)+"条数据!")
ELSE
ROLLBACK USING SQLCA;
messagebox("提示","保存失败!")
END IF
end if
按钮“添加”下的代码
int i
i = dw_1.insertrow(0)
dw_1.scrolltorow(i)
dw_1.setfocus()
按钮“删除”下的代码
int i
i = messagebox("提示","你真的要删除该条记录吗?",question!,yesno!,1)
if i=1 then
dw_1.deleterow(0)
end if
6. 创建查询窗口
按钮“查询”下的代码
string kk
kk = sle_1.text
dw_1.settransobject(sqlca)
dw_1.retrieve(kk)
创建增减删除记录窗口
查找下的代码
string uid_seek
uid_seek = sle_1.text
select id,password
into :sle_1.text,:sle_2.text
from gly
where id= :uid_seek
using sqlca;
if sqlca.sqlcode = 100 then
messagebox("对不起","该用户不存在!")
sle_1.text = ""
sle_2.text = ""
sle_1.setfocus()
return
end if
添加下的代码string uid_lr,pwd_lr
int i
uid_lr = sle_1.text
pwd_lr = sle_2.text
if trim(uid_lr) = "" or trim(pwd_lr) = "" then
messagebox("对不起","请输入用户名和密码!")
return
end if
select count(*)
into :i
from gly
where id = :uid_lr
using sqlca;
if i>=1 then
messagebox("对不起","该用户已经存在!")
sle_1.setfocus()
return
end if
insert into gly(id,password)
values(:uid_lr,:pwd_lr)
using sqlca;
if sqlca.sqlnrows > 0 then
messagebox("提示","添加成功!")
commit using sqlca;
sle_2.setfocus()
else
messagebox("提示","添加失败!")
rollback using sqlca;
sle_2.setfocus()
end if
删除下的代码
string uid_del
int i,net
uid_del = sle_1.text
net = MessageBox("删除","是否真的要删除"+uid_del+"?",Exclamation!,OKCancel!,2)
if net = 2 then
return
end if
select count(*)
into :i
from gly
where id = :uid_del
using sqlca;
if i<1 then
messagebox("删除失败","该用户不存在!")
sle_1.setfocus()
return
end if
delete from gly
where id = :uid_del
using sqlca;
if sqlca.sqlcode <> 0 then
messagebox("数据库错误","删除失败!")
rollback;
else
messagebox("删除成功",uid_del + "用户的信息已经被删除!")
sle_1.text = ""
sle_2.text = ""
commit;
end if
更新下的代码
string uid_lr,pwd_lr
int i
uid_lr = sle_1.text
pwd_lr = sle_2.text
messagebox("",string(sle_1.taborder))
sle_2.taborder = 20
if trim(uid_lr) = "" or trim(pwd_lr) = "" then
messagebox("对不起","请输入用户名和密码!")
return
end if
select count(*)
into :i
from gly
where id = :uid_lr
using sqlca;
if i<1 then
messagebox("对不起","该用户不存在,无法修改其密码!" &
+"~n要修改用户名,请先删除再添加!")
sle_1.setfocus()
return
end if
update gly
set password=:pwd_lr
where id =:uid_lr
using sqlca;
if sqlca.sqlnrows > 0 then
messagebox("提示","密码修改成功!")
commit using sqlca;
sle_2.setfocus()
else
messagebox("提示","密码修改失败!")
rollback using sqlca;
sle_2.setfocus()
end if
展开阅读全文