大一C語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)_第1頁(yè)
大一C語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)_第2頁(yè)
大一C語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)_第3頁(yè)
大一C語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)_第4頁(yè)
大一C語(yǔ)言課程設(shè)計(jì)圖書(shū)信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

大一C語(yǔ)言3果程設(shè)

計(jì)圖書(shū)信息管理系

統(tǒng)

高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)

評(píng)語(yǔ):

學(xué)院一班級(jí)

姓名學(xué)號(hào)

成績(jī)指導(dǎo)老師

年月日

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

一、目的

1.進(jìn)一步掌握和利用C語(yǔ)言進(jìn)行程設(shè)計(jì)的能力;

2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程設(shè)計(jì)的思想和方法;

3、初步掌握開(kāi)發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;

4、學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;

5、學(xué)會(huì)利用流程圖或N-S圖表示算法;

6、掌握書(shū)寫(xiě)程設(shè)計(jì)開(kāi)發(fā)文檔的能力(書(shū)寫(xiě)課程設(shè)計(jì)報(bào)告);

二、內(nèi)容與設(shè)計(jì)思想。

(1)題目:圖書(shū)信息包括:登錄號(hào)、書(shū)名、作者名、分類號(hào)、出版單

位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書(shū)信息管理系統(tǒng),使之能提供以下功

能:

系統(tǒng)以菜單方式工作

圖書(shū)信息錄入功能(圖書(shū)信息用文件保存)一一輸入

圖書(shū)信息瀏覽功能一一輸出

查詢和排序功能:(至少一種查詢方式)一一算法

按書(shū)名查詢

按作者名查詢

圖書(shū)信息的刪除與修改(可選項(xiàng))

(2).系統(tǒng)功能與分析(填寫(xiě)你所設(shè)計(jì)的菜單及流程圖)

截圖略

流程圖:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

插入模塊流程圖

(3)數(shù)據(jù)結(jié)構(gòu)

typedefstructbook

(

intsort;

charbook_name[15];

charauthor_name[15];

intvertnumber;

charpublish_unit[15];

charpublish_tinie[10];

intprice;

)B

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

(4).模塊設(shè)計(jì)

根據(jù)功能需要:

源文件函數(shù)名功能

saveO保存

input()輸入

get()獲取

output()輸出

book_name經(jīng)過(guò)書(shū)名查找

authorname()經(jīng)過(guò)作者查找

modify()修改

delet()刪除

(5)總體設(shè)計(jì)思想:

圖書(shū)信息管理系統(tǒng)

,數(shù)據(jù)輸.數(shù)據(jù)瀏.數(shù)據(jù)查刪除和修、退出

(6)調(diào)試過(guò)程:測(cè)試數(shù)據(jù)及結(jié)果,出現(xiàn)了哪些問(wèn)題

截圖略

(7)程序有待改進(jìn)的地方及本次實(shí)習(xí)的收獲和建議

(8)源程序清單(主要代碼)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#defineLENsizeof(structbook)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

typedefstructbook

{

intsort;

charbook_name[15];

charauthor_name[15];

intvert.number;

charpublish_unit[15];

charpublish_time[10];

intprice;

)B;

B*P,*pl,boo;

intnum=0,f=0;

intsave();

voidinput();

intget();

voidoutput();

voidbook_name();

voidauthor_name();

voidmodifyO;

voiddelet();

intmain()

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

intre=l,tJ=O;

intn,choice;

while(re==l)

system(HclsH);

