數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1/1數(shù)據(jù)結(jié)構(gòu)課程設(shè)計說明數(shù)據(jù)結(jié)構(gòu)課程設(shè)計計算機科學(xué)與技術(shù)2023級1班

課程設(shè)計題目:圖書借閱管理系統(tǒng)

姓名:

學(xué)號:

一.需求分析說明

圖書借閱處理過程簡述處理過程主要包含:新增圖書上架、辦理圖證、圖書查詢、借書、還書等。

(1)新增圖書上架新書上架時,需要登記新書的:書名、、出版社、總冊數(shù)的信息。

(2)辦理圖書借閱證讀者辦理借書證時,需要登記讀者(同學(xué))的學(xué)號、姓名。(3)圖書查詢讀者根據(jù)圖書編號查詢圖書基本信息,并可以得知現(xiàn)還有幾冊可以借閱。

(4)借書每個同學(xué)讀者最多借5本書。讀者借書時,應(yīng)登記書號、借書日期(年月日)。

2.?dāng)?shù)據(jù)分析數(shù)據(jù)處理過程中涉及到兩個實體:圖書和會員;各實體應(yīng)具有的屬性如下:圖書(書號、書名、,總冊數(shù))讀者(學(xué)號、姓名、班級)由于同一種圖書可以有多冊上架,

每個讀者最多可以借閱5本書,圖書借閱的屬性如下:借閱(書號、借書日期)3.功能分析系統(tǒng)功能模塊包括:圖書增加、圖書刪除、圖書查詢、借書、還書;另外還包括圖書信息修改和讀者信息修改。

二.基本功能

1)圖書管理(增加圖書、查詢圖書、刪除圖書、圖書借閱、還書);

2)會員管理(增加會員、查詢會員、刪除會員、借書信息);

3)系統(tǒng)管理(初始化、載入數(shù)據(jù)、保存數(shù)據(jù)、退出程序);

三.程序設(shè)計

#include

#include

#include

#defineNULL0

typedefstructBookInfo{/////圖書結(jié)構(gòu)intb_Code;////圖書編號

charb_Name[20];/////名稱

intb_Total;/////總數(shù)

intb_Out;///借出數(shù)

BookInfo*nextbook;//////下一類圖書

}BookInfo;

