小型图书管理系统C语言课程设计报告Word文件下载.docx
《小型图书管理系统C语言课程设计报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《小型图书管理系统C语言课程设计报告Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
![小型图书管理系统C语言课程设计报告Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/17/3167253f-9990-4b83-9640-cc20b41f1ffb/3167253f-9990-4b83-9640-cc20b41f1ffb1.gif)
选题背景、论点或方案论证、过程(设计或实验)论述、结果分析、结论或总结。
2、标题:
题目用小二号黑体字(加黑),居中;
副标题用三号黑体字,紧挨正标题下居中,文字前加破折号。
英文题目为18磅加粗TimesNewRoman字,副标题为16磅加粗TimesNewRoman字。
3、课程设计报告格式要求:
一级标题用小三号黑体字;
二级标题用四号黑体字;
三级标题用小四号黑体字;
正文用宋体小四号字(英文用12磅TimesNewRoman字),采用1.5倍行距,标准字符间距:
页码一律用小5号字标明。
4、课程设计报告撰写要求:
(1)文字通顺,语言流畅,能将设计过程表述清楚。
(2)图表整洁,布局合理,须按国家规定的绘图标准绘制。
(3)报告字数不少于3千字。
小型图书管理系统
一、选题背景
在学习了数据结构课本理论知识后,为了检验自己所学知识的牢固性,巩固大家的理论知识,调动大家的编程兴趣;
同时为大家提供一个实践自己,检验自己的平台,以增加大家对将来工作的适应能力;
也为了锻炼大家的动手实践能力,遂在学期末进行了本次课程设计。
“数据结构”在计算机科学中是一门综合性的专业基础课。
“数据结构”的研究不仅涉及到计算机硬件的研究范围,而且和计算机软件的研究有着密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。
在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。
因此,可以认为“数据结构”是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
在计算机科学中,“数据结构”不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
我们本着自己的兴趣及挑战自己的态度,也为检验我们理论知识的熟练度,锻炼我们动手实践能力,我们选择了小型图书管理系统的编写。
因为我们生活在大学,图书馆是我们学习的天堂,借书和还书又是必不可少的,一个好的图书管理系统对于我们学生和管理人员都会为大家提供很多便利。
本着挑战和创新的思想,我们进行了此次课程设计程序编写及报告撰写。
二、运行环境(软、硬件环境)
预装了WindowsXP操作系统的PC机、MicrosoftVisualC++6.0版编辑器。
三、算法设计的思想
通过对图书管理系统内的图书进行添加和删除操作,实现同学借书和还书的记录工作,通过对图书的查找和按指定方式排序,更有利于同学们挑选自己所需要的图书,借阅借书所需时间。
同时,通过按需要的条件排序,也有助于图书管理人员更加方便快捷的管理全部书库图书信息。
遍历查找和插入排序的功能,以及其它所有的算法操作都是为了方便快捷的利用图书馆资源,更大化的优化操作流程和更好体现人机一体话的概念。
设计程序框架图:
四、算法的流程图
五、算法设计分析
定义图书结构体
structbook
结构体内容:
定义作者、书名、出版社、书号数组及浮点型价格数据。
{
charwriter[20];
//作者//
chartitle[20];
//书名//
charpublishinghouse[20];
//出版社//
charnumber[10];
//书号//
floatprice;
//价格//
structbook*next;
};
定义书库的结构体指针:
structbook*Create_Book();
插入图书信息:
voidInsert(structbook*head);
删除图书信息:
voidDelete(structbook*head);
刷新显示书库信息:
voidPrint_Book(structbook*head);
查找数目:
voidsearch_book(structbook*head);
更改图书信息:
voidchange_Book(structbook*head);
对数据进行保存工作
voidsave(structbook*head);
六、源代码
#include<
stdio.h>
string.h>
stdlib.h>
structbook*Create_Book()
structbook*head;
head=(structbook*)malloc(sizeof(structbook));
head->
next=NULL;
returnhead;
}
voidsave(structbook*head)
structbook*p;
FILE*fp;
p=head;
fp=fopen("
kucun.txt"
"
w+"
);
fprintf(fp,"
************************************************\n"
书号\t书名\t作者\t出版社\t价格\t\n"
\n"
while(p->
next!
=NULL)
{
p=p->
next;
fprintf(fp,"
%s\t%s\t%s\t%s\t%.2f\t\n"
p->
number,p->
title,p->
writer,p->
publishinghouse,p->
price);
}
fclose(fp);
printf("
已将图书数据保存到kucun.txt文件\n"
//插入//
voidInsert(structbook*head)
structbook*s,*p,*p1,*swap;
charflag='
Y'
;
swap=(structbook*)malloc(sizeof(structbook));
p1=swap;
while(flag=='
||flag=='
y'
)
s=(structbook*)malloc(sizeof(structbook));
\n请输入图书书号:
"
fflush(stdin);
scanf("
%s"
s->
number);
\n请输入图书书名:
title);
\n请输入图书作者名:
writer);
\n请输入图书出版社:
publishinghouse);
\n请输入图书价格:
%f"
&
s->
\n"
//排序//
p1=p->
if(head->
=NULL)
do
if(strcmp((p1->
number),(s->
number))>
0)
strcpy(swap->
number,p1->
title,p1->
writer,p1->
publishinghouse,p1->
swap->
price=p1->
price;
strcpy(p1->
number,s->
title,s->
writer,s->
publishinghouse,s->
p1->
price=s->
strcpy(s->
number,swap->
title,swap->
writer,swap->
publishinghouse,swap->
s->
price=swap->
p=p1;
}while(p1!
=NULL);
p->
next=s;
s->
*******添加成功!
*******"
\n继续添加?
(Y/N):
%c"
flag);
if(flag=='
N'
n'
{break;
elseif(flag=='
{continue;
save(head);
//查找//
voidsearch_book(structbook*head)
structbook*p;
chartemp[20];
if(head==NULL||head->
next==NULL)
*******图书库为空!
*******\n"
else
请输入您要查找的书名:
"
temp);
p=p->
i