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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于C语言图书管理系统包含源代码.docx

1、基于C语言图书管理系统包含源代码图书馆管理系统设计报告(数据结构)山 东 科 技 大 学 小组分工说明小组编号 题 目: _图书馆管理系统 小组分工情况:徐 倩:用户模块的主要设计徐振华:管理员模块的设计以及用户注册模块的设计组长签字: 指导教师对课程设计的评价成绩: 指导教师签字: 年 月 日 1、需求分析1.1、系统概述一直以来人们使用传统的人工方式管理图书馆的日常工作,对于图书馆的借书和还书过程,想必大家都已很熟悉。在计算机尚未在图书馆广泛使用之前,借书和还书过程主要依靠手工。一个最典型的手工处理还书过程就是:读者将要借的书和借阅证交给工作人员,工作人员将每本书上附带的描述书的信息的卡片

2、和读者的借阅证放在一个小格栏里,并在借阅证和每本书贴的借阅条上填写借阅信息。这样借书过程就完成了。还书时,读者将要还的书交给工作人员,工作人员根据图书信息找到相应的书卡和借阅证,并填好相应的还书信息,这样还书过程就完成了。 以上所描述的手工过程的不足之处显而易见,首先处理借书、还书业务流程的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们将会看到排队等候借书、还书的队伍不再那么长,工作人员出错的概率也小了,读者可以花更多的时间在选择书和看书上。 为方便对图书馆书籍、读者资料、借还书等进行高效的管理,特编写该程

3、序以提高图书馆的管理效率。使用该程序之后,工作人员可以查询某位读者、某种图书的借阅情况,还可以对当前图书借阅情况进行一些统计,给出统计表格,以便全面掌握图书的流通情况。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。图书管理系统是图书馆的重要组成部分,一般分为两大部分,流通系统和采购系统。采购系统分为订单管理、图书入库、图书著录、图书上架、新书上报和书目审查、系统设置。流通系统分为图书管理、读者管理、借阅证管理、图书借阅、图书归还、系统设置等模块。其中,图书借阅、图书归还等。核

4、心模块为采购系统:图书入库、图书上架;流通系统:图书管理、读者管理、借阅证管理。1.2实现功能(1) 管理员模块建立一个图书馆管理信息数据库文件,输入若干图书的记录,建立一个以书号为 关键字的索引文件以及相关的索引链头文件。实现a:采编入库,新采购一种书,经分类和确定书号后登陆图书账目中去。如果这种书已经存在,则在数目存量加入增加数量。 b:清除入库。 某种书已无保留价值,将它将图书账目中删去。 c: 增加用户及注销用户 (本人所作的附加内容,绝无抄袭) d: 发布公告 (本人所作的附加内容,绝无抄袭) e: 修改密码 (本人所作的附加内容,绝无抄袭)(2) 用户模块建立关于书号,书名,作者及

5、出版社的图书馆查询。 实现图书的借还子系统,包括建立书的读者文件,借还文件,读者管理及图书借还等相关出处理。 实现 a:借阅,如果一种书的现存大于零,则借出一本书,登记借书的帐号和还书日期。 b:归还: 注销对借还读者的登记,改变该书的现存量。 c: 查询书目及个人借书情况 (附加内容) d: 查看公告 (附加内容) e: 修改密码及个人信息 (附加内容)(3) 用户注册 (附加内容)让用户建立自己的账号 1.3 模块结构 由上述内容的实现功能,作出如下结构图: 1.4 程序流程图 (1) 主函数流程图(2) 管理员模块流程图(3) 用户模块流程图2 设计概要2.1 数据结构体设计typede

6、f struct Book /书目种类结构体,内容存储在book.txt文件 char num10; /书目种类编号 char name20; /书名 char writor20; /作者 char pub30; /出版社 char total3; /总数量 char left3; /在馆数量;typedef struct Num /书目详细结构体,根据书目种类而生成的详细书目信息,存储/在booknum.txt文件内char bkid15; /书目ID 如果一书书目种类编号是001,总数量是3,则自动/、/生成书目ID为001001、001002、001003 而入库 char name20

