C語言開發(fā)圖書館管理系統(tǒng)
功能框架如下
管理系統(tǒng)主要使用了以下操作
單向鏈表的創(chuàng)建、增添、刪除、遍歷、查找、排序。 鏈表寫入文件、從文件讀取數(shù)據(jù)至鏈表。 密碼的隱式輸入、輸入檢測。 注冊生成隨機(jī)賬號 賬號登錄檢測 賬號找回密碼 密碼簡單加密存儲(chǔ)至文件,解密加載至鏈表
主函數(shù)
#include?"head.h"
intmain(void)
{
????Book_head=(Book *)malloc(sizeof(Book));
????Student_head=(Student *)malloc(sizeof(Student));
????Manager_head=(Manager *)malloc(sizeof(Manager));
????Book_head->next=Book_load();
????Student_head->next=Student_load();
????Manager_head->next=Manager_load();
????charma='1';
????while(ma!='0')
????{
????????show_main();
????????printf("\t\t\t:");
????????scanf("%c",&ma);
????????while(getchar()!='\n');
????????switch(ma)
????????{
????????????case'1':Student_Port();break;?//學(xué)生端
????????????case'2':Manager_Port();break;?//管理員端
????????????case'0':Massage_Save();break;?//退出程序,保存鏈表數(shù)據(jù)至文件中
????????????default:printf("\t\t輸入錯(cuò)誤,請重新輸入\n");Sleep(3000);break;
????????}
????}
????system("PAUSE");
????return0;
}
頭文件里面得事先聲明三個(gè)鏈表(分別是學(xué)生鏈表、書籍鏈表、管理員鏈表)的頭結(jié)點(diǎn),在main函數(shù)里面首先三行是為三個(gè)變量分配內(nèi)存,然后三行是從文件里面加載信息至鏈表(相當(dāng)于創(chuàng)建鏈表)把創(chuàng)建的鏈表賦值給每個(gè)節(jié)點(diǎn)的next,若文件為空,說明無信息,加載信息的函數(shù)返回NULL,next賦值為NULL,具體函數(shù)請下載源代碼查看。小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 六二七,零一二,四六四 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
以下為各個(gè)功能的具體注意事項(xiàng)
學(xué)生端
登錄
登錄端口先進(jìn)行賬號輸入,然后輸入密碼,密碼輸入長度確定在一定范圍內(nèi),密碼格式不正確提示重新輸入,輸入密碼時(shí)應(yīng)注意,密碼不能顯示(顯示為*),第二就是要實(shí)現(xiàn)刪除錯(cuò)誤輸入的功能,其次先檢測賬號是否存在,若不存在,直接提示賬號不存在,返回上一層,否則,檢測密碼的正確性,如果不正確,記錄錯(cuò)誤次數(shù),錯(cuò)誤三次將退出系統(tǒng)。 注冊
注冊需要這注意的也是密碼的問題,密碼的長度,錯(cuò)誤次數(shù)檢測,相關(guān)密碼的操作可以寫一個(gè)函數(shù),多次調(diào)用。 找回密碼
先檢測賬號是否存在,不存在提示無此賬號,退出上一層,否則根據(jù)密碼輸入的要求輸入密碼檢測即可。
管理員端
登錄和學(xué)生的登錄一樣,密碼的驗(yàn)證都類似,只不過管理員賬號是固定的,直接在文件里面寫著,每次進(jìn)入程序時(shí),就從文件里面讀到鏈表。
文件寫入和讀取
這個(gè)就是可以根據(jù)自己的想法對密碼加密后存入文件,讀取的時(shí)候再以自己的規(guī)則解密就行,可以參考我的簡單的加密。
鏈表
1. 學(xué)生鏈表
typedef struct stu{
????charstu_acc[10];?//學(xué)生賬號
????charstu_passw[15];?//學(xué)生密碼
????charstu_find_question[30];?//密保問題
????charstu_find_passw[15];?//密保問題密碼???
????charstu_num[10];?//學(xué)生學(xué)號
????charstu_name[20];?//學(xué)生姓名
????charstu_tel[15];?//學(xué)生電話
????charstu_bor_book[10][20];?//所借書號
????struct stu *next;?//下位學(xué)生
}Student;
2.書籍鏈表
typedef struct book{
????charbook_num[10];?//書號
????charbook_name[20];?//書名
????charbook_at_name[30];?//作者名
????charbook_cp_name[30];?//出版社
????floatbook_price;?//價(jià)格
????intbook_rest;?//庫存
????struct book *next;?//下本書
}Book;
3.管理員鏈表
typedef struct manager{
????charman_name[15];?//管理員姓名
????charman_acc[10];?//管理員賬號
????charman_passw[15];?//管理員密碼
????struct manager *next;?//下個(gè)管理員
}Manager;
函數(shù)
voidshow_main(void);?//主界面
voidshow_stu(void);?//學(xué)生端
voidshow_stu_enter(void);?//學(xué)生頁
voidshow_manager(void);?//管理員端
voidshow_manager_enter(void);?//管理員頁
Book *Book_load(void);?//將書籍文件中的信息加載至?xí)湵?/p>
Student *Student_load(void);?//將學(xué)生文件中的信息加載至學(xué)生鏈表
Manager *Manager_load(void);?//將管理員文件的信息加載至管理員鏈表
voidRandStr(intl,char* ch);?//隨機(jī)獲取一定長度字符串
voidStudent_Port(void);?//學(xué)生端口
voidManager_Port(void);?//管理員端口
voidStudent_Login(void);?//學(xué)生端登錄
voidStudent_Register(void);?//學(xué)生注冊賬號
voidFind_Password(void);?//學(xué)生找回密碼
voidPassword_Input(char*Password);?//輸入密碼函數(shù)
intPassword_Text(char*Password_temp);?//檢測密碼
Student *Find_Num(char*Stu_num);?//按學(xué)號查找學(xué)生
intPassword_Text_Find(char*Password);?//密保問題密碼驗(yàn)證
voidStu_Borrow(Student *Stu_num);?//學(xué)生借書
voidStu_Back(Student *Stu_num);?//學(xué)生還書
voidFind_Book(void);?//查找書
voidFind_Theborrow(Student *Stu_num);?//學(xué)生查看所借書
voidChange_Stupassword(Student *Stu_num);?//修改密碼
Book *Find_BookofName(char*Book_num);?//按書號查找書
voidPrint_Book(void);?//打印書單
Book *Book_exit(char*Book_num);?//尋找該書是否存在
intIfborrow(Student *Stu_num,char*Book_num);?//查詢學(xué)生是否結(jié)果此書
voidPrint_Borbook(Student *Stu_num);?//打印所借書街
voidBake_Book(Student *Stu_num,char*Book_num);//還書具體操作
voidManager_Login(void);?//管理員登錄
Manager *Manager_check(char*Manager_num);?//核對管理員賬號
voidManager_Add_Book(void);?//管理員上架書籍
voidManager_Down_Book(void);?//管理員下架書籍
voidManager_Look_Book(void);?//管理員瀏覽書架
voidManager_Manager_Stu(void);?//管理員管理學(xué)生
voidManager_Change_Password(Manager *Man_num);//管理員修改密碼
voidLookofnum(void);?//編號升序查看書架
voidLookofrest(void);?//庫存升序查看書架
voidLookofprice(void);?//價(jià)格升序查看
voidManager_Print_Book(void);?//管理員打印書架
voidManager_Add_Book1(void);?//增加庫存
voidManager_Add_Book2(void);?//上架新書
voidSave_Book(void);?//保存書籍鏈表至文件
voidSave_Student(void);?//保存學(xué)生鏈表至文件
voidSave_Manger(void);?//保存管理員鏈表至文件
voidMassage_Save(void);?//所有信息保存至文件
voidManager_Look_Stu(void);?//管理員查看學(xué)生名單
voidManager_Return_Stu(void);?// 管理員強(qiáng)制學(xué)生還書
voidManager_Del_Stu(void);?// 刪除學(xué)生號碼并歸還所有書籍
Student *Find_Stu(char*Stu_Stuty);?//按學(xué)號查學(xué)生
文件目錄
源代碼
源代碼下載
注:管理員賬號只有兩個(gè)
賬號:{{931942280:0}} 密碼{{123456:0}}
賬號:{{10861646:0}} 密碼{{123456:0}}
主頁面
學(xué)生端
登錄成功進(jìn)入學(xué)生頁
管理員端
管理員頁