c語言課程設(shè)計報告---圖書館管理系統(tǒng)_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  程序設(shè)計語言</b></p><p><b>  課程設(shè)計報告</b></p><p>  選題名稱:圖書館管理系統(tǒng) </p><p>  第一章 C語言課程設(shè)計任務(wù)書</p><p><b>  一、課程設(shè)計目的</b></p>

2、<p>  程序設(shè)計語言課程設(shè)計是學生在學習完C語言課程后集中安排的1周的實踐技能訓練環(huán)節(jié)。它的目的是通過實踐環(huán)節(jié)的訓練,使學生進一步加深對C語言知識的綜合理解,提高C語言應用技能,并結(jié)合專業(yè)特點培養(yǎng)學生計算機程序的應用能力。</p><p>  本環(huán)節(jié)結(jié)合計算科學專業(yè)的特點,培養(yǎng)學生閱讀本專業(yè)相關(guān)領(lǐng)域C語言程序的能力,分析并掌握程序的設(shè)計思想和方法。通過訓練,培養(yǎng)學生查閱C語言相關(guān)資料能力、分析和閱

3、讀程序的能力,應用C語言基本知識設(shè)計小型應用程序的能力。</p><p>  二、課程設(shè)計題目(自選題目1個 )</p><p>  1、C語言圖形(動畫)演示</p><p><b>  2、學生成績管理</b></p><p><b>  3、個人通訊錄</b></p><

4、p><b>  4、簡易計算器</b></p><p><b>  5、圖書管理系統(tǒng)</b></p><p>  三、課程設(shè)計內(nèi)容(課程設(shè)計所應完成的主要環(huán)節(jié)或項目)</p><p>  1、C語言圖形(動畫)演示:目  標:設(shè)計一個各種幾何圖形的C語言的演示程序,或者設(shè)計一個小型的動畫或游戲程序。要  求:掌握

5、C語言圖形設(shè)計技術(shù),熟練應用條件語句、循環(huán)語句、定義函數(shù)、數(shù)組或結(jié)構(gòu)體,演示程序要有菜單功能,動畫設(shè)計要有提示功能。自行設(shè)計的程序不少于100行。程序要有詳細的注釋,并畫出程序流程圖及必要的說明文檔。</p><p><b>  2、學生成績管理:</b></p><p>  目  標:輸入5—10名學生有關(guān)的數(shù)據(jù),先存放在內(nèi)存中,根據(jù)需求增加新記錄或打印已有記錄清單

6、。成績錄入(3--5門)后存盤,要統(tǒng)計學科最高分、最低分、平均分、全班名次、成績分布等。</p><p>  要  求:具備菜單功能或詳細的提示功能,至少具備數(shù)據(jù)輸入、輸出、查詢、刪除、文件保存、文件讀入中的兩項功能。能力強的同學可以設(shè)計表格化輸出。</p><p>  3、個人通訊錄:目  標:設(shè)計一個能顯示的個人通訊錄程序,包涵15—20個有關(guān)的數(shù)據(jù),具備輸入、查詢、插入、刪除等功能

7、。要  求:具備菜單功能或詳細的提示功能,具備漢字輸入輸出功能,至少具備數(shù)據(jù)輸入、輸出、查詢、刪除、文件保存、文件讀入中的兩項功能。能力強的同學可以設(shè)計表格化輸出。熟練掌握文件或結(jié)構(gòu)體的操作,程序中至少要有一個自定義結(jié)構(gòu)體和文件。</p><p><b>  4、簡易計算器</b></p><p>  目標:設(shè)計一個能進行簡單的計算器,能夠?qū)崿F(xiàn)整數(shù)的加、減、乘、除四

8、則運算。該程序顯示用GUI用戶界面。用圖形界面實現(xiàn)。</p><p>  要求:熟悉C語言圖形模式下的編程。熟練掌握結(jié)構(gòu)體、數(shù)組、繪圖等方面的知識。</p><p>  5、設(shè)計圖書管理系統(tǒng)</p><p><b>  主要功能:</b></p><p><b>  1、新書入庫</b></p

9、><p><b>  2、借閱登記、管理</b></p><p><b>  3、借閱查詢</b></p><p><b>  4、催還、預約</b></p><p><b>  5、遺損處理</b></p><p>  要求:能實現(xiàn)