7、; /对应于书名 char location10; /该书的在馆位子 如5445-667 char pid20; /如果该书被借出,则存储借书的用户编号否则为“在馆”状态 char time110; /若该书被借出,存储最晚还书时间否则为“在馆” char status15; /在馆状态 ;typedef struct Blist /书目种类信息的链表 struct Book book; struct Blist *next;typedef struct Nlist /详细书目信息链表 struct Num num; struct Nlist *next;typedef struct Pers

8、on /用户信息结构体,存储在person.txt文件内 char pid20; /用户ID、主键 char pname20; /用户名字 char phone15; /用户电话 char address40; /用户地址 char counter2; /已经借书数量 char password12; /登入密码;/typedef struct Plist /用户信息链表 struct Person person; struct Plist *next;/typedef struct Admin /管理员信息结构体存储在admin.txt文件内 char name20; /管理员名字,也是登入

9、账号 char code20; /登入密码;/typedef struct New /公告信息结构体 存储在new.txt文件内 char newid8; /公告编号 char title20; /公告主题;typedef struct Alist /管理员信息链表 struct Admin admin; struct Alist *next;/2.2函数功能、参数说明(1)管理员模块的函数int admcode(); /管理员登录密码验证int Addperson(); /管理员增加用户int Addbook(); /管理员增加书目信息void adminmenu(); /管理员主菜单voi

10、d AdminSeek(); /管理员查询书目void Modifybk(); /管理员修改书目信息void AdModifycode(); /管理员修改密码void Pubnews(); /管理员发布信息void Deletbk(); /管理员删除书目信息void Deletp(); /管理员删除用户信息int Findpid(char *num); /查找用户id(2)用户模块的函数char* Deadline(); /得到用户还书时间int usercode(); /用户登录密码验证void Borrow(char *num,struct Nlist *head2); /用户借书操作vo

11、id Myinfo(); /用户查看借书信息void usermenu(); /用户主菜单void Seekborrow(); /用户查找书目信息int Find(char *num,char *pass); /用户登录认证信息int shownew(); /用户查看公告列表void readnew(); /用户查看公告void Mdmyinfo(); /用户修改个人信息void Modifycode(); /用户修改信息void Return(); /用户还书操作void Giveback(char *num); /用户个人还书细节函数(3)注册用户模块函数int Regperson();

12、/注册新用户(4)公共函数struct Blist *Initbooklist(); /初始化书目种类信息列表struct Nlist *Initnumlist(); /初始化书目详细信息列表struct Alist *Initadminlist(); /初始化管理员信息列表struct Plist *Initpersonlist(); /初始化用户信息列表struct Newlist *Initnewlist(); /初始化公告列表int Savebknum(struct Nlist *head); / 保存书目详细信息int Savebk(struct Blist *head); /保存书

13、目种类信息 void Menulog(); /主菜单int Findnum(char *num); /查找图书书号int Showdail(char *num); /显示图书编号为num的详细信息int Findbkname(char *bkname); /查找图书书名int Findpub(char *bkname); /查找图书出版社int Findwriter(char *bkname); /查找图书作者int Savepeople(struct Plist *head); /保存用户信息2.3 主函数程序void main() while(1) Menulog(); /主菜单:管理员登

