C語言開發(fā)圖書館管理系統(tǒng)

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é)生頁

管理員端

管理員頁

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容