10、以上基本功能,界面友好、清晰</p><p>  (注意:該題可以自由發(fā)揮其它功能,但要求用結(jié)構(gòu)體數(shù)組、文件、函數(shù)等工具來處理,也可以用指針、鏈表等工具來處理) </p><p>  四、課程設(shè)計涉及知識范圍(主要的先修課程及有關(guān)的實踐環(huán)節(jié))</p><p>  1、C語言程序設(shè)計基本理論知識和上機編程的基本技能;</p><p>  五、課

11、程設(shè)計方法、步驟和要點(結(jié)合設(shè)計題目撰寫)</p><p>  1、教師指導:教師講解集中周的任務(wù)、目的、方法。介紹各個題目的基本知識和設(shè)計方法及相關(guān)內(nèi)容演示,學生根據(jù)個人興趣選題。</p><p>  2、資料調(diào)研:學生根據(jù)選題情況,查閱相關(guān)資料,確定設(shè)計目標和任務(wù)。</p><p>  3、畫出程序框圖和功能說明;詳細編寫程序和調(diào)試。</p>&l

12、t;p>  最后提交設(shè)計報告,進行程序演示,教師進行成績評定。</p><p>  六、課程設(shè)計主要技術(shù)關(guān)鍵的分析、解決思路和方案比較等</p><p>  1、      資料查找:可以通過圖書、網(wǎng)絡(luò)等方式查找。在網(wǎng)絡(luò)查找時注意關(guān)鍵詞的選用,如“C語言繪圖”、“C語言圖形設(shè)計”、“C語言科學計算”等。</p><

13、p>  2、      基本知識掌握:課程設(shè)計中必須要涉及到書本中沒講到的內(nèi)容,在教師指導情況下,同學要主動掌握這些技能,查閱資料,把握關(guān)鍵技術(shù),上機驗證。如圖形模式的設(shè)置,圖形函數(shù)的使用,結(jié)構(gòu)體、數(shù)組及指針的應用。要注意已學知識要鞏固,加深理解并能主動應用。未學知識部分要學會查找自己需要的知識,學會篩選知識,做好筆記,進行驗證。</p><p>  3、&

14、#160;     閱讀程序:在初次編寫程序時,建議先查找并閱讀類似功能程序,分析作者思路,學習編程的方法。執(zhí)行“先模仿再創(chuàng)新”的技術(shù)路線。</p><p>  4、      設(shè)計階段:在程序功能設(shè)計中要注意“從上到下,從宏觀到具體”的原則,main函數(shù)要簡潔。功能選擇的難度要合適,不要貪圖功能齊全,要注重程序的質(zhì)量。&l

15、t;/p><p>  5、      調(diào)試階段:注意大程序的調(diào)試方法和技巧。</p><p>  報告撰寫階段:按照學校要求格式撰寫,注意條理清晰,語言流暢。可以引用一些資料,但不能照抄照搬(引用資料要注明出處)。</p><p>  七、課程設(shè)計注意事項(學習態(tài)度、學習方法、資料使用、基本技能運用等) </p&g

16、t;<p>  1、      在思想認識上,學生應高度重視課程設(shè)計對掌握C語言的重要性,由于課程設(shè)計是在考試后進行,學生應知道通過課程設(shè)計加深對C語言的了解。</p><p>  2、      在學習態(tài)度上,應當勤奮。課程設(shè)計時間緊,困難不少,因此要有主動解決困難的勇氣和方法,不能有畏難情況和敷衍

17、情緒。應當積極利用課內(nèi)外時間,完成任務(wù)。</p><p>  3、      在學習方法上,要注意充分運用教師的指導作用,及時和教師溝通。同學也要及時研究交流。</p><p>  4、      教師在設(shè)計題目時要充分考慮學生的興趣、學生能力,并和專業(yè)相結(jié)合;教師在指導中要激發(fā)同學的興趣

18、,鼓勵同學進行大膽創(chuàng)新。</p><p><b>  八.設(shè)計方式和安排</b></p><p>  1.分組選題:最多3人一組,每組一個課題(可根據(jù)課題,工作量大小,合理分配人數(shù))每組設(shè)組長一名,負責該組設(shè)計工作的協(xié)調(diào)、分工。</p><p><b>  2.設(shè)計過程:</b></p><p> 