printf(n

printf(u主菜單XnXn,*);

printf(H1.錄入信息\n");

printf(M2.查看信息\iT);

printf(H3.查詢信息\n”);

printf(n4.刪除與修改信息\n”);

printf(n5.退出\n");

??,.£?f?\

printf(n

printf(n\nM);

if(j==l)printf"n't選擇錯(cuò)誤!”);

printf(M\n\t請(qǐng)選擇1-5:_\b\bn);

scanf(''%d'',&choice);

switch(choice)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

case1:

(

printf(H\n\tl:錄入信息\n");

input();

printf(M\n\tl.返回主菜單;\n\t2.退出\n\t\t

請(qǐng)選擇:_\b\b");

scanf(M%dM,&re);

break;

)

case2:

(

printf("\n\t2.查看信息\n");

output();

printf(u\n\tL返回主菜單;\n\t2,退出\n\t\t

請(qǐng)選擇:_\b\b");

scanf(n%dM,&re);

break;

)

case3:

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

while(t==l)

(

printfT\n\t3渣詢信息\曖);

printf(n\n\t請(qǐng)選擇查詢方式:\n\t1.按書(shū)

名\n\t2.按作者名\n\t3.其余任意數(shù)字鍵返回主菜單_\b\b”);

scanf(M%dn,&n);

if(n==l)

book_name();

elseif(n==2)

author_name();

else

{

re=l;

gotolebel;

)

printf(n\n\t1.返回上一層;\n\t2.返回主

菜單;\n\t3.退出\n\t請(qǐng)選擇:_\b\b");

scanf(n%du,&t);

if(t==l)

system(nclsH);

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

if(t==2)

if(t==3)re=O;

lebel:break;

case4:

while(t==l||t==l)

{

printf「\n\t4刪除與修改信息\iT);

printf(M\n\t請(qǐng)選擇八n\t1.刪除信息;\n\t

2.修改信息\n\t3.其余任意數(shù)字鍵返回主菜單_\b\b");

scanf(n%dH,&n);

if(n==l)

delet();

elseif(n==2)

modifyO;

else

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

re=l;

gotolebe;

)

printf(H\n\t1.返回上一層;\n\t2.返回主

菜單;\n\t3.退出\n\t\t請(qǐng)選擇:_\b\b“);

scanf(n%dH,&t);

if(t==l)

system(nclsn);

if(t==2)re=l;

if(t==3)re=0;

)

lebe:break;

)

case5:

{

re=0;

break;

default:

re=l;

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

j=l;

)

)

)

return0;

)

intsave()

(

FILE*fp;

inti,n=0,nl=0;

if((fp=fopen(Mbook.txtn,na+H))==NULL)

return0;

fprintf(fp,n%d\nM,num);

for(i=0;i<num;i++)

(

fprintf(fp,M%d%s%s%d%s%s%dM,P[i].sort,P[i].boo

k_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].pu

b!ish_time,P[i].price);

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

fprintf(fp,M\nM);

)

fclose(fp);

return1;

)

intget()

(

FILE*fp;

inti;

fp=fopen(Hbook.txt,\HrM);

if(fp==NULL)

return0;

else

(

fscanf(fp,n%dH,&num);

if(num>0)

(

P=(B*)malloc(LENnum);

for(i=0;i<num;i++)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

fscanf(fp,M%d%s%s%d%s%s%d,\&P[i].sort,P[i].book_na

me,

P[i].author_name,&P[i].vert_number,P[i].publish_unit,P[i].publish

_time,&P[i].price);

)

fclose(fp);

return1;

}

else

{

fclose(fp);

return0;

}

)

)

voidinput()

{

intresult;

inti;

printf(M\t\t要錄入信息的書(shū)籍?dāng)?shù)量為:_本\1>\1)");

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

scanf(M%dM,&num);

if(num>0)

(

P=(B*)malloc(LEN*num);

for(i=0;i<num;i++)

(

P[i].sort=i+1;

printf(H\n\tNO.%dH,P[i].sort);

printf(n\nn);

primf「\t請(qǐng)按序輸入:書(shū)名作者名分類號(hào)

出版單位出版時(shí)間價(jià)格\n\t\t");

scanf(H%s%s%d%s%s%d,\P[i].book_name,P[i].author_na

me,&P[i].vert_number,P[i].publish_unit,

P[i].publish_dme,&P[i].price);

printf(H\nn);

)

result=save();

if(result==O)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

printf(M\t錄入信息失敗!\n”);

num=0;

)

if(result==l)

(

printf(n\t成功錄入信息!\n");

}

)

else

(

num=0;

printf(M\t輸入錯(cuò)誤!”);

)

)

voidoutput()

{

inti;

get();

if(get()==l)

(

printf(u\n\t\t成功獲取信息!\iT);

for(i=0;i<num;i++)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

printf(,,\n\t\tNO.\t%d\nu,P[i].sort);

printf("\t\t書(shū)名作者名序列號(hào)出版單位出版時(shí)間

價(jià)格'曖);

printf(H\t\t%s%s%d%s%s%dn,P[i].book_nam

e,P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf(,,\n,);

)

)

elseprintf「\t文件打開(kāi)錯(cuò)誤!”);

)

voidbook_name()

(

inti;

inttag=();

charch[15];

printf(u\t請(qǐng)輸入書(shū)名:_\b\bH);

scanf(H%sn,ch);

if(get()==O)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

printf(u\t無(wú)法查詢!”);

return;

)

if(get()==l)

