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

上传人:b****8 文档编号:22452168 上传时间:2023-02-04 格式:DOCX 页数:32 大小:521.55KB
下载 相关 举报
图书信息管理系统设计教学教材Word文档下载推荐.docx_第1页
第1页 / 共32页
图书信息管理系统设计教学教材Word文档下载推荐.docx_第2页
第2页 / 共32页
图书信息管理系统设计教学教材Word文档下载推荐.docx_第3页
第3页 / 共32页
图书信息管理系统设计教学教材Word文档下载推荐.docx_第4页
第4页 / 共32页
图书信息管理系统设计教学教材Word文档下载推荐.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

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

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

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

评定教师

摘要:

随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个信息管理系统是十分必要的。

为了满足图书管理的要求,通过计算机技术给图书管理人员带来便利。

使用C语言编写图书管理系统,其中主要运用了结构化设计与链表结构。

本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。

实现了图书馆内管理的一般功能,包括图书信息录入、浏览、排序、删除和修改等功能。

所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理。

图书信息包括登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、删除和修改等基本操作。

关键字:

图书信息管理C语言链表结构

1.设计的目的与要求-------------------------------------------------4

2.分析-------------------------------------------------------------4

3.总体设计---------------------------------------------------------5

4.主要功能算法-----------------------------------------------------5

5.完整程序及注释---------------------------------------------------8

6.调试分析--------------------------------------------------------24

7.总结------------------------------------------------------------28

8.答辩记录--------------------------------------------------------29

9.教师意见--------------------------------------------------------29

1.设计的目的与要求

1.1设计的目的

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

1.2设计的要求

图书信息包括:

(1)系统以菜单方式工作

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

(3)图书信息浏览功能

(4)查询和排序功能:

按书名查找

按作者名查找

(5)图书信息删除功能

(6)图书信息修改功能

2.分析

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

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

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

3.总体设计

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

(1)菜单选择模块

(2)图书信息录入功能模块

(3)图书信息浏览功能模块

(4)图书信息查询功能模块

(5)图书信息排序功能模块

(6)图书信息删除功能模块

(7)图书信息修改功能模块

(8)图书数据保存功能模块

(9)信息文件打开功能模块

(10)退出系统功能模块

4.主要功能的算法

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;

printf("

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

/*交互输入*/

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

scanf("

%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;

else

{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);

\n\t\t录入成功!

!

num++;

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

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

getchar();

%c"

c);

if(c=='

y'

||c=='

Y'

Insert(Head);

else

n'

N'

return;

printf("

\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"

p=p->

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

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

intflag=0;

//标记变量的初值

charname[10];

printf("

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

name);

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

{

if(strcmp(p->

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

{

\n\t登录号:

\n\t书名:

\n\t作者名:

\n\t分类号:

\n\t出版单位:

\n\t出版时间:

\n\t价格:

flag=1;

//找到标记变量设为1

p=p->

//指针走到下一个节点

if(flag==0)

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

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

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

charauthor[10];

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

author);

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

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

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

getch();

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;

do

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

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

Scan(*Head);

//显示排序结果

//返回主菜单

//错误则继续询问

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

{intflag=1;

charAN[10];

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);

}/*删除图书信息*/

{q->

next=p->

flag=0;

else

{printf("

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

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

\t\t删除成功!

if(flag)

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

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

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

Delete(Head);

/*继续删除*/

if(c=='

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

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

intflag=1;

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

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

/*修改图书信息*/

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

当前位置:首页 > 人文社科 > 哲学历史

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

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