19、 1)分析設(shè)計準備階段(按組討論、對系統(tǒng)功能進行分析,確定算法,并進行明確分工)</p><p>  2)編程調(diào)試階段(繪制流程圖,編制源程序;上機調(diào)試,修改程序)</p><p>  3)總結(jié)報告和書寫說明書階段(撰寫上交相關(guān)資料)</p><p>  九、課程設(shè)計及報告書具體要求:1.必須獨立思考、設(shè)計、調(diào)試通過程序,滿足任務(wù)書要求,可參考例程。2.報告書的

20、書寫格式參照以下條目,使用B5紙張,打印、手工書寫均可。3.首頁為封面,要求寫清楚標題、班級、姓名、指導教師、完成日期。(自行設(shè)計)4.第一章為任務(wù)書。5.第二章為老師評語。6.從第三章開始,為報告書正文,具體內(nèi)容如下: ①整個程序的功能分析,并根據(jù)分析畫出流程圖。 ②組成程序的各個模塊分析、實現(xiàn)。 ③附程序清單。</p><p>  ④系統(tǒng)設(shè)計難點及其解決方法</p><

21、p><b> ?、莶蛔阒?lt;/b></p><p> ?、奕藛T分工說明 ⑦本次課程設(shè)計的小結(jié)與參考文獻</p><p><b>  十、推薦參考資料</b></p><p>  1、《C語言程序設(shè)計實驗指導與課程設(shè)計》</p><p>  清華大學出版社 游洪躍 等主編 </p&

22、gt;<p>  2、《C語言課程設(shè)計案例精編》 清華大學出版社 姜靈芝等主編</p><p><b>  第二章 教師評語</b></p><p><b>  組長:</b></p><p><b>  成員: </b></p><p><b>

23、;  課設(shè)報告正文</b></p><p><b>  程序功能簡介</b></p><p>  該程序用于學校圖書館事務(wù)管理,能夠?qū)崿F(xiàn)以下幾項功能:新書入庫、借閱查詢、借閱登記管理、圖書館職工資料整理修正。</p><p><b>  程序功能分析</b></p><p>  程序的總

24、體程序框圖圖如下:</p><p>  從這里不難看出,各個模塊之間的關(guān)系是相互聯(lián)系的。首先,主函數(shù)包含了所有的子函數(shù)。主函數(shù)是整個程序的核心。子函數(shù)之間也是有聯(lián)系的,查書,借書,還書是在加入圖書和學生信息明確后的情況下才能進行的,所以圖書加入模塊和學生信息管理模塊是非常重要的!</p><p>  組成程序的各個分析、實現(xiàn)</p><p>  3.1主函數(shù)程序(N

25、-S)流程圖及運行界面</p><p><b>  主函數(shù)main()</b></p><p>  3.2運行程序界面截圖如下:</p><p><b>  主界面</b></p><p><b>  查書界面</b></p><p><b>

26、  借書界面</b></p><p><b>  系統(tǒng)設(shè)置界面</b></p><p>  3.3源程序各模塊中函數(shù)分析:</p><p>  1)程序使用了5個頭文件#include<stdio.h>是輸入輸出頭文件;#include<string.h> ANSI C標準要求在使用字符串函數(shù)時要包含的頭文件

27、;#include<conio.h>是#include<stdlib.h>是#include<ctpe.h>是 ANSI C標準要求的在使用字符函數(shù)時要包含的頭文件。</p><p>  2)程序中包含不少預處理命令,除去頭文件預處理,為了使程序簡明,還加入了許多宏定義預處理,即定義符號常量,#defin是宏定義命令。</p><p>  3)源程序中使

28、用關(guān)鍵字struct聲明類,比如struct student 定義一個學生類型,用于存放借出的書籍;struct employ 定義一個職工類型 等等。</p><p>  4)還書函數(shù) huanbook()</p><p>  說明:這是一個用戶自定義函數(shù),下面是其定義的數(shù)據(jù)</p><p>  FILE *fp,*fp2; /*定義兩個文件指針,fp2用于修改數(shù)

29、據(jù)時設(shè)立臨時文件用,防止數(shù)據(jù)遭破壞*/ </p><p>  int i,n; /*定義兩個整型數(shù)據(jù)*/</p><p>  int carnum; /*定義整型卡號數(shù)據(jù)*/</p><p>  char lendbook[10];/*定義一個字符數(shù)組來存儲借出的書籍*/</p><p>  先使用if語句判斷使用者的身份,即卡號驗證;接著鍵