typedefstructMemberInfo{///會員結(jié)構(gòu)longm_Code;/////會員編號

charm_Name[20];////會員名字

intl_Codes[6];/////以借書的編號,最多5MemberInfo*nextmember;////下一會員}MemberInfo;

typedefstructSystem{///管理系統(tǒng)結(jié)構(gòu)

BookInfo*BI;

MemberInfo*MI;

intBookTotal;////圖書類庫存量

intMemberTota;/////會員數(shù)量

}System;

System*InitSystem;/////

voidAddBook(System*);////增加圖書

BookInfo*SearchBook(System*,int);////查詢圖書信息

voidDelBook(System*);/////刪除圖書

voidBrrowBook(System*);///////借書處理voidTurnBackBook(System*);////還書處理

voidAddMember(System*);/////添加會員voidDelMember(System*);////刪除會員

MemberInfo*SearchMember(System*,int);/////查詢會員信息voidStoreData(System*);

voidLoadData(System*);

voidExitSystem;

voidmain

{

System*S=InitSystem;

intsel;

do{

cout>sel;

if(sel>=1

coutBI=(BookInfo*)malloc(sizeof(BookInfo));

S->BookTotal=0;

S->BI->nextbook=NULL;

S->MI=(MemberInfo*)malloc(sizeof(MemberInfo));S->MemberTota=0;

S->MI->nextmember=NULL;

returnS;

}

voidAddBook(System*S)

{

intTempcode;

charsel;

BookInfo*p=S->BI;

BookInfo*t;

BookInfo*m;

intnum;

do{

cout>Tempcode;

if(m=SearchBook(S,Tempcode)){

cout>num;

m->b_Total+=num;

}

else{

t=(BookInfo*)malloc(sizeof(BookInfo));t->b_Code=Tempcode;

cout>t->b_Name;

cout>t->b_Total;

t->b_Out=0;

t->nextbook=p->nextbook;

p->nextbook=t;

S->BookTotal++;

}

cout>sel;

if(sel=='n'||sel=='N'){coutBI->nextbook;

intbookcode;

if(code==-1){

cout>bookcode;

}

elsebookcode=code;

while(biif(code==-1){

if(!bi)coutb_Codeb_Nameb_Totalb_OutBI;MemberInfo*memi;charsel;

inttempcode;

inti;

do{

pl=S->BI;

bi=pl->nextbook;

memi=S->MI->nextmember;

cout>tempcode;

while(bi){

if(bi->b_Code==tempcode)break;

pl=bi;

bi=bi->nextbook;

}

if(bi==0)coutnextbook=bi->nextbook;

S->BookTotal--;

while(memi){

for(i=1;il_Codes[0];i++){

if(memi->l_Codes[i]==tempcode)break;

}

if(il_Codes[0]){

for(;il_Codes[0];i++)memi->l_Codes[i]=memi->l_Codes[i+1];

memi->l_Codes[0]--;

}

memi=memi->nextmember;}

free(bi);

}

cout>sel;

if(sel=='N'||sel=='n'){

coutBI->nextbook;BookInfo*p;

charsel;

intmemcode;

MemberInfo*mp;

inttempcode;

do{

cout>tempcode;

p=SearchBook(S,tempcode);

if(!p){

coutb_Total-p->b_Out)b_Total-p->b_Out))cout>memcode;

mp=SearchMember(S,memcode);

if(!mp)coutl_Codes[0]==5)coutb_Out++;

mp->l_Codes[++mp->l_Codes[0]]=tempcode;cout>sel;

if(sel=='N'||sel=='n'){

coutBI->nextbook;BookInfo*p;

MemberInfo*mp;

intmembercode;

inttempcode;

inti;

charsel;

do{

cout>tempcode;

p=SearchBook(S,tempcode);

if(!p){

coutb_Total-p->b_Out)>membercode;

if(!(mp=SearchMember(S,membercode)))coutb_Out--;

for(i=1;il_Codes[0];i++){

if(mp->l_Codes[i]==tempcode)break;}

while(il_Codes[0]){

mp->l_Codes[i]=mp->l_Codes[i+1];i++;

}

mp->l_Codes[0]--;

cout>sel;

if(sel=='N'||sel=='n'){

coutMI;

MemberInfo*t;

do{

cout>Tempcode;

t=(MemberInfo*)malloc(sizeof(MemberInfo));t->m_Code=Tempcode;

cout>t->m_Name;

t->l_Codes[0]=0;

t->nextmember=p->nextmember;p->nextmember=t;

S->MemberTota++;

cout>sel;

if(sel=='n'||sel=='N'){

coutMI->nextmember;

intmembercode;

inti;

if(code==-1){

cout>membercode;

}

elsemembercode=code;

while(biif(code==-1){

if(!bi)coutm_Codem_Namel_Codes[0]l_Codes[0];i++)

coutl_Codes[i]MI->nextmember;

pl=S->MI;

cout>tempcode;

while(bi){

if(bi->m_Code==tempcode)break;

pl=bi;

bi=bi->nextmember;

}

if(!bi)coutnextmember=bi->nextmember;

S->MemberTota--;

for(i=1;il_Codes[0];i++){

if(!(book=SearchBook(S,bi->l_Codes[i]))){coutb_Out--;

book->b_Total--;

}

}

free(bi);

}

cout>sel;

if(sel=='N'||sel=='n'){

coutBI->nextbook;if(!(fp=fopen("BookSys","wb"))){

coutnextbook;

}

MemberInfo*mi=S->MI->nextmember;fwrite(while(mi){

fwrite(mi,sizeof(MemberInfo),1,fp);

mi=mi->nextmember;

}

fclose(fp);

}

voidLoadData(System*S){

FILE*fp;

if(!(fp=fopen("BookSys","rb"))){

coutBI;

BookInfo*tempbi;

fread(

for(inti=1;iBookTotal;i++){

tempbi=(BookInfo*)malloc(sizeof(BookInfo));fread(tempbi,sizeof(BookInfo),1,fp);

bi->nextbook=tempbi;

bi=tempbi;

}

bi->nextbook=NULL;

MemberInfo*mi=S->MI;

MemberInfo*tempmi;

fread(

for(i=1;iMemberTota;i++){

tempmi=(MemberInfo*)malloc(sizeof(MemberInfo));fread(tempmi,sizeof(MemberInfo),1,fp);

mi->nextmember=tempmi;

mi=tempmi;

}

mi->nextmember=NULL;

fclose(fp);

}

voidExitSystem{

charselect;

cout>select;

if(select=='y'

溫馨提示

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

評論

0/150

提交評論