C语言图书管理系统课程设计报告Word格式文档下载.docx
- 文档编号:18120690
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:21
- 大小:138.69KB
C语言图书管理系统课程设计报告Word格式文档下载.docx
《C语言图书管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言图书管理系统课程设计报告Word格式文档下载.docx(21页珍藏版)》请在冰豆网上搜索。
进入21世纪,充分利用计算机网络和信息技术,逐步实现不同载体的实体文献的信息化管理和多方位的联机查询。
图书馆的计算机信息化管理,就是将传统图书馆业务的手工操作转变成由计算机管理,既图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理工作,采用计算机技术,进行高效、准确的信息化管理。
其根本目的是实现区域内及地区、国家、国家间的资源共享。
要达到资源共享的目的,必须制定一定的标准,只有各个系统都遵循这些标准,不同的系统间才可以实现联机查询、资源共享的效果。
第二章开发工具简介
VC6.0简介
VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。
所以实际中,更多的是以VisualC++6.0为平台。
VC6.0由以下三部分组成:
1、DeveloperStudio,这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,DeveloperStudio为VisualC++提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能。
我们也知道,DeveloperStudio并不是专门用于VC的,它也同样用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。
所以不能把DeveloperStudio当成VisualC++,它充其量只是VisualC++的一个壳子而已。
2、MFC。
从理论上来讲,MFC也不是专用于VisualC++,BorlandC++,C++Builder和SymantecC++同样可以处理MFC。
同时,用VisualC++编写代码也并不意味着一定要用MFC,只要愿意,用VisualC++来编写SDK程序,或者使用STL,ATL,一样没有限制。
不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC++而不用MFC就等于抛弃了VisualC++中很大的一部分功能。
但是,VisualC++也不等于MFC。
3、PlatformSDK。
这才是VisualC++和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。
大致说来,PlatformSDK是以MicrosoftC/C++编译器为核心(不是VisualC++,看清楚了),配合MASM,辅以其他一些工具和文档资料。
上面说到DeveloperStudio没有编译程序的功能,那么这项工作是由谁来完成的呢?
是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成VisualStudio的基石。
第三章图书管理系统的设计与实现
3.1系统的需求分析
图书登记管理系统作为一个应用软件将为学校的老师和学生提供一个对学校图书馆深入了解并借阅、还书的平台。
根据系统界面的提示信息对图书馆信息进行查询、初始化等操作
系统功能需求分析描述如下:
(1)系统主菜单:
进入系统和退出系统
(2)功能菜单:
显示可以进行的操作
(3)查询主菜单:
根据图书编号、书名、作者进行查询,并可显示所有图书信息
(4)借还书主菜单:
可以进行借书和还书等操作
3.2系统的设计
3.2.1系统的总统设计
下面从系统的整体流程的功能模块、系统界面及数据结构进行总体设计。
(1)总体思想
本系统主要设计思想是实现图书馆的功能机管理系统信息的查询、借书、还书等主要功能。
系统的设计方法是结构化实际方法,系统用C语言进行开发用户可以清晰的了解图书馆内的情况。
(2)系统模块结构图
根据需求分析结果,图书管理系统可以分为三大模块:
查询图书模块、借书功能模块、还书功能模块。
系统模块结构如图:
3.2.2系统的概要设计
㈠系统主菜单。
显示系统的主菜单,里面有相应的功能代码,根据选择各功能代码进入不同的界面。
功能主要包括:
退出系统、查询图书、借书、还书。
㈡查询图书信息
进入此菜单功能模块,输入您要查询的图书的编号、名字、作者等。
图书查询模块流程如图:
否是
是
否
3.3测试结果
系统主界面
功能菜单
查询系统菜单
借还系统菜单
3.4源代码
#include<
stdio.h>
stdlib.h>
string.h>
typedefstructlink
{
charnumber[100];
charbookname[100];
charauthor[100];
charpublish[100];
chartime[100];
floatprice;
charstatus[100];
structlink*next;
}link;
link*Cbook()
intn=0;
link*p,*q,*head;
FILE*fp;
fp=fopen("
图书信息.txt"
"
r+"
);
if(fp==NULL)
printf("
没有找到文件,请检查……"
p=(link*)malloc(sizeof(link));
if(p==NULL)
申请内存出错\n"
fscanf(fp,"
%s%s%s%s%s"
p->
number,p->
bookname,p->
author,p->
publish,p->
time);
%f"
&
p->
price);
%s"
status);
while(feof(fp)==0)
n++;
if(n==1)
head=p;
}
else
q=p;
q->
next=p;
next=NULL;
fclose(fp);
信息已录入"
returnhead;
voidmainmenu()
\n*****************************************\n"
\n**欢迎使用图书管理系统**\n"
\n**1.进入系统0.退出系统**\n"
\n请选择"
voidmenu1()
\n**1.进入图书查询系统**\n"
\n**2.进入图书借还系统**\n"
\n**3.保存所有图书信息**\n"
\n**4.返回上级菜单**\n"
\n请选择"
voidcxmenu()
printf("
\n**1.显示所有图书信息**\n"
\n**2.按编号查询图书**\n"
\n**3.按书名查询图书**\n"
\n**4.按作者查询图书**\n"
\n**5.返回上级菜单**\n"
\n****************************************\n"
voidjhmenu()
\n**1.借书**\n"
\n**2.还书**\n"
\n**3.返回上级菜单**\n"
}
voidprint(link*head)
link*p;
p=head;
\n"
\n**************************************************\n"
\n编号\t\t书名\t\t作者\t\t出版社\t\t出版时间\t\t价格\t\t状态\n"
while(p!
=NULL)
{
%s\t%s\t%s\t%s\t%s"
printf("
\t\t%.2f"
\t\t%s"
p=p->
next;
}
voidhold(link*head)
link*p;
w+"
文件操作出错"
exit
(1);
p=head;
for(;
p!
=NULL;
p=p->
next)
{
fprintf(fp,"
信息已保存。
"
voidholdcx(link*t)
link*p=NULL;
FILE*fp;
fp=fopen("
查询.txt"
a+"
p=t;
查询到的信息为:
fclose(fp);
信息已保存"
link*findnumber(link*head)
charkey[100];
link*h,*t1=NULL;
请输入图书的编号:
getchar();
gets(key);
for(h=head;
h!
h=h->
if(strcmp(key,h->
number)==0)
{
t1=h;
break;
returnt1;
link*findboookname(link*head)
link*h,*t2=NULL;
请输入图书的书名:
bookname)==0)
t2=h;
returnt2;
link*findauthor(link*head)
link*h,*t3=NULL;
请输入作者姓名:
author)==0)
t3=h;
returnt3;
link*sortnumber(link*head)
link*p,*q,*temp;
temp=(link*)malloc(sizeof(link));
if(temp==NULL)
申请内存出错"
exit
(1);
for(p=head;
for(q=p->
q!
q=q->
{
if(strcmp(p->
number,q->
number)>
0)
strcpy(temp->
number);
bookname);
author);
publish);
time,p->
temp->
price=p->
price;
status,p->
strcpy(p->
bookname,q->
author,q->
publish,q->
time,q->
p->
price=q->
status,temp->
strcpy(q->
number,temp->
strcpy(q->
bookname,temp->
author,temp->
publish,temp->
time,temp->
q->
price=temp->
}
}
link*borrowbook(link*head)
link*h,*p;
charch,ch1[100]="
在库"
ch2[100]="
不在库"
;
h=head;
\t\t欢迎使用借书系统\n"
p=findboookname(h);
if(p==NULL)
借书失败,书库中没有这本书"
elseif(strcmp(p->
status,ch2)==0)
借书失败,图书不在库"
else
确认借出?
Y/N:
scanf("
%c"
ch);
getchar();
if(ch=='
Y'
||ch=='
y'
)
strcpy(p->
status,ch2);
借书成功,请返回上级菜单保存信息"
N'
n'
你没有借任何书"
}
link*returnbook(link*head)
link*h,*p;
charch,ch1[100]="
h=head;
\t\t欢迎使用还书系统\n"
还书失败,这不是本书库的书!
!
else
确认还书?
scanf("
status,ch1);
还书成功,请返回上级菜单保存信息"
你没有还书"
returnhead;
voidmain()
inta,b,c,d;
link*h,*t;
L:
system("
cls"
mainmenu();
while
(1)
scanf("
%d"
a);
switch(a)
case1:
B:
system("
menu1();
while
(1)
b);
switch(b)
case1:
cxmenu();
scanf("
c);
switch(c)
{
ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 管理 系统 课程设计 报告