图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)

 不废话直接附上源代码下载链接(一杯奶茶就能换一套图书管理系统哦~):
C语言链表实现图书管理系统功能齐全(书籍信息以及用户信息保存在附带的txt文件中)-C文档类资源-CSDN文库

以下是介绍:

1.开发环境:Dev-C++;

    2.基本原理和技术:

       1)程序中大量用到了switch-case结构,用来对操作进行选择;

       2)以链表为容器,文本文档用于记录用户信息以及书籍信息,每次运行程序时要将文本中的信息读取存入链表中,运行结束时将信息存回文本文档,如此便完成了数据的增添删除修改等功能。

       3)在程序中用到了不少system(“cls”),可以让程序看起来有跳转的感觉,从而更加像一个软件。也解决了输入过程中窗口内文本过于冗长而体验不佳的问题。

       4)除了增删查改外的其他功能,其实都源于最基本的增删查改功能,比如借书和还书的过程中,都需要先对书进行查询,找到相应书籍后再进行数据的修改处理。

       5)用到了很多结构体,其中包括用户数据的结构体(存放各种属性数据),用户链表结点的结构体(存放数据结构体和指针);书的数据结构体(存放各种属性数据),书的链表结点的结构体(存放数据结构体和指针)等等。

       6)由于有些书名很长,而且其中的符号不易打出来,故该程序中的查找都是输入书名或者ISBN中的关键字即可的类似模糊搜索的查找,为了实现这个功能,我除了需要把strcmp()换成strstr()外,还设计了一个可以存放20个书的结点结构体指针的结构体,用来返回查找时符合要求的所有书籍的地址。

       7)通过合理运用exit(0)和return,在每次输入有误时会进行程序的直接退出或者直接跳出函数的操作,从而提升了代码的容错性,更加人性化,不易崩溃。

二、程序概要设计:

1.各种功能完成情况:

1)图书管理员

(1)录入:增加一本图书信息;

(2)删除:删除某一本图书的信息;

(3)修改:修改某一本图书的信息;

(4)查询:根据书名或图书ISBN等查询图书信息(可选择:简单条件查询,组合条件查询等);

(5)排序:根据书名或入库时间等信息进行排序,提高查找和维护性能;

(8)统计:统计所有的借出的图书数目,即:所有图书借阅量之和;

(9)输出:输出所有图书的所有信息,要求格式清晰,方便查看;

2)读者身份

(1)读者账号注册;

(2)查询:根据书名或图书ISBN等查询图书信息(可选择:简单条件查询,组合条件查询);

(3)排序:根据书名或入库时间等信息进行排序,提高查找和维护性能;

(4)借书:借出一本书,该书的借阅量增加一本;

(5)还书:还回一本书,该书的借阅量减少一本;

(6)统计:统计所有的借出的图书数目,即:改读者借阅量之和;

扩展功能要求:

(1)导入:把用户信息和图书信息从数据文件或数据库(可以Access数据库)读入程序;

(2)导出:把用户信息和图书信息导出到数据文件或数据库(可以Access数据库)中保存。

三、程序详细设计-关键代码分析

图书管理员身份可以完成以下操作:

(1)录入:

分析:录入的过程其实就是给书的链表添加新结点的过程,及创建新节点,录入数据域中的所需数据,插入新节点。最后保存在文件中即可。

关键代码:

void insertbnode(blink headnode,books data)
{
	blink newnode=creatbnode(data);
	blink pmove=headnode;
	while(pmove->bnext!=NULL)
	{
		pmove=pmove->bnext;
	}
	pmove->bnext=newnode;
}

(2)删除:

分析:删除节点通过链表先找到所有符合要求的书籍,选择后将指定书籍节点进行删除即可,对指定节点的删除如下。

关键代码:

void deletnode(blink headnode,char *bookname)
{
	blink posleftnode=headnode;
	blink posnode=headnode->bnext;
	while(posnode!=NULL&&strcmp(bookname,posnode->data.name))
	{
		posleftnode=posnode;
		posnode=posnode->bnext;
	}
	posleftnode->bnext=posnode->bnext;
	free(posnode);
	return;
}

还有一些在这里不再赘述,详见设计报告

直接展示一些运行效果图:

图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第1张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第2张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第3张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第4张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第5张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第6张图片

图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第7张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第8张图片

 图书管理系统 C语言链表实现 学校大作业功能齐全(书籍信息以及用户信息保存在附带的txt文件中)_第9张图片

总之,功能完成的很完整

最后再贴一下下载链接:

C语言链表实现图书管理系统功能齐全(书籍信息以及用户信息保存在附带的txt文件中)-C文档类资源-CSDN文库

你可能感兴趣的:(数据结构,c语言,链表)