超市会员管理系统课程设计.docx
《超市会员管理系统课程设计.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统课程设计.docx(17页珍藏版)》请在冰点文库上搜索。
![超市会员管理系统课程设计.docx](https://file1.bingdoc.com/fileroot1/2023-8/16/40c8a0e3-78e1-4e7b-9b45-87dbe5e48815/40c8a0e3-78e1-4e7b-9b45-87dbe5e488151.gif)
超市会员管理系统课程设计
一、需求分析
用java语言写一个超市会员管理系统,实现对超市会员的增加,修改,查找,删除,浏览,商品的增加和购买情况,按类别统计,会员购买商品,通过连接数据库实现。
二、概要设计
设计模块图如图1
图1设计模块图
三、运行环境、开发语言
运行环境:
Window7,jdk1.6.0_19,hsqldb.jar
开发语言:
Java
四、详细设计
1程序清单
表1超市会员表
marketmember
超市会员表
mname
varchar(120)
mid
int
mage
int
pname
varchar(120)
表2超市商品表
marketproduct
超市商品表
pname
varchar(120)
pid
int
pclass
varchar(20)
pkucun
int
2主要代码
2.1初始化超市会员表publicvoidinittable1()throwsSQLException{
Stringsql="createtablemarketmember(mnamevarchar(120),midint,mageint,pnamevarchar(120))";
Statementstmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.close();
2.2增加超市会员信息功能
增加超市会员信息,输入要增加的会员的会员名称,会员号,会员年龄,最近购买的商品,增加到数据库中,该功能截图如图1所示。
具体代码如下:
图1增加超市会员信息
publicvoidaddtable1()throwsSQLException{
System.out.println("请输入会员名称");
String_name=scanner.next();
System.out.println("请输入会员号");
int_id=scanner.nextInt();
System.out.println("请输入会员年龄");
int_age=scanner.nextInt();
System.out.println("请输入最近购买的商品名");
String_pname=scanner.next();
Stringsql="insertintomarketmember(mname,mid,mage,pname)values(?
?
?
?
)";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,_name);
pstmt.setInt(2,_id);
pstmt.setInt(3,_age);
pstmt.setString(4,_pname);
pstmt.execute();
Statementstmt=con.createStatement();
stmt.close();
}
2.3在超市会员表中修改会员信息
修改超市会员信息,输入要修改的会员号,修改后的会员姓名,修改后的会员年龄,把修改后的数据增加到数据库,该功能截图如图2所示,具体代码如下:
图2修改超市会员信息
publicvoidupdatetable1(intid)throwsException{
System.out.println("请输入修改后的会员姓名");
Stringname=scanner.next();
System.out.println("请输入修改后的会员年龄");
intage=scanner.nextInt();
Stringsql="updatemarketmembersetmage="+age+"wheremid="+id;
Stringsql1="updatemarketmembersetmname='"+name+"'wheremid="+id;
Statementstmt=con.createStatement();
stmt.executeUpdate(sql);
stmt.executeUpdate(sql1);
intr=stmt.executeUpdate(sql);
if(r>0)
{
System.out.println("修改成功!
");
}
else{
System.out.println("该会员信息不存在!
");
}
stmt.close();
}
2.4在超市会员表中查找会员信息
在会员表中查找会员信息,输入要查找的会员号,该功能截图如图3所示,具体代码如下:
图3查找超市会员信息
publicvoidsearchtable1(intid)throwsException{
Stringsql="select*frommarketmemberwheremid="+id;
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
intn=0;
while(rs.next()){
n=n+1;
Stringmname=rs.getString("mname");
intmid=rs.getInt("mid");
intmage=rs.getInt("mage");
Stringpname=rs.getString("pname");
System.out.println("会员名称:
"+mname+"会员号:
"+mid+"会员年龄:
"+mage+"最近购买情况:
"+pname);
}
if(n==0){
System.out.println("该会员信息不存在!
");
}
rs.close();
stmt.close();
}
2.5在超市会员表中浏览会员信息
浏览会员表中会员的信息,该功能截图如图4所示,具体代码如下:
图4浏览超市会员表中会员信息
publicvoidselecttable1()throwsException{
Stringsql="select*frommarketmember";
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){
Stringmname=rs.getString("mname");
intmid=rs.getInt("mid");
intmage=rs.getInt("mage");
Stringpname=rs.getString("pname");
System.out.println("会员名称:
"+mname+"会员号:
"+mid+"会员年龄:
"+mage+"最近购买商品:
"+pname);
}
rs.close();
stmt.close();
}
2.6在超市会员表中删除会员信息
在超市会员表中删除会员的信息,输入要删除的会员信息的会员号,并更新到数据库,该功能截图如图5所示,具体代码如下:
图5超市会员表中删除会员信息
publicvoiddeletetable1(intmid)throwsException{
Stringsql="deletefrommarketmemberwheremid="+mid;
Statementstmt=con.createStatement();
intr=stmt.executeUpdate(sql);
if(r>0)
{
System.out.println("删除成功!
");
}
else{
System.out.println("该会员信息不存在!
");
}
stmt.close();
}
2.7在超市商品表中增加商品信息
在超市会员表中,增加商品信息,输入要增加的商品名,商品号,商品类别,现有库存,并将信息增加到数据库,该功能截图如图6所示,具体代码如下:
图6增加商品信息
publicvoidaddtable2()throwsSQLException{
System.out.println("请输入增加的商品名");
String_pname=scanner.next();
System.out.println("请输入增加的商品号");
int_pid=scanner.nextInt();
System.out.println("请输入增加的商品类别");
String_pclass=scanner.next();
System.out.println("请输入现有库存");
int_pkucun=scanner.nextInt();
Stringsql="insertintomarketproduct(pname,pid,pclass,pkucun)values(?
?
?
?
)";
PreparedStatementpstmt=con.prepareStatement(sql);
pstmt.setString(1,_pname);
pstmt.setInt(2,_pid);
pstmt.setString(3,_pclass);
pstmt.setInt(4,_pkucun);
pstmt.execute();
Statementstmt=con.createStatement();
stmt.close();
}
2.8商品购买情况
查询商品的购买情况,输入要查询的商品的名称,该功能截图如图7所示,具体代码如下:
图7商品购买情况
publicvoidbuyproduct(Stringname)throwsSQLException{
Stringsql="selectpname,mname,mid,pclassfrommarketproduct,marketmemberwheremarketmember.pname=marketproduct.pnameandmarketmember.pname='"+name+"'";
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
intn=0;
while(rs.next()){
n++;
Stringpname=rs.getString("pname");
Stringmname=rs.getString("mname");
intmid=rs.getInt("mid");
Stringpclass=rs.getString("pclass");
System.out.println("商品名称:
"+pname+"购买会员名称:
"+mname+"购买会员号:
"+mid+"商品类别:
"+pclass);
}
if(n==0){
System.out.println("该商品不存在!
");
}
rs.close();
stmt.close();
}
2.9按类别统计
按类别统计商品,输入要统计的商品类别,该功能截图如图8所示,具体代码如下:
图8按类别统商品
publicvoidsearchclass(Stringclass1)throwsException{
Stringsql="select*frommarketproductwherepclass='"+class1+"'";
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
intn=0;
while(rs.next()){
n++;
Stringpname=rs.getString("pname");
longpid=rs.getLong("pid");
intpkucun=rs.getInt("pkucun");
Stringpclass=rs.getString("pclass");
System.out.println("商品名称:
"+pname+"商品号:
"+pid+"商品库存量:
"+pkucun+"商品类别:
"+pclass);
}
if(n==0){
System.out.println("该商品类别不存在!
");
}
rs.close();
stmt.close();
}
2.10购买商品
购买商品,输入会员的会员号,购买到额商品名,购买商品数量,该功能截图如图9所示,具体代码如下:
publicvoidbuy()throwsSQLException{
System.out.println("请输入会员号");
int_id=scanner.nextInt();
System.out.println("请输入购买商品名");
String_pname=scanner.next();
System.out.println("请输入购买商品数量");
intn=scanner.nextInt();
Stringsql="selectmname,mid,pname,pid,pkucunfrommarketmember,marketproductwheremarketmember.pname=marketproduct.pnameandmarketmember.mid="+_id+"andmarketproduct.pname='"+_pname+"'";
Statementstmt=con.createStatement();
ResultSetrs=stmt.executeQuery(sql);
while(rs.next()){
Stringmname=rs.getString("mname");
intmid=rs.getInt("mid");
intpkucun=rs.getInt("pkucun");
Stringpname=rs.getString("pname");
intpid=rs.getInt("pid");
if(n>pkucun)
{System.out.println("库存量不够,不能购买!
");break;}
else{
pkucun=pkucun-n;
System.out.println("会员名称:
"+mname+"会员号:
"+mid+"购买商品名:
"+pname+"购买商品号:
"+pid+"购买数量:
"+n+"现有库存量:
"+pkucun);
Stringsql1="updatemarketproductsetpkucun="+pkucun+"wherepname='"+pname+"'";
stmt.executeUpdate(sql1);
}
}
rs.close();
stmt.close();
}
五、调试与分析
(1)在与数据库连接的时候要先装载驱动Stringdriver=
"org.hsqldb.jdbcDriver";
Class.forName(driver);
再进行其他操作。
(2)select语句通过executeQuery来执行,返回一个ResultSet类型的值,定义ResultSetrs,用rs.next()来遍历。
(3)超市会员表和超市商品表只需要在第一次执行的时候创建,以后都不用再创建了。
六、功能测试
图1增加超市会员信息
图2增加会员信息后表的信息
图3修改超市会员信息
图4修改超市会员信息后会员表信息
图5修改超市会员信息
图6在超市会员表中删除会员信息后的会员表
图7增加商品
图8增加商品信息后的超市商品表中
七、结论与心得
这次课程设计我做的题目是超市会员管理系统,在设计最初的时候,对有些知识的用法还有些模糊,对JDBC的用法有了更深的学习与掌握,用Statement和PreparedStatement语句执行Sql语句的用法也有了更清楚的认识。
在整个课程设计的过程中,也遇到了很多的困难,通过同学帮助和在网上查找资料,最终问题都得到了解决,使我认识到,在平常的学习过程中要与同学老师经常的交流,这样才能更好的理解和掌握所学的知识。
八、参考资料
[1]CayS.Horstmann,GaryCornell.CoreJavaVolumeI:
Fundamentals.8thEdition.PrenticeHall,2008.
[2]CayS.Horstmann,GaryCornell.CoreJavaVolumeII:
AdvancedFeatures.8thEdition.PrenticeHall,2008.
[3]MaydeneFisher,JonEllis,JonathanBruce.JDBCAPITutorialandReference.3rdEdition.AddisonWesley,2003.