30、入要還之書,用for語句判斷圖書借閱檔案是否正確;下面再用fwrite函數(shù)重置該書的資料,即是否被借閱。</p><p>  該函數(shù)中用到指針,fp=fopen("record.txt","r"); /*fp中存放有car.txt(卡號信息)record.txt(借書的學生信息)*/</p><p>  構(gòu)造一系列函數(shù)fwrite(),fclose(

31、),fopen()等等,使還書,修改資料一并完成,一氣呵成,不拖泥帶水!</p><p>  5)查書函數(shù) chabook()</p><p>  說明:使用switch語句,分出兩種查詢方法,case‘1’:按照書名查詢;case‘2’:按照作者查找。</p><p>  圖書資料的給出,是通過構(gòu)造類實現(xiàn)的,使用struct構(gòu)造book類,類內(nèi)包含的數(shù)據(jù)有:書的序

32、列號int bookcar,書名char bookname,作者char bookcreater,圖書是否被借出Int tureflase</p><p>  6)借書函數(shù) lendbook()</p><p><b>  還是先定義變量:</b></p><p>  FILE *fp,*fp2; </p><p>&l

33、t;b>  int i,n; </b></p><p>  int carnum;</p><p>  定義了指針變量,通過使用printf輸入函數(shù)輸入用戶卡號,將for語句和if語句嵌套使用驗證無誤后,在輸入要借書名,再一次for if嵌套驗證是否有存量,最后通過構(gòu)造的一系列函數(shù)fwrite(),fclose(),fopen()等等,使借書,修改資料一并完成,一氣呵成,

34、不拖泥帶水!</p><p>  7)職工信息管理模塊</p><p>  定義職工類struct employ,類內(nèi)包含信息有 編號int employnum,姓名char emplorname,年齡int employage,性別char employsex【2】,工資long int</p><p>  Employtage。</p><p

