资源简介

数据结构课程设计 图书管理系统 C语言编写

资源截图

代码片段和文件信息

#include
#include
#include
//#include
#include
//#include
#include

//函数名: atoi  功能: 把字符串转换成长整型数 



//******** 定义一些全局变量 *********
#define N 10000 
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
typedef char *string ;

#define m 3 //B-树的阶,设为3

//************ 借阅者的存储结构体 ************
typedef struct User{
unsigned int number; //借书证号码
int year;
int month;
int day;  //借书时间
int dyear;  //截至日期的年
int dmonth;   //截至日期的月
int dday;   //截至日期的日
struct User *next;  //下一个借阅者
}User; //定义用户的的信息
//********** 书的存储结构体 *******************
 struct Book{
unsigned int key;     //图书的书号
    char bname[20]; // 书名
    char writter[20]; // 著者 
    unsigned int left;     // 现存量
    unsigned int total;     // 总存量
User *user;  //借阅该书的人
}b[N];  //定义书的信息
//********** B- 树的存储结构 *******************
typedef Book KeyType;
typedef struct BTNode{
int keynum; //结点中关键字个数,即结点的大小
struct BTNode *parent; //指向双亲结点
KeyType key[m + 1];  //关键字向量,0 号单元未用
struct BTNode *ptr[m + 1]; //子树指针向量
}BTNode*BTree;
//************ 查找结果的存储结构体 ***********
typedef struct{
BTNode *pt;  //指向找到的结点
  int i;  //1……m,在结点中的关键字序号
int tag; //B- 树的查找结果类型
}Result;
BTree root = NULL; //树根
//************* 函数声明部分 *******************
//输入书的具体信息
void InBookMess(KeyType &book);
//输入书的关键字
void InBookKey(KeyType &book);
//显示书的具体信息如果书存在就显示
void ShowBookMess(Book book);
//显示一个结点中所包含的全部信息显示单个结点
void ShowBTNode(BTree p);
//显示以层次的方法显示树的结点
void display(BTree T);
//复制关键字的信息
void KeyTypeCopy(KeyType &bakKeyType k);
//查找在某个结点中的位置
int Search(BTree p KeyType K);
//查找
Result SearchBTree(BTree T KeyType K);
//插入
void Insert(BTree &q int i KeyType x BTree ap);
//分裂结点
void split(BTree &q int s BTree &ap);
//生成一个新的结点
void NewRoot(BTree &T BTree p KeyType x BTree ap);
//将书的信息插入到 B- 树中
Status InsertBTree(BTree &T KeyType K);
//删除结点通过关键字 k 删除
Status DeleteBTree(BTree &TKeyType k);
//删除树结点
Status DeleteBT(BTree &TKeyType k);
//与右最左结点交换
void exchange(BTree &Tint i);
//用户借阅
Status BorrowBook(BTree TKeyType k);
//注销对借阅者的登记,改变该书的显存量
Status ReturnBook(BTree TKeyType k);
//查找作者的全部书籍
Status searchAuthorB(BTree T);
void temp(BTree T);
void save(BTree p);

/******************************************************************************************************************************/



void save(BTree p)//保存模块程序


    
FILE *fp;//定义文件指针
if ((fp=fopen(“book.txt““wb“))==NULL )//判断文件的存在,若非空,将fp指向filename中记载的文件名的文件
{
printf(“创建文件失败!\n\n“);//打印出错提示
getchar();
return;
}


 

 for(int i = 1; i <= p->keynum; i++){
fprintf(fp“%d %s %s %d %d \n“p->key[i].keyp->key[i].bnamep->key[i].writterp->key[i].leftp->key[i].total);

}

fclose(fp);//关闭文件

}


void temp(BTree T)
{
int i;
if(T) { 

save(T); //保存这个结点的全部值

for(i=0; i<=T->keynum; i++){ 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          0  2010-01-11 09:43  图书管理系统\图书管理系统\book.txt

     文件     229454  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\libraly.exe

     文件     259780  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\libraly.ilk

     文件      53181  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\libraly.obj

     文件     231280  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\libraly.pch

     文件     484352  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\libraly.pdb

     文件      33792  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\vc60.idb

     文件      45056  2010-01-10 21:45  图书管理系统\图书管理系统\Debug\vc60.pdb

     文件      24387  2008-12-31 10:45  图书管理系统\图书管理系统\libraly.cpp

     文件       3413  2010-01-10 21:45  图书管理系统\图书管理系统\libraly.dsp

     文件        522  2010-01-10 21:46  图书管理系统\图书管理系统\libraly.dsw

     文件      33792  2010-01-10 21:46  图书管理系统\图书管理系统\libraly.ncb

     文件      48640  2010-01-10 21:46  图书管理系统\图书管理系统\libraly.opt

     文件        749  2010-01-10 21:45  图书管理系统\图书管理系统\libraly.plg

     目录          0  2010-01-10 21:45  图书管理系统\图书管理系统\Debug

     目录          0  2010-01-10 21:46  图书管理系统\图书管理系统

     目录          0  2010-01-11 21:45  图书管理系统

----------- ---------  ---------- -----  ----

              1448398                    17


评论

共有 条评论