网上书店信息管理系统+代码+数据库表
- 格式:doc
- 大小:523.50 KB
- 文档页数:95
1.用户表:用户代码为主键,有程序自动生成(格式S0001)M开头操作权限:U=CRUD权限Q=query权限2. 会员表:A普通级别售价B1000>累计消费金额>500折扣9C2000>累计消费金额>1000折扣8D >2000 折扣7折扣会员编号:m201203010001 程序自动生成m+用户注册时间+00013.4.5.6.综合社科类出版社排名1、商务印书馆2、人民出版社3、人民文学出版社4、作家出版社5、译林出版社6、中华书局7、社科文献出版社8、生活读书新知三联出版社9、中央编译出版社10、国家图书馆出版社科学技术类出版社排名1、科学出版社2、清华大学出版社3、机械工业出版社4、电子工业出版社 5、化学工业出版社6、建筑工业出版社7、人民邮电出版社8、中国水利水电出版社9、中国电力出版社 10、北京科学技术出版社经济类出版社排名1、中国金融出版社2、中国财经出版社 3、中信出版社4、中国经济出版社法律类出版社排名1、法律出版社2、中国法制出版社 3、中国政法大学出版社4、人民法院出版社学术、教育教材类出版社1、清华大学出版社2、中国人民大学出版社3、北京大学出版社4、高等教育出版社5、人民教育出版社7. 订单表:订单号:格式o201202020001 o+日期+0001订单状态:未处理:订单是否有效,待管理员确认后才是有效订单确认:订单为有效订单发货中:订单完成前台顾客浏览图书→选择自己要买的图书→下订单(数据库中添加一条订单(状态为未处理))→管理员确认后订单有效方可发货→发货(图书库存减少)-→收货人确认收货交易结束(订单状态修改为订单完成)8.订单明细9.入库单:i201202200001 i+日期+0001 入库单状态:采购中10.入库单明细:11. 库存。
新建数据库Create database BookData;Use BookData;新建表B1create table Tbl_Customer(Customer decimal not null,Customer_Name varchar(10),Address varchar(20),City varchar(20),State varchar(20),Zip varchar(6),Referred decimal);插入数据insert into tbl_customer values(1001,'张三','白下区','南京','江苏','210000',null );insert into tbl_customer values(1002,'李四','徐汇区','上海','上海','110000',null);insert into tbl_customer values(1003,'王五','朝阳区','北京','北京','110000',null);insert into tbl_customer values(1004,'赵六','北大街','无锡','江苏','110000',null);insert into tbl_customer values(1005,'李三','平江路','苏州','江苏','110000',null);insert into tbl_customer values(1006,'陈三','升州路','南京','江苏','110000',null);insert into tbl_customer values(1007,'朱三','三牌楼','合肥','安徽','110000',1003);新建表B2create table Tbl_Books(Isbn varchar(10) not null,Title varchar(300),Pubdate Date,Pubid decimal(2),Costs decimal(5,2),Retail decimal(5,2),Categorys varchar(12));插入数据insert into tbl_books values('','一天中10分钟身体成分','-1-21',4,18.75,30.95,'健康');insert into tbl_books values('','米奇复仇','-12-12',1,14.2,22,'家庭生活');insert into tbl_books values('','用牙签造车','-08-18',2,37.8,59,'小朋友');insert into tbl_books values('','数据库实现','1999-06-04' ,3,31,55,'计算机');insert into tbl_books values('','用蘑菇烹饪','-02-28' ,4,12.5,19.95,'烹饪');insert into tbl_books values('','数据库法宝','-11-30' ,3,47,75,'计算机');新建表B3create table Tbl_Orders(Orders decimal(4)not null,Customer decimal(4),Orderdate Date,Shipdate Date ,Shipstreet varchar(18) ,Shipcity varchar(15),Shipstate varchar(2),Shipzip varchar(6));修改数据长度时用alter table 表名modify 字段名称字段类型插入数据insert into Tbl_Orders values(1000,1005,'-03-31' ,'-04-02' ,'奥体大街' ,'南京','江苏','210019'); insert into Tbl_Orders values(1001,1010,'-03-31' ,'-04-01' ,'和会街' ,'南京','江苏','210001'); insert into Tbl_Orders values(1002,1011,'-03-31' ,'-04-01' ,'南京路' ,'上海','上海','00'); insert into Tbl_Orders values(1003,1001,'-04-01' ,'-04-01' ,'南京路' ,'上海','上海','00'); insert into Tbl_Orders values(1004,1020,'-04-01' ,'-04-05' ,'欧风街' ,'无锡','江苏','204002'); 新建表B4create table Tbl_Oraderitems(orders decimal(4) not null,Item decimal(2) not null,Isbn varchar(10),quantity decimal(3));插入数据insert into Tbl_Oraderitems values(1000,1,'',1);insert into Tbl_Oraderitems values(1001,1,'',1);insert into Tbl_Oraderitems values(1001,2,'',1);insert into Tbl_Oraderitems values(1002,1,'',2);insert into Tbl_Oraderitems values(1003,1,'',1);MySQL语句可以放在同一行;但是DB2不可以新建表B5create table Tbl_Author(AuthorId varchar(4) not null,name varchar(20));插入数据insert into Tbl_Author values('s100','薛明');insert into Tbl_Author values('j100','陈洪');insert into Tbl_Author values('a100','张二');insert into Tbl_Author values('k100','陈康');新建表B6create table Tbl_BookAuthor(Isbn varchar(10) not null,AuthorId varchar(4) not null); drop table Tbl_BookAuthor插入数据insert into Tbl_BookAuthor values('','s100');insert into Tbl_BookAuthor values('','p100');insert into Tbl_BookAuthor values('','j100');insert into Tbl_BookAuthor values('','k100');insert into Tbl_BookAuthor values('','p105');insert into Tbl_BookAuthor values('','a100');insert into Tbl_BookAuthor values('','a105');insert into Tbl_BookAuthor values('','b100');insert into Tbl_BookAuthor values('','a100');insert into Tbl_BookAuthor values('','w100');insert into Tbl_BookAuthor values('','w105');insert into Tbl_BookAuthor values('','j100');insert into Tbl_BookAuthor values('','r100');insert into Tbl_BookAuthor values('','f100');insert into Tbl_BookAuthor values('','b100');insert into Tbl_BookAuthor values('','s100');insert into Tbl_BookAuthor values('','r100');insert into Tbl_BookAuthor values('','s100');insert into Tbl_BookAuthor values('','w100');新建表B7create table Tbl_Publisher(Pubid varchar(10) not null,Name varchar(23) ,Contact Varchar(15),Phone varchar(12));插入数据insert into Tbl_Publisher values('1','新华出版社','程明','000-714-8321');insert into Tbl_Publisher values('2','扬子出版社','张译','010-414-8321');insert into Tbl_Publisher values('3','人民教诲出版社','园艺','044-714-8321');insert into Tbl_Publisher values('4','北京大学出版社','郑爽','000-564-8321');insert into Tbl_Publisher values('5','机械工业出版社','陆华','000-714-8751');新建表B8create table Tbl_Promotion(geft varchar(100),minretail decimal(5,2),maxretail decimal(5,2));插入数据insert into Tbl_Promotion values('书签',0,12);insert into Tbl_Promotion values('书签题题',12.01,25);insert into Tbl_Promotion values('图书封面',25.01,56);insert into Tbl_Promotion values('免费购物券',56.01,999.99);select * from Tbl_Customer;select * from Tbl_Books; select * from Tbl_Orders; select * from Tbl_Oraderitems;select * from Tbl_Author; select * from Tbl_BookAuthor;select * from Tbl_Publisher; select * from Tbl_Promotion;。
完整的简单jsp网上书店详细实例计算机web编程jsp毕业论文、考试复习资料必备其中包括的详细需求、业务分析、数据库、源代码我们使用JSP和Java Bean来构建一个网上书店。
介绍的例子可以分成两大部分,第一部分是普通程序,用于客户在网上选购图书,第二部分是管理程序,用于在服务器端处理客户的定单。
客户端程序由以下几个部分构成:default.jsp:会员登录界面(首页);checklogon.jsp:检测登录代码和密码是否一致,根据由JavaBean返回的结果显示不同的信息。
BuyerBean:会员的合法性检验所用的Bean;booklist.jsp:给登录会员显示当前书店中可供选择的图书;addcart.jsp:将所选的图书加入购物车;shoppingcart.jsp:查看购物车的内容;本例的数据库采用Access(.MDB数据库),对数据库的访问采用便于理解的JDBC-ODBC方式,在使用本例前先在本地数据库建立一个ODBC数据源:bookstore。
设置步骤如下:(1)在开始->设置->控制面版(Win98、NT4.0)中选取“数据源(ODBC)”;在Win 2000 Professional和Server中分别位于“开始->设置->控制面版->管理工具”和“开始->程序->管理工具”下。
(2)启动“数据源(ODBC)”配置程序,界面如图15-1所示。
图15-1 ODBC数据源管理界面(3)在图15-1中“系统DSN”选项下单击“添加”按钮,来添加一个系统的数据源(DSN),则出现如图15-2所示数据源驱动程序选择界面:图15-2 数据源驱动程序选择界面(4)在图15-2中选择“Microsoft Access Driver (*.mdb)”单击“完成”加载Access数据库的驱动,则出现如图15-3所示数据库ODBC安装界面:图15-3 数据库ODBC安装界面(5)在图15-3中单击“选择(S)…”按钮,启动一个类似资源管理器的界面来选择数据库,如图15-4所示,在图15-4所示的界面中选择bookstore.mdb。
头函数名:#include<stdio.h>#include<stdlib.h>#include<string.h>/*********图书信息结构体*********//***包括登录号,书名,作者名,分类号,出版单位,出版时间,价格等***/ struct bookinf{ int num; ******************************************************登录号char bname[20];***************************************书名char wname[10];***************************************作者名char clanum[14];***************************************分类号char pubcom[10];***************************************出版单位char pubtime[10];***************************************出版时间float price;*********************************************价格};一管理员登录系统模块:(1)来到图书信息管理系统页面void index(){char input; 注释:运行时printf("\n\n\t\t\t*****************************\n"); 直接进入printf("\t\t\t 图书信息管理系统\n"); 这个页面printf("\t\t\t*****************************\n\n\n");printf(" ------------------------------------------------------------------------------\n");printf("\t<按任意键进入>\n\t");input=getchar();}(2)管理员登陆进入功能菜单页面FILE *fp;struct manage pswd;if ((fp=fopen("password.txt","r"))==NULL) {printf("\n\n\n\tCannot open file!\n\t");}else{do{printf("\n\n\t请输入管理员帐号:");scanf("%s",name);printf("\n\n\t请输入管理员密码:");scanf("%s",password);fp=fopen("password.txt","r");fread(&pswd,sizeof(struct manage),1,fp);fclose(fp);w=strcmp(pswd.manage_name,name);k=strcmp(pswd.password,password);adm_servelist();}while (w!=0||k!=0);adm_servelist();}}(3)来到功能菜单页面{void book_add();void book_view();void change();void del();void book_search();void login();void pwchange();int in; 注释:菜单列出的服务种类char input; 从1,2,3,4,5,6 do 所对应的功能进行选择{printf("\n\n\n\t--欢迎使用信息管理系统--");printf("\n\n\t1.图书信息录入\n");printf("\t2.图书信息浏览\n");printf("\t3.图书信息查询\n");printf("\t4.图书信息删除\n");printf("\t5.图书信息修改\n");printf("\t6.退出管理模式\n");printf("\n\t请选择服务种类:");scanf("%d",&in);if (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6){printf("\n\t没有这项服务~\n");printf("\t按任意键重新选择");input=getchar();}}while (in!=1&&in!=2&&in!=3&&in!=4&&in!=5&&in!=6);switch (in){case 1: book_add(); break; 注释:选择自己所需要case 2: book_view(); break; 后摁下数字键则case 3: book_search(); break; 则进入此功能页面case 4: del(); break;case 5: change();break;case 6: login(); break;}}(3)图书信息录入功能模块void book_add(){void book_add();int i=0,j;FILE *fp;char input; 注释:输入的图书信息struct bookinf books; 是通过文件进行struct bookinf book_taxis[30]; 保存的printf("\n\n\n\t---请输入图书信息---\n\n");printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);for (j=0;j<=i;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");input=getchar();adm_servelist();break;}}if ((fp=fopen("book.txt","r"))==NULL){fp=fopen("book.txt","w");}else{fclose(fp);fp=fopen("book.txt","a");}fwrite(&books,sizeof(struct bookinf),1,fp);fclose(fp);printf("\n\n\n\t信息输入完毕~按任意键继续\n");input=getchar();adm_servelist();}(4)图书信息浏览功能模块void book_view(){void adm_servelist();void book_view();int inp,i=0,n=0;FILE *fp;char input;struct bookinf bookview[20];if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{fread(&bookview[i],sizeof(struct bookinf),1,fp);i=i+1;}while (!feof(fp));fclose(fp);do{printf("\n\t--------共有%d条记录--------",i-1);printf("\n\n\t登录号: %d\n",bookview[n].num);printf("\n\t书名: %s\n",bookview[n].bname);printf("\n\t作者名: %s\n",bookview[n].wname);printf("\n\t分类号: %s\n",bookview[n].clanum);printf("\n\t出版单位: %s\n",bookview[n].pubcom);printf("\n\t出版时间: %s\n",bookview[n].pubtime);printf("\n\t价格: %f\n",bookview[n].price);printf("\n\n\t1.上一页\t2.下一页\t3.回目录\n");printf("\n\t请选择:");scanf("%d",&inp);switch (inp){case 1:{if (n==0){printf("\n\t已到达首页\n\t按任意键重新选择");input=getchar();}else n=n-1; break;}case 2:{if (n==i-2){printf("\n\t已到达最末页\n\t按任意键重新选择");input=getchar();}else n=n+1; break;}case 3:{adm_servelist();break;}default:{printf("\n\t没有这项服务\n\t按任意键重新选择");input=getchar();}}}while (inp!=3);}}(5)图书信息修改与删除功能模块修改:void change(int x){int inp,i=0,j;void book_search();FILE *fp,*fp1;char input;struct bookinf books,book_taxis[20];do{printf("\n\n\n\t注意:您确定要修改该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){printf("\n\n\n\t---请输入图书信息---\n\n");printf("\t登录号:");scanf("%d",&books.num);printf("\n\t书名:");scanf("%s",books.bname);printf("\n\t作者名:");scanf("%s",books.wname);printf("\n\t分类号:");scanf("%s",books.clanum);printf("\n\t出版单位:");scanf("%s",books.pubcom);printf("\n\t出版时间:");scanf("%s",books.pubtime);printf("\n\t价格:");scanf("%f",&books.price);if ((fp1=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp1);i=i+1;}while(!feof(fp1));fclose(fp1);for (j=0;j<x;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("\t按任意键返回管理菜单~");printf("0");input=getchar();book_search();break;}for (j=x+1;j<i-2;j++)if (books.num==book_taxis[j].num){printf("\n\n\n\t对不起,这个编号已经使用过了~\n");printf("1");printf("\t按任意键返回管理菜单~");input=getchar();book_search();break;}}book_taxis[x]=books;fp=fopen("book.txt","w");for (j=0;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);printf("\n\n\t信息修改完成!按任意键返回");input=getchar();book_search();}}S删除:void del(int y){char input;FILE *fp;int inp,i=0,j;struct bookinf book_taxis[20];void book_search();void adm_servelist();do{printf("\n\n\n\t注意:您确定要删除该记录吗?\n"); printf("\n\t1.是\t2.否\n");printf("\n\t请输入:");scanf("%d",&inp);if (inp!=1&&inp!=2){printf("\n\t对不起~没有这项服务~\n");printf("\t按任意键重新选择\n\t");input=getchar();}}while (inp!=1&&inp!=2);if (inp==2)book_search();if (inp==1){if ((fp=fopen("book.txt","r"))!=NULL){do{fread(&book_taxis[i],sizeof(struct bookinf),1,fp);i=i+1;}while(!feof(fp));fclose(fp);}if (i>2){fp=fopen("book.txt","w");for (j=0;j<y;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);fp=fopen("book.txt","a");for (j=y+1;j<i-1;j++)fwrite(&book_taxis[j],sizeof(struct bookinf),1,fp);fclose(fp);}else{remove("book.txt");}printf("\n\n\t记录已删除!\n\n\t按任意键返回\n\t");input=getchar();adm_servelist();}}(6)图书信息查询功能模块void book_search(){void adm_servelist();void id_search();void wr_search();void bn_search();char input;FILE *fp;int inp;if ((fp=fopen("book.txt","r"))==NULL){printf("\n\n\n\t数据尚未初始化~~\n\n\t请在管理菜单中增加图书信息~~~\n"); printf("\n\t<按任意键返回管理菜单>\n\t");input=getchar();adm_servelist();}else{do{printf("\n\n\n\t1.按图书登录号查询\n");printf("\n\t2.按图书作者查询\n");printf("\n\t3.按图书名查询\n");printf("\n\t4.回到主菜单\n");printf("\n\n\t请选择查询类别:");scanf("%d",&inp);if (inp!=1&&inp!=2&&inp!=3&&inp!=4){printf("\n\n\t没有这项服务~\n\t按任意键重新选择~");input=getchar();}}while (inp!=1&&inp!=2&&inp!=3&&inp!=4);fclose(fp);switch (inp){case 1: id_search(); break;case 2: wr_search(); break;case 3: bn_search(); break;case 4: adm_servelist(); break;}}}。
1.用户表(users):2.3./**创建表——评论*/CREATE TABLE comments(cid INT(11) AUTO_INCREMENT PRIMARY KEY, ccontents V ARCHAR(400) NOT NULL,ctime VARCHAR(100) NOT NULL,cstar VARCHAR(100),cbid INT(11) NOT NULL,cuid INT(11) NOT NULL,other1 V ARCHAR(200),other2 INT(11))/**创建表-订单详情*/CREATE TABLE orderbooks(obid V ARCHAR(100) PRIMARY KEY,bid INT(11) NOT NULL,onum INT(11) DEFAULT '1',oid V ARCHAR(100) NOT NULL,obstate INT(11) DEFAULT '0',obpay INT(11) DEFAULT '0')Sql语句:CREATE DATABASE bookShop;/**创建表——用户*/CREATE TABLE users(uid INT(11) AUTO_INCREMENT PRIMARY KEY, uloginid V ARCHAR(20) NOT NULL,upwd V ARCHAR(40) NOT NULL,uname VARCHAR(100) NOT NULL,uphone V ARCHAR(100) NOT NULL,uaddress VARCHAR(100) NOT NULL,umail VARCHAR(100),uregistertime V ARCHAR(100),ulastlogintime V ARCHAR(100),upicture V ARCHAR(200),other1 V ARCHAR(100),other2 INT(11),other3 INT(11))/**创建表—订单*/CREATE TABLE orders(oid V ARCHAR(100) PRIMARY KEY,otime VARCHAR(100) NOT NULL,ouid INT(11) NOT NULL,oreceive VARCHAR(200),oaddress VARCHAR(1000) NOT NULL,ophone V ARCHAR(100) NOT NULL,oprice V ARCHAR(100) NOT NULL,opaymethod V ARCHAR(20) NOT NULL,opaybank VARCHAR(20) NOT NULL,ostate INT(11) DEFAULT '0')/**创建表——书店*/CREATE TABLE bookshop(bsid INT(11) AUTO_INCREMENT PRIMARY KEY, bloginid V ARCHAR(20) NOT NULL,bpwd V ARCHAR(20) NOT NULL,bname VARCHAR(100) NOT NULL,baddress VARCHAR(100) NOT NULL,bphone V ARCHAR(100) NOT NULL,bmail VARCHAR(100),bbusinesstime V ARCHAR(100),blawman VARCHAR(100),other1 INT(11),other2 V ARCHAR(100),other3 V ARCHAR(100))/**创建书信息表*/CREATE TABLE books(bid INT(11) AUTO_INCREMENT PRIMARY KEY,bname VARCHAR(100) NOT NULL,bprice V ARCHAR(50) NOT NULL,bauthor V ARCHAR(50) NOT NULL,bdiscount FLOAT DEFAULT '1',bdiscription V ARCHAR(400) DEFAULT '',bimg VARCHAR(200) NOT NULL,bcategory INT(11),bbsid INT(11) NOT NULL,other1 INT(11),other2 V ARCHAR(20))/**创建表-书籍类别*/CREATE TABLE category(cid INT(11) AUTO_INCREMENT PRIMARY KEY, category INT(11),other1 INT(11),other2 V ARCHAR(30))。
附录全部源代码package class Connect {private static Connection con = null;private static String url="jdbc:oracle:thin:@localhost:1521:ORCL";private static String driver = "";private static String user = "scott";private static String pwd = "tiger";public static Connection getConnection(){try {(driver);con = (url, user, pwd);"数据库连接成功!");} catch (ClassNotFoundException e) {"驱动加载失败!");;} catch (SQLException e) {"数据库连接失败!");}return con;}public static void main(String[] args) {();}}package class docMenuAction implements ActionListener { RegisterFrame register = null;JPanel cusPanel = null;JPanel docPanel = null;public docMenuAction(RegisterFrame register){= register;= ;= ;}public void actionPerformed(ActionEvent e) {于用户搜索商品public ArrayList getAllSellerGoods(){ArrayList list = new ArrayList();conn = ();try {statement = ();String sql = "select * from goods a,seller b where =";resultSet = (sql);while()){Seller seller = new Seller();("seller_name"));("address"));Goods goods = new Goods();(seller);("goods_id"));("goods_name"));("seller_id"));("discount"));("num"));("price"));2012-9-192012-9-192012-9-192012-9-19etImage());(null);(null);(false);etImage());(600, 400);;(null);(menuBar,;setGoodsPanel();;(goodsPanel,;;setSouthPanel();setOrderPanel();(southPanel,;}quals())){(null, "请输入商品编号或商品数量!");}else{int id = ());int num = ((String) ());goods = (id);if(null, "您确定要购买吗")==0){if()==0){(null, "商品编号输入错误!");}else{if()<num){(null, "商品数量不足!");}else{()-num);(goods);OrderDao order = new OrderDao();(goods, num);(null, "购买成功!");setAr();setOr();();}}}else{}}}});}etName();ar[i][7]=().getAddress();}}private void setArNull(){for(int i=0;i<;i++){for(int j=0;j<ar[i].length;j++){ar[i][j]="";}}}etName();or[i][3]=().getPrice();or[i][4]=().getDiscount();or[i][5]=().getPrice()*().getDiscount()*;or[i][6]=();or[i][7]=().getName();or[i][8]=().getAddress();}}private void setOrNull(){for(int i=0;i<;i++){for(int j=0;j<or[i].length;j++){or[i][j]="";}}}public static void main(String[] args) {BuyerFrame frame = new BuyerFrame();(true);}}package class LoginFrame extends JFrame{ private JLabel userNameLabel = new JLabel("用户名:");private JLabel pwdLabel = new JLabel("密码:");private JTextField useNameText = new JTextField();private JPasswordField pws = new JPasswordField();private JLabel roleLabel = new JLabel("角色:");private JComboBox roleBox = new JComboBox(new String[]{"商家","买家"}); private JButton bt = new JButton("确定");private JButton btR = new JButton("取消");private String flag = null;public LoginFrame(){init();}private void init(){(320, 280);("登录");(new ImageIcon("images/").getImage());(null);(false);;(null);(40, 20, 150, 30);(userNameLabel);(120, 20, 150, 30);(useNameText);(40, 80, 150, 30);(pwdLabel);(120, 80, 150, 30);(pws);(40, 140, 70, 30);(roleLabel);(120, 140, 150, 30);(roleBox);(40, 200, 70, 30);(btR);(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { quals(f)){flag = "seller";}if("买家".equals(f)){flag = "customer";}if("seller".equals(flag)){Seller seller = (), ());"-----"+());if()==null){(null, "用户名或密码输入错误");}else{setVisible(false);SellerFrame fame = new SellerFrame();(true);}}if("customer".equals(flag)){Buyer buyer = (), ());if()==null){(null, "用户名或密码输入错误");}else{setVisible(false);BuyerFrame frame = new BuyerFrame();(true);}}2012-9-20etImage());(300, 400);etImage());(600, 400);;(null);(menuBar,;setGoodsPanel();;(goodsPanel,;;setSouthPanel();setOrderPanel();(southPanel,;}quals())){(null, "请输入商品编号!");}else{int id = ());UpdateFrame frame = new UpdateFrame();Goods goods = new GoodsDao().getOneGoods(id);if()!=0){(goods);(goods);(true);}else{(null, "商品编号输入错误!");}}}});(btDelet);quals())){(null, "请输入商品编号!");}else{int id = ());GoodsDao dao = new GoodsDao();if(null, "您确定要删除吗")==0){if(id)!=0){(null, "删除成功!");}else{(null, "商品编号输入错误!!");}}else{}}}});(btAdd);(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { etName();ar[i][7]=().getAddress();}}private void setArNull(){for(int i=0;i<;i++){for(int j=0;j<ar[i].length;j++){ar[i][j]="";}}}etName();or[i][3]=().getPrice();or[i][4]=().getDiscount();or[i][5]=().getPrice()*().getDiscount()*;or[i][6]=();or[i][7]=();}}private void setOrNull(){for(int i=0;i<;i++){for(int j=0;j<or[i].length;j++){or[i][j]="";}}}public static void main(String[] args) {SellerFrame frame = new SellerFrame();(true);}}package class UpdateFrame extends JFrame{private static final Goods Goods = null;private JLabel lbName = new JLabel("商品名:");private JLabel lbPrice = new JLabel("价格:");private JLabel lbDiscount = new JLabel("折扣:");private JLabel lbNum = new JLabel("数量:");private JTextField fieldName = new JTextField(20);private JTextField fieldPrice = new JTextField(20);private JTextField fieldDiscount = new JTextField(20);private JTextField fieldNum = new JTextField(20);private JButton btSure = new JButton("修改");private JButton btCancel = new JButton("取消");private Goods goods = new Goods();public UpdateFrame(){init();}private void init(){(320, 330);("修改商品信息");(new ImageIcon("images/").getImage());(null);(null);(false);// ;(null);setText(goods);setContentPanel();}private void setContentPanel(){(30, 30, 80, 30);(130, 30, 150, 30);(30, 90, 80, 30);(130, 90, 150, 30);(30, 150, 80, 30);(130, 150, 150, 30);(30, 200, 80, 30);(130, 200, 150, 30);(30, 250, 70, 30);(210, 250, 70, 30);(lbName);(fieldName);(lbPrice);(fieldPrice);(lbDiscount);(fieldDiscount);(lbNum);(fieldNum);(btCancel);(btSure);(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubsetVisible(false);}});(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubif(null, "您确定要修改吗")==0){GoodsDao dao = new GoodsDao();()));());()));()));(goods);setVisible(false);(null, "修改成功!");}else{//}}});}public void setText(Goods goods){());()));()));()));}public Goods getGoods() {return goods;}public void setGoods(Goods goods) {= goods;}public static void main(String[] args) { UpdateFrame frame = new UpdateFrame();(true);}}数据库SQL语句:create table seller(seller_id varchar2(20) primary key,seller_name varchar2(20),pwd varchar2(20),address varchar2(200))insert into seller values('niclascage','长理专卖店','123456','湖南长沙')select * from sellerdrop table sellercommitcreate table buyer(buyer_id varchar(20) primary key,buyer_name varchar(20),pwd varchar2(20),address varchar(200))insert into buyer values('lina','林大专卖店','123456','湖南长沙')select * from buyerdrop table buyercreate table goods(goods_id int primary key,seller_id varchar(20),goods_name varchar(50),price int,discount int,num int,constraint fk_seller_id foreign key(seller_id) references seller(seller_id))insert into goods values(1,'niclascage','Java',40,8,20)select * from goodsdrop table goodscreate table orders(order_id int primary key,goods_id int,seller_id varchar(20),buyer_id varchar(20),num int,constraint fk_goods_id foreign key(goods_id) references goods(goods_id), constraint fk_sellers_id foreign key(seller_id) references seller(seller_id),constraint fk_buyer_id foreign key(buyer_id) references buyer(buyer_id) )select * from ordersinsert into orders values(1,1,'niclascage','lina',2)drop table orders;drop table goods;drop table buyer;drop table seller;。
网上书店售书管理系统数据库设计说明书版本信息目录1 引言 (1)1.1 编写目的 (1)1.2 背景 (1)1.3 定义 (1)1.4 参考资料 (1)2 外部设计 (1)2.1 标识符和状态 (1)2.2约定 (1)字符集采用UTF-8,请注意字符的转换。
(1)3需求分析 (2)4结构设计 (2)4.1 概念结构设计 (2)4.2 逻辑结构设计 (9)4.2.1 表 (9)4.2.2 存储过程 (12)4.3 物理结构设计 (13)5运用设计 (14)5.1 数据字典设计 (14)6附录 (14)1 引言1.1 编写目的本说明书说明“网上书店售书管理系统”的数据库设计、结构情况,用于开发人员进行项目设计,同时也为后续的数据库维护工作提供了良好的使用说明,也可以作为未来版本升级时的重要参考资料。
1.2 背景数据库名称:BOOKSHOPDB数据库系统:SQL SERVER 2008数据库宿主环境:Windows客户端连接工具:.NET设计软件:PowerDesigner 15.21.3 定义数据选项约束表:用于为其他数据表中的字符型字段提供限定的选项。
实体表:用户实际使用的客观表格。
计算表:数据来自于对其他一个或多个实体表的计算结果。
1.4 参考资料a.本项目的《用户需求分析报告》;b.用户提供的《工作设想》;c.本项目相关的其他参考资料。
2 外部设计2.1 标识符和状态数据库标示符:bookShop用户名:programmer密码:security权限:全部有效时间:开发阶段说明:系统正式发布后,可能更改数据库用户/密码,请在统一位置编写数据库连接字符串,在发行前请予以改正。
2.2约定字符集采用UTF-8,请注意字符的转换。
所有数据表第一个字段都是系统内部使用主键列,自增字段,不可空,确保不把此字段暴露给最终用户。
除特别说明外,所有小数的字段都采用decimal(13,3) 的形式表达。
除特别说明外,所有日期格式都采用datetime 格式,无时间值。
网上书店信息管理系统的设计与实现学生姓名:蒋斌指导老师:罗永红摘要本课程设计主要是设计一个网上书店信息管理的系统,实现用户的注册、登录,书店书籍的添加、删除、修改、查询及图书的购买等功能。
程序设计平台为Windows XP,程序设计语言采用JA V A,所连接的数据库是oracle 10g。
在程序设计中,采用了结构化与面向对象两种解决问题的方法。
程序通过调试运行,初步实现了目标。
关键词数据库;oracle 10g;JAVA;网上书店信息管理系统The Design and Implementation of Book Store InformationManagement SystemStudent Name:JiangBin Advisor:LuoYong-hongAbstract This course design is mainly to make a information management system of a online bookstore, The function of the system include bo ok’adding ,deleting and querying and purchase books. Program design platform is Windows XP, programming language is JA V A, are the connected database is Oracle 10g. In the program process, I adopted two solution of the structured and object-oriented. Program run through the debugger, achieving the initial goal.Keywords Database; oracle 10g; JA V A; Online Bookstore Information Management System目录1引言 (1)1.1课题背景 (1)1.2课程设计目的 (1)1.3课程设计任务 (1)2 系统结构分析 (2)2.1需求分析 (2)2.2功能模块图 (3)3 数据库设计 (4)3.1概念结构设计 (4)3.2逻辑结构设计 (6)3.3数据库表的建立 (8)4功能实现 (10)4.1注册界面 (10)4.2登录界面 (11)4.3主界面 (12)4.4书籍添加 (12)4.5书籍修改 (13)4.6图书删除 (14)4.7图书删除 (14)4.8订单查询修改 (15)5 系统技术实现 (16)5.1JAVA (16)5.2 ORACLE (16)6 结束语 (18)参考文献 (19)1引言1.1 课题背景随着计算机技术的发展以及计算机网络的逐渐普及,英特网成为人们查找信息的重要场所。
二十一世纪是信息的时代,所以信息的交换和信息流通显的特别重要。
因此网上书店的出现成为必然。
1.2 课程设计目的随着计算机的广泛应用,其逐步成为现代化的标志。
书店等,在正常运行过程中总是面对大量的客户信息,书籍信息以及两者相互作用产生的购书信息。
因此需要对客户资源、书籍资源、购书信息及书籍信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,为了书店自动化的管理,能够更快速的满足客户的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。
网上书店信息管理系统的主要功能是实现书籍信息管理及购书的自动化。
围绕这一主要功能,本系统涉及到以下核心功能:上传管理,修改管理,查询管理。
除了这些核心功能外,还包括一些基本和辅助功能,如:商家和客户的注册、登录,客户的购书等。
1.3课程设计任务本课程设计任务是通过开发一个网上书店信息管理系统,学习数据库系统的设计与开发,采用Eclipse和oracle 10g等软件为开发工具。
通过对计算机硬件和软件解决方案的论证,对应用领域进行调查分析,参考各种资料和进行数据库系统开发实践。
在指导老师的帮助下,已经基本上成功地实现了设计任务书的要求,使得设计的数据库系统能够实现一般数据库的管理。
2 系统结构分析2.1 需求分析网上书店信息管理系统是适应计算机时代发展的需要,提高管理的效率而开发设计的。
通过对书籍信息管理,使客户能轻松购买书籍。
经过综合分析,确定了网上书店信息管理系统的主要包括以下功能:(1)商家:a、商家注册功能此模块的主要功能是用于商家注册账号;b、商家登录功能此模块的主要功能是用于拥有商家账号的用户登陆系统对自己的书店进行管理;c、上传书籍功能此模块的主要功能是用于商家发布一些新书共客户查看及购买;d、书籍修改功能此模块的主要功能是用于商家修改自己书店书籍的信息;e、书籍删除功能此模块的主要功能是用于商家删除一些书籍信息;f、书籍查询功能此模块的主要功能是用于商家查询自己书店的书籍;g、订单查询功能此模块的主要功能是用于商家查询自己书店卖书的记录;(2)客户:a、商家注册功能此模块的主要功能是用于商家注册账号;b、商家登录功能此模块的主要功能是对拥有客户账号的用户登录;c、商品信息查询功能此模块的主要功能是用于客户查看所有商家的书籍信息; d 、书籍购买功能此模块的主要功能用于客户购买书籍 e 、订单查询功能此模块的主要功能是用于客户查询自己的购书记录;2.2 功能模块图根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示,图2.1 系统功能模块示意图网上书店信息管理系统商家 书籍查询 客户注册 登录书籍上传书籍修改 书籍删除 订单查询注册 书籍查询 登录购买书籍 订单查询3 数据库设计3.1 概念结构设计根据需求分析抽象出信息结构,可得该系统的E-R图,(1)商家用户E-R图,如图3.1所示,Seller_id Seller_namesellerpwd address图3.1 商家用户E-R图(2)客户用户E-R图,如图3.2所示,buyer_id buyer_namebuyerpwd address图3.2 客户用户E-R图(3) 书籍信息E-R 图,如图3.3所示,图3.3 书籍信息E-R 图(4)订单E-R 图,如图3.4所示,图3.4 商家用户E-R 图(5)根据分E-R 图和需求分析,可得到总E-R 图,如图3.5所示。
orderBuyer_id Goods_idorder_id Seller_idnumgoodsprice discount numGoods_id Seller_id Goods_nam图3.5 总E-R图3.2逻辑结构设计根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
数据库ORCL包含以下4个表:商家信息表seller、客户信息表buyer、书籍信息表goods、订单信息表order。
(1)商家信息表seller商家信息表seller用来保存商家账号、密码等信息,表seller的结构如表3-1所示,表3-1 表seller的结构字段名说明类型长度及备注seller_id 商家编号varchar2(20) 主键seller_name 书店名称varchar2(20)pwd 密码varchar2(20)address 书店地址varchar2(200)(2) 客户信息表buyer客户信息表buyer用来保存客户账号、密码等信息,表buyer的结构如表3-2所示,表3-2 表buyer的结构字段名说明类型长度及备注buyer_id 客户编号varchar2(20) 主键buyer_name 客户名字varchar2(20)pwd 密码varchar2(20)address 客户住址varchar2(200)(3)图书信息表goods书籍信息表goods用来保存书号、书名、作者等信息。
表goods的结构如表3-3所示,表3-3 表goods的结构字段名说明类型长度及备注goods_id 书籍编号int 主键seller_id 商家编号varchar(20) 外键goods_name 书籍名称varchar(50)price 价格intdiscount 折扣intnum 书籍数量int(4)订单信息表order订单信息表order用来保存订单号、书籍编名等信息。
表order的结构如表3-4所示,表3-4 表order的结构字段名说明类型长度及备注order_id 订单编号int 主键goods_id 书籍编号varchar(20) 外键seller_id 商家编号varchar(50) 外键buyer_id 客户编号int 外键num 购买数量int3.3数据库表的建立在设计数据库表结构之前,首先要创建一个数据库实例。
本系统使用的数据库为oracle 10g。
数据库表的建立语句如下:--商家create table seller(seller_id varchar2(20) primary key,seller_name varchar2(20),pwd varchar2(20),address varchar2(200));--客户create table buyer(buyer_id varchar(20) primary key,buyer_name varchar(20),pwd varchar2(20),address varchar(200));--书籍create table goods(goods_id int primary key,seller_id varchar(20),goods_name varchar(50),price int,discount int,num int,constraint fk_seller_id foreign key(seller_id) references seller(seller_id));--订单create table orders(order_id int primary key,goods_id int,seller_id varchar(20),buyer_id varchar(20),num int,constraint fk_goods_id foreign key(goods_id) references goods(goods_id),constraint fk_sellers_id foreign key(seller_id) references seller(seller_id),constraint fk_buyer_id foreign key(buyer_id) references buyer(buyer_id));4功能实现该程序实现了网上书店信息管理系统应有的功能,即账号注册、登录功能、书籍查询、书籍添加、书籍删除、书籍修改、书籍购买功能。