C语言程序设计基础课程设计图书信息管理系统Word格式文档下载.docx
《C语言程序设计基础课程设计图书信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础课程设计图书信息管理系统Word格式文档下载.docx(32页珍藏版)》请在冰豆网上搜索。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;
打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:
封面、任务书、成绩评定表、目录、正文、参考文献
四、设计完成后应提交成果的种类、数量、质量等方面的要求
1.完成“任务书”中指定的功能,运行结果正确。
2.课程设计说明书。
五、时间进度安排
顺序
阶段日期
计划完成内容
备注
1
第1天
阅读资料
2
第2—3天
系统分析设计
3
第4—8天
程序编制、调试及运行
4
第9天
成绩评定
5
第10天
撰写课程设计说明书
六、主要参考资料(文献)
[1]谭浩强.《C程序设计》(第三版).北京:
清华大学出版社.2006
[2]陈天洲.《C语言高级程序设计》.北京:
人民邮电出版社.2002
[3]杨旭.《C语言程序设计案例教程》.北京:
人民邮电出版社.2005
[4]郭翠英.《程序设计案例经典》.中国水利电力出版社.2004
[5]谭浩强.《程序设计基础》.北京:
清华大学出版社.2004
[6]王为青.《C语言高级编程及实例剖析》.北京:
人民邮电出版社.
[7]徐慧.《C语言实例解析精粹》.北京:
人民邮电出版社.
[8]周苏、金海溶.《程序设计案例经典》.北京:
科学出版社.2000
[9]姚大鹏栾好利张翼英等编著.《C语言程序设计教程习题与上机实训指导》.中国水利水电出版社.2005
[10]郑莉董渊张瑞丰编着.《C++语言程序设计》(第3版).北京:
清华大学出版社.2006
摘要
图书借阅管理系统产生的主要目的是解决一些实际问题,用来方便和准确的管理图书和会员的各项纪录,使得图书信息的管理既方便又完备。
它的产生和发展给图书馆管理带来了巨大的便捷。
计算机今后将会应用在各个领域,所以,完善的图书借阅管理程序是很有必要的。
它在管理的过程中,对一些数据的存储和计算是相当方便,当然它的准确性很高几乎为无误。
图书借阅管理程序的操作也是相当方便和快捷的,并且所用的人力也是相当少的。
下面就此课题介绍一下图书借阅管理系统的功能:
系统的设计我们主要分为八大块:
图书添加、图书查询、图书删除、会员借书、会员还书、会员注册、会员注销。
会员借书,还书是按照会员的姓名来实现的,图书的查询,删除是运用比较函数来实现的。
在此系统中应用了结构体,动态链表,基本的指针运用,基本的循环语句,函数的调用,Switch语句等来实现的。
关键词图书管理系统、图书添加、图书查询、图书删除、会员借书、会员还书、会员注册、会员注销
第1章绪论
C语言的发展:
早期的操作系统等系统软件主要是用汇编语言编写的(包括UNIX操作系统在内)。
由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差。
为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能,人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身。
于是,C语言就在这种情况下应运而生了。
C语言是国际上广泛流行的、很有发展前途的计算机高级语言。
它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件。
C语言是在B语言的基础上发展起来的,经过了1960年的ALGOL60,1963年剑桥大学推出的CPL、BCPL,1970年贝尔实验室简化出的B语言,后衍变出的C语言经多次改进,它的突出优点最终引起人们的广泛关注,至此,C语言便很快风靡全世界,成为世界上应用最广泛的语言之一。
C语言的特点:
1.语言简洁、紧凑,使用方便、灵活。
C语言一共只有32个关键字,9种控制语句,程序书写自由,它把高级语言的基本结构和语句与低级语言的实用性结合起来。
程序比其他许多高级语言简练,源程序短,而且可以象汇编语言一样对位、字节和地址进行操作。
2.运算符丰富
C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。
从而运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3.数据结构丰富
整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等数据类型。
能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。
4.C语法限制不太严格、程序设计自由度大
对变量的类型使用比较灵活,某些类型数据可以通用;
一般的高级语言语法检查比较严,能够检查出几乎所有的语法错误。
而C允许程序编写者有较大的自由度,放宽了语法检查。
5.C语言允许直接访问物理地址,可以直接对硬件进行操作
能实现汇编语言的大部分功能,可直接对硬件进行操作,可用来编写系统软件。
6.生成代码质量高,程序执行效率高,可移植性好。
一般只比汇编程序生成的目标代码效率低10%へ20%,与汇编语言相比,C程序基本上不做修改就能用于各种型号的计算机和各种操作系统。
由于C语言的这些优点,使其应用面很广,许多大的软件都用C语言编写自20世纪九十年代初以来,我国学习和使用C语言的人越来越多,掌握次语言已成为计算机开发人员的一项基本功。
第2章系统功能介绍
功能介绍
图书馆管理系统操作界面
添加图书信息函数
删除图书信息函数
查询图书信息函数
会员注册信息函数
借书记录信息函数
归还记录信息函数
会员注销信息函数
图书管理包括以下功能:
1.图书添加功能;
2.图书信息查找功能;
3.图书信息删除功能;
4.会员借书功能;
5.会员还书功能;
6.会员注册功能;
7.会员注销功能;
功能说明
1.图书添加功能是将图书信息存入文件夹中,其中图书信息包括图书名字、图书编号、图书作者、图书价格。
2.图书信息查找功能是将要查找的图书信息通过输入图书名字查找并从文件中提取出来显示。
3.图书信息删除功能是将无用的图书信息删除
4.会员借书功能,仅有会员才可以借书,借书之后还会标记该书已借出。
5.会员还书功能是会员借书之后将书还回并将图书状态改为图书未借出。
6.会员注册是将会员信息存入文件夹中,会员信息包括会员姓名、会员性别、会员年龄。
7.会员注销功能是将该会员信息从文件中删除。
第3章详细设计
界面设计
通过printf函数输出“1.添加图书2.图书查询3.删除图书4.会员借书5.会员还书6.会员注册7.会员注销8.退出”,再通过scanf函数输入n,最后利用switch(n)函数执行标号为n的程序。
流程图如下图所示
开始
利用printf函数输出8个功能分别为1.添加图书2.图书查询3.删除图书4.会员借书5.会员还书6.会员注册7.会员注销8.退出
利用scanf函数用键盘输入n
结束
利用switch(n)函数执行标号为n的程序
n=8
否
图界面管理流程图
图书添加功能设计
添加图书功能,先输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。
当你已是会员时,输入会员姓名,再输入想要借阅的图书名称,就可以实现借阅图书这一功能,我运用了指针、数组、链表等基本操作完成了这一功能的操作。
开始
定义指向文件的指针
定义结构体
以读取的方式打开文件
文件为空
以写的方式打开文件
以追加的方式打开文件
输入图书信息
图书编号
书名
作者姓名
图书价格
是
结束
图图书添加功能流程图
图书查找功能设计
查询功能:
查询者在此功能界面输入所查询的图书名称,系统自动按图书的名字进行查询,可以显示图书是否存在、以及图书的详细的信息;
该功能的实现主要应用scanf函数实现查询者对查询图书名称的输入。
if语句来判断所查询图书是否存在于源文件库中,若存在,则以查找的图书名称为指针,建立该指针到源文件库中的具体指向,最后应用printf函数输出所查询图书的详细信息;
若不存在,则显示“该图书不存在”类似字样。
Y
Fp=Null?
Strcmp(查询图书,文件中图书)=0?
Printf函数输出图书信息,i++’
、
是否继续查找
N
Fp=fopen,打开文件
scanf函数输入图书名称
feof(fp)?
N
图图书查找功能流程图
删除图书功能设计
按书名进行删除。
输入书名后,调用函数,在函数体里利用指针与每一个书名比较,如果相等就说明找到要删除的图书,用后一个覆盖前一个信息来删除图书信息,并用指针调整地址就完成图书信息的删除了。
图删除图书功能流程图
会员借书功能设计
借阅图书功能首先要输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。
当你已是会员时,输入会员姓名,再输入想要借阅的图书名称,就可以实现借阅图书这一功能。
此功能的实现我运用了指针、数组、链表等基本操作完成了这项功能。
图会员借书流程图
会员还书功能设计
归还图书功能:
先要求输入图书名,如果还书成功显示还书成功,否则显示还书失败。
我运用了指针、数组、链表等基本操作完成了这项功能的操作。
定义指向文件类型的指针*p
定义指针类型新结点
定义书名和会员名数组
用if语句判断文件是否为空
用printf函数输出不能打开
用printf函数输出键入书名
返回主界面
用scanf函数输入书名
用if语句判断书名是否匹配
用printf函数输出还书失败
将图书信息写入文件
用printf函数输出还书成功
图会员还书功能流程图
会员注册功能设计
要求输入该会员的名字、性别、年龄进行注册,成功注册后就可在图书馆里借阅图书。
会员注册可方便图书归还的管理,也方便图书管理人员对被借图书信息的管理及图书归要。
在注册会员后即可进行借书的操作了,我们的系统是根据是否是会员来判断能否进行借书,并且借书时按图书的名字进行借阅。
并且,如果成功借书,系统还会显示成功借书,使此项操作更加简单明了。
会员注册功能主要使用了scanf函数、结构体类型等在另一文件中建立个人信息。
Printf“请注册会员”
图会员注册功能流程图
会员注销功能设计
会员注销时通过输入会员姓名在文件中查找到该会员信息后将其删除完成的,删除信息用到链表、指针。
图会员注册流程图
第4章系统功能实现
图书管理系统主界面
通过输入编号实现编号所指的程序。
4.1.1负责人:
孟月
4.1.2程序主函数源代码
/*Note:
YourchoiceisCIDE*/
#include<
>
#include"
"
intBookAdd();
intBookConsult();
intBookDel();
intBookBorrow();
intBookReturn();
intMemberAdd();
intMemberDel();
intBookshow();
structconsultbook
{
charnum[20];
charname[20];
floatprice;
charauthor[20];
charperson[20];
intyes;
structconsultbook*next;
};
structconsultmember
charsex[20];
intage;
structconsultmember*next;
intmain()
intn;
inti=1;
for(;
i;
)
printf("
1:
图书添加功能\n"
);
2:
图书查询功能\n"
3:
删除图书功能\n"
4:
会员借书功能\n"
5:
会员还书功能\n"
6:
会员注册功能\n"
7:
会员注销功能\n"
8:
退出\n"
请输入所要执行序号\n"
scanf("
%d"
&
n);
switch(n)
{
case1:
BookAdd();
break;
case2:
BookConsult();
case3:
BookDel();
case4:
BookBorrow();
case5:
BookReturn();
case6:
MemberAdd();
case7:
MemberDel();
case8:
i=0;
}
return0;
}
图书添加功能
图书添加功能,通过此功能实现向源文件中添加图书的有关信息,实现对后续功能的实现。
4.2.1负责人:
李昊航
4.2.2图书添加功能源代码
intBookAdd()/*添加图书*/
FILE*fp;
structconsultbookBook;
fp=fopen("
"
r"
/*以读取的方式打开文件*/
if(fopen==NULL)
w"
/*以写的方式打开文件*/
else
fclose(fp);
ab"
/*以追加方式打开文件*/
请输入图书编号:
\n"
%s"
;
请输入书名:
;
请输入作者姓名:
请输入图书价格:
%f"
;
=1;
/*表示图书未出借*/
=NULL;
if(fwrite(&
Book,sizeof(structconsultmember),1,fp)!
=1)
操作出现错误图书信息未保存\n"
图书信息已保存\n"
/*关闭文件*/
return1;
图书查找功能
图书查找功能,通过此功能实现对图书价格等信息的查询,方便借书等功能的实现。
4.3.1负责人:
张启明
4.3.2图书管理功能源代码
intBookConsult()/*图书查找*/
charbookname[20];
/*定义书名变量*/
intflag=0,i=0;
请输入要查找的书名:
bookname);
if(fp==NULL)/*没有找到文件*/
未找到您所需要的书请核实是否有误重新查找"
return-1;
while(!
feof(fp))/*feof(fp)为测试文件是否结束的函数*/
fread(&
Book,sizeof(structconsultmember),1,fp);
/*读取文件*/
if(strcmp,bookname)==0)/*两书名字相同*/
图书名为:
%s\n"
图书编号为:
图书作者为:
图书作价格为:
%f\n"
图书状态为:
%d\n"
i++;
/*i为该书的数目*/
flag=1;
/*查找数据标志*/
if(flag==0)
未找到您所需要的图书\n"
图书删除功能
由于C语言文件操作没有提供删除和移动的数据功能,所以删除记录采用了从文件中读出所有记录,删除后,再将记录写回文件的方式。
从文件中读出记录,以单链表的形式保存,块读取方式,每读取一条记录,按其在文件中的顺序要做好指针链接关系,即将其链接到当前链表的尾部。
然后从单链表中查找要删除的图书,如果找到,则从链表中删除该图书信息,所以删除图书资料的操作实质是单链表的删除操作,最后再将变动过的单链表逐条写到文件中。
4.4.1负责人:
王珩
4.4.2图书删除功能源代码
intBookDel()/*删除图书录*/
structconsultbook*head;
structconsultbook*p,*q;
/*读方式打开文件*/
未找到图书信息\n"
head=p=q=(structconsultbook*)malloc(sizeof(structconsultbook));
/*开辟新的储存空间*/
fread(p,sizeof(structconsultbook),1,fp);
/*读第一条信息*/
q=p;
p=(structconsultbook*)malloc(sizeof(structconsultbook));
fread(p,sizeof(Book),1,fp);
/*读记录*/
q->
next=p;
/*新记录插入到链表的尾*/
p->
next=NULL;
/*已为最后结点*/
请输入要删除图书的名:
p=head;
while(p!
=NULL)/*按书名删除图书*/
if(strcmp(p->
name,bookname)==0)/*找到药删除的书名*/
if(p==head)/*要删除的图书是第一个结点*/
head=head->
next;
next=p->
/*要删除的图书是第一个结点*/
p=p->
/*指针后移*/
while(head!
=NULL)
fwrite(head,sizeof(Book),1,fp);
/*写文件*/
删除成功!
会员借书功能
借阅图书功能:
先输入会员姓名,如果不是会员,此系统为了使用更加方便快捷,要求您先注册会员,然后进行借书功能。
4.5.1负责人:
赵磊
4.5.2会员借书源代码
intBookBorrow()/*借书*/
structconsultmemberMember;
charbookname[20],membername[20];
intflag=0,mflag=0;
请输入会员名字:
membername);
if((fp=fopen("
))==NULL)/*未找到文件*/
无信息\n"
feof(fp))/*查找会员信息*/
Member,sizeof(structconsultmember),1,fp);
i