大数据结构图书管理系统文档格式.docx

上传人:b****7 文档编号:22092931 上传时间:2023-02-02 格式:DOCX 页数:14 大小:47.51KB
下载 相关 举报
大数据结构图书管理系统文档格式.docx_第1页
第1页 / 共14页
大数据结构图书管理系统文档格式.docx_第2页
第2页 / 共14页
大数据结构图书管理系统文档格式.docx_第3页
第3页 / 共14页
大数据结构图书管理系统文档格式.docx_第4页
第4页 / 共14页
大数据结构图书管理系统文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

大数据结构图书管理系统文档格式.docx

《大数据结构图书管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《大数据结构图书管理系统文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

大数据结构图书管理系统文档格式.docx

单链表是一种链式存取的结构,为找第i个数据元素必须先找到第i-1个数据元素。

因此,查找第i个数据元素的基本操作为:

移动指针,比较j和i。

(1)malloc(size)

在存的动态存储区申请一个长度为size字节的连续空间。

(2)calloc(n,size)

在存的动态存储区申请n个长度为size字节的连续空间,函数返回值为分配空间的首地址。

若此函数未被成功执行,函数返回值为0。

(3)free(p)

释放由指针p所指向的存储单元,而存储单元的大小是最近一次调用malloc()或calloc()函数时所申请的存储空间。

运用了单链表的插入、删除、排序、修改等一些操作!

4.功能模块详细设计

4.1详细设计思想

(1)基本思想:

(2)图书信息录入、图书信息的查询、图书信息的排序、图书信息的修改、图书信息的删除、图书的借阅、图书的归还、退出图书管理系统。

(3)程序中的主要函数有:

voidmain()//主函数

intCreateListR(LinkList*L)//尾插法建表

voidLocateElem(LinkList*L)//查询

intSort(LinkList*L)//递增有序排序(直接插入排序法)

voidDisplay(LinkList*L)//输出排序结果

ModifyList(LinkList*L)//修改

intListDelete(LinkList*L)//删除

voidBorrow(LinkList*L)//借阅

voidReturn(LinkList*L)//归还

4.2核心代码

#include<

stdio.h>

string.h>

#include<

stdlib.h>

malloc.h>

typedefstruct{

intnum;

charname[20];

charauthor[20];

charpress[20];

intcount;

charprice[10];

}ElemType;

typedefstructLNode//定义单链表结点类型

{

ElemTypedata;

structLNode*next;

}LinkList;

voidInitList(LinkList*L)//初始化线性表

L=(LinkList*)malloc(sizeof(LinkList));

//创建头结点

L->

next=NULL;

}

inti,n;

LinkList*s,*q,*p;

p=L;

while(p->

next!

=NULL)

p=p->

next;

printf("

请输入需要录入的图书信息的个数:

n="

);

scanf("

%d"

&

n);

for(i=1;

i<

n+1;

i++){

s=(LinkList*)malloc(sizeof(LinkList));

printf("

书号书名作者名称存馆数量定价\n"

scanf("

%d%s%s%s%d%s"

s->

data.num,s->

data.name,s->

data.author,

s->

data.press,&

data.count,s->

data.price);

q=L->

if(q==NULL){

p->

next=s;

p=s;

printf("

录入成功!

\n"

continue;

}

while(q!

=NULL){

if(strcmp(s->

data.name,q->

data.name)==0){

printf("

此图书已存在!

"

请重新输入:

scanf("

p->

data.num,p->

data.name,

p->

data.author,p->

data.count,

}

q=q->

p->

p=s;

}

return0;

voidLocateElem(LinkList*L)//查询

LinkList*p=L->

//p指向第一个数据结点

intc;

intx=0;

charname1[10],author1[10],press1[10];

1按书名查询:

2按作者名查询:

3按名称:

4返回\n"

请选择1--4进行操作:

c);

if(c>

4||c<

1){

您的输入有误!

switch(c){

case1:

请输入图书书名:

\n"

%s"

name1);

while(p!

if(strcmp(name1,p->

data.name)!

=0)//查找图书书名

p=p->

else{

%d\t%s\t%s\t%s\t%d\t%s"

p->

data.press,p->

x++;

if(p==NULL&

&

x==0)

对不起,不存在此图书!

break;

case2:

请输入图书作者:

author1);

if(strcmp(author1,p->

data.author)!

=0)//查找图书作者

case3:

请输入图书的名称:

press1);

if(strcmp(press1,p->

data.press)!

=0)//查找图书名称

%d%s%s%s%d%s"

data.name,p->

data.count,p->

对不起!

不存在此图书\n"

case4:

next,*q,*r;

if(p!

=NULL)//若原单链表中有一个或以上的数据结点

{

r=p->

//r保存*p结点直接后继结点的指针

//构造只含一个数据结点的有序表

p=r;

r=p->

//r保存*p结点的直接后继结点的指针

q=L;

while(q->

=NULL&

q->

next->

data.num<

p->

data.num)

q=q->

//在有序表中找插入*p的直接前驱结点*q的位置

next=q->

//将*p插入到*q之后

q->

next=p;

p=r;

//扫描原单链表余下的结点

while(p!

%d\t%s\t%s\t%s\t%d\t%s"

data.num,

p->

intModifyList(LinkList*L)//修改

LinkList*p=L;

charname1[10];

请输入要修改的图书的书名:

if(strcmp(name1,p->

data.name)==0)//查找所要修改的书名

{

请输入修改后的信息!

scanf("

p->

修改成功!

return0;

intListDelete(LinkList*L)//删除

next,*q=L;

请输入要删除的书名:

strcmp(p->

data.name,name1)!

=0){

q=q->

if(p->

=NULL)//如果p此时不是最后一个节点,说明此时已经找到书

q->

next=p->

删除成功!

return0;

next==NULL&

strcmp(name1,p->

=0)//如果p此时为最后一个结点并且没有找到与之相符的书名

{

你输入的书名不存在,请核实后重新输入!

}else{

请输入要借阅的图书的书名:

=0)

此图书不存在!

elseif(p->

data.count<

1)

此书已借完!

elseif(strcmp(name1,p->

借书成功!

data.count--;

输入归还书的书名:

错误!

该书归还成功!

data.count++;

voidmenu(){//菜单函数

----------------------------------------------------------\n"

欢迎光临图书管理系统!

-----------------------------------------------------------\n"

1.图书信息录入添加功能:

2.图书信息查询功能:

3.图书信息排序功能:

4.图书的修改功能:

5.图书的删除功能:

6.图书借阅功能:

7.图书归还功能:

0.退出系统:

请选择你需要的操作:

intmain()//主函数

ints;

LinkList*L;

InitList(L);

menu();

请输入编号:

s);

while(s!

switch(s){

case1:

CreateListR(L);

break;

case2:

LocateElem(L);

case3:

Sort(L);

Display(L);

case4:

ModifyList(L);

case5:

ListDelete(L);

case6:

Borrow(L);

case7:

Return(L);

case0:

使用\n"

(此页附在说明书后,请在验收前填好)

班级:

11060141

题目:

图书馆管理系统

学号

设计模块

1106014106

王烨

资料收集修改和删除

1106014122

艳明

需求分析任务书查询和排序

1106014130

程序调试主函数跟借还

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

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

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