14、入、用户登入、注册用户 3详细设计3.1管理员模块主要函数的实现int admcode() /管理员登录密码验证,用户登录密码验证同理不做过多解释 FILE *fp; char inputname20, inputcode20,c; int flag=0,j=0; struct Admin admin; printf(tt*n); printf(n); printf(ttt 请输入你的用户名:); scanf(%s,inputname); /输入登录用户名 printf(ntt*n); printf(nn); printf(ttt 请输入密码:); c=getch(); /输入登录密码 if(

15、c!=r)printf(*); while(c!=r) inputcodej+=c; c=getch(); if(c!=r)printf(*); /实现用*来隐藏真实密码 else inputcodej=0; printf(n); fp=fopen(admincode.txt,r); while(!feof(fp) fscanf(fp,%s %s,admin.name,admin.code); if(strcmp(admin.name,inputname)=0&strcmp(admin.code,inputcode)=0)flag=1;strcpy(idname,inputname);strc

16、py(code,admin.code);break; /用户名密码进行比较 fclose(fp); return flag; /返回登录结果int Addperson() /管理员增加用户 FILE *in; int i,n; struct Person p; in=fopen(person.txt,a); printf(nntttt请输入你要加入的用户个数:); /管理员本次输入用户的个数 scanf(%d,&n); for(i=0;in;i+) printf(ttt*输入用户ID:); scanf(%s,p.pid); while(Findpid(p.pid)=1) /查看这个用户ID是否

17、已经存在 puts(tttID号已经存在!); printf(ttt*重新输入ID:); scanf(%s,p.pid); printf(ttt*输入用户的名字:); scanf(%s,p.pname); printf(ttt*输入用户电话:); scanf(%s,p.phone); printf(ttt*输入用户地址:); scanf(%s,p.address); strcpy(p.password,p.phone); strcpy(p.counter,0); fprintf(in,%s %s %s %s %s ,p.pid,p.pname,p.phone,p.address,p.passw

18、ord,p.counter); fclose(in); return 1;int Addbook() /管理员增加书目信息 FILE *in1,*in2; int i,n,j,total; char ch4; char nu15; struct Book b; struct Num nm; in1=fopen(book.txt,a); in2=fopen(booknum.txt,a); printf(ntt请输入你要加入书目的种数:); scanf(%d,&n); for(i=0;in;i+) printf(ttt第%d本书的信息nn,i+1); printf(ttt*输入书本ID:); sc

19、anf(%s,b.num); while(Findnum(b.num)=1) /查看这个书目种类编号是否已经存在 puts(tttID号已经存在!); printf(ttt*重新输入ID:); scanf(%s,b.num); printf(ttt*输入书名:); scanf(%s,b.name ); printf(ttt*输入书的数量:); scanf(%s,b.total); printf(ttt*输入书的出版社:); scanf(%s,b.pub ); printf(ttt*输入书的作者:); scanf(%s,b.writor); printf(ttt*输入书所在位置:); scanf

20、(%s,nm.location ); strcpy(nm.pid,无人借阅); strcpy(nm.status ,在馆); strcpy(nm.time1 ,在馆); strcpy(nm.name ,b.name); strcpy(b.left ,b.total); total=atoi(b.total); fprintf(in1,%s %s %s %s %s %sn,b.num ,b.name,b.writor,b.pub,b.total,b.left); for(j=1;jbook.num)=0) flag=1; puts( -该书的原始信息-); printf( 编号t书名 tt作者t

21、t出版社 t剩余数量n); puts( -); printf( %-12s %-16s %-12s %-12s t%-3sn,head-book.num,head-book.name,head-book.writor,head-book.pub,head-book.left ); puts( n -开始输入的新的信息-n); printf(nttt请输入新的书名:); scanf(%s,bkname); printf(nttt请输入新的作者名:); scanf(%s,writer); printf(nttt请输入新的出版社名:); scanf(%s,pub); printf(nttt请输入新增

22、的数量:); scanf(%d,ad); l=atoi(head-book.left); t=atoi(head-book.total); t=t+ad; l=l+ad; itoa(1,ch,10); strcpy(head-book.left,ch); itoa(t,ch,10); strcpy(head-book.total,ch); strcpy(head-book.name,bkname); strcpy(head-book.writor,writer); strcpy(head-book.pub,pub); while (head2!=NULL) if (strncmp(num,he

23、ad2-num.bkid,strlen(head2-num.bkid)-3)=0) strcpy(head2-num.name,bkname); head2=head2-next; puts( n -信息修改成功-n); head=head-next; if (flag=0) printf(nnttt编号为%s的书不存在!nn,num); Savebk(p); Savebknum(p2);void AdModifycode() /管理员修改密码,用户修改密码同理不做过多解释 char code120; char code220; char c; int j=0; struct Alist *h

24、ead,*head2; head=Initadminlist(); head2=head; puts(nnttt开始修改密码nn); printf(nnttt请输入原始密码:); scanf(%s,code1); if (strcmp(code,code1)=0) printf(nnttt请输入新密码:); c=getch(); if(c!=r)printf(*); while(c!=r) code1j+=c; c=getch(); if(c!=r)printf(*); else code1j=0; printf(nnttt请再一次输入新密码:); c=getch(); j=0; if(c!=r)printf(*); while(c!=r) code2j+=c; c=getch(); if(c!=r)printf(*); else code2j=0; if (strcmp(code1,code2)=0) while (head!=NULL) if (strcmp(idname,head-admin.name)=0) strcpy(hea

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

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