資源簡介
數據結構課程設計
圖書管理系統
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
- 上一篇:求眾數的兩種方法
- 下一篇:fcgi頭文件及lib庫
評論
共有 條評論