欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    【数据结构】图书馆图书借阅信息管理系统.docx

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

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

    【数据结构】图书馆图书借阅信息管理系统.docx

    东北大学信息科学与工程学院数据结构课程设计报告题目 图书馆图书借阅信息管理系统课题组长 王逸飞课题组成员 王嘉琦 李聪专业名称 计算机科学与技术班级 计1307指导教师 杨雷2015年1月课程设计任务书题目:图书馆图书借阅信息管理系统问题描述:对图书馆的图书借阅业务管理作一个简单的模拟。设计要求:设计图书借阅信息管理的模拟程序。(1)采用顺序表或结构体链表存储结构。(2)实现图书的创建、分类、插入、删除、修改、借阅等管理功能。(3)实现图书的各种借阅查询和统计功能。(4)考虑采用优化的查询和排序算法。(5)其它完善性功能。指导教师签字:年月日目录1课题概述11.1 课题任务11.2 课题原理11.3 相关知识32 需求分析42.1 课题调研42.2用户需求分析53 方案设计73.1 总体功能设计73.2 数据结构设计83.3 函数原型设计103.4 主算法设计123.5 用户界面设计144 方案实现154.1 开发环境与工具154.2 程序设计关键技术164.3 个人设计实现(按组员分工)4.3.1王逸飞设计实现174.3.2王嘉琦设计实现174.3.3李聪设计实现175 测试与调试235.1 个人测试(按组员分工)235.1.1王逸飞测试235.1.2王嘉琦测试235.1.2李聪测试235.2组装与系统测试335.3 系统运行366 课题总结396.1 课题评价396.2团队协作406.3团队协作416.4个人设计小结(按组员分工)426.4.1王逸飞设计小结426.4.2王嘉琦设计小结426.4.3李聪设计小结427附录A 课题任务分工50A-1 课题程序设计分工50A-2 课题报告分工51 附录B 课题设计文档(光盘)52B-1课程设计报告(电子版)52B-2源程序代码(*.H,*.CPP)52B-3工程与可执行文件52B-4屏幕演示录像文件(可选)52附录C 用户操作手册(可选)53C.1 运行环境说明53C.2 操作说明541 课题概述1.1课题任务【问题描述】对图书馆的图书借阅业务管理作一个简单的模拟。【设计要求】设计图书借阅信息管理的模拟程序。(1)采用顺序表或结构体链表存储结构。(2)实现图书的创建、分类、插入、删除、修改、借阅等管理功能。(3)实现图书的各种借阅查询和统计功能。(4)考虑采用优化的查询和排序算法。(5)其它完善性功能。1.2 课题原理以结构体链表为存储结构,则抽象数据类型即为用结构体链表表示的线性表,所以主要涉及到结构体链表的一些基本操作函数。1.3 相关知识结构体链表表示的线性表的定义,表示,C语言实现,在对图书信息进行排序的过程涉及到了结构体链表的排序技术。文件的读入与输出操作。2 需求分析2.1 课题调研对东北大学图书馆进行考察,并在网络上搜集相关资料。发现图书管理系统主要面向两类人群,一是图书馆管理员,二是普通用户。而两类人群中,管理员应该拥有对该系统的最高权限,全面掌握普通用户的借阅信息,全面掌握所有图书的借阅信息。权限较低的用户只有图书信息一般查询权限,经过注册的用户可有进一步对图书信息进行操作的权限。2.2 用户需求分析进过以上课题调研,主要有一下需要:(1)一般用户:对图书信息进行查询,显示;(2)注册用户:可以对图书信息进行查询,显示,借书,还书,导出个人图书信息;(3)管理员:针对用户,可以进行用户信息增删,用户信息显示,用户信息的查询;针对图书,可以进行图书信息的查询,图书信息的显示,图书信息的录入,图书信息的删除,图书信息的排序。故需要以下主要函数用户登录管理,登录信息确认,查询图书功能,显示图书信息功能,显示图书信息,借书功能,还书功能,个人图书管理功能,图书信息录入,图书信息删除,图书信息修改以及一些界面跳转3 方案设计3.1 总体功能设计(1)实现一般用户对图书信息进行查询,显示功能;(2)实现注册用户对图书信息进行查询,显示,借书,还书,导出个人图书信息功能;(3)实现管理员针对用户,可以进行用户信息增删,用户信息显示,用户信息的查询;实现针对图书,可以进行图书信息的查询,图书信息的显示,图书信息的录入,图书信息的删除,图书信息的排序。3.2 数据结构设计用户和管理员信息的节点:struct userchar usernameMax_username_size;char passwordMax_password_size;USERtypedef struct user1 * UserPtr1;图书信息节点:typedef struct bookchar bookname65;char auther65;char chubanshe65;char profession65;int booknumber;int price;int onof;struct book * next;BOOK;我们将结构的创建,初始化,插入删除等基本操作都封装在主界面函数,插入函数,注册函数等之中,后面还有详细的说明,在此不赘述。3.3 函数原型设计int show_function1_window(UserPtr1);显示普通用户界面int show_function2_window(UserPtr1);显示管理员用户界面int show_guanyue_window();普通用户观阅函数int show_zhuce_window(UserPtr1);显示注册界面int show_queren_window(UserPtr1);显示确认界面int jiemian();通用界面int Jieshu(BookPtr);借书函数int Huanshu(BookPtr);还书函数int Insert(BookPtr *);增加图书函数int Show(BookPtr);显示图书信息函数int Serch(BookPtr a);查找函数int numserch(BookPtr);编号查询int adresserch(BookPtr);出版社查询int autherserch(BookPtr);作者查询int nameserch(BookPtr);书名查询int onofserch(BookPtr);图书状态查询int priceserch(BookPtr);价格查询int Delete(BookPtr);删除图书信息int Save(BookPtr);保存图书信息int main1();主体函数3.4 主算法设计3.5 用户界面设计由于时间原因,低级版本在没有实现可视化界面,采用DOS来显示得到的结果。4 方案实现4.1 开发环境与工具编程环境为visual c+6.0。工具为C语言。4.2 程序设计关键技术结构体链表的创建,插入,删除,输出,排序;文件的读入读出,对文件进行重新编辑。4.3 个人设计实现(按组员分小节)4.3.1 王逸飞、王嘉琦、李聪设计实现1.课题任务(1)主函数函数界面(2)管理员界面函数(3)管理员主要功能实现(4)登录确认函数(5)图书信息录入(6)图书信息删除(7)图书信息显示(8)图书信息修改(9)图书信息排序(10)图书信息保存(11)普通用户观阅函数 2.程序源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#include<windows.h>#define Max_username_size 64+1#define Max_password_size 64+1struct user1char username65;char password65;USER1,dengl;/登陆用账户信息typedef struct user1 * UserPtr1;typedef struct user2 char usernameMax_username_size; int sex; long int stunumber;USER2;/管理用账户信息typedef USER2 * UserPtr2;typedef struct book char bookname65;char auther65;char chubanshe65;char profession65;int booknumber;int price;int onof;struct book * next;BOOK;typedef BOOK * BookPtr;int show_function1_window(UserPtr1);int show_function2_window(UserPtr1);int show_zhuce_window(UserPtr1);int show_queren_window(UserPtr1);int jiemian();int Jieshu(BookPtr);int Huanshu(BookPtr);int Huankuan();int Insert(BookPtr *);int Show(BookPtr);int numserch(BookPtr);int adresserch(BookPtr);int autherserch(BookPtr);int nameserch(BookPtr);int adresserch(BookPtr);int onofserch(BookPtr);int priceserch(BookPtr);int Delete(BookPtr);int Save(BookPtr);void show_denglu_window(UserPtr1 b);int Serch(BookPtr a);BookPtr bookhead=NULL;int main1() int cmd0; system("cls"); printf("*n");printf("nnnn");printf(" 欢迎来到东北大学图书馆 n"); printf("nnnn");printf("1:请输入您的学名号 n");printf("2: 学号注册 n");printf("3: 管理员登陆nnn");printf("选择0,然后按任意键关闭本程序!nnn");printf("请选择执行命令:");BookPtr pb1,pb2; FILE * pbook1; int flag1=0;bookhead=(BookPtr)malloc(sizeof(struct book); /将文件中的图书信息导出,并存放在链表中bookhead->next=NULL;if(pbook1=fopen("f:book.din","rb")!=NULL) rewind(pbook1); if(!feof(pbook1) fread(bookhead,sizeof(struct book),1,pbook1); pb1=(BookPtr)malloc(sizeof(struct book); bookhead->next=pb1; fread(pb1,sizeof(struct book),1,pbook1); while(!feof(pbook1) pb2=(BookPtr)malloc(sizeof(struct book); fread(pb2,sizeof(struct book),1,pbook1); if(feof(pbook1) break; pb1->next=pb2; pb1=pb2; pb1->next=NULL; fclose(pbook1);int cmd,trytime,io=0; scanf("%d",&cmd); cmd0=cmd; while(cmd>3|cmd<1) /进入主要功能选项 io+; if(cmd=0)break; if(io>2) printf("Sorry,wrong number more than three times!n"); printf("系统自动退出!n"); printf("继续登录请重启程序。"); system("pause"); return 0; printf("无效字符,无法识别!n"); if(io>1) printf("最后一次机会!"); printf("请重新选择:"); scanf("%d",&cmd); FILE *fp1;if(cmd=1) /用户入口 int trytime,m=1; for(trytime=1;m!=0&&trytime<4;trytime+) show_denglu_window(&dengl); m=show_queren_window(&dengl); if(trytime=2&&m!=0) printf("最后一次机会!"); system("pause"); if(trytime=4&&m!=0) printf("系统自动退出!n"); printf("继续登录请重启程序。"); system("pause"); if(m=0) show_function1_window(&dengl); else if(cmd=2) /注册入口 show_denglu_window(&dengl); if(fp1=fopen("f:zhucezhe.din","ab")=NULL) printf("n cannot open file"); fwrite(&dengl,sizeof(dengl),1,fp1); fclose(fp1); printf("n注册成功!"); else if(cmd=3) /管理员登陆入口 show_denglu_window(&dengl); for(trytime=0;trytime<3;trytime+) if(strcmp(dengl.username,"zaq")=0&&strcmp(dengl.password,"zaq")=0) show_function2_window(&dengl); break; else show_denglu_window(&dengl); return cmd0;void show_denglu_window(UserPtr1 b) /登录函数,从终端获得数据 memset(b->password,0,65); system("cls"); printf("*n"); printf("nnnn"); printf(" 欢迎来到东北大学图书馆 n"); printf("nnnn"); printf("1:请输入您的学号: n"); scanf("%s",b->username); printf("2: 请输入您的三级密码:n"); int i=0; char ch=0; char a='y' while (ch = getch() != 'r') putchar('*'); b->passwordi = ch; i+; printf("n是否显示密码:是(Y)/否(N)"); scanf("%d",&a); a=getchar(); if(a='Y'|a='y') printf("n您输入的密码是%s",b->password); system("pause"); int show_queren_window(UserPtr1 b) /确认是否为已注册用户 FILE *fp2; struct user1 u; UserPtr1 v=&u; int m=1,n=1; if(fp2=fopen("f:zhucezhe.din","rb")=NULL) printf("n cannot open file"); while(m*m+n*n)!=0) fread(v,sizeof(USER1),1,fp2); m=strcmp(b->username,v->username); n=strcmp(b->password,v->password); if(m=0&&n=0) printf("n已注册,可借阅图书n"); system("pause"); return 0; if(feof(fp2) break; fclose(fp2); if(m!=0) printf("n非法侵入n"); system("pause"); return 1; int Insert(BookPtr * bookhead) /录入图书信息 FILE * pbook2; system("cls"); jiemian();if(pbook2=fopen("f:book.din","ab")=NULL) printf("n不能打开文件!"); BookPtr p1,p2,r; p1=p2=*bookhead; while(p1!=NULL) p2=p1; p1=p1->next; r=(BookPtr)malloc(sizeof(struct book); r->next=NULL; if(r=NULL) printf("分配空间失败!!"); return 0; if(p2=NULL) *bookhead=r; else p2->next=r; printf("请输入图书名称:n");scanf("%s",&r->bookname);printf("请输入图书作者:n");scanf("%s",&r->auther);printf("请输入出版社:n");scanf("%s",&r->chubanshe);printf("请输入图书编号:n");scanf("%d",&r->booknumber); printf("请输入图书价格:n"); scanf("%d",&r->price);printf("请输入出状态:n");scanf("%d",&r->onof);fwrite(r,sizeof(struct book),1,pbook2);fclose(pbook2); char m; printf("n是否要继续录入:");scanf("%c",&m);scanf("%c",&m);if(m='y'|m='Y') Insert(&r);/ int change(BookPtr a) /修改图书信息 system("cls"); jiemian(); FILE * pbook3;if(pbook3=fopen("f:book.din","wb")=NULL) printf("n不能打开文件!"); BookPtr p1,p2; p1=p2=a;int changenum;BOOK linshi;printf("n1,书名n2,作者n3,出版社n4,编号n5,单价n6,状态n");printf("请选择要进行修改的图书信息所对应的序号");scanf("%d",&changenum); switch(changenum)case 1:printf("请输入要进行修改的书的名字:"); scanf("%s",linshi.bookname); while(p1!=NULL) if(strcmp(linshi.bookname,p1->bookname)=0) printf("请输入要修改之后的书名:n"); scanf("%s",&p1->bookname); break; p2=p1; p1=p1->next; break;case 2:printf("请输入要进行修改的作者的名字:"); scanf("%s",linshi.auther); while(p1!=NULL) if(strcmp(linshi.auther,p1->auther)=0) printf("请输入要修改之后的作者:n"); scanf("%s",&p1->auther); break; p2=p1; p1=p1->next; break;case 3:printf("请输入要进行修改的书的出版社:"); scanf("%s",linshi.chubanshe); while(p1!=NULL) if(strcmp(linshi.chubanshe,p1->chubanshe)=0) printf("请输入要修改之后的出版社:n"); scanf("%s",&p1->chubanshe); break; p2=p1; p1=p1->next; break;case 4:printf("请输入要进行修改的书的价格:"); scanf("%d",linshi.price); while(p1!=NULL) if(linshi.price=p1->price) printf("请输入要修改之后的出版社:n"); scanf("%d",&p1->price); break; p2=p1; p1=p1->next; break;case 5:printf("请输入要进行修改的书的编号:"); scanf("%d",&linshi.booknumber); while(p1!=NULL) if(linshi.booknumber=p1->booknumber) printf("请输入要修改之后的出版社:n"); scanf("%d",&p1->booknumber); break; p2=p1; p1=p1->next; break;case 6:printf("请输入要进行修改的书的状态:"); scanf("%d",&linshi.onof); while(p1!=NULL) if(linshi.onof=p1->onof) printf("请输入要修改之后的状态:n"); scanf("%d",&p1->onof); break; p2=p1; p1=p1->next; break;default:printf("enter data error!n");p1=p2=a;while(p1!=NULL) fwrite(p1,sizeof(struct book),1,pbook3); p2=p1; p1=p1->next; fclose(pbook3);return 0;int Delete(BookPtr a) /删除图书信息 system("cls"); jiemian(); BOOK b; BookPtr p1,p2; p1=p2=a; int flag=0; printf("请选择要删除的图书的书名:"); scanf("%s",b.bookname); while(p1!=NULL) if(strcmp(b.bookname,p1->bookname)=0) if(p1=a) a=p1->next; free(p1); else p2->next=p1->next;

    注意事项

    本文(【数据结构】图书馆图书借阅信息管理系统.docx)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开