{

for(i=0;i<num;i++)

(

if(strcmp(P[i].book_name,ch)==0)

(

printf"n\t\t排列號(hào)書(shū)名作者名序列

號(hào)出版單位出版時(shí)間價(jià)格W”);

printf(H\t\t%d%s%s%d%s%s%d\nn,P[i].sort

,P[i].book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].publish_t

ime,P[i].price);

tag=1;

)

}

if(tag==0)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

printf(H\n\t沒(méi)有相關(guān)信息!\iT);

)

)

)

voidauthor_name()

(

inti;

inttag=0;

charch[15];

printf(M\t請(qǐng)輸入作者名:_\b\bn);

scanf(M%s*\ch);

if(get()==O)

{

printf(n\t無(wú)法查詢V);

return;

)

if(get()==l)

for(i=0;i<num;i++)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

if(strcmp(P[i].author_name,ch)==0)

(

printf(M\n\t\t排列號(hào)書(shū)名作者名序列

號(hào)出版單位出版時(shí)間價(jià)格\n");

printf(H\t\t%d%s%s%d%s%s%d\nM,P[i].sor

t,P[i|.book_name,

P[i].author_name,P[i].vert_number,P[i].publish_unit,P[i].pu

blish_time,P[i].price);

tag=1;

)

if(tag==0)

(

printf(n\t沒(méi)有相關(guān)信息!”);

}

)

)

voidmodifyO

intt,n,i,y=l;

intresult,z,x;

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

t=get();

if(t==O)

(

printf(H\n\t打開(kāi)文件錯(cuò)誤,無(wú)法修改!”);

return;

)

elseif(y==l)

(

printf(n\n\t您要修改信息的圖書(shū)排列號(hào)為(L%d):

_\b\b**,num);

scanf(M%dH,&n);

if(n>=l&&n<=num)

(

for(i=0;i<num;i++)

(

if(P[i].sort==n)

{

printf(n\n\t您即將修改以下信息八n");

printf(n\t\t排列號(hào)書(shū)名作者名序列

號(hào)出版單位出版時(shí)間價(jià)格\n");

printf(H\t\t%d%s%s%d%s%s%dH,P[i].sort,P[i].book_na

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

me,

P[i].author_name,P[i].vert_number,P[i].publish_unit,

P[i].publish_time,P[i].price);

printf,\n\n\t確認(rèn)請(qǐng)按1;返回請(qǐng)按2;

返回上一層請(qǐng)按3_\b\bn);

scanf(n%d,\&x);

if(x==l)

(

//pl=&boo;

您要將信息修改為An");

書(shū)名:_\b\b”);

scanf(H%sH,P[i].book_name);

作者名:_\b\b");

scanf(n%sH,P[i].author_name);

printf(”\t\t序列號(hào):_\b\b”);

scanf(,,%d,,,&P[i].vert_number);

printf(n\t\t出版單位:_\b\b");

scanf(M%sH,P[i].publish_unit);

printf(M\t\t出版時(shí)間:_\b\b");

scanf(H%sH,P[i].publish_time);

printf(”\t\t價(jià)格:_\b\b”);

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

scanf(''%(r,&P[i].price);

strcpy(P[i].book_name,P[i].book_name);

strcpy(P[i].author_name,P[i+l].author_name);

P[i].vert_number=P[i+l].vert_number;

strcpy(P[i].publish_unit,P[i+l].publish_unit);

strcpy(P[i].publish_dme,P[i+l].publish_tinie);

P[i].price=P|i+l].price;

y=0;

z=l;

)

else

if(x==2)

(

y=l;z=O;

)

else

(

y=o;

f=i;

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

)

)

)

else

(

printf(M\t輸入錯(cuò)誤,請(qǐng)重新輸入:");

y=i;

)

while(z==l)

{

result=save();

if(result==O)

{

printf(n\n\t修改信息失敗!\n");

z=0;

)

if(result==l)

{

printf(”\n\t成功修改信息!\n");

z=0;

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

return;

)

voiddelet()

(

intt,n,ij,y=l;

intresult,z=0,x;

t=get();

if(t==O)

(

printf(n\n\t打開(kāi)文件錯(cuò)誤,無(wú)法刪除!”);

return;

)

else

while(y==l)

(

printf(H\n\t您要?jiǎng)h除信息的圖書(shū)排列號(hào)為(1?

%d):_\b\bM,num);

scanf(M%dM,&n);

if(n>=l&&n<=num)

文檔僅供參考,不當(dāng)之處,請(qǐng)聯(lián)系改正。

for(i=0;i<num;i++)

{

if(P[i].sort==n)

(

printf("\n\t您即將刪除以下信

息八n”);

printf(H\t\t排列號(hào)書(shū)名作者名序

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論