图书信息管理系统设计Word文档下载推荐.docx

上传人:b****2 文档编号:1280708 上传时间:2023-04-30 格式:DOCX 页数:25 大小:20.31KB
下载 相关 举报
图书信息管理系统设计Word文档下载推荐.docx_第1页
第1页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第2页
第2页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第3页
第3页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第4页
第4页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第5页
第5页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第6页
第6页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第7页
第7页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第8页
第8页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第9页
第9页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第10页
第10页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第11页
第11页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第12页
第12页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第13页
第13页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第14页
第14页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第15页
第15页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第16页
第16页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第17页
第17页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第18页
第18页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第19页
第19页 / 共25页
图书信息管理系统设计Word文档下载推荐.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书信息管理系统设计Word文档下载推荐.docx

《图书信息管理系统设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统设计Word文档下载推荐.docx(25页珍藏版)》请在冰点文库上搜索。

图书信息管理系统设计Word文档下载推荐.docx

调试分析--------------------------------------------------------24

总结------------------------------------------------------------28

答辩记录--------------------------------------------------------29

教师意见--------------------------------------------------------29

设计的目的与要求

1.1设计的目的

使用链表和结构等结构数据,编写一C语言程序,实现图书信息管理的功能,通过此系统可对图书馆图书信息进行管理和维护等操作,给图书管理人员带来便利。

1.2设计的要求

图书信息包括:

登录号,书名,作者名,分类号,出版单位,出版时间,价格等。

试设计一图书信息管理系统,使之提供以下功能:

系统以菜单方式工作

(2)图书信息录入功能(图书信息用文本文件形式保存)

(3)图书信息浏览功能

(4)查询和排序功能:

按书名查找

按作者名查找

(5)图书信息删除功能

(6)图书信息修改功能

2.分析

根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;

在程序中需实现图书信息录入,浏览,查询,排序,删除和修改等功能的操作,所以需要建立相应的函数模块来实现;

另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。

3.总体设计

根据题目要求,我们经过分析和讨论后,决定将此系统分为十个功能模块:

菜单选择模块

图书信息录入功能模块

图书信息浏览功能模块

图书信息查询功能模块

图书信息排序功能模块

图书信息删除功能模块

图书信息修改功能模块

图书数据保存功能模块

信息文件打开功能模块

退出系统功能模块

主要功能的算法

4.1录入函数算法

4.2按书名查找算法(按作者名与此类似)

4.3删除图书信息算法(修改与此类似)

4.4显示函数算法

5.完整程序及注释

#include<

iostream.h>

/*引用库函数*/

#include<

stdio.h>

#include<

string.h>

conio.h>

stdlib.h>

windows.h>

typedefstructbook_info//定义图书信息的结构体变量并声明新的类型名

{

charAN[10];

/*登录号*/

charname[20];

/*书名*/

charauthor[20];

/*作者名*/

charclc[10];

/*分类名*/

charcompany[20];

/*出版单位*/

chardate[20];

/*出版日期*/

charprice[10];

/*价格*/

structbook_info*next;

}Booklist,*Pointer;

intnum=0;

//全局变量的定义

PointerHead=NULL;

//头指针为空

FILE*fp;

//指向文件的指针

/*声明函数*/

intmenu_select();

/*主菜单函数*/

voidInsert(Pointer*Head);

/*录入函数*/

voidScan(PointerHead);

/*显示函数*/

voidSearch_name(PointerHead);

/*按书名查找函数*/

voidSearch_author(PointerHead);

/*按作者名查找函数*/

voidListbyname(Pointer*Head);

/*按书名排序函数*/

voidDelete(Pointer*Head);

//删除函数

voidUpdate(PointerHead);

//修改函数

voidSave();

//用文本文件形式保存函数

voidRead();

//读入文本文件函数

voidExit();

//退出函数

voidmain()//主函数

system("

cls"

);

/*运行前清屏*/

