星云图书销售系统课程设计报告.docx
- 文档编号:8962312
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:28
- 大小:967.98KB
星云图书销售系统课程设计报告.docx
《星云图书销售系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《星云图书销售系统课程设计报告.docx(28页珍藏版)》请在冰豆网上搜索。
星云图书销售系统课程设计报告
JAVA星云图书销售系统课程设计报告
河北环境工程学院
课程设计报告书
所属课程名称:
面向对象开发技术
题目:
星云图书销售系统
院(系):
班级:
学生姓名:
指导教师
辅导教师
一、课程设计题目:
星云图书销售系统
二、课程设计工作:
自2020年09月07日起至2020年09月11日止。
三、课程设计的内容要求:
1.本课程设计的目的
(1)掌握Java语言的程序设计方法;
(2)理论联系实际,进一步提高学生的软件开发技术;
(3)培养学生分析、解决问题的能力;
(4)提高学生实践论文撰写能力。
2.课程设计的任务及要求
1)基本要求:
(1)熟悉JAVA开发环境,掌握JAVA程序的编译和运行;
(3)会实现类的封装、继承和多态;
(4)会使用权限控制;
(5)会使用抽象类和接口类,了解工厂模式;
(6)掌握JAVA基本编程技术和方法;
2)课程设计论文编写要求
(1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订。
(2)课程设计报告(论文)包括目录、设计目的、实现思路、实现步骤、设计心得、参考文献、附录等;
3)课程设计评分标准:
(1)学习态度:
10分;
(2)系统设计:
20分;
(3)编程调试:
20分;
(4)回答问题:
20分;
(5)论文撰写:
30分。
4)参考文献:
(1)马新瑞主编.Java程序设计教程———基于华为云DevCloud[M].北京邮电大学出版社.2019.11
(2)CSDN社区:
5)课程设计进度安排
1.准备阶段(4学时):
选择设计题目、了解设计目的要求、查阅相关资料
2.程序模块设计分析阶段(4学时):
程序总体设计、详细设计
3.代码编写调试阶段(8学时):
程序模块代码编写、调试、测试
4.撰写论文阶段(4学时):
总结课程设计任务和设计内容,撰写课程设计论文
6)课程设计题目具体要求:
(1)本系统的主要用户分为两类,即管理员和顾客。
系统提供这两类用户的登录功能。
当用户名和密码一样时,登录成功;否则,登录失败,提示登录失败的信息。
当用户名和密码都是“admin”时,登录用户为库存管理员。
(2)管理员可以管理图书库存(出库、入库)、查询和新增图书。
(3)顾客可以查询图书、购买图书和结账。
在结账的时候,系统会提示顾客是否购买附赠品(CD、包装和钢笔)。
学生签名:
2020年09月11日
课程设计(论文)评阅意见
序号
项目
等级
优秀
良好
中等
及格
不及格
1
课程设计态度评价
2
出勤情况评价
3
任务难度评价
4
工作量饱满评价
5
设计中创新性评价
6
论文书写规范化评价
综合评定等级
评阅人:
2020年09月09日
目 录
第1章系统设计目的.............................1
第2章系统实现思路..............................1
第3章系统详细设计..............................2
第4章系统调试运行..............................8
第5章课程设计心得..............................11
第6章参考文献........................................11
第7章附录..................................................11
第1章系统设计目的
1)设计一个简单的销售系统,可以实现以下功能:
1:
顾客对购买图书目录查询,价格查询,附赠品选购,结账;
2:
管理员对图书的库存管理,增删图书管理;
3:
项目可以通过用户名和密码登录,获取不同权限
2)通过这次设计,可以帮助学生:
1:
提高对Java语言设计的掌握能力;
2:
初步了解工厂模式
3:
理论联系实际,进一步提高学生的软件开发技术;
4:
培养学生分析、解决问题的能力。
第2章系统实现思路
1:
项目框架
(1)实体类
(2)权限类
(3)业务类
2:
创建实体类
2:
定义角色类
角色的属性有顾客权限、库存管理员权限和角色描述。
角色描述用于区分角色。
它有一些getter()/setter()方法,以及两种权限的分配操作。
2:
角色权限
权限是操作,是针对行为的。
一般把行为抽象为接口,所以把权限抽象为接口,开发中,遇到类似权限划分的问题,一般可以采用用户、角色、权限的模式。
3:
工厂模式
工厂模式如果想增加产品,只要扩展工厂类就可以了,提高了系统的可扩展性;对调用者来说,屏蔽了产品的具体实现,只为其提供接口,降低系统耦合性。
3:
代码设计
编写每个控件的相关代码,并进行调试。
第3章系统详细设计
1:
界面设计
创建命令行主菜单和输入提示,在命令行中出现运行结果。
主要代码:
publicvoidaccreditRole(Useruser){
System.out.print("请输入用户名:
");
Stringusername=input.next();
System.out.print("请输入密码:
");
Stringpassword=input.next();
if(user.login(username,password)){
System.out.println("登录成功!
");
}else{
System.out.println("登录失败,请重新登录");
accreditRole(user);
}
}
//库存管理员操作
publicvoiddoStoreMgr(Useruser){
System.out.println("----------欢迎登录库存管理系统----------");
user.query();//查询库存
System.out.println("请选择进行的操作:
1.图书入库2.图书出库3.查询全部图书4.新增图书5.退出");
intcodeId=input.nextInt();
try{
switch(codeId){
case1->{
inBook(user);//图书入库
doStoreMgr(user);//再次调用库管操作
}
case2->{
outBook(user);//图书出库
doStoreMgr(user);//再次调用库管操作
}
case3->doStoreMgr(user);//再次调用库管操作
case4->{
Bookbook=inputBookInfo();//录入图书信息
user.save(book);//新增图书
doStoreMgr(user);//再次调用库管操作
}
case5->System.out.println("谢谢使用!
");
default->thrownewException();
}
}catch(Exceptione){
System.out.println("请输入正确格式的数字1-5");
doStoreMgr(user);
}
}
//顾客的操作
publicvoiddoCustomer(Useruser){
Scannerinput=newScanner(System.in);
System.out.println("------欢迎光临星云图书系统------");
user.query();//查询图书
System.out.println("请选择进行的操作:
1.查看图书2.结账3.退出");
try{
intcode_id=input.nextInt();
switch(code_id){
case1->doCustomer(user);
case2->{
buyBook(user);//买书结账
doCustomer(user);
}
case3->System.out.println("谢谢光临,再见!
");
default->thrownewException();
}
}catch(Exceptione){
System.out.println("请重新输入正确格式的数字1-3");
doCustomer(user);
}
}
2:
功能设计
对每个菜单项进行注册监听。
点击不同菜单项时,显示不同界面。
3:
代码设计
部分功能代码如下:
//入库
publicvoidin(intbookId,intnum){
if(storeMgr==null){
System.out.println("您没有库存管理员权限");
return;
}
storeMgr.in(bookId,num);
}
publicvoidout(intbookId,intnum){
if(storeMgr==null){
System.out.println("您没有库存管理员权限");
return;
}
storeMgr.out(bookId,num);
}
//新增图书
publicvoidsave(Bookbook){
if(storeMgr==null){
System.out.println("您没有库存管理员权限");
return;
}
storeMgr.save(book);
}
//查询图书
publicvoidquery(){
if(normal==null&&storeMgr==null){
System.out.println("您还没有登录,请登陆后再操作");
}elseif(normal!
=null){
normal.query();
}else{
storeMgr.query();
}
}
//结账
publicvoidcheckout(Bookbook){
if(normal==null){
System.out.println("您还没有登录,请登陆后再操作");
return;
}
normal.checkout(book);
}
//购买图书
publicBookbuy(intbookId,intnum){
if(normal==null){
System.out.println("您还没有登录,请登陆后再操作");
returnnull;
}
returnnormal.buy(bookId,num);
}
//购买附赠品
publicEXbuyEx(intexCode){
if(normal==null){
System.out.println("您还没有登录,请登陆后再操作");
returnnull;
}
returnnormal.buyEx(exCode);
}
publicStringgetDescription(){
returndescription;
}
publicvoidsetDescription(Stringdescription){
this.description=description;
}
publicvoidsetStoreMgr(StoreMgrstoreMgr){
this.storeMgr=storeMgr;
}
publicvoidsetNormal(Normalnormal){
this.normal=normal;
}
}
第4章 系统调试运行
1:
界面调试
命令行中出现输入用户登录提示,登陆后命令行中打印出菜单及其选项
如图:
(1)管理员
(2)用户
2:
功能调试
对所有菜单项进行调试运行。
如图:
(1)管理员
(2)
用户
第5章 课程设计心得
经过一个星期的课程设计,我们在张英奇老师的指导下,顺利完成该课程设计。
通过该课程设计,收获颇多。
(1)加深了对Java语言的理论知识的理解;
(2)更加熟练的掌握了Java语言的设计能力并且有了实践经验;
(3)在设计过程中,学到了老师没有在课堂上没有教授的知识;
(4)了解了Java开发模式———工厂模式;
(5)对软件开发的流程有了一定的了解;
(6)加强了我对Java语言的学习兴趣和好感。
第6章 参考文献
[1]马新瑞主编.Java程序设计教程———基于华为云DevCloud[M].北京邮电大学出版社.2019.11
[2]李刚.疯狂Java讲义(第5版).电子工业出版社,2019.04
[3]杨冠宝(孤尽),主编.阿里巴巴Java开发手册.电子工业出版社,2018.01
第7章 附录
部分程序源代码如下:
packagecom.stu.biz;
importcom.stu.entity.Book;
importcom.stu.entity.ex.EX;
importcom.stu.entity.ex.ExFactory;
publicclassBookBiz{
publicstaticBook[]books=newBook[30];//图书书架
//初始化书的信息
publicstaticvoidmakeData(){
Bookbook1=newBook();
Bookbook2=newBook();
Bookbook3=newBook();
Bookbook4=newBook();
Bookbook5=newBook();
book1.setId(10001);
book1.setName("夜航船");
book1.setAuthor("张岱");
book1.setPub_date("2018-11-01");
book1.setPrice(99.80);
book1.setStore(15);
book2.setId(10002);
book2.setName("浮生六记");
book2.setAuthor("沈复");
book2.setPub_date("2017-04-01");
book2.setPrice(45.00);
book2.setStore(10);
book3.setId(10003);
book3.setName("人间词话");
book3.setAuthor("王国维");
book3.setPub_date("2017-07-01");
book3.setPrice(56.00);
book3.setStore(18);
book4.setId(10004);
book4.setName("随园食单");
book4.setAuthor("袁枚");
book4.setPub_date("2019-09-01");
book4.setPrice(55.00);
book4.setStore(15);
book5.setId(10005);
book5.setName("笑林广记");
book5.setAuthor("游戏主人");
book5.setPub_date("2016-09-22");
book5.setPrice(36.00);
book5.setStore(12);
books[0]=book1;
books[1]=book2;
books[2]=book3;
books[3]=book4;
books[4]=book5;
}
//图书入库
publicvoidinBook(intbookId,intnum){
Bookbook=findBookById(bookId);
if(book==null){
System.out.println("没有此ID的图书,请选择新增图书!
");
}else
book.setStore(book.getStore()+num);//修改图书数量
}
//图书出库
publicvoidoutBook(intbookId,intnum){
Bookbook=findBookById(bookId);
if(book==null){
System.out.println("此书不存在,请确认!
");
}else{
if(book.getStore() System.out.println("库存不足,请确认! "); }else book.setStore(book.getStore()-num);//出库(减少库存数量) } } //新增图书 publicvoidsaveBook(Bookbook){ for(inti=0;i if(books[i]==null){//找到书架的空位置 intnewId=books[i-1].getId()+1;//给新书编号 book.setId(newId); books[i]=book;//存储新书 break; } } } //查询图书 publicvoidquery(){ System.out.println("书号\t\t书名\t\t\t作者\t\t\t发布日期\t\t价格\t库存"); for(Booktemp: books){//遍历书架 if(temp==null)//判断书架是否有书 break; else{//显示图书信息 intid=temp.getId(); Stringname=temp.getName(); Stringauthor=temp.getAuthor(); Stringpub_date=temp.getPub_date(); doubleprice=temp.getPrice(); intstore=temp.getStore(); System.out.println(id+"\t\t\t\t"+name+"\t\t\t"+author +"\t\t\t\t"+pub_date+"\t\t"+price+"\t\t"+store); } } } //购买图书 publicBookbuyBook(intbookId,intnum){ Bookbook=findBookById(bookId);//查找到图书 if(book==null){//如果没有此书,返回null System.out.println("此书不存在,请确认! "); returnnull; }else{ for(Bookvalue: books){//遍历书架 if(bookId==value.getId()){//如果找到欲出库图书 if(value.getStore() System.out.println("库存不足,请确认! "); returnnull; }else{ value.setNum(num);//设置购买数量 returnvalue; } } } } returnnull; } //购买附赠品 publicEXbuyEx(intexCode){ returnExFactory.create(exCode);//调用工厂里的方法得到附赠品 } //结账 publicvoidcheckout(Bookbook){ book.setStore(book.getStore()-book.getNum());//减少库存数量 doubleprice=book.cost();//计算价格 System.out.println("总价格为: "+price+"\n"); } //查询图书是否存在 publicBookfindBookById(intid){ for(Bookbook: books){//遍历书架 if(book==null){//如果书架为空,结束查找 returnnull; } if(id==book.getId()){//找到图书则返回 returnbook; } } returnnull; } } packagecom.stu.role; importcom.stu.authority.Normal; importcom.stu.authority.StoreMgr; importcom.stu.entity.Book; importcom.stu.entity.ex.EX; publicclassRole{ privateStringdescription;//角色名 privateStoreMgrstoreMgr=null;//库管权限 privateNormalnormal=null;//顾客权限 //入库 publicvoidin(intbookId,intnum){ if(storeMgr==null){ System.out.println("您没有库存管理员权限"); return; } storeMgr.in(bookId,num); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 星云 图书 销售 系统 课程设计 报告