图书管理登记系统Word文档下载推荐.docx
- 文档编号:22516960
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:31
- 大小:105.47KB
图书管理登记系统Word文档下载推荐.docx
《图书管理登记系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《图书管理登记系统Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
(5)所有的信息存储在一个文件或多个中,并实现文件读写操作。
(6)记录添加删除操作时,先从文件载入数据,用链表存放,批量操作完后,数据从链表写入文件。
(7)查看数据时,先从文件载入数据,用数组存放,并排序,使用二次查找加速查找过程,一次载入允话使用者多次查看数据。
3、提示
(1)图书信息可以设计一个结构体类型
(2)自己构思并增加的除规定功能之外的新功能,酌情加分。
解题思路
1.要用链表来存放图书信息,首先要有一个函数,去读取文件内容,然后放在链表中,这样就可以对链表操作进行增删功能。
处理完链表信息后,再放回文件。
..........
2.采用多个函数,从而简化代码都编写
3.简洁的操作画面,用户看得懂用得舒心而并非华而不实
4.增加比较适合使用的回收站功能,使用户避免出现误删的情况。
实用功能:
1.structbook*create();
//新建图书信息库
2.structbook*scanf1_();
//输入单本书的信息
3.voidprintf1_(structbook*);
//输出单本书的信息
4.voidshow_num(structbook*);
//按编号显示该图书信息
5.voidshow_all(structbook*head);
//显示全部图书信息
6.voidchange_num(structbook*);
//按编号修改图书信息
7.structbook*delete_(structbook*);
//按编号删除图书信息
8.voidsearch(structbook*);
//查询所有书名中包括该字符串的图书的信息
9.voidchaxun_name(structbook*);
//按书名查询
10.voidchaxun_publisher(structbook*);
//按出版社查询
11.intcount(structbook*);
//图书数目统计
12.voidsave(structbook*);
//保存到文件
13.structbook*load();
//从文件读取信息到链表
14.intquit(structbook*);
//退出函数
1.界面
printf("
欢迎使用图书登记管理系统\n"
);
°
★.☆°
.★·
∴°
★.°
·
☆·
☆..·
\n"
☆°
★°
∴☆°
.·
.\n"
*******************************************************************************\n"
printf("
图书登记管理系统\n"
0---退出系统1---录入图书的信息\n"
2---保存文件3---按编号显示图书信息\n"
4---显示全部图书信息5---图书信息修改\n"
6---图书信息删除7---按书名查询\n"
8---查询包括字符串的图书9---按出版社查询\n"
10---图书数目统计11---从文件读取数据\n"
2.读取文件函数
利用该函数取得文件都信息放入指针中
//从文件读入图书信息
structbook*load()
{
structbook*p1,*tail,*head;
FILE*fp;
head=tail=NULL;
if((fp=fopen("
图书信息库.txt"
"
r"
))==NULL)
{
文件图书信息.txt打开失败!
\n可能文件不存在\n"
exit(0);
}
while(!
feof(fp))
p1=(structbook*)malloc(sizeof(structbook));
fscanf(fp,"
%s%s%s%s%s%lf\n"
&
p1->
num,&
name,&
writer,&
publisher,&
time,&
price);
if(head==NULL)
head=p1;
else
tail->
next=p1;
tail=p1;
tail->
next=NULL;
fclose(fp);
printf("
文件信息读出成功!
\n按Enter键继续!
"
getchar();
returnhead;
}
系统测试
2.显示图书
3.统计图书
流程图
编程心得:
在这次编程设计可谓任重而道远,特别是在文件的读入和读出还有链表都应用我都比较弱,然后在一个暑假下来,不该忘记都忘记了。
然后没办法要自己重新看回书再写下来,而且上学期老是在链表和文件方面课时不多而且跳得比较快,如果自己不看不复习就真的是一头雾水了。
在这次程序设计中,收获最大都便是在文件程序方面都应用还有链表都双结合上的知识还有漏啊,或者错误上都了解,对我可谓受益匪浅。
首先,在界面都设计方面,也学到了不少东西,比如最基本都清屏,还有界面都排版,在这小小都细节上却深深都吸引了我,其实编程有时候也是一件艺术品,只是取决于我们都态度上罢了。
以前总感觉函数就是打酱油都东西,在中大型编程上面就显得愈发重要了,这次设计一下来就是几十个函数都运用起来,不仅需要都是我们自己都设计上都问题还要各种逻辑,还有功能实现的顺序规律上面都有要求,在这差不多一个月都时间来,时间其实对我来说还是不太够都,功能也是基本都完成还没有很好都处理好,而且在运行的速度方面,还有代码的长短问题还没有完全都考虑进去,我就是仅仅为了完成作业而做作业,这种态度让我感动羞愧啊……毕竟在这个学期里面不仅有数据结构还有数字逻辑,这两科也有时候压得我生不如死,加上自己本来就是C语言上的弱势群体,还有在此次程序设计上还有间接都插入了数据结构都内容,很好的把上学期和这学期新学都内容结合起来,我觉得这个安排还是相当满意的,这同时对我们知识都运用还有学习都方面时间都管理上都有了一定都锻炼。
在这次设计中感受良深,在每次的编程方面都考虑都有了很大的要求,也在我以后的设计程序上有了很大都启发,问题可以用多种解法,高手和新手都区别在于程序的长短和运行速度!
因此我将会努力学习更多的简便都算法,以完善我都程序代码,这也是值得我大学四年奋斗的一件事。
编程代码
#include<
stdio.h>
string.h>
stdlib.h>
#defineN30
structbook*create();
structbook*scanf1_();
voidprintf1_(structbook*);
voidshow_num(structbook*);
voidshow_all(structbook*head);
voidchange_num(structbook*);
structbook*delete_(structbook*);
voidsearch(structbook*);
voidchaxun_name(structbook*);
voidchaxun_publisher(structbook*);
intcount(structbook*);
voidsave(structbook*);
structbook*load();
intquit(structbook*);
//建立图书结构体
structbook
charnum[15];
//图书编号
charname[N];
//书名
charwriter[20];
//作者
charpublisher[N];
//出版社
chartime[20];
//出版日期
doubleprice;
//价格
structbook*next;
};
intmain()
intx=1,k=0,n;
structbook*head=NULL;
while(x)
system("
cls"
请选择:
scanf("
%d"
n);
switch(n)
{
case0:
x=quit(head);
break;
case1:
请录入图书的信息!
getchar();
head=create();
break;
case2:
if(head==NULL)
{
printf("
请先录入图书的信息!
或从文件读取数据\n按Enter键继续。
}
else
save(head);
break;
case3:
或从文件读取数据\n按Enter键继续。
show_num(head);
case4:
show_all(head);
case5:
if(head==NULL)
change_num(head);
case6:
if(head==NULL)
head=delete_(head);
case7:
chaxun_name(head);
case8:
{
printf("
getchar();
}
else
search(head);
break;
case9:
chaxun_publisher(head);
case10:
k=count(head);
总共有%5d种书\n按Enter键继续。
k);
case11:
head=load();
default:
输入有误,请重新输入!
\n按Enter键继续。
}
//输入单本书的信息
structbook*scanf1_()
structbook*p1;
p1=(structbook*)malloc(sizeof(structbook));
请输入图书编号(字符串):
gets(p1->
num);
请输入书名(字符串):
name);
请输入作者(字符串):
writer);
请输入出版社(字符串):
publisher);
请输入出版日期(字符串):
time);
请输入价格(双精度浮点数):
scanf("
%lf"
p1->
returnp1;
voidprintf1_(structbook*head)
structbook*p;
p=head;
图书编号:
"
puts(p->
书名:
作者:
出版社:
出版日期:
价格:
%15.2f"
p->
//新建图书信息库
structbook*create()
structbook*p1,*p2=NULL,*head=NULL;
intn=0;
chara[N];
注意:
当图书编号为0时输入结束\n"
do
{printf("
请输入图书的编号(字符串):
gets(a);
if(strcmp(a,"
0"
)==0)
p1=(structbook*)malloc(sizeof(structbook));
strcpy(p1->
num,a);
gets(p1->
getchar();
p1->
p2=head;
p2->
p2=p1;
}while
(1);
图书信息输入结束!
//按编号显示该图书信息
voidshow_num(structbook*head)
inti=0;
请输入给定的图书编号(字符串):
gets(a);
while(p!
=NULL)
if(strcmp(a,p->
num)==0)
printf("
%s\n"
出版日期:
%s\n"
价格:
%lf\n"
显示成功!
i=1;
p=p->
next;
if(i==0)
显示失败!
没有找到编号为%s的图书!
a);
按Enter键继续"
//显示全部图书信息
voidshow_all(structbook*head)
p1=head;
if(head!
书籍信息如下:
\n\n"
do
printf1_(p1);
p1=p1->
}while(p1!
=NULL);
显示失败!
//按编号修改图书信息
voidchange_num(structbook*head)
请输入给定的编号(字符串):
请重新输入书名(字符串):
gets(p->
请重新输入作者(字符串):
gets(p->
请重新输入出版社(字符串):
ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 登记 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)