for(;

;

switch(menu_select())

case1:

Insert(&

Head);

break;

case2:

Scan(Head);

case3:

Search_name(Head);

case4:

Search_author(Head);

case5:

Listbyname(&

Head);

case6:

Delete(&

case7:

Update(Head);

case8:

Save();

case9:

Read();

case0:

Exit();

default:

putchar('

\a'

}

menu_select()//主菜单函数

inta;

printf("

\n\t\t\t欢迎使用图书信息管理系统\n\n\n\n\n\t\t*****请按任意键进入系统菜单!

*****\n"

getch();

\t\t********************MENU*********************\n"

//主菜单

\t\t1.录入图书信息\n"

\t\t2.浏览图书信息\n"

\t\t3.按书名查询图书信息\n"

\t\t4.按作者名查询图书信息\n"

\t\t5.图书信息排序\n"

\t\t6.删除图书信息\n"

\t\t7.修改图书信息\n"

\t\t8.图书数据保存\n"

\t\t9.图书信息文件打开\n"

\t\t0.退出\n"

\t\t***********************************************\n"

do

\n\t请选择您所需要的服务:

"

scanf("

%d"

&

a);

while(a<

0||a>

9);

returna;

voidInsert(Pointer*Head)//录入图书信息函数

charAN[10];

charc;

Pointerp,q,r;

\n\t\t****************请输入图书信息****************\n"

/*交互输入*/

\n\t\t请输入登录号:

%s"

AN);

p=q=*Head;

//检测登录号是否重复

while(p!

=NULL)

if(strcmp(p->

AN,AN)==0)

printf("

已经有相同的登录号:

return;

else

{q=p;

p=p->

next;

r=(Pointer)malloc(sizeof(Booklist));

r->

next=NULL;

if(r==NULL)

{printf("

分配空间失败!

if(q==NULL)

*Head=r;

{q->

next=r;

strcpy(r->

AN,AN);

\n\t\t输入书名:

//录入图书信息

r->

name);

getchar();

\n\t\t输入作者名:

author);

\n\t\t输入分类号:

clc);

\n\t\t输入出版单位:

company);

\n\t\t输入出版日期:

gets(r->

date);

\n\t\t输入价格:

price);

do

\n\t\t录入成功!

!

num++;

选择是否继续录入(Y/N)?

/*连续录入图书信息*/

%c"

c);

if(c=='

y'

||c=='

Y'

Insert(Head);

n'

N'

\n\t\t输入错误,请重新输入!

while(c!

='

&

c!

voidScan(PointerHead)//显示图书信息函数

Pointerp;

p=Head;

if(p==NULL)

记录为空"

//检测是否有图书信息

\n\t共有%d条记录"

num);

\n\n\t\t登录号:

%-10s"

p->

AN);

//显示图书信息

\n\t\t书名:

%-20s"

\n\t\t作者名:

\n\t\t分类号:

%-10s"

clc);

\n\t\t出版单位:

%-20s"

company);

\n\t\t出版时间:

date);

\n\t\t价格:

¥%-10s"

\n\t\t请按任意键回到主菜单"

voidSearch_name(PointerHead)//按书名查找函数

intflag=0;

//标记变量的初值

charname[10];

\n请输入需要查询的书名:

name);

\n\t\t*************以下是您查找的信息***************"

name,name)==0)//查找符合的图书

\n\t登录号:

\n\t书名:

\n\t作者名:

\n\t分类号:

\n\t出版单位:

\n\t出版时间:

\n\t价格:

flag=1;

//找到标记变量设为1

//指针走到下一个节点

if(flag==0)

\n\t\t没有相同书名纪录"

\n\t\t请按任意键返回主菜单"

voidSearch_author(PointerHead)//按作者名查找函数

charauthor[10];

\n请输入需要查询的作者名:

author);

=NULL)//查找符合的图书

author,author)==0)/*找到图书显示信息*/

\n\t\t没有相同作者名纪录"

voidListbyname(Pointer*Head)//按书名排序函数

Pointerp,q;

inti,j;

chart[10];

if(Head==NULL)

\n\t\t没有任何资料!

\n"

if(num==0)//检查是否存在数据可供排序

\n\t\t图书信息记录为空!

请按任意键返回主菜单。

p=q=*Head;

for(i=0;

i<

num;

i++)//排序

for(j=i+1;

j<

j++)

q=p;

//使指针指向下一个结点

if(strcmp(q->

name,p->

name)>

0)//检查二者排序先后

{//p指针对应数据应排于q指针对应数据后,p,q进行数据交换

strcpy(t,p->

strcpy(p->

AN,q->

strcpy(q->

AN,t);

author,q->

author,t);

clc,q->

clc,t);

company,q->

company,t);

date,q->

date,t);

name,q->

name,t);

price,q->

price,t);

q=*Head;

p=*Head;

\n\t排序完成,是否显示(Y/N)?

/*询问是否显示排序结果*/

Scan(*Head);

//显示排序结果

//返回主菜单

//错误则继续询问

voidDelete(Pointer*Head)/*删除函数*/

{intflag=1;

charc,z;

\n\t\t*******************图书删除*******************\n"

\t请输入要删除图书的信息的登录号:

/*查找符合条件的图书*/

=NULL&

flag)

AN,AN)==0)/*找到该图书*/

\t\n登录号:

//显示即将要删除的图书的信息

\t\n书名:

\t\n作者名:

\t\n分类号:

\t\n出版单位:

\t\n出版时间:

\t\n价格:

¥%-10s\n"

确定删除?

确定请输Y,其它则不删除"

//询问是否删除

z);

if(z=='

||z=='

{if(p==*Head)

{*Head=p->

free(p);

}/*删除图书信息*/

next=p->

flag=0;

图书信息未删除,返回主菜单。

}/*指针走到下一个节点*/

\t\t删除成功!

if(flag)

\t没有找到可以删除的数据!

选择是否继续删除(Y/N)?

/*连续删除图书信息*/

Delete(Head);

/*继续删除*/

/*不删除返回主菜单*/

voidUpdate(PointerHead)/*图书信息修改函数*/

intflag=1;

\n\t\t*****************图书信息修改*****************\n"

\t请输入要修改的图书的登录号:

/*修改图书信息*/

gets(p->

修改成功!

/*指针走到下一个节点*/

\n\t\t没有该图书记录!

选择是否继续修改(Y/N)?

/*连续修改图书信息*/

/*继续修改*/

{i

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2