c語言:圖書館管理系統(含續借,清欠款操作)
阿新 • • 發佈:2019-02-11
/***************************************** ** 圖書館管理系統 ** ** 登入介面: ** ** 1.學生登入 ** ** 2.管理員登入 ** ** 3.註冊新使用者 ** ** 4.退出 ** ** 管理員登入: ** ** 1.新增書籍 ** ** 2.刪除書籍 ** ** 3.書籍資訊更改 ** ** 4.查詢書籍 ** ** 5.檢視已註冊使用者列表 ** ** 6.還欠款操作 ** ** 7.返回登入介面 ** ** 普通使用者登入: ** ** 1.檢視已借書籍 ** ** 2.借閱書籍 ** ** 3.歸還書籍 ** ** 4.檢視所有書籍 ** ** 5.續借 ** ** 6.返回登入介面 ** ******************************************/
/**************** main函式 ****************/ void main(){ char a; book Lb; stu Ls,s; man Lm,m; Lb = Init_Book(Lb); Ls = Stu_Table(Ls); //初始化學生連結串列 Lm = Man_Table(Lm); //初始化管理員連結串列 Select_Options(); scanf("%c",&a); //使用char型別,這樣輸入字母不會死迴圈 while(a != '4'){ switch(a){ //學生登入 case '1':s = Stu_Login(Ls); if(s == NULL){ printf("使用者名稱或密碼錯誤!╮( ̄▽ ̄)╭\n"); printf("是否註冊新使用者?(1.是 2.否)\n"); int z; while(true){ scanf("%d",&z); if(z == 1) { Ls = Guidein(Ls); break; } if(z == 2) break; else printf("您的輸入有誤,請重新輸入!\n"); } }else{ Stu_Menu(Lb,Ls,s); } break; //管理員登入 case '2':m = Man_Login(Lm); if(m == NULL){ printf("帳號或密碼錯誤!╮( ̄▽ ̄)╭\n\n"); }else{ Man_Menu(Lb,m,Ls); } break; //註冊新使用者 case '3':Ls = Guidein(Ls);break; case 10:break; default:printf("input error!\n"); } if(a == 10) scanf("%c",&a); //如果是回車,就繼續錄入,不顯示選單 else{ Select_Options(); scanf("%c",&a); } } }
上面只貼上了部分程式碼,執行結果如下:
1.登入介面顯示
2.學生登入
a.因為沒有註冊,所以出現登入失敗的情況:
不慌,選擇註冊:
輸入姓名、回車
輸入學號,也就是待會兒要使用的使用者名稱(這裡用的是111)
輸入密碼(這裡也設定為111)
確認密碼(如果兩次輸入不一致會報錯並讓你重新輸入密碼,下面有演示)
b.這個時候就可以登入啦
c.檢視所有書籍(檢視書籍列表,這裡預設初始化有3本)
d.借閱書籍(這裡借閱3本)
e.檢視已借書籍(為方便測試,我預設設定的是超時1秒罰款0.5元)
f.這裡再次檢視所有書籍
g.歸還書籍(如果尚未超期則歸還成功,如果超期狀態無法自助歸還)
h.超期狀態無法借閱書籍
i.續借(如果無欠款續借成功,這裡看有欠款的)
3.管理員登入(管理員已設定好,直接登入)
a.檢視已註冊使用者列表
b.檢視所有書籍
c.新增書籍
d.刪除書籍(書籍尚未被借閱)
e.修改書籍資訊(書籍尚未被借閱)
f.如果書籍已經被借閱,則無法刪除或修改書籍
g.清欠款操作