欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    UML课程设计图书管理系统设计.doc

    • 资源ID:2389149       资源大小:557.50KB        全文页数:18页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    UML课程设计图书管理系统设计.doc

    第一章 绪论1.1概述1.1.1 开发背景业务建模和需求分析的目的是对数字图书馆进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个Use Case模型表达(图2), 模型中的活动者代表外部与系统交互的单元,包括用户、图书馆工作人员和外部信息源;UseCase是对系统需求的描述,表达了系统的功能和所提供的服务,包括采购子系统、编目子系统和流通子系统。对于数字图书馆而言,流通子系统还应该考虑到普通书刊流通和电子书刊流通的区别。电子书刊是指内容为数字格式、发行为电子方式、用计算机阅读和存储的电子读物,可以实现普通书刊所没有的全文检索、页面批注、摘要、字体缩放等功能。用户无论何时何地,都可以在线借还,这是数字图书馆服务功能的一个重要组成部分,也是对传统图书馆服务功能的延伸和拓展,其中的关键是流通子系统在实现时必须能对电子书刊的版权、以及可以同时借阅的用户数进行保护和控制。 1.1.2 图书管理系统的特点图书管理系统是图书管理人员对图书有效的管理的一种不可缺少的工具,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高图书管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套管理软件成为很有必要的事情,在下面的各章中我们将以开发一套图书管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。1.2 图书管理系统需求分析1.2.1 图书管理系统需求大体描述图书信息管理系统是使用计算机实现图书大量信息处理的电子档案管理系统,在本系统中主要满足借书者、图书管理员和系统管理员3方面的需求。对借书者来说主要是查询个人信息、查询图书信息、预定当前正在被别人借阅的图书、借阅图书和返还图书等;图书管理员是系统的主要使用者,负责借书处理和还书处理,当读者预定的图书借出给定预定者后取消图书预定;系统管理员主要负责系统的维护工作,涉及到读者信息管理,图书信息管理,系统状态维护等。系统的功能分析如图1所示。图1.1 2.图书管理系统的用例图建立用例模型首先要确定角色(Actors),Actors表示提供或接收系统信息的人或系统,他们是与系统有交互作用的人或事务,代表一个系统的使用者或外部通信的目标。用例是系统中的一个功能单元,可以被描述为参与系统之间的一次交互作用。用例模型的用途是列出系统中的用例和参与者,并且显示哪个是用例的执行。根据以上的系统分析,本系统确定的角色有借书者、图书管理员和系统管理员。用例图如图2所示图1.23.系统的状态图图书管理系统的流程是用户先输入自己的帐号密码及系统显示的验证码进入系统如有一项不符合则不能进入系统,成功登陆系统后系统根剧登陆的帐号信息从数据库中的数据进行对比判断是读者还是管理员,如果是读者则能进行信息查询,及修改自己的相关信息,查询到自己所需要的图书就能通过管理员进行借阅图书、归还图书也是通过管理员完成的。如果不是读者而是管理员,那管理员可以进行相关信息的查询、添加删除图书及读者的所有信息、设置相应的权限、为图书更新排行榜的信息、以及完成读者的图书借阅与归还。图书管理系统的系统流程图如图登陆系统是否登陆判断身份管理员读者图书归还图书借阅信息查询排行榜信息图书信息读者信息否4.系统交互模型(1)系统设置模块:添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。(2)读者管理模块:添加删除不同类型的读者及注明可借图书的数量、添加删除读者的档案。(3)图书管理模块:添加删除不同类型的的图书及注明图书可借的天数库存数量、添加删除图书的档案。(4)图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。(5)系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。(6)排行榜模块:可以让读者知道图书借阅的排行榜及读者借阅的排行榜。5.图书管理系统的系统E-R图6.用户登录界面及代码#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> #define M 2 #define PAGE 3 /*图书结构体类型*/ typedef struct int num; /*图书号*/ char name20; /*书名*/ char zuozhe20; /*作者姓名*/ char chubanshe20; /*出版社*/ int price; /*价格*/ BOOKS; int read_file(BOOKS books) FILE *fp; int i=0; if(fp=fopen("project choose.txt","rt")=NULL) printf("nn*库存文件不存在!请创建"); return 0; while(feof(fp)!=1) fread(&booksi,sizeof(BOOKS),1,fp); if(booksi.num=0) break; else i+; fclose(fp); return i; void save_file(BOOKS books,int sum) FILE *fp; int i; if(fp=fopen("project choose.txt","wb")=NULL) printf("读文件错误!n"); return; for(i=0;i<sum;i+) if(fwrite(&booksi,sizeof(BOOKS),1,fp)!=1) printf("写文件错误!n"); fclose(fp); /*输入模块*/ int input(BOOKS books) int i=0; system("cls"); printf("nn 录入图书信息 (最多%d种)n",M); printf("-n"); do printf("n 第%d本图书",i+1); printf("n 图书编号:"); scanf("%d",&booksi.num); if(booksi.num=0) break; printf("n 图书名称:"); scanf("%s",booksi.name); printf("n 作者:"); scanf("%s",booksi.zuozhe); printf("n 出版社:"); scanf("%s",&booksi.chubanshe); printf("n 图书价格:"); scanf("%d",&booksi.price); i+; while(i<M); fflush(stdin); getch(); printf("n -%d种图书信息输入完毕!-n",i); printf("n 按任意键返回主菜单!"); getchar(); return i; /*输出模块*/ void output(BOOKS books) int i=0,j=0,page=1; system("cls"); printf("nn -图书信息表- 第%d页nn",page); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); do if(booksi.num!=0) j+; if(j%PAGE!=0) printf("%4d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); else printf("按任意键继续!"); getchar(); system("cls"); printf("nn -图书信息表- 第%d页nn",+page); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%4d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); i+; while(booksi.num!=0); printf("按任意键返回主菜单!"); getchar( ); /*给定编号,作者,出版社查找信息模块*/ void find_by_num(BOOKS books,int sum) int i,find_num; system("cls"); printf("n 请输入要查找的图书编号:"); fflush(stdin); scanf("%d",&find_num); for(i=0;i<sum;i+) if(booksi.num=find_num) printf("这是您所查找到的图书:n"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%4d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); break; else printf("n 未找到要查找的图书信息,按任意键返回!"); getchar(); system("cls"); fflush(stdin); getchar(); void find_by_zuozhe(BOOKS books,int sum) int i; char find_zuozhe20; system("cls"); printf("n 请输入要查找的作者姓名:"); scanf("%s",find_zuozhe); for(i=0;i<sum-1;i+) fflush(stdin); getch(); if(strcmp(booksi.zuozhe,find_zuozhe)=0) printf("这是您所查找到属于该作者的图书:"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%8d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); else printf("n 未找到要查找的图书信息,按任意键返回!"); getchar(); system("cls"); void find_by_chubanshe(BOOKS books,int sum) int i; char find_chubanshe20; system("cls"); printf("n 请输入要查找的出版社名称:"); scanf("%s",find_chubanshe); for(i=0;i<sum;i+) fflush(stdin); getch(); if(strcmp(booksi.chubanshe,find_chubanshe)=0) printf("这是您所查找到属于该出版社的图书:"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%8d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); else printf("n 未找到要查找的图书信息,按任意键返回!"); getchar(); system("cls"); void find(BOOKS books,int sum) int choice; system("cls"); printf("n 您要按照哪种方式查找? n"); printf("n 1.按图书编号查找 n"); printf("n 2.按图书作者查找 n"); printf("n 3.按出版社查找 n"); printf("n 0. 退出n"); printf("n 请选择(0-3): n"); scanf("%d",&choice); switch(choice) case 1: find_by_num(books,sum); break; case 2: find_by_zuozhe(books,sum); break; case 3: find_by_chubanshe(books,sum); break; case 0: break; /*删除信息模块*/ void del(BOOKS books) int i,g,sum; int del_num; system("cls"); printf("n 请输入要删除的图书编号:"); scanf("%d",&del_num); fflush(stdin); getch(); for(i=0;i<sum;i+) if(booksi.num=del_num) g=i; for(g=i;g<sum;g+) booksg+1=booksg; fflush(stdin); getch(); printf("这是您所要删除图书信息:n"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%8d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); fflush(stdin); getch(); printf("您确认要删除吗?"); printf("按任意键继续!"); getchar(); fflush(stdin); getch(); printf("已成功删除图书信息!"); booksi.num=0; /*信息修改模块*/ void modify(BOOKS books,int sum) int i=0,choice,modify_num,flag; do system("cls"); printf("请输入要修改的图书编号:"); scanf("%d",&modify_num); for(i=0;i<sum;i+) if(booksi.num=modify_num) printf("nn -图书信息- nn"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%8d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); printf("n 您要修改哪一项?n"); printf("n 1.图书名称n"); printf("n 2.作者n"); printf("n 3.出版社n"); printf("n 4.图书价格n"); printf("n 请选择(1-4):n"); scanf("%d",&choice); switch(choice) case 1: printf("n 请输入修改后的图书名称:"); scanf("%s",booksi.name); break; case 2: printf("n 请输入修改后的作者姓名:"); scanf("%s",booksi.zuozhe); break; case 3: printf("n 请输入修改后的出版社名称:"); scanf("%s",booksi.chubanshe); break; case 4: printf("n 请输入修改后的图书价格:"); scanf("%d",&booksi.price); break; fflush(stdin); getch(); printf("nn -图书信息- nn"); printf("图书编号-图书名称-作者- 出版社-图书价格n"); printf("-n"); printf("%8d %10s %10s %10s %8d n",booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); printf("-n"); break; else printf("n 该书不存在!"); getchar(); printf("n 修改成功!n"); printf("您要继续修改吗?(Y/N)"); if (choice='Y'|choice='y') flag=1; printf("n 继续!n"); else flag=0; while( flag=1); fflush(stdin); getch(); printf("n 按任意键返回主菜单!"); getchar(); /*图书信息统计模块*/ void count(BOOKS books,int sum) /*统计某个出版社的图书数*/ int i; char count_chubanshe20; int n=0; system("cls"); printf("请输入一个出版社名称:n"); fflush(stdin); scanf("%s",count_chubanshe); for(i=0;i<sum;i+) if( strcmp(booksi.chubanshe,count_chubanshe)=0) n+; break; fflush(stdin); printf("统计出属于该出版社一共有%d本书n",n); getch(); /*排序模块*/ void sort(BOOKS books,int sum) /*按图书编号排序模块*/ BOOKS t; int i,j,k; system("cls"); printf("n -图书信息- n"); printf("n 排名 图书编号 图书名称 作者 出版社 图书价格n"); for(i=0;i<sum-1;i+) k=i; for(j=i+1;j<sum;j+) if(booksk.num>booksj.num) t=booksj; booksj=booksk; booksk=t; for(i=0;i<sum;i+) printf("%2d %8d %12s %12s %12s %6d n",i+1,booksi.num,booksi.name, booksi.zuozhe, booksi.chubanshe,booksi.price); fflush(stdin); getch(); void main() BOOKS booksM; int choice,sum; sum=read_file(books); if (sum=0) printf("请录入基本图书信息!*n"); getch(); sum=input(books); do system("cls"); printf("nnn *图书馆理系统* nn"); printf(" 1.修改图书信息 nn"); printf(" 2.删除图书信息nn"); printf(" 3.查找图书信息nn"); printf(" 4.统计图书信息nn"); printf(" 5.图书排行信息nn"); printf(" 0.退出系统nn"); printf(" 请选择nn"); scanf("%d",&choice); switch(choice) case 1 : modify(books,sum); break; case 2 : del(books); break; case 3 : find(books,sum); break; case 4 : count(books,sum); break; case 5 : sort(books,sum); break; case 0 : break; while(choice!=0); save_file(books,sum); 参考文献1 董兰芳. UML课程设计. 机械工业出版社,2004年2 吴健. UML基础与Rose建模案例. 人民邮电出版社,2007年3 王少峰. 面向对象技术UML教程. 清华大学出版社,2003年

    注意事项

    本文(UML课程设计图书管理系统设计.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开