中北大学
数据结构
课 程 设 计 说 明 书
学生姓名:
周西财
学号:
0706054236
学 院 : 电子与计算机科学技术学院
专 业 :
软件工程
题 目 : 图书借阅管理系统
成 绩
指导教师
周海英
2009 年6 月24 日
1 设计目的
通过设计掌握数据结构课程中学到的基本理论和算法并综合运用于理论实际问题中 ,它
是理论与实践结合的重要过程.设计要求学会对实际问题定义相关数据结构,并采用恰当的设
计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯.
人工管理图书的手续繁索、效率低下给具有强烈时间观念的管理人员带来了诸多不便,
学校图书馆缺少一套完善的图书管理软件,为了对图书的管理方便,因此必须开发图书管理
系统。
2. 设计内容和要求
内容:
1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
2)会员管理(增加会员、查询会员、删除会员、借书信息);
要求:
根据设计内容建立相关数据的动态链表存储结构
3.本设计所采用的数据结构
采用两条单链表,其头结点分别为 head、mhead 的全局变量来存储图书信息和会员信息。
其定义数据结构如下:
/*图书信息结构体*/
typedef struct elem
{
char bookid[5];
char bookname[50];
char bookauthor[20];
char bookmark[2];
char memberid[4];
}elemtype;
/*图书链表结点结构体*/
typedef struct node
{
elemtype data;
struct node *next;
}lnode,*linknode;
/*会员信息结构体*/
typedef struct memberelem
{
char memberid[4];
char membername[20];
}memberelemtype;
/*会员链表结点结构体*/
typedef struct membernode
{
memberelemtype data;
struct membernode *next;
}mlnode,*mlinknode;
4.功能模块详细设计
4.1 详细设计思想
系统启动时,通过读取文件完成对以 head、mhead 为表头的单链表完成初始化。初始化
后系统进入系统菜单,其运行界面如下:
当选择功能 1 时,进入图书管理模块,其运行界面如下:
图书借阅管理系统
图书管理模块 会员管理模块
增
加
图
书
查
询
图
书
删
除
图
书
图
书
借
阅
还
书
增
加
会
员
查
询
会
员
借
书
信
息
删
除
会
员
当选择功能 2 时,进入会员管理模块,其运行界面如下:
为了实现上述功能,特定义以下函数原型,具体代码参见源代码部分:
void main() /*入口*/
void initallinfo() /*初始化图书和会员链表*/
void welform() /*系统总菜单*/
void printbookinfo(linknode head) /*输出图书信息函数*/
void addbook() /*增加图书模块*/
void select() /*按编号查询图书*/
void delete() /*按编号删除图书*/
void borrow() /*借阅图书*/
void returnbook() /*还书*/