版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年腦智研究院招聘張若冰課題組招聘生物電鏡圖像處理與自動(dòng)化工程師崗位備考題庫(kù)及1套參考答案詳解
- 2025年臨清市財(cái)政局(國(guó)資局)公開(kāi)招聘市屬國(guó)有企業(yè)副總經(jīng)理的備考題庫(kù)帶答案詳解
- 2025年株洲市炎陵縣財(cái)政局、縣審計(jì)局公開(kāi)招聘專業(yè)人才備考題庫(kù)完整參考答案詳解
- 昆明市官渡區(qū)云南大學(xué)附屬中學(xué)星耀學(xué)校2026年校園招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2025年泰安銀行股份有限公司校園招聘70人備考題庫(kù)及1套參考答案詳解
- 租賃戶拆遷協(xié)議書(shū)
- 經(jīng)銷商的合同協(xié)議
- 續(xù)建項(xiàng)目合同范本
- 綠植栽植合同范本
- 總代理項(xiàng)目協(xié)議書(shū)
- 棉花種植培訓(xùn)課件
- 籌建期間會(huì)計(jì)管理制度
- 百萬(wàn)蛋雞養(yǎng)殖場(chǎng)項(xiàng)目環(huán)境影響報(bào)告書(shū)
- 著作權(quán)集體管理
- T-CEPPEA 5002-2019 電力建設(shè)項(xiàng)目工程總承包管理規(guī)范
- 25春國(guó)家開(kāi)放大學(xué)《中國(guó)古代文學(xué)(下)》形考任務(wù)1-4參考答案
- 2025年建筑施工安全管理工作總結(jié)
- 糖尿病診療的指南
- 2025年高考語(yǔ)文復(fù)習(xí)之文言文閱讀(全國(guó))12 選擇性必修下教材文言文挖空練習(xí)+重要知識(shí)點(diǎn)歸類(含答案)
- 《農(nóng)光互補(bǔ)光伏電站項(xiàng)目柔性支架組件安裝施工方案》
- 深圳大學(xué)《供應(yīng)鏈與物流概論》2021-2022學(xué)年第一學(xué)期期末試卷
評(píng)論
0/150
提交評(píng)論