ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:224.24KB ,
资源ID:6808440      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6808440.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(图书馆信息管理系统含附源代码02.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

图书馆信息管理系统含附源代码02.docx

1、图书馆信息管理系统含附源代码02西安郵電學院软件设计课程设计报告题 目: 图书馆信息管理系统 系部名称:电信系专业名称:电子科学与技术班 级:科技0701学号:05072002学生姓名 :XXX指导教师:黄茹时间:2008年6月9日 至2008年 6月20日一、设计目的 通过本课程设计,强化上机动手能力,使我们在理论和实践的基础上进一步巩固C语言程序设计课程学习的内容,掌握工程软件设计的基本方法学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。为后续各门计算机课程的学习打下坚实基础。为毕业设计和以后工作打下必要基础。二、课程设计内容 本设计是一个能够实现基本功能(借阅图书登记

2、等)的图书馆管理系统,由于所学知识有限,自然不能与真正的现代图书馆管理系统相比,但也是尽所之能了。三、需求分析对所开发系统功能、性能的描述,想要实现的目标。系统功能: 1.现有图书按时间和类型查询2.新书按时间和类型查询3. 借阅管理(普通用户查看自己的借书历史记录,管理员可实现借书、还书登记等)4. 图书管理(管理员可添加新书、删除丢失图书信息,将图书加入丢失图书)5. 统计图书信息6.系统维护(新建用户、密码修改、更换用户)等六大功能。性能的描述:本系统总体分普通用户和管理员用户,其中管理员可实现添加新书、用户,登记借书、还书、统计等全部功能,普通用户只能实现图书查询、修改自身密码、查看自

3、身借阅历史情况。 在查询方面分时间和类型两种(由于时间、技术等方面限制,将时间功能由原来的int型结构体改为char型,因此也没用到C算法中的各种较为高级的排列,实为遗憾,这也导致程序无法自己算出还书日期),界面比较简单,操纵容易。想实现目标:本程序的基础结构图借鉴于Visual Basic设计信息管理系统实例中的例子,以现代图书馆管理系统为蓝本,结合本校图书馆的规定,可惜的是目标虽远大,技术不过关,导致与原计划有较大偏差,将好些复杂的地方简单化,减少了计划中的好些功能。四、概要设计 1系统结构图(功能模块图)对系统进行分析,给出系统结构图;系统结构图: 2功能模块说明对各个模块进行功能的描述

4、。 功能:将结构体和需要大量引用的函数放于此模块。模块0(非正式模块):密码模块 功能:建立密码体系,使程序面向管理员和普通用户这两方用户。模块一:现有图书信息 功能:1. 现有图书按时间排列2. 现有图书按类型排列模块二:新书查询 功能:1. 新书按时间排列2. 新书按类型排列模块三:借阅管理 功能:1.借书登记管理2.续借登记管理(未完成) 3.超期登记管理(未完成) 4.还书登记管理模块四:图书管理 功能:1. 添加新书2.删除丢失图书信息3.加入丢失图书五、详细设计及运行结果流程图, 函数之间相互调用的图示 ,程序设计及编码, 运行结果。main()函数: 1. nowbook_inf

5、o()函数: 3.reader_manage() 函数 模块三:1. borrow_register()函数读取文件函数*readfile1(char filename)六、调试情况,设计技巧及体会1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。 评价:对我自己来说,个人对本程序不完全满意,不能完全实现自己的想法。 合理和不足之处:合理之处在于能够基本上实现图书馆管理系统的功能。即合理又不足之处莫过于引用了链表,说它合理,是因为动态链表才是大型信息管理系统的核心,动态链表的能动性绝非静态数组所能相比的,但是对链表的不熟悉也是本程序最大的不足之处,在本程序运用链表也是为了熟练它。改进

6、的方案:虽说链表远比数组难,但本人不支持本程序改为用数组,最需要改进的是,前面说过,按原计划,基本上实现现代化图书馆管理系统的所有功能(图形除外),运用上图型函数,加上快速排序等,同时最好将语句中的中文改为英文,虽然已经把大部分须多此使用的语句组改为函数来调用,但是有一两个的地方有些重复,为了使界面比较美观,大量重复使用了printf语句,不知道能不能改写为一个界面函数。2、在设计过程中的感受。 感受最大的是无奈和成就感,由于过于强求自己,想把自己的第一个真正的程序完善化,功能尽量的齐全,可惜最后又把原计划打乱了,搞得特无奈,本程序花了我大量的心血,到头来还是要简化它。不过收获也多多,其中能够

7、训练自己的耐心和细心程度,培养自己拥有严谨的态度,而且每次靠自己发现错误或有了新的想法而且可以实现时,很有成就感的,这不会就是痛并快乐着吧,_。而且也帮一些同学查找了一些错误,对查错方面有所提高。同时也对那些当程序员深深的佩服,也许是自己的体会不够吧,无法理解那些编程狂人连续20多个小时编程如何顶得住?七、参考文献C语言程序设计(王曙燕著),C语言程序设计(谭浩强著), Visual Basic信息系统开发实例精选,C算法。八、附录:源代码(000.h)/*模块0(非正式模块):结构体模块*/typedef struct Book_info /*图书相关信息*/ char book_type3

8、; /*图书类型代号*/ char book_num10; /*图书代号*/ char book_name30; /*书名*/ char lib_name15; /*所属书库*/ char in_date15; /*入库时间*/ char anthor15; /*作者*/ char price6; /*价格*/ char borrow_date15; /*借书日期*/ char back_date15; /*还书日期*/ char reader_name10; /*借书人姓名*/ char reader_num10; /*借书人学号*/ struct Book_info *next; /*用于

9、链表*/book_info; /*把struct Book_info定义为book_info*/*生成文件函数*/void build_file(char filename15) FILE *fp; fp=fopen(filename,wb); fclose(fp);/*读取allbook,newbook,lostbook文件*/book_info *readfile1(char filename) book_info *s; book_info *r,*p; FILE *fp; if(fp=fopen(filename,rb)=NULL) printf(nCan not find the f

10、ile:%snNow build the file:%s,filename,filename); build_file(filename); getch(); return NULL; p=(book_info *)malloc(LEN); p-next=NULL; r=p; s=(book_info *)malloc(LEN); fread(s,LEN,1,fp); while(!feof(fp) /*读取文件结束退出循环*/ r-next=s; /*连接s结点*/ /*这几步为链表尾插法*/ r=s; /*将r移到s结点*/ s=(book_info *)malloc(LEN); frea

11、d(s,LEN,1,fp); r-next=NULL; fclose(fp); return p ;/*输出全链表信息*/void print_info(book_info *p) clrscr(); printf(booktype1) ; for(p=p-next;p=p-next) /*p点移到p的下一点*/ printf(booktype5,booktype4); if(p-next=NULL) break; /*这样可以确保输到最后结点信息*/ printf(npress any key.); getch();/*根据类型代号输出链表信息*/void print_info2(book_

12、info *p) int n=0; char i3; clrscr(); printf(n输入图书类型代号(1.计算机2.文艺.):); gets(i); printf(booktype1) ; for(p=p-next;p=p-next) if(strcmp(p-book_type,i)=0) printf(booktype5,booktype4);n+; if(p-next=NULL) break; printf(n共找到该类图书:%d 本.,n); getch(); printf(npress any key.); getch();/*图书排列*/void sort_book(char

13、filename,char ch) book_info *p; p=readfile1(filename); /*调用读取文件函数readfile1*/ if(p=NULL|p-next=NULL) /*文件内容为空*/ printf(nNo information about.press any key.); getch(); return ; if(ch=1) /*时间排列*/ print_info(p); if(ch=2) /*类型排列*/ print_info2(p); printf(n);/*删除链表一结点*/book_info *del_point(book_info *p,cha

14、r book_num) book_info *p1,*p2; p1=p; while(p1-next!=NULL&strcmp(book_num,p1-book_num)!=0) p2=p1; p1=p1-next; /*将p1后移一个结点,p2指向p1原结点*/ if(strcmp(book_num,p1-book_num)=0) /*找到结点*/ if(p1=p) p=p1-next; /*为p1首结点,把第2结点地址赋给首结点*/ else p2-next=p1-next; /*否则p1下个结点地址赋给p1前一地址*/ printf(ndelete:%s,OK.press any key

15、.n,p1-reader_num); getch(); free(p1); else printf(nThe enter error!); return p;/*将链表信息写入文件保存*/void save_point(book_info *p,char filename) FILE *fp; book_info *s; fp=fopen(filename,wb); s=p; for(s=s-next;s=s-next) /*将s指向它的下一个结点*/ fwrite(s,LEN,1,fp); /*写入信息*/ if(s-next=NULL) break; fclose(fp);/*将链表信息追

16、加入文件保存*/void save_point2(book_info *p,char filename) FILE *fp; book_info *s; fp=fopen(filename,ab); s=p; for(s=s-next;s=s-next) /*将s指向它的下一个结点*/ fwrite(s,LEN,1,fp); /*写入信息*/ if(s-next=NULL) break; fclose(fp);(001.h)/*模块一:现有图书信息*/void nowbook_info() char ch; for(;) clrscr(); printf(n); printf(tt*n); p

17、rintf(tt*现有图书信息*n); printf(tt*n); printf(tt* 请选择服务种类 *n); printf(star2); printf(star2); printf(tt*-1.按时间排列-*n); printf(star2); printf(tt*-2.按类型排列-*n); printf(star2); printf(tt*-3. 返回上级 -*n); printf(star2); printf(star1); printf(star1); printf(n); getch(); ch=getch(); if(ch=3) return; else if(ch!=1&c

18、h!=2) continue; /*返回循环,直到ch=1,2,3*/ sort_book(allbook,ch); (002.h)/*模块二:新书查询*/void new_book() char ch; for(;) clrscr(); printf(n); printf(ntt*n); printf(tt*新书查询*n); printf(tt*n); printf(star2); printf(tt* 请选择服务种类: *n); printf(star1); printf(star2); printf(tt*-1.按时间排列-*n); printf(star2); printf(tt*-2

19、.按类型排列-*n); printf(star2); printf(tt*-3. 返回上级 -*n); printf(star2); printf(star1); printf(star1); printf(n); ch=getch(); if(ch=3) return; else if(ch!=1&ch!=2) continue; /*返回循环,直到ch=1,2,3*/ sort_book(newbook,ch); (003.h)/*模块三:借阅管理*/#include 003_1.hvoid reader_manage() FILE *fp; char ch; char password1

20、0; if(flag=2) /*普通用户只能查看自身文件信息*/ clrscr(); fp=fopen(username,rb); fgets(password,9,fp); printf(booktype1); while(!feof(fp) putchar(getc(fp); fclose(fp); printf(npress any key.n); getch(); return ; for(;) clrscr(); printf(n); printf(tt*n); printf(tt*新书查询*n); printf(tt*n); printf(tt* 请选择服务种类: *n); pri

21、ntf(star2); printf(star2); printf(tt*-1.借书登记管理-*n); printf(star2); printf(tt*-2.续借登记管理-*n); printf(star2); printf(tt*-3.超期登记管理-*n); printf(star2); printf(tt*-4.还书登记管理-*n); printf(star2); printf(tt*-5. 返回上级 -*n); printf(star2); printf(star1); printf(star1); printf(n); ch=getch(); clrscr(); switch(ch)

22、 case 1:borrow_register(); break; case 2:printf(本功能尚未完成,任意键.n);getch();break; case 3:printf(本功能尚未完成,任意键.n);getch();break; case 4:back_register(); break; case 5:return ; (003_1.h)/*模块三:1.借书登记管理*/void borrow_register() FILE *fp; char ch; book_info *p,*p1; char book_num10; do p=readfile1(allbook); p1=p

23、; printf(nEnter book_num:); gets(book_num); for(p1=p1-next;strcmp(p1-book_num,book_num)!=0;p1=p1-next) /*书号相同退出循环*/ if(p1-next=NULL) printf(n本馆无该书记录,press any key.); getch(); return; printf(nBorrow date(yy-mm-dd):); gets(p1-borrow_date); printf(nBack date(yy-mm-dd):); gets(p1-back_date); printf(nrea

24、der name:); gets(p1-reader_name); printf(nreader number:); gets(p1-reader_num); if(fp=fopen(p1-reader_num,ab)=NULL) printf(nError:user no exist.press any key.n); getch();return ; save_point(p,allbook); fwrite(p1,LEN,1,fp); fclose(fp); getch(); printf(nInput other data(Y/N)?:); ch=getch(); while(ch=y

25、|ch=Y); printf(npress any key.); getch();/*模块三:4.还书登记管理*/void back_register() FILE *fp; char book_num10; char ch; char password10; book_info *p,*p1,*s1,*s2,*s3; do p=readfile1(allbook); p1=p; printf(nEnter book number:); gets(book_num); for(p1=p1-next;strcmp(p1-book_num,book_num)!=0;p1=p1-next) /*找到链表中的结点*/ if(p1-next=NULL) printf(n本馆无该书记录,press any key.); getch(); return ; strcpy(p1-borrow_date,00-00-00); /*将已还信息初始化*/ strcpy(p1-back_date,00-00-00); strcpy(p1-reader_num,00000000); strcpy(p1-reader_name,0000); save_point(p,allbook); getch(); printf(nReturn the book.other book?(Y/N):); /*还其它书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1