图书管理系统的设计与实现 任务书
- 格式:doc
- 大小:41.50 KB
- 文档页数:2
毕业设计任务书题目基于JSP图书管理系统设计与实现二级学院信息工程学院专业软件技术班级软件1702班学生姓名阳旺辉学号201720173628指导教师吴良圆2019年10月设计题目基于JSP图书管理系统设计与实现课题简介随着计算机的广泛应用,其逐步成为现代化的标志。
图书馆或者一些企业内部,甚至是书店,在正常运行过程中总是面对大量的用户信息,书籍信息以及两者相互作用产生的借书信息、还书信息。
因此需要对用户资源、书籍资源、借书信息、还书信息进行管理,及时了解各个环节中信息的变更,要对因此而产生的单据进行及时的处理,本次开发是为了提高图书馆或者企业内部对图书存销的自动化的管理,能够更快速的满足用户的要求,提高各种工作的效率,现对其设计相应的系统,以达到上述的目的。
这个项目是为了提高图书管理的效率,包括图书查看、图书借还、图书借阅、个人信息修改、主页面课题目标与任务1.建立图书管理系统数据库管理图书和用户因为图书馆的藏书种类多、数量多,将藏书准确地分门别类,快速检索,手工进行非常困难往往是终于查到了信息,馆中没有此书或已被别人借走。
图书馆的规模越大,这个问题越突出。
2. 借书、还书工作量大借书、还书频率越大,说明图书馆的作用越大,然而随之而来的大量的借书、还书登记、实存图书的更新以及借出图书超期、遗失等的处理,其工作量之大,往往是人工操作所难以胜任的。
而且经常会出现这样那样的差错。
3. 图书统计工作难、藏书更新不能及时完成图书馆的图书应根据科学技术的发展和教学工作的需要及时添加和更新,然而由于藏书数量及图书种类越来越多,加上自然损耗,人为破坏,使图书的统计工作难以及时完成,藏书的更新也就很难有针对性地进行,藏书的知识结构得不到良好地控制实施步骤和方法第一步:确定毕业设计主题方向,进行毕业设计题目的筛选。
第二步:以毕业设计题目为核心,对相关资料进行收集和翻阅。
第三步:对已搜集的资料加以整理,论证分析毕业设计的可行性、实际性,将毕业设计题目和大致范围确定下来,进行开题报告。
图书信息管理系统设计任务书一、目的1. 进一步掌握和利用C 语言进行程设计的能力;2、 进一步理解和运用结构化程设计的思想和方法;3、 初步掌握开发一个小型实用系统的基本方法;4、 学会调试一个较长程序的基本方法;5、 学会利用流程图或N-S 图表示算法;6、 掌握书写程设计开发文档的能力(书写课程设计报告);二、内容与设计思想。
(1)题目:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
试设计一图书信息管理系统,使之能提供以下功能: 系统以菜单方式工作图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出查询和排序功能:(至少一种查询方式)--算法按书名查询按作者名查询图书信息的删除与修改(可选项)(2).系统功能与分析(填写你所设计的菜单及流程图) 截图略浏览模块流程图返回主菜单 退出 按书名查找模块 用户作出选择,输入一整型数值 显示图书记录 用户作出选择,输入一整型数值1,2,还是按书名查找模块流程图按作者查找模块流程图插入模块流程图(3)数据结构typedef struct book {int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B(4).模块设计(5)总体设计思想:(6)调试过程: 测试数据及结果,出现了哪些问题截图略(7)程序有待改进的地方及本次实习的收获和建议……(8)源程序清单(主要代码)#include<stdio.h>#include<stdlib.h>#include<string.h>#define LEN sizeof(struct book)typedef struct book{int sort;char book_name[15];char author_name[15];int vert_number;char publish_unit[15];char publish_time[10];int price;}B;B *P,*p1,boo;int num=0,f=0;int save();void input();int get();void output();void book_name();void author_name();void modify();void delet();int main(){int re=1,t,j=0;int n,choice;while(re==1){t=1;system("cls");printf(" *****************************\n");printf(" 主菜单 \n\n");printf(" 1.录入信息\n");printf(" 2.查看信息\n");printf(" 3.查询信息\n");printf(" 4.删除与修改信息\n");printf(" 5.退出\n");printf(" *****************************");printf("\n");if(j==1) printf("\n\t选择错误!");printf("\n\t请选择1-5: _\b\b");scanf("%d",&choice);switch(choice){case 1:{printf("\n\t1: 录入信息\n");input();printf("\n \t1.返回主菜单;\n\t 2.退出 \n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 2:{printf("\n\t2.查看信息\n");output();printf("\n\t 1.返回主菜单;\n\t 2.退出\n\t\t请选择: _\b\b");scanf("%d",&re);break;}case 3:{while(t==1){printf("\n\t3.查询信息\n");printf("\n\t 请选择查询方式:\n\t 1.按书名\n\t 2.按作者名\n\t 3.其余任意数字键返回主菜单 _\b\b");scanf("%d",&n);if(n==1)book_name();else if(n==2)author_name();else{re=1;goto lebel;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出\n\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2)re=1;if(t==3) re=0;}lebel: break;}case 4:{while(t==1||f==1){printf("\n\t4.删除与修改信息\n");printf("\n\t 请选择:\n\t 1.删除信息;\n\t 2.修改信息\n \t 3.其余任意数字键返回主菜单 _\b\b");scanf("%d",&n);if(n==1)delet();else if(n==2)modify();else{re=1;goto lebe;}printf("\n\t 1.返回上一层;\n\t 2.返回主菜单;\n\t 3.退出 \n\t\t 请选择: _\b\b");scanf("%d",&t);if(t==1)system("cls");if(t==2) re=1;if(t==3) re=0;}lebe: break;}case 5:{re=0;break;}default:{re=1;j=1;}}}return 0;}int save(){FILE *fp;int i,n=0,n1=0;if((fp=fopen("book.txt","a+"))==NULL)return 0;fprintf(fp,"%d\n",num);for(i=0;i<num;i++){fprintf(fp,"%d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i] .price);fprintf(fp,"\n");}fclose(fp);return 1;}int get(){FILE *fp;int i;fp=fopen("book.txt","r");if(fp==NULL)return 0;else{fscanf(fp,"%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){fscanf(fp,"%d%s%s%d%s%s%d",&P[i].sort,P[i].book_name,P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish_time,&P[i].p rice);}fclose(fp);return 1;}else{fclose(fp);return 0;}}}void input(){int result;int i;printf("\t\t要录入信息的书籍数量为: __本\b\b");scanf("%d",&num);if(num>0){P=(B *)malloc(LEN * num);for(i=0;i<num;i++){P[i].sort=i+1;printf("\n\tNO. %d",P[i].sort);printf("\n");printf("\t请按序输入:书名作者名分类号出版单位出版时间价格\n\t\t ");scanf("%s%s%d%s%s%d",P[i].book_name,P[i].author_name,&P[i].vert_number,P[i ].publish_unit,P[i].publish_time,&P[i].price);printf("\n");}result=save();if(result==0){printf(" \t录入信息失败!\n");num = 0;}if(result==1){printf(" \t成功录入信息!\n");}}else{num=0;printf(" \t输入错误!");}}void output(){int i;get();if(get()==1){printf("\n\t\t成功获取信息!\n");for(i=0;i<num;i++){printf("\n\t\tNO.\t%d\n",P[i].sort);printf("\t\t 书名作者名序列号出版单位出版时间价格\n");printf("\t\t %s %s %d %s %s %d",P[i].book_name,P[i].autho r_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n");}}else printf(" \t文件打开错误!");}void book_name(){int i;int tag=0;char ch[15];printf("\t 请输入书名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++){if(strcmp(P[i].book_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].book_ name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].pri ce);tag =1;}}if (tag == 0){printf("\n \t没有相关信息!\n");}}}void author_name(){int i;int tag=0;char ch[15];printf("\t 请输入作者名: _\b\b");scanf("%s",ch);if(get()==0){printf(" \t无法查询!");return;}if(get()==1){for(i=0;i<num;i++)if(strcmp(P[i].author_name,ch)==0){printf("\n\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d\n",P[i].sort,P[i].boo k_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i] .price);tag =1;}if (tag == 0){printf(" \t没有相关信息!");}}}void modify(){int t,n,i,y=1;int result,z,x;t=get();if(t==0){printf("\n \t打开文件错误,无法修改!");return;}else if(y==1){printf("\n\t 您要修改信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t您即将修改以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按 3 _\b\b");scanf("%d",&x);if(x==1){//p1=&boo;printf("\t 您要将信息修改为:\n");printf("\t\t书名: _\b\b");scanf("%s",P[i].book_name);printf("\t\t作者名: _\b\b");scanf("%s", P[i].author_name);printf("\t\t序列号: _\b\b");scanf("%d",&P[i].vert_number);printf("\t\t出版单位: _\b\b");scanf("%s",P[i].publish_unit);printf("\t\t出版时间: _\b\b");scanf("%s",P[i].publish_time);printf("\t\t价格: _\b\b");scanf("%d",&P[i].price);strcpy(P[i].book_name,P[i].book_name);strcpy(P[i].author_name,P[i+1].author_name);P[i].vert_number=P[i+1].vert_number;strcpy(P[i].publish_unit,P[i+1].publish_unit);strcpy(P[i].publish_time,P[i+1].publish_time);P[i].price=P[i+1].price;y=0;z=1;}elseif(x==2){y=1;z=0;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf("\n \t修改信息失败!\n");z=0;}if(result==1){printf("\n \t成功修改信息!\n");z=0;}}}return;}void delet(){int t,n,i,j,y=1;int result,z=0,x;t=get();if(t==0){printf("\n \t打开文件错误,无法删除!");return;}elsewhile(y==1){printf("\n\t 您要删除信息的图书排列号为(1-%d): _\b\b",num);scanf("%d",&n);if(n>=1&&n<=num){for(i=0;i<num;i++){if(P[i].sort==n){printf("\n\t 您即将删除以下信息:\n");printf("\t\t 排列号书名作者名序列号出版单位出版时间价格\n");printf("\t\t %d %s %s %d %s %s %d",P[i].sort,P[i].book_name,P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_time,P[i].price);printf("\n\n\t 确认请按1;返回请按2;返回上一层请按3 _\b\b");scanf("%d",&x);if(x==1){for(j=i;j<num-1;j++){strcpy(P[j].book_name,P[j+1].book_name);strcpy(P[j].author_name,P[j+1].author_name);P[j].vert_number=P[j+1].vert_number;strcpy(P[j].publish_unit,P[j+1].publish_unit);strcpy(P[j].publish_time,P[j+1].publish_time);P[j].price=P[j+1].price;}num=num-1;y=0;z=1;}elseif(x==2){y=1;}else{y=0;f=1;}}}}else{printf(" \t输入错误,请重新输入:");y=1;}while(z==1){result=save();if(result==0){printf(" \n\t删除信息失败!\n");z=0;}if(result==1){printf(" \n\t成功删除信息!\n");z=0;}}}return;}。
毕业设计任务书课题名称:图书管理系统的设计与实现学生姓名与学号:黄涛 103210141 所在院系:计算机科学与技术学院专业年级:计算机科学与技术 2010级(专升本)指导教师及职称:胡海峰讲师填表日期: 2011年10月20日平顶山学院教务处制课题任务与具体要求:1、设计并实现一个图书管理系统,该系统的主要功能应包括:管理员管理功能,日志管理功能,图书管理功能,会员管理功能,软件管理功能,和在线留言管理功能等。
最终系统应该能够达到最低使用标准。
2、有可运行的程序和源代码;3、按规定格式的毕业设计论文文稿。
4、进度安排2011年10月16日:完成毕业设计选题;2011年10月17日至10月24日:下达任务书;2011年10月25日至12月10日:查阅搜集分析材料并完成毕业设计开题报告;2011年12月11日至2012年2月10日:完成系统开发及测试;2012年2月11日至2月29日:完善系统,完成毕业论文初稿和修订稿;2012年3月1日至3月25日:继续完善系统,完成论文定稿;2012年3月26日至3月28日:提交毕业论文定稿和答辩相关资料;2012年4月下旬:答辩。
主要参考文献:1.孙卫琴、李洪成.《JBOSS与JSP Web 开发技术详解》.电子工业出版社.2007年6月2.陈威、白伟明、李楠.JSP工程应用与项目实践.机械工业出版社.2007年2月3.鲁春燕、孙娟. 浅谈C/S模式和B/S模式的优缺点[J]. 福建电脑. 2008年3月4.宋昆、李严等.Oracle数据库开发实例解析.机械工业出版社.2007年1月任务起止时间2011年12 月16 日至2012 年 4 月14 日(共 12周)任务下达人(签字)下达日期年月日任务承接人(签字)承接日期年月日院(系)审核意见院(系)主管领导签字:年月日。
图书管理系统的设计与实现摘要本文介绍了基于JSP技术开发的图书管理系统, 阐述了B/ S体系结构的图书管理系统的需求分析、总体设计和开发实现, 并介绍了JSP、JDBC、JavaBeans、session、数据库访问、数据库操作等主要技术及具体功能的实现。
该系统利用了基于JSP 的动态Web 技术,基于B/ S 体系结构,执行效率高、操作简单、维护轻松,较好地实现了前端应用程序的高效率查看、后台管理的方便操作,具有很好的可维护性和可扩展性。
关键词: JSP 、图书管理系统、B/S、数据库目录1 引言................................................ 错误!未定义书签。
1.1项目背景及意义................................. 错误!未定义书签。
1.2图书管理系统简介............................... 错误!未定义书签。
1.3本文的主要工作................................. 错误!未定义书签。
2 需求分析 (2)2.1 总体需求 (2)2.2 用户群体描述 (2)2.3需求具体分析 (3)2.3.1系统用户管理功能 (3)2.3.2读者管理功能 (3)2.3.3 图书管理功能 (3)2.3.4 系统查询功能 (4)2.3.5 图书借还功能 (4)2.3.6 个人信息修改功能 (4)3 概要设计 (5)3.1 系统程序流程 (5)3.2 总体功能模块设计 (5)3.3 模块功能概要设计 (5)3.3.1 读者管理模块 (5)3.3.2 图书管理模块 (5)3.3.3 系统查询模块 (6)3.3.4 图书借还模块 (6)4 数据库设计 (7)4.1 数据库的需求分析 (7)4.2 数据库概念设计 (7)4.2.1 实体和属性的定义 (7)4.3 数据库的实现 (8)4.4数据库的连接 (9)5 系统实现 (10)5.1 开发环境 (10)5.2 查询功能的实现.................................................... . (11)5.2.1图书查询的实现................................. .............................. . (11)5.2.2借阅查询的实现........................... .............................................. ..115.3借、还书功能实现 (11)6 测试报告 (12)6.1 测试项目 (12)6.2 测试结果 (12)总结 (18)参考文献 (18)1、引言1.1项目背景及意义随着科学技术的高速发展,我们已步入数字化、网络化的时代。