35、>  使用switch語句選擇操作。</p><p>  學生信息管理與之類似。</p><p>  8)新書入庫模塊 addbook() /*增加圖書函數(shù)*/</p><p><b>  { </b></p><p>  FILE *fp; </p><p><b>  in

36、t i=0; </b></p><p>  char choice='y'; </p><p>  fp=fopen("book.txt","a+"); </p><p>  while(choice=='y'||choice=='Y') </p>&l

37、t;p><b>  { </b></p><p>  printf("請你輸入第%d本書的序號\n",i+1); </p><p>  scanf("%d",&book[i].booknum); </p><p>  printf("請你輸入書名\n"); </p&

38、gt;<p>  scanf("%s",book[i].bookname); </p><p>  printf("請你輸入書的作者\n"); </p><p>  scanf("%s",book[i].bookcreat); </p><p>  printf("請設(shè)為1或0,1代

39、表書還沒人借,0表示書已經(jīng)借出\n"); </p><p>  printf("請你設(shè)定書的狀態(tài)\n"); </p><p>  scanf("%d",&book[i].turefalse); </p><p>  fwrite(&book[i],sizeof(struct book),1,fp);

40、</p><p>  printf("是否要輸入下本書,N代表\"否\",Y代表\"是\"\n"); </p><p>  scanf("%s",&choice); </p><p><b>  } </b></p><p>  fc

41、lose(fp); </p><p><b>  }</b></p><p>  就是不斷使用printf和是scanf函數(shù)輸入新書信息并驗證,保存。</p><p><b>  3.4源程序:</b></p><p>  #include<stdio.h> </p>&l

42、t;p>  #include<string.h> </p><p>  #include<conio.h> </p><p>  #include<stdlib.h> </p><p>  #include<ctype.h> </p><p>  #define STACK_INIT_SI

43、ZE 10 </p><p>  #define OK 1 </p><p>  #define TRUE 1 </p><p>  #define FALSE 0 </p><p>  #define ERROR 0 </p><p>  struct student /*定義學生類型,用于存放借出的書籍*/ <

44、;/p><p><b>  { </b></p><p>  int carnum; </p><p>  char lendbook[10]; </p><p>  }student[1000]; </p><p>  struct employ /*定義職工類型*/ </p><

45、;p><b>  { </b></p><p>  int employnum; /*職工的編號*/</p><p>  char employname[15]; /*職工的名字*/</p><p>  int employage; /*職工年齡*/</p><p>  char employsex[2]; /*職

46、工的性別*/</p><p>  char employleve[10]; /*職工學歷*/</p><p>  long int employtage; /*職工工資*/</p><p>  }employ[50]; </p><p>  struct book /*定義書的類型*/ </p><p><b&g

47、t;  { </b></p><p>  int booknum; /*書的序列號*/</p><p>  char bookname[10]; /*書名*/</p><p>  char bookcreat[10]; /*書的作者*/</p><p>  int turefalse; /*用于借書和還書模塊判斷一本書是否借出的條

48、件*/ </p><p>  }book[1000]; </p><p>  struct car /*借書卡的數(shù)據(jù)類型*/ </p><p><b>  { </b></p><p>  int carnum; /*卡號*/</p><p>  char studentname[10];/*卡主

49、人*/ </p><p>  int studentclass; /*卡主人的班級*/</p><p>  }car[1000]; </p><p>  huanbook() /*還書函數(shù)*/ </p><p><b>  { </b></p><p>  FILE *fp,*fp2; /*定義兩

50、個文件指針,fp2用于修改數(shù)據(jù)時設(shè)立臨時文件用,防止數(shù)據(jù)遭破壞*/ </p><p><b>  int i,n; </b></p><p>  int carnum; </p><p>  char lendbook[10]; </p><p>  printf("Type your cardnum!\n&q

51、uot;); </p><p>  scanf("%d",&carnum); </p><p>  fp=fopen("car.txt","r"); /*讀取卡號記錄*/ </p><p>  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0

52、;i++) /*fread(&car[i],sizeof(struct car),1,fp)!=0判斷是否讀到文件尾*/ </p><p><b>  { </b></p><p>  if(car[i].carnum==carnum) /*卡號存在,進入下一循環(huán)*/ </p><p><b>  { </b>&l

53、t;/p><p><b>  n=i; </b></p><p>  fclose(fp); </p><p>  printf("type the name of the returning book!\n"); </p><p>  scanf("%s",lendbook); &l

54、t;/p><p>  fp=fopen("record.txt","r"); /*fp中存放有car.txt(卡號信息)record.txt(借書的學生信息)*/</p><p>  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判斷是否借閱了輸入的書*/ <

55、;/p><p><b>  { </b></p><p>  if(strcmp(student[i].lendbook,lendbook)==0) /*借閱了該書,進入下一循環(huán),否則出錯顯示*/ </p><p><b>  { </b></p><p>  fclose(fp); </p>

56、;<p>  fp=fopen("record.txt","r"); </p><p>  fp2=fopen("bookl.txt","w"); </p><p>  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i+

57、+) </p><p><b>  { </b></p><p>  if(strcmp(student[i].lendbook,lendbook)==0) </p><p><b>  { </b></p><p>  continue; /*刪除還掉的書的借書記錄*/ </p>&

58、lt;p><b>  } </b></p><p>  fwrite(&student[i],sizeof(struct student),1,fp2); /*寫入原來沒還的書的記錄*/ </p><p><b>  } </b></p><p>  fclose(fp); </p><p

59、>  fclose(fp2); </p><p>  fp=fopen("record.txt","w"); </p><p>  fp2=fopen("bookl.txt","r"); </p><p>  for(i=0;fread(&student[i],sizeof

60、(struct student),1,fp2)!=0;i++) /*=o是讀到結(jié)束*/</p><p><b>  { </b></p><p>  fwrite(&student[i],sizeof(struct student),1,fp); /*將借書記錄信息寫回*/ </p><p><b>  } </b>

61、;</p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fopen("bookl.txt","w"); /*清臨時文件的記錄*/ </p><p>  fclose(fp2); </p><p>  fp=fopen(

62、"book.txt","r"); </p><p>  fp2=fopen("bookl.txt","w"); </p><p>  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*將書的記錄寫入臨時文件,防止因為修改信息破壞以前的記

63、錄*/ </p><p><b>  { </b></p><p><b>  if(i==n) </b></p><p><b>  { </b></p><p>  book[i].turefalse=1; </p><p>  fwrite(&am

64、p;book[i],sizeof(struct book),1,fp2); /*將還的書的原來狀態(tài)設(shè)為無人借閱的*/ </p><p>  continue; </p><p><b>  } </b></p><p>  fwrite(&book[i],sizeof(struct book),1,fp2); </p>&

65、lt;p><b>  } </b></p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fp=fopen("book.txt","w"); </p><p>  fp2=fopen("bookl.txt&

66、quot;,"r"); </p><p>  for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++) </p><p><b>  { </b></p><p>  fwrite(&book[i],sizeof(struct book),1,fp);

67、 /*將臨時文件寫回*/ </p><p><b>  } </b></p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fopen("bookl.txt","w"); /*清臨時文件*/ </p><

68、;p>  fclose(fp2); </p><p>  printf("over returning!press any key to exit!\n"); </p><p><b>  getch(); </b></p><p><b>  return; </b></p>&l

69、t;p><b>  } </b></p><p><b>  } </b></p><p>  printf("you have not borrowed this book,press any key to exit!\n"); /*出錯提示*/ </p><p>  fclose(fp); &

70、lt;/p><p><b>  getch(); </b></p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  printf(&q

71、uot;ineffective card!piease call the librarior!\n"); /*出錯提示*/ </p><p>  fclose(fp); </p><p><b>  getch(); </b></p><p><b>  } </b></p><p>  

72、lendcount() /*借書統(tǒng)計函數(shù)*/</p><p><b>  { </b></p><p>  FILE *fp; </p><p>  int i,n=0; </p><p>  fp=fopen("record.txt","r"); </p><

73、p>  for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  printf("cardnum:%d the borrowed book:%s \n",student[i].carnum,student

74、[i].lendbook); </p><p><b>  n=n+1; </b></p><p><b>  } </b></p><p>  fclose(fp); </p><p>  printf("there have been %d books borrowed!\n"

75、;,n); </p><p>  printf("press any key\n"); </p><p><b>  getch(); </b></p><p><b>  } </b></p><p>  chabook() /*查找圖書函數(shù)*/</p><

76、p><b>  { </b></p><p>  char ch5; </p><p><b>  do </b></p><p>  { clrscr(); </p><p>  printf("---------------welcome to tushu chaxun syst

77、em!--------------\n"); </p><p>  printf(" 1:<search by name>\n"); </p><p>  printf(" 2:<search by writer>\n"); </p><p>  printf(" 0:<exi

78、t>\n"); </p><p>  printf("please press0--2!\n"); </p><p>  scanf("%s",&ch5); </p><p>  switch(ch5) </p><p><b>  { </b></p

79、><p>  case '1':clrscr();findbook();getch();break; </p><p>  case '2':clrscr();findbook2();getch();break; </p><p>  case '0':break; </p><p>  defau

80、lt:printf(" ineffective opartion\n");getch();break; </p><p><b>  } </b></p><p>  }while(ch5!='0'); </p><p><b>  } </b></p><p>

81、  findbook()/*按書名查找函數(shù)*/ </p><p><b>  { </b></p><p>  FILE *fp; </p><p>  char bookname[10]; </p><p>  int ture,i; </p><p>  fp=fopen("book

82、.txt","r"); </p><p>  printf("read the bookname of you searching \n"); </p><p>  scanf("%s",bookname); </p><p>  for(i=0;fread(&book[i],sizeof

83、(struct book),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(strcmp(bookname,book[i].bookname)==0) </p><p><b>  { </b></p><p>  if(book[i].turefa

84、lse==1) </p><p><b>  { </b></p><p>  printf("booknum:%d bookname: %s writer:%s this book has being on desk\n",book[i].booknum,book[i].bookname,book[i].bookcreat); </p>

85、;<p><b>  } </b></p><p>  else {printf("booknum:%d bookname: %s writer: %s this book has borrowed by others\n",book[i].booknum,book[i].bookname,book[i].bookcreat);fclose(fp);retu

86、rn;} </p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("no this book\n"); </p><p>  fclose(fp); </p><p><b>  r

87、eturn; </b></p><p><b>  } </b></p><p>  findbook2()/*按作者查找*/ </p><p><b>  { </b></p><p>  FILE *fp; </p><p>  char bookcreat[

88、20]; </p><p>  int ture,i; </p><p>  fp=fopen("book.txt","r"); </p><p>  printf("type the writer's name\n"); </p><p>  scanf("%s&

89、quot;,bookcreat); </p><p>  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(strcmp(bookcreat,book[i].bookcreat)==0) </p&g

90、t;<p><b>  { </b></p><p>  if(book[i].turefalse==1) </p><p><b>  { </b></p><p>  printf("booknum:%d bookname: %s writer: %s this book has being o

91、n desk\n",book[i].booknum,book[i].bookname,book[i].bookcreat); </p><p><b>  } </b></p><p>  else {printf("booknum:%d bookname: %s writer: %s this book has borrowed by other

92、s\n",book[i].booknum,book[i].bookname,book[i].bookcreat);fclose(fp);return;} </p><p>  fclose(fp); </p><p><b>  } </b></p><p><b>  } </b></p><

93、;p>  printf("no this writer\n"); </p><p>  fclose(fp); </p><p><b>  return; </b></p><p><b>  } </b></p><p>  lendbook()/*借書函數(shù)*/ <

94、;/p><p><b>  { </b></p><p>  FILE *fp,*fp2; </p><p><b>  int i,n; </b></p><p>  int carnum; </p><p>  printf("type your cardnum\n

95、"); </p><p>  scanf("%d",&carnum); </p><p>  fp=fopen("car.txt","r"); </p><p>  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) <

96、;/p><p><b>  { </b></p><p>  if(car[i].carnum==carnum) </p><p><b>  { </b></p><p><b>  n=i; </b></p><p>  fclose(fp); <

97、/p><p>  printf("type the name of the book you want to borrow\n"); </p><p>  scanf("%s",student[n].lendbook); </p><p>  fp=fopen("book.txt","r")

98、; </p><p>  for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(strcmp(book[i].bookname,student[n].lendbook)==0) </p><

99、;p><b>  { </b></p><p>  if(book[i].turefalse==0) {printf("sorry,this book has borrowed by others\n");fclose(fp);getch();return;} </p><p><b>  else </b></p

100、><p>  fclose(fp); </p><p>  fp=fopen("record.txt","a+"); </p><p>  student[n].carnum=carnum; </p><p>  fwrite(&student[n],sizeof(struct student),1

101、,fp); </p><p>  fclose(fp); </p><p>  fp=fopen("book.txt","r"); </p><p>  fp2=fopen("bookl.txt","w"); </p><p>  for(i=0;fread(&a

102、mp;book[i],sizeof(struct book),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(strcmp(book[i].bookname,student[n].lendbook)==0) </p><p><b>  { </b></p>

103、<p>  book[i].turefalse=0; </p><p>  fwrite(&book[i],sizeof(struct book),1,fp2); </p><p>  continue; </p><p><b>  } </b></p><p>  fwrite(&book[

104、i],sizeof(struct book),1,fp2); </p><p><b>  } </b></p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fp=fopen("book.txt","w"); </

105、p><p>  fp2=fopen("bookl.txt","r"); </p><p>  for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++) </p><p><b>  { </b></p><p>  fw

106、rite(&book[i],sizeof(struct book),1,fp); </p><p><b>  } </b></p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fopen("bookl.txt","w&q

107、uot;); </p><p>  fclose(fp2); </p><p>  printf("over borrowing,press any key\n"); </p><p><b>  getch(); </b></p><p><b>  return; </b>&

108、lt;/p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("no this book ,press any key\n"); </p><p>  fclose(fp); </p><p><

109、;b>  getch(); </b></p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  printf("ineffective card,pr

110、ess any key\n"); </p><p>  fclose(fp); </p><p><b>  getch(); </b></p><p><b>  } </b></p><p>  carcount() /*卡號統(tǒng)計函數(shù)*/</p><p><

111、;b>  { </b></p><p>  FILE *fp; </p><p>  int i,n=0; </p><p>  fp=fopen("car.txt","r"); </p><p>  for(i=0;fread(&car[i],sizeof(struct ca

112、r),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  printf("No. %d<cardnum:%d name:%s class:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass); </p>&l

113、t;p><b>  n=n+1; </b></p><p><b>  } </b></p><p>  fclose(fp); </p><p>  printf("there have been %d books\n",n); </p><p>  printf(&qu

114、ot;press any key\n"); </p><p><b>  getch(); </b></p><p><b>  } </b></p><p>  delcar() /*刪除卡號函數(shù)*/</p><p><b>  { </b></p>

115、<p>  FILE *fp,*fp2; </p><p><b>  int i; </b></p><p>  int carnum; </p><p>  char choice; </p><p>  fp=fopen("car.txt","r"); </p

116、><p>  fp2=fopen("bookl.txt","w"); </p><p>  printf("type the cardnum you want to delete\n"); </p><p>  printf("ok\n"); </p><p>  s

117、canf("%d",&carnum); </p><p>  for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(car[i].carnum!=carnum) </p>

118、<p><b>  { </b></p><p>  fwrite(&car[i],sizeof(struct car),1,fp2); </p><p><b>  } </b></p><p><b>  } </b></p><p>  fclose(

119、fp); </p><p>  fclose(fp2); </p><p>  printf("wheather delete《Y/N》\n"); </p><p>  scanf("%s",&choice); </p><p>  if(choice=='y'||choice=

120、='Y') </p><p><b>  { </b></p><p>  fp=fopen("car.txt","w"); </p><p>  fp2=fopen("bookl.txt","r"); </p><p>  

121、for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++) </p><p><b>  { </b></p><p>  fwrite(&car[i],sizeof(struct car),1,fp); </p><p><b>  } </b><

122、/p><p>  fclose(fp); </p><p>  fclose(fp2); </p><p>  fp2=fopen("bookl.txt","w"); </p><p>  fclose(fp2); </p><p>  printf("press any

123、key\n"); </p><p><b>  getch(); </b></p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  else </b></p>&l

124、t;p><b>  { </b></p><p>  printf("press any key\n"); </p><p><b>  getch(); </b></p><p><b>  return; </b></p><p><b>

125、;  } </b></p><p><b>  } </b></p><p>  addcar() /*申請新卡函數(shù)*/</p><p><b>  { </b></p><p>  FILE *fp; </p><p><b>  int i=0; &

126、lt;/b></p><p>  fp=fopen("car.txt","a+"); /*添加內(nèi)容*/</p><p>  printf("type your cardnum\n"); </p><p>  scanf("%d",&car[i].carnum); </

127、p><p>  printf("type your name\n"); </p><p>  scanf("%s",car[i].studentname); </p><p>  printf("type your class\n"); </p><p>  scanf("%d

128、",&car[i].studentclass); </p><p>  fwrite(&car[i],sizeof(struct car),1,fp); </p><p>  fclose(fp); </p><p>  printf("over,press any key\n"); </p><p&

129、gt;<b>  getch(); </b></p><p><b>  } </b></p><p>  changemploy() /*修改職工的資料*/</p><p><b>  { </b></p><p>  FILE *fp,*fp2; </p>&

130、lt;p>  char employname[10],choice; </p><p><b>  int i; </b></p><p>  fp=fopen("employ.txt","r"); </p><p>  fp2=fopen("bookl.txt","w

131、"); </p><p>  printf("type the woker's name you want to pick\n"); </p><p>  scanf("%s",employname); </p><p>  for(i=0;fread(&employ[i],sizeof(struct

132、 employ),1,fp)!=0;i++) </p><p><b>  { </b></p><p>  if(strcmp(employ[i].employname,employname)==0) </p><p><b>  { </b></p><p>  printf("the

133、 information\n"); </p><p>  printf("<workmun:%dworker's name:%s age:%d sex:%s gongzi:%d>\n",employ[i].employnum,employ[i].employname,employ[i].employage,employ[i].employsex,employ[i]

134、.employleve,employ[i].employtage); </p><p>  printf("1:x g z g h\n"); </p><p>  printf("2:x g z g m\n"); </p><p>  printf("3:x g z g age\n"); </p>

135、;<p>  printf("4:x g z g gz\n"); </p><p>  printf("press1-4:"); </p><p>  scanf("%s",&choice); </p><p>  switch(choice) </p><p>

136、;<b>  { </b></p><p>  case '1': </p><p><b>  { </b></p><p>  printf("type new num\n"); </p><p>  scanf("%d",&emp

137、loy[i].employnum); </p><p>  fwrite(&employ[i],sizeof(struct employ),1,fp2); </p><p><b>  }break; </b></p><p>  case '2': </p><p><b>  { &

138、lt;/b></p><p>  printf(" type new name\n"); </p><p>  scanf("%s",employ[i].employname); </p><p>  fwrite(&employ[i],sizeof(struct employ),1,fp2); </p&g

139、t;<p><b>  }break; </b></p><p>  case '3': </p><p><b>  { </b></p><p>  printf("type new age\n"); </p><p>  scanf("

140、;%d",&employ[i].employage); </p><p>  fwrite(&employ[i],sizeof(struct employ),1,fp2); </p><p><b>  }break; </b></p><p>  case '4': </p><p

溫馨提示

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

評論

0/150

提交評論