数据结构实训报告样本

发布时间 : 星期六 文章数据结构实训报告样本更新完毕开始阅读

吉林工业职业技术学院 数据结构实训

希望建立一个图书馆图书信息管理系统,是为了解决了人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平。该系统的建立不但给管理者带来了方便,也节省了工作时间从而提高了工作效率。

在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。这里把系统的层次划分为了三个部分:一个自由态:即面向任何用户的界面,提供登录功能,以便不同身份的用户登录子系统;一个是一般用户态:即图书有服务子系统;还有一个是管理员界面:提供图书的管理和维护功能。对于不同子系统之间的功换,采用了登录功能和用户注销功能。系统划分了子系统后,下一步的工作是继续划分子系统的小模块。先考虑在进入子系统时应该做什么,进入系统之后又应该做什么,提供那些服务等。例如,对于图书信息服务子系统,在用户进入时首先得调用相关数据库表,找出用户的图书借阅情况;进入系统后,子系统得提供图书查询、图书借阅和还书功能。另外,针对本系统的特殊情况,同时也考虑系统的可移植性,在系统中增加了数据库路径的维护部分。最后,考虑到系统的安全性,还在系统中特别增加了“加密界面”的功能。

【设计方案】本数据库管理系统主要由图书检索、图书管理、数据维护、图书统计、打印输出、系统维护六大模块组成, 如图1 所示。各模块功能如下:

1、主控模块主控模块的功能是控制各个分支模块,它是实现各模块功能的总控制台 2、图书检索模块是图书管理系统的重要模块之一,是读者快速查询图书的途径 本模块的功能是按书名、书号、作者、出版社、图书分类查询

数据维护模块是由图书管理员控制的模块,它由增加、修改和删除读者,增加、修改删除图书,浏览修改读者、浏览修改图书等程序组成。 在软件设计时考虑到读者编号、书名、书号是唯一的,因此,在修改读者或图书中,读者记录或图书记录一经登记“读者编号”和“姓名”便不能修改,在删除读者或图书时只要读者有借出图书未还或库存图书原有数量与现有库存量不符便不能删除。

5、数据统计模块由读者统计、图书统计、借出图书分类统计、到期未归还图书读者统计几部分组成

我们小组的信息系统开发课程设计题目是:图书管理系统开发。系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。

12

吉林工业职业技术学院 数据结构实训

本系统主要实现对图书馆信息的管理,主要功能为管理有关读者,书籍,借阅和管理者的信息等。本系统结构分为读者信息管理模块,书籍信息管理模块,借阅信息管理模块,管理者信息管理模块。读者信息管理部分有两方面的功能,可以浏览读者的信息,可以对读者信息进行维护。书籍信息管理可以浏览书籍的信息,可以对书籍信息进行维护。借阅信息管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。管理者信息管理可以显示数据库中管理者的情况,可以对管理者信息进行维护。可见,本系统并不复杂,主要解决的问题是利用关键字对数据库进行查询。

【详细设计】本程序源代码如下: /*源程序*/

/* Note:Your choice is C IDE */ /* Note:Your choice is C IDE */ #include #include #include #include

struct books_list {

char author[20]; /*作者名*/ char bookname[20]; /*书名*/ char publisher[20]; /*出版单位*/ char pbtime[15]; /*出版时间*/ char loginnum[10]; /*登陆号*/ float price; /*价格*/ char classfy[10]; /*分类号*/ struct books_list * next; /*链表的指针域*/ };

struct books_list * Create_Books_Doc(); /*新建链表*/ void InsertDoc(struct books_list * head); /*插入*/

13

吉林工业职业技术学院 数据结构实训

void DeleteDoc(struct books_list * head , int num);/*删除*/ void Print_Book_Doc(struct books_list * head);/*浏览*/ void search_book(struct books_list * head); /*查询*/ void info_change(struct books_list * head);/*修改*/ void save(struct books_list * head);/*保存数据至文件*/ /*浏览操作*/

void Print_Book_Doc(struct books_list * head) {

struct books_list * p;

if(head==NULL || head->next==NULL) /*判断数据库是否为空*/ {

printf(\ ━━━━ 没有图书记录! ━━━━\\n\\n\ return; } p=head;

printf(\┏━━━┳━━━┳━━━┳━━━┳━━━━┳━━━┳━━━┓\\n\ printf(\┃登录号┃书名 ┃ 作者 ┃出版单位┃出版时间┃分类号┃价格┃\\n\ printf(\┣━━━╋━━━╋━━━╋━━━╋━━━━╋━━━╋━━━┫\\n\ /*指针从头节点开始移动,遍历至尾结点,依次输出图书信息*/ while(p->next!= NULL) {

p=p->next;

printf(\┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\\n\/*循环输出表格*/

}

printf(\┗━━━┻━━━┻━━━┻━━━┻━━━━┻━━━┻━━━┛\\n\ printf(\}

/*删除操作*/

14

吉林工业职业技术学院 数据结构实训

void DeleteDoc(struct books_list * head) {

struct books_list *s,*p; /*s为中间变量,p为遍历时使用的指针*/ char temp[20];

int panduan; /*此变量用于判断是否找到了书目*/ panduan=0; p=s=head;

printf(\ [请输入您要删除的书名]:\ scanf(\ /*遍历到尾结点*/ while(p!= NULL) {

if(strcmp(p->bookname,temp)==0) {

panduan++; break; } p=p->next; }

if(panduan==1) {

for(;s->next!=p;) /*找到所需删除卡号结点的上一个结点*/ {

s=s->next; }

s->next=p->next; /*将后一节点地址赋值给前一节点的指针域*/ free(p);

printf(\ ━━━━ 删除成功! ━━━━\\n\ }

else /*未找到相应书目*/ {

printf(\ 您输入的书目不存在,请确认后输入!\\n\

15

联系合同范文客服:xxxxx#qq.com(#替换为@)