程序設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第1頁
程序設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第2頁
程序設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第3頁
程序設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第4頁
程序設(shè)計(jì)報(bào)告圖書管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

..>題目:圖書管理系統(tǒng)一、課題內(nèi)容基于角色管理的簡易圖書管理系統(tǒng)實(shí)現(xiàn)功能:1.角色管理。設(shè)有圖書管理員和普通用戶兩類角色,他們?cè)O(shè)有不同的權(quán)限,各類用戶進(jìn)入系統(tǒng)時(shí)需先登錄。管理員角色,圖書管理員可對(duì)圖書信息的錄入、刪除、及修改、統(tǒng)計(jì);3.普通用戶角色,普通用戶可借閱圖書、歸還圖書。提高要求:使用文本文件存儲(chǔ)各類信息,界面友好,有出錯(cuò)處理。實(shí)現(xiàn)語言:C語言或C++語言二、課題要求1.熟練運(yùn)用C或C++課程所學(xué)習(xí)的理論和概念。2.熟練運(yùn)用循環(huán)構(gòu)造、分支構(gòu)造、順序構(gòu)造。3.熟練掌握函數(shù)的定義和調(diào)用方法。4.熟悉對(duì)于文件的翻開、關(guān)閉和文件的讀寫。5.熟練掌握對(duì)于C中構(gòu)造體或C++中類的操作。6.按照分析、設(shè)計(jì)、編碼、調(diào)試和測試的軟件開發(fā)過程獨(dú)立完成管理系統(tǒng)設(shè)計(jì)。三、需求分析1.該程序可實(shí)現(xiàn)對(duì)于普通用戶(即學(xué)生)和管理員兩種角色對(duì)于圖書管理系統(tǒng)的操作。2.普通用戶(即學(xué)生)登陸后可對(duì)圖書進(jìn)展查詢、借閱、歸還。3.管理員登陸后可對(duì)圖書進(jìn)展增加、刪除、修改、統(tǒng)計(jì),以及對(duì)圖書館中職員和學(xué)生的信息統(tǒng)計(jì),方便對(duì)學(xué)生補(bǔ)辦借書卡以及人員統(tǒng)計(jì)的管理。4.該程序中的查詢圖書功能有按書名和作者兩類查找方式,以滿足不同用戶的需要。四、概要設(shè)計(jì)采用模塊化的程序設(shè)計(jì)方法,即將較大的任務(wù)按照一定的原則分為一個(gè)個(gè)較小的任務(wù),然后分別設(shè)計(jì)各個(gè)小任務(wù)。1.模塊功能說明:(1).圖書查詢:可以通過對(duì)書名或作者兩類方式的查找,查找到所要查找的書籍。(2).圖書借閱:進(jìn)入該模塊時(shí)需要普通用戶登錄,即學(xué)生輸入自己的卡號(hào),輸入正確可進(jìn)入借閱模塊,輸入錯(cuò)誤則進(jìn)展返回。(3).管理員系統(tǒng):進(jìn)入管理員模式,進(jìn)入該模塊時(shí)需要管理員登陸,即輸入管理員個(gè)人密碼,進(jìn)入后可以對(duì)圖書進(jìn)展增加、刪除、修改、統(tǒng)計(jì),以及對(duì)圖書館內(nèi)職工和學(xué)生的信息管理。(4).圖書歸還:進(jìn)入該模塊時(shí)需要普通用戶登陸,即學(xué)生輸入自己的卡號(hào),輸入正確可進(jìn)入還書模塊,輸入錯(cuò)誤則進(jìn)展返回。(5).退出系統(tǒng):選擇該選項(xiàng),自動(dòng)退出圖書管理系統(tǒng)。2.描述算法的流程圖:(1)主流程:圖書管理系統(tǒng),進(jìn)入后有查詢圖書、借閱圖書、歸還圖書等功能,還可以進(jìn)入管理員模式,或者退出系統(tǒng)。其中,借閱圖書和歸還圖書是針對(duì)普通用戶〔學(xué)生〕設(shè)立的,進(jìn)入時(shí)需要登錄,即輸入學(xué)生的借書卡卡號(hào)。在管理員模式下,只有指定的管理員允許進(jìn)入,進(jìn)入前需先登錄,即輸入管理員密碼,進(jìn)入后可對(duì)圖書進(jìn)展增、刪、查、改,同時(shí)可以實(shí)現(xiàn)對(duì)管理員和學(xué)生的信息管理。查詢圖書查詢圖書退出系統(tǒng)按書名查找按作者查找增加圖書刪除圖書修改圖書書籍統(tǒng)計(jì)學(xué)生信息管理管理員信息管理返回主菜單圖書管理系統(tǒng)借閱圖書〔用戶進(jìn)入〕歸還圖書〔用戶進(jìn)入〕管理員系統(tǒng)〔管理員進(jìn)入〕(2)各主要模塊流程:=1\*GB3①普通用戶模式下的還書功能:步驟:=1\*alphabetica.輸入學(xué)生卡號(hào);=2\*alphabeticb.系統(tǒng)通過文件讀取卡號(hào)記錄;=3\*alphabeticc.判斷卡號(hào)是否存在,卡號(hào)存在則跳轉(zhuǎn)d,否則跳轉(zhuǎn)到f;=4\*alphabeticd.輸入歸還書籍;=5\*alphabetice.選擇是否繼續(xù)歸還,是則跳轉(zhuǎn)d,否則跳轉(zhuǎn)f;f.完畢,進(jìn)展返回。NNY開場輸入卡號(hào)讀取卡號(hào)記錄-卡號(hào)存在輸入歸還書籍NNY開場輸入卡號(hào)讀取卡號(hào)記錄-卡號(hào)存在輸入歸還書籍是否繼續(xù)歸還Y完畢圖2.普通用戶模式下的還書功能=2\*GB3②普通用戶模式下的借書功能:步驟:a.輸入卡號(hào); b.系統(tǒng)通過文件讀取卡號(hào)記錄; c.判斷卡號(hào)是否存在,卡號(hào)存在則跳轉(zhuǎn)d,否則跳轉(zhuǎn)h d.輸入借閱書籍; e.判斷該書是否借出,借出則跳轉(zhuǎn)f,否則跳轉(zhuǎn)g; f.提示借書失敗; g.提示借書成功; h.完畢,進(jìn)展返回。YY開場輸入卡號(hào)讀取卡號(hào)記錄-卡號(hào)存在輸入借閱書籍該書是否借出YN借書失敗借書成功完畢N圖3.普通用戶模式下的借書功能=3\*GB3③管理員模式下的錄入書籍功能:步驟:a.輸入錄入書籍的相關(guān)信息; b.標(biāo)記該書是否借出;c.選擇是否錄入下一本,假設(shè)選擇是,跳轉(zhuǎn)到a,假設(shè)選擇否,跳轉(zhuǎn)到d;d.完畢,進(jìn)展返回。YYN輸入所錄入書的相關(guān)信息標(biāo)記是否借出錄入下一本開場完畢圖4.管理員模式下的錄入書籍功能=4\*GB3④管理員模式下的刪除書籍功能:步驟:a.輸入要?jiǎng)h除的書籍; b.選擇是否真的要?jiǎng)h除該書籍,假設(shè)選擇是,則跳轉(zhuǎn)c,否則跳轉(zhuǎn)d;c.刪除書籍;d.完畢,進(jìn)展返回。開場開場輸入要?jiǎng)h除的書籍是否真的要?jiǎng)h刪除完畢YN圖5.管理員模式下的刪除書籍功能=5\*GB3⑤管理員模式下的修改書籍功能:步驟:a.輸入所要修改的書名;b.系統(tǒng)顯示該書信息;c.輸入所要修改的內(nèi)容;d.選擇修改序號(hào)、修改書名、修改作者,進(jìn)展相應(yīng)修改;e.完畢,進(jìn)展返回。開場開場輸入所要修改的書名自動(dòng)顯示該書信息輸入所要修改的內(nèi)容修改序號(hào)修改書名修改作者完畢圖6.管理員模式下的修改書籍功能=6\*GB3⑥管理員模式下的書籍統(tǒng)計(jì)功能:步驟:a.系統(tǒng)自動(dòng)對(duì)書籍和數(shù)量賦初值;b.判斷是否讀入到文件尾部,假設(shè)讀到尾部則跳轉(zhuǎn)到f,否則跳轉(zhuǎn)到c;c.輸出圖書信息; d.書籍?dāng)?shù)量和系統(tǒng)自動(dòng)進(jìn)展加一操作;e.判斷是否讀入到文件尾部,假設(shè)讀到尾部則跳轉(zhuǎn)到f,假設(shè)否則跳轉(zhuǎn)到c; f.輸出書籍的本數(shù);g.完畢,進(jìn)展返回。NN開場i=0n=0fread(&book[i],sizeof(structbook),1,fp)!=0輸出圖書信息n=n+1i++輸出共有n本書完畢:YY圖7.管理員模式下的書籍統(tǒng)計(jì)功能=7\*GB3⑦管理員模式下的借書卡管理功能:步驟:a.選擇申請(qǐng)新卡、刪除卡號(hào)、借書統(tǒng)計(jì)、卡號(hào)統(tǒng)計(jì),進(jìn)展相應(yīng)操作;b.完畢,進(jìn)展返回。開場開場申請(qǐng)新卡刪除卡號(hào)借書統(tǒng)計(jì)卡號(hào)統(tǒng)計(jì)完畢圖8.管理員模式下的借書卡管理功能五、源程序代碼#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineSTACK_INIT_SIZE10structstudent/*定義學(xué)生類型,用于存放借出的書籍*/{ intcarnum;/*學(xué)生借書卡卡號(hào)*/ charlendbook[10];/*借書書名*/}student[1000];structemploy/*定義管理員類型*/{ intemploynum;/*管理員序號(hào)*/ charemployname[15];/*管理員姓名*/ intemployage;/*管理員年齡*/ charemployse*[2];/*管理員性別*/ charemployleve[10];/*管理員學(xué)歷*/ longintemploytage;/*管理員工資*/}employ[50];structbook/*定義書的類型*/{ intbooknum;/*書的序號(hào)*/ charbookname[10];/*書名*/ charbookcreat[10];/*書的作者*/ intturefalse;/*用于借書和還書模塊判斷一本書是否借出的條件*/}book[1000];structcar/*借書卡的數(shù)據(jù)類型*/{ intcarnum;/*卡號(hào)*/ charstudentname[10];/*學(xué)生姓名*/ intstudentclass;/*學(xué)生班級(jí)*/}car[100];huanbook()/*還書函數(shù)*/{ FILE*fp,*fp2;/*定義兩個(gè)文件指針,fp2用于修改數(shù)據(jù)時(shí)設(shè)立臨時(shí)文件用,防止數(shù)據(jù)遭破壞*/ inti,n; intcarnum; charlendbook[10]; printf("請(qǐng)你輸入你的卡號(hào)\n"); scanf("%d",&carnum); fp=fopen("car.t*t","r");/*讀取卡號(hào)記錄*/ for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++)/*for循環(huán)判斷卡號(hào)是否存在*/ { if(car[i].carnum==carnum)/*卡號(hào)存在,進(jìn)入下一循環(huán)*/ { n=i; fclose(fp); printf("請(qǐng)輸入你要還的書的名字\n"); scanf("%s",lendbook); fp=fopen("record.t*t","r"); for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++)/*判斷是否借閱了輸入的書*/ { if(strcmp(student[i].lendbook,lendbook)==0)/*借閱了該書,進(jìn)入下一循環(huán),否則出錯(cuò)顯示*/ { fclose(fp); fp=fopen("record.t*t","r"); fp2=fopen("bookl.t*t","w"); for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++) { if(strcmp(student[i].lendbook,lendbook)==0) { continue;/*刪除還掉的書的借書記錄*/ } fwrite(&student[i],sizeof(structstudent),1,fp2);/*寫入原來沒還的書的記錄*/ } fclose(fp); fclose(fp2); fp=fopen("record.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&student[i],sizeof(structstudent),1,fp2)!=0;i++) { fwrite(&student[i],sizeof(structstudent),1,fp);/*將借書記錄信息寫回*/ } fclose(fp); fclose(fp2); fopen("bookl.t*t","w");/*清臨時(shí)文件的記錄*/ fclose(fp2); fp=fopen("book.t*t","r"); fp2=fopen("bookl.t*t","w"); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++)/*將書的記錄寫入臨時(shí)文件,防止因?yàn)樾薷男畔⑵茐囊郧暗挠涗?/ { if(i==n) { book[i].turefalse=1; fwrite(&book[i],sizeof(structbook),1,fp2);/*將還的書的原來狀態(tài)設(shè)為無人借閱的*/continue; } fwrite(&book[i],sizeof(structbook),1,fp2); } fclose(fp); fclose(fp2); fp=fopen("book.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(structbook),1,fp);/*將臨時(shí)文件寫回*/ } fclose(fp); fclose(fp2); fopen("bookl.t*t","w");/*清臨時(shí)文件*/ fclose(fp2); printf("還書完畢,按任意鍵返回\n"); getch(); system("cls"); return1; } }printf("你沒有借該書!任意鍵返回\n");/*出錯(cuò)提示*/ fclose(fp); getch(); system("cls"); return0; } }printf("無此卡號(hào)!!!按任意鍵返回\n");/*出錯(cuò)提示*/fclose(fp);getch();system("cls");}findbook()/*查詢書籍函數(shù)2*/{ FILE*fp; charbookname[10]; intture,i; fp=fopen("book.t*t","r"); printf("請(qǐng)輸入要查找的書名\n"); scanf("%s",bookname); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(bookname,book[i].bookname)==0) { if(book[i].turefalse==1) { printf("這本書的詳細(xì)資料是:%d%s%s此書現(xiàn)在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat); } else { printf("此書已借出\n"); fclose(fp); return0; } fclose(fp); returnfalse; } } printf("沒有你要查詢的書籍\n"); fclose(fp); returnfalse;}findbook1()/*查詢書籍函數(shù)1*/{ FILE*fp; charbookcreat[10]; intture,i; fp=fopen("book.t*t","r"); printf("請(qǐng)輸入你要查找的作者名\n"); scanf("%s",bookcreat); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(bookcreat,book[i].bookcreat)==0) { if(book[i].turefalse==1) { printf("這本書的詳細(xì)資料是:%d%s%s此書現(xiàn)在無人借閱\n按任意鍵返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat); } else { printf("這本書已經(jīng)有人借出\n"); fclose(fp); return0; } fclose(fp); returnfalse; } } printf("沒有你要查詢的書籍\n"); fclose(fp); returnfalse;}lendcount()/*學(xué)生借書信息函數(shù)*/{ FILE*fp; inti,n=0; fp=fopen("record.t*t","r"); for(i=0;fread(&student[i],sizeof(structstudent),1,fp)!=0;i++) { printf("卡號(hào):%d借出的書籍:%s\n",student[i].carnum,student[i].lendbook); n=n+1; } fclose(fp); printf("目前共有%d本書借出\n",n); printf("按任意鍵\n"); getch(); returnn;}chabook(){ charch5; do { printf(">>>>>>>>>>>>>>歡迎進(jìn)入圖書管理系統(tǒng)!<<<<<<<<<<<<<<\n"); printf("|1:<按書名查找>\n"); printf("|2:<按作者查找>\n"); printf("|0:<返回>\n"); printf("請(qǐng)輸入0--2\n"); scanf("%s",&ch5); switch(ch5) { case'1':system("cls");findbook();getch();break; case'2':system("cls");findbook1();getch();break; case'0':system("cls");break; default:printf("無此操作\n");getch();break; } }while(ch5!='0'); returnfalse;}lendbook()/*借書函數(shù)*/{ FILE*fp,*fp2; inti,n; intcarnum; printf("請(qǐng)你輸入你的卡號(hào)\n"); scanf("%d",&carnum); fp=fopen("car.t*t","r"); for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++) { if(car[i].carnum==carnum) { n=i; fclose(fp); printf("請(qǐng)輸入你要借閱的書的名字\n"); scanf("%s",student[n].lendbook); fp=fopen("book.t*t","r"); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { if(book[i].turefalse==0) { printf("對(duì)不起,此書已借出!\n"); fclose(fp); getch(); return; } else fclose(fp); fp=fopen("record.t*t","a+"); student[n].carnum=carnum; fwrite(&student[n],sizeof(structstudent),1,fp); fclose(fp); fp=fopen("book.t*t","r"); fp2=fopen("bookl.t*t","w"); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(book[i].bookname,student[n].lendbook)==0) { book[i].turefalse=0; fwrite(&book[i],sizeof(structbook),1,fp2); continue; } fwrite(&book[i],sizeof(structbook),1,fp2); } fclose(fp); fclose(fp2); fp=fopen("book.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(structbook),1,fp); } fclose(fp); fclose(fp2); fopen("bookl.t*t","w"); fclose(fp2); printf("借書完畢,按任意鍵返回\n"); getch(); system("cls"); return; } } printf("無此書籍!任意鍵返回\n"); fclose(fp); getch(); system("cls"); return; }}printf("你的卡號(hào)不存在!按任意鍵返回\n");fclose(fp);getch();system("cls");}carcount(){ FILE*fp; inti,n=0; fp=fopen("car.t*t","r"); for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++) { printf("第%d張卡<卡號(hào):%d:%s班級(jí):%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass); n=n+1; }fclose(fp);printf("目前共有%d本書\n",n);printf("按任意鍵\n");getch();}delcar()/*刪除借書卡函數(shù)*/{ FILE*fp,*fp2; inti; intcarnum; charchoice; fp=fopen("car.t*t","r"); fp2=fopen("bookl.t*t","w"); printf("請(qǐng)輸入你要?jiǎng)h除的卡號(hào)\n"); scanf("%d",&carnum); for(i=0;fread(&car[i],sizeof(structcar),1,fp)!=0;i++) { if(car[i].carnum!=carnum) { fwrite(&car[i],sizeof(structcar),1,fp2); } }fclose(fp);fclose(fp2);printf("是否要?jiǎng)h除該卡"<Y/N>\n");scanf("%s",&choice);if(choice=='y'||choice=='Y'){ fp=fopen("car.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&car[i],sizeof(structcar),1,fp2)!=0;i++) { fwrite(&car[i],sizeof(structcar),1,fp); } fclose(fp); fclose(fp2); fp2=fopen("bookl.t*t","w"); fclose(fp2); printf("按任意鍵返回\n"); getch(); system("cls"); return;}else{printf("按任意鍵返回\n"); getch(); system("cls"); return;}}addcar()/*增加借書卡函數(shù)*/{ FILE*fp; inti=0; fp=fopen("car.t*t","a+"); printf("請(qǐng)你輸入卡號(hào)\n"); scanf("%d",&car[i].carnum); printf("請(qǐng)你輸入學(xué)生姓名\n"); scanf("%s",car[i].studentname); printf("請(qǐng)你輸入班級(jí)\n"); scanf("%d",&car[i].studentclass); fwrite(&car[i],sizeof(structcar),1,fp); fclose(fp); printf("輸入完畢,任意鍵返回\n"); getch(); system("cls");}changemploy(){FILE*fp,*fp2;charemployname[10],choice;inti;fp=fopen("employ.t*t","r");fp2=fopen("bookl.t*t","w");printf("請(qǐng)你輸入要修改的職工的名字\n");scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(structemploy),1,fp)!=0;i++){ if(strcmp(employ[i].employname,employname)==0) { printf("你所要修改的職工的資料如下,請(qǐng)選擇你要修改的內(nèi)容\n"); printf("<職工號(hào):%d職工名:%s年齡:%d性別:%s學(xué)歷:%s工資:%d>\n",employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employse*,employ[i].employleve,employ[i].employtage); printf("2:修改職工名\n"); printf("3:修改職工年齡\n"); printf("4:修改職工工資\n"); printf("5:修改職工學(xué)歷\n"); printf("請(qǐng)輸入1-5:"); scanf("%s",&choice); switch(choice) { case'1': { printf("請(qǐng)輸入新的職工號(hào)\n"); scanf("%d",&employ[i].employnum); fwrite(&employ[i],sizeof(structemploy),1,fp2); } break; case'2': { printf("請(qǐng)輸入新的職工姓名\n"); scanf("%s",employ[i].employname); fwrite(&employ[i],sizeof(structemploy),1,fp2); } break; case'3': { printf("請(qǐng)輸入新的年齡\n"); scanf("%d",&employ[i].employage); fwrite(&employ[i],sizeof(structemploy),1,fp2); } break; case'4': { printf("請(qǐng)輸入新的職工工資\n"); scanf("%d",&employ[i].employtage); fwrite(&employ[i],sizeof(structemploy),1,fp2); } break; case'5': { printf("請(qǐng)輸入新的職工學(xué)歷\n"); scanf("%s",employ[i].employleve); fwrite(&employ[i],sizeof(structemploy),1,fp2); } default:printf("沒有這樣的操作");break; } continue; } fwrite(&employ[i],sizeof(structemploy),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("employ.t*t","w");fp2=fopen("bookl.t*t","r");for(i=0;fread(&employ[i],sizeof(structemploy),1,fp2)!=0;i++) { fwrite(&employ[i],sizeof(structemploy),1,fp); }fclose(fp);fclose(fp2);fp2=fopen("bookl.t*t","w");fclose(fp2);printf("按任意鍵返回\n");getchar();system("cls");return;}delemploy(){ FILE*fp,*fp2; inti; charemployname[10],choice; fp=fopen("employ.t*t","r"); fp2=fopen("bookl.t*t","w"); printf("請(qǐng)輸入你要?jiǎng)h除的職工名\n"); scanf("%s",employname); for(i=0;fread(&employ[i],sizeof(structemploy),1,fp)!=0;i++) { if(strcmp(employname,employ[i].employname)!=0) { fwrite(&employ[i],sizeof(structemploy),1,fp2); }}fclose(fp);fclose(fp2);printf("是否真的要?jiǎng)h除該職工信息"<Y/N>\n");scanf("%s",&choice);if(choice=='y'||choice=='Y'){ fp=fopen("employ.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&employ[i],sizeof(structemploy),1,fp2)!=0;i++) { fwrite(&employ[i],sizeof(structemploy),1,fp); } fclose(fp); fclose(fp2); fp2=fopen("bookl.t*t","w"); fclose(fp2); printf("按任意鍵返回\n"); getch(); system("cls"); returntrue;}else{ printf("按任意鍵返回\n"); getch(); system("cls"); returnfalse;}}employcount(){ FILE*fp; inti,n=0; fp=fopen("employ.t*t","r"); for(i=0;fread(&employ[i],sizeof(structemploy),1,fp)!=0;i++) { printf("第%d職工的信息如下:\n<職工號(hào):%d職工名:%s年齡:%d性別:%s學(xué)歷:%s工資:%d>\n",n+1,employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employse*,employ[i].employleve,employ[i].employtage); n++; } fclose(fp); printf("目前共有%d個(gè)職工\n",n); printf("按任意鍵返回\n");}addemploy(){ FILE*fp; charchoice='y'; inti=1; fp=fopen("employ.t*t","a+"); while(choice=='y'||choice=='Y') { printf("請(qǐng)你輸入職工號(hào)碼\n"); scanf("%d",&employ[i].employnum); printf("請(qǐng)你輸入職工名\n"); scanf("%s",employ[i].employname); printf("請(qǐng)輸入職工年齡\n"); scanf("%d",&employ[i].employage); printf("請(qǐng)你輸入性別\n"); scanf("%s",employ[i].employse*); printf("請(qǐng)你輸入職工的學(xué)歷水平\n"); scanf("%s",employ[i].employleve); printf("請(qǐng)輸入職工的工資\n"); scanf("%d",&employ[i].employtage); fwrite(&employ[i],sizeof(structemploy),1,fp); printf("是否要輸入下個(gè)職工信息"[N/Y]\n"); scanf("%s",&choice); system("cls"); }printf("按任意鍵返回\n");fclose(fp);}addbook()/*錄入書籍函數(shù)*/{ FILE*fp; inti=0; charchoice='y'; fp=fopen("book.t*t","a+"); while(choice=='y'||choice=='Y') { printf("請(qǐng)你輸入第%d本書的序號(hào)\n",i+1); scanf("%d",&book[i].booknum); printf("請(qǐng)你輸入書名\n"); scanf("%s",book[i].bookname); printf("請(qǐng)你輸入書的作者\(yùn)n"); scanf("%s",book[i].bookcreat); printf("請(qǐng)?jiān)O(shè)為1或0,1代表書還沒人借,0表示書已經(jīng)借出\n"); printf("請(qǐng)你設(shè)定書的狀態(tài)\n"); scanf("%d",&book[i].turefalse); fwrite(&book[i],sizeof(structbook),1,fp); printf("是否要輸入下本書[N/Y]\n"); scanf("%s",&choice); }fclose(fp);}bookcount()/*書籍統(tǒng)計(jì)函數(shù)*/{ FILE*fp; inti,n=0; fp=fopen("book.t*t","r"); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcreat)!=0) { printf("第%d本書<序號(hào):%d書名:%s%s狀態(tài):%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].turefalse); n=n+1; } }fclose(fp);printf("目前共有%d本書\n",n);printf("按任意鍵\n");}delbook()/*刪除書籍函數(shù)*/{ FILE*fp,*fp2; inti; charbookname[10],choice; fp=fopen("book.t*t","r"); fp2=fopen("bookl.t*t","w"); printf("請(qǐng)輸入你要?jiǎng)h除的書名\n"); scanf("%s",bookname); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(bookname,book[i].bookname)!=0) { fwrite(&book[i],sizeof(structbook),1,fp2); } }fclose(fp);fclose(fp2);printf("是否真的要?jiǎng)h除該書籍"<Y/N>\n");scanf("%s",&choice);if(choice=='y'||choice=='Y'){ fp=fopen("book.t*t","w"); fp2=fopen("bookl.t*t","r"); for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++) { fwrite(&book[i],sizeof(structbook),1,fp); } fclose(fp); fclose(fp2); fp2=fopen("bookl.t*t","w"); fclose(fp2); printf("按任意鍵返回\n"); getch(); system("cls"); return;}else{ printf("按任意鍵返回\n"); getch(); system("cls"); return;}}changebook()/*修改書籍函數(shù)*/{ FILE*fp,*fp2; charbookname[10],choice; inti; fp=fopen("book.t*t","r"); fp2=fopen("bookl.t*t","w"); printf("請(qǐng)輸入要修改的書名\n"); scanf("%s",bookname); for(i=0;fread(&book[i],sizeof(structbook),1,fp)!=0;i++) { if(strcmp(book[i].bookname,bookname)==0) { printf("你所要修改的書的資料如下,請(qǐng)選擇你要修改的內(nèi)容\n"); printf("序號(hào):〈%d〉書名:〈%s〉〈%s〉\n",book[i].booknum,book[i].bookname,book[i].bookcreat); printf("1:修改書的序號(hào)\n"); printf("2:修改書名\n"); printf("3:修改作者\(yùn)n"); printf("請(qǐng)輸入1-3:"); scanf("%s",&choice); switch(choice) { case'1': { printf("請(qǐng)輸入新的序號(hào)\n"); scanf("%d",&book[i].booknum); fwrite(&book[i],sizeof(structbook),1,fp2); } break; case'2': { printf("請(qǐng)輸入新的書名\n"); scanf("%s",book[i].bookname); fwrite(&book[i],sizeof(structbook),1,fp2); } break; case'3': { printf("請(qǐng)輸入新的作者\(yùn)n"); scanf("%s",book[i].bookcreat); fwrite(&book[i],sizeof(structbook),1,fp2); } break; default:printf("沒有這樣的操作");break; } continue; } fwrite(&book[i],sizeof(structbook),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("book.t*t","w");fp2=fopen("bookl.t*t","r");for(i=0;fread(&book[i],sizeof(structbook),1,fp2)!=0;i++){ fwrite(&book[i],sizeof(structbook),1,fp);}fclose(fp2);fp2=fopen("bookl.t*t","w");fclose(fp2);printf("按任意鍵返回\n");getchar();system("cls");return;}main(){ char*uehao[15]; charch1,ch2,ch3,ch4,ch5; do { printf(">>>>>>>>>>>>>>歡迎進(jìn)入圖書管理系統(tǒng)!<<<<<<<<<<<<<<\n"); printf("\t請(qǐng)選擇你的操作:\n"); printf("1:<查詢圖書>\n"); printf("2:<借閱圖書>(普通用戶進(jìn)入)\n"); printf("3:<管理系統(tǒng)>(管理員進(jìn)入)\n"); printf("4:<歸還圖書>(普通用戶進(jìn)入)\n"); printf("0:<退出>\n"); printf("請(qǐng)輸入0--4\n"); scanf("%s",&ch1); switch(ch1) { case'1':system("cls");chabook();break; case'2':system("cls");lendbook();break; case'3':system("cls"); { printf("請(qǐng)輸入管理員密碼:\n"); scanf("%s",&*uehao); if(strcmp(*uehao,"11002805zouji")==0) { system("cls"); do {printf("---------------歡迎進(jìn)入管理系統(tǒng)!--------------\n"); printf("1:<增加圖書>\n"); printf("2:<刪除圖書>\n"); printf("3:<修改圖書資料>\n"); printf("4:<書籍統(tǒng)計(jì)>\n"); printf("5:<職工管理系統(tǒng)>\n"); printf("6:<學(xué)生管理系統(tǒng)>\n"); printf("0:<返回>\n"); printf("請(qǐng)輸入0--6\n");scanf("%s",&ch2); switch(ch2) { case'1':system("cls");addbook();break; case'2':system("cls");delbook();break; case'3':system("cls");changebook();break; case'4':system("cls");bookcount();getch();break; case'5': { system("cls"); do {printf("---------------歡迎進(jìn)入職工管理系統(tǒng)!--------------\n"); printf("1:<增加員工>\n"); printf("2:<刪除員工>\n"); printf("3:<修改員工資料>\n"); printf("4:<員工統(tǒng)計(jì)>\n"); printf("

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論