中南民族大學信管c語言專業(yè)課程設計圖書信息標準管理系統(tǒng)_第1頁
中南民族大學信管c語言專業(yè)課程設計圖書信息標準管理系統(tǒng)_第2頁
中南民族大學信管c語言專業(yè)課程設計圖書信息標準管理系統(tǒng)_第3頁
中南民族大學信管c語言專業(yè)課程設計圖書信息標準管理系統(tǒng)_第4頁
中南民族大學信管c語言專業(yè)課程設計圖書信息標準管理系統(tǒng)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中南民族大學管理學院學生課程設計匯報課程名稱:C程序設計語言選題名稱:圖書信息管理系統(tǒng)年級:專業(yè):信息管理和信息系統(tǒng)學號:姓名:新浪微博@song-style是壞學長指導老師:完成地點:管理學院綜合試驗室完成日期:12月2012年至2013年度第1學期新浪微博@song-style是壞學長一、題目(問題)描述1、系統(tǒng)以菜單方法工作。2、圖書信息錄入功效(圖書信息用文件保留)--輸入。3、圖書信息瀏覽功效--輸出,查詢。4、查詢和排序功效:(最少一個查詢方法)--算法。按書名查找按作者查詢等。5、圖書信息刪除和修改。創(chuàng)新要求:在基礎要求達成后,可進行創(chuàng)新設計,如實現(xiàn)會員資料查詢、會員注銷,為借書人辦理注冊。辦理借書手續(xù)(非注冊會員不能借書)。辦理還書手續(xù)等等。信息描述:圖書信息包含:登錄號、書名、圖書編號、單價、作者名、分類號、出版單位、出版時間、價格等。借閱人信息包含:借書人姓名、性別、學號二、問題分析1、系統(tǒng)要求實現(xiàn)很多功效,所以遵照結構化程序設計思想來進行本系統(tǒng)設計—自頂向下、逐步細化,將系統(tǒng)設計任務分解出很多子功效模塊進行設計。2、程序將綜合if語句及switch語句利用方法及嵌套應用方法,循環(huán)結構三種語句while、do-while.、for,和函數(shù)定義方法和調(diào)用方法等來進行編寫。三、系統(tǒng)設計圖書信息管理系統(tǒng)1、程序總體結構圖書信息管理系統(tǒng)錄入瀏覽錄入瀏覽修改刪除查詢修改刪除查詢 按分類號按作者名按書名瀏覽書籍信息添加書籍信息按作者查詢按書名查詢按書名按作者名按分類號按作者名按書名瀏覽書籍信息添加書籍信息按作者查詢按書名查詢按書名按作者名2.關鍵數(shù)據(jù)數(shù)據(jù)結構設計structBOOK:把所要數(shù)據(jù)charshuming[999],zuozheming[999],fenleihao[999],danwei[999],shijian[999],jiage[999];全放在一維數(shù)組中,以結構體形式表現(xiàn)出來。這是文件錄入和讀取關鍵,相當于做成一個文件,需要時候將里面數(shù)據(jù)讀取或修改。(1).錄入模塊:錄入圖書信息并保留于文件中。(2).瀏覽模塊:添加一個或多個圖書信息,并將所添加圖書信息保留,方便查找。(3).刪除模塊:對圖書信息做刪除處理。(4).修改模塊:voidxiugai依據(jù)需要對圖書信息進行修改。(5).查詢模塊:對已建立圖書信息進行查詢,而且可依據(jù)需要選擇按書名、作者或按分類號查詢。(6).菜單:幫助借閱者依據(jù)所需進行選擇。3.函數(shù)設計函數(shù)名:菜單函數(shù)voidselect()函數(shù)功效:運行后顯示主界面,經(jīng)過輸入來選擇下一步操作。參數(shù)說明:intn用于判定使用者所要進入界面序號。算法描述:依據(jù)使用者輸入數(shù)字進行判定,并調(diào)用相對應函數(shù)。函數(shù)名:登陸函數(shù)voiddl()函數(shù)功效:該函數(shù)功效為辨識管理權限,只有正確輸入登錄號才能進入主界面。參數(shù)說明:intn,k=0,其中n用于識別登錄號正確是否,k用于做一個循環(huán)。算法描述:用戶輸入登錄號存在n里,判定n值是否等于11056026,是,則調(diào)用菜單函數(shù)。否,則讓用戶重新輸入,兩次輸錯以后關閉程序。函數(shù)名:錄入函數(shù)voidinput()函數(shù)功效:進入該函數(shù),開始依據(jù)提醒錄入圖書信息參數(shù)說明:inti=0;用于自加,方便更換儲存輸入信息位置。 Chara;接收用戶輸入字符。算法描述:printf提醒信息,用戶輸入需要錄入數(shù)據(jù),輸入Y則調(diào)用lr()。輸入N則調(diào)用clect(),輸入其它則調(diào)用shifou()。函數(shù)名:瀏覽函數(shù)voidoutput()函數(shù)功效:進入該函數(shù),根據(jù)輸入次序依次顯示信息參數(shù)說明:inti=0;用于自加,以更換數(shù)據(jù)位置信息以輸出。chara,b用于接收用戶輸入字符。算法描述:輸出第一本書籍信息,i++。輸入Y,則輸出第二本書籍信息。輸入N,則調(diào)用slect().函數(shù)名:查詢函數(shù)voidsearch()函數(shù)功效:進入函數(shù),選擇不一樣方法進行查詢參數(shù)說明:inti;chaj,m[100],a;i用于做循環(huán)以搜索圖書,j用于判定用戶需要查詢方法,m[100]用于存放用戶輸入搜索數(shù)據(jù)。算法描述:依據(jù)用戶輸入字符進行判定,調(diào)用對應函數(shù)。函數(shù)名:修改函數(shù)voidxiugai()函數(shù)功效:進入該函數(shù),開始依據(jù)提醒修改圖書信息參數(shù)說明:inti用于做循環(huán)條件限制,以尋求要修改圖書。 charj用于用于判定用戶需要修改方法并調(diào)用對應函數(shù)。charm[100],用于錄入用戶新存入數(shù)據(jù)信息并保留。chara;依據(jù)用戶輸入字符,判定其是否需要繼續(xù)修改信息,并調(diào)用對應函數(shù)。算法描述:輸入j值,判定修改方法:A按書名,則調(diào)用xiugai1,B按作者名調(diào)用xiugai2,C返回,調(diào)用slect()。然后用戶輸入需要修改書本信息,用循環(huán)尋求相同數(shù)據(jù),printf需要修改圖書信息,而且提醒用戶輸入對應信息。最終,輸入Y,則gotomulu,N則gotoxiugai2。函數(shù)名:刪除函數(shù)voidshanchu()函數(shù)功效:進入該函數(shù),開始依據(jù)提醒刪除圖書信息參數(shù)說明:inti,p;用于做循環(huán)。 charj,用于用于判定用戶需要刪除方法并調(diào)用對應函數(shù)。m[100]用于給用戶輸入需要刪除書籍信息。a,用于存放用戶輸入字符。dd用于存放用戶輸入字符。算法描述:輸入i值,判定刪除方法:A按書名,則調(diào)用shanchu1,B按作者名調(diào)用shanchu2,C返回,調(diào)用slect()。然后用戶輸入需要刪除書本信息,用循環(huán)尋求相同數(shù)據(jù),printf需要刪除圖書信息,而且提醒用戶輸入對應信息。最終,輸入Y,則從i位置開始往后,全部book.數(shù)據(jù)往前移動一位,然后輸入Y,則xiugai,輸入N則調(diào)用slect()。4.程序運行視圖(見下頁)開始開始輸入n值輸入n值判定n值判定n值刪除模塊修改模塊錄入模塊刪除模塊修改模塊錄入模塊瀏覽模塊查詢模塊查詢模塊輸入i值輸入i值輸入i值輸入i值判定n值判定n值輸入i值判定n值判定n值輸入i值按書名按作者名按書名按作者名判定n值按書名按作者名按書名按作者名判定n值輸入新信息按作者名按書名按分類號輸入新信息按作者名按書名按分類號刪除信息刪除信息添加信息添加信息四、難點及關鍵技術分析:程序設計難點及處理方法說明難點:算法設計,只有設計出來了算法以后才能步步展開,才能有目標編寫程序。所以必需要有一個好算法。處理措施:算法設計用步驟圖會很很直觀,能夠清楚顯示各個框之間邏輯關系。步驟圖包含表示對應操作框,帶箭頭步驟線,必需文字說明。關鍵技術:刪除書籍時,結構體中數(shù)據(jù)往前移動一位。處理措施:使用strcpy()來把后面數(shù)據(jù)和前一位數(shù)據(jù)進行調(diào)換。還需要做一個循環(huán)。而且要注意是,因為數(shù)組是100位,所以假如刪除書籍是最終兩位話,是沒有必需使用strcpy(),因為存有數(shù)據(jù)內(nèi)存相對位置沒有發(fā)生改變。五、測試情況:系統(tǒng)運行、數(shù)據(jù)輸入及輸出結果截圖六、源程序清單:#include<stdio.h>#include<string.h>#include<stdlib.h>structBOOK{ charshuming[999],zuozheming[999],fenleihao[999],danwei[999], shijian[999],jiage[999];}books[999]; voidmain(){ voidselect(); voiddl(); dl();printf("\n");select();}voidselect(){ system("cls"); voidjm(); voidinput(); voidoutput(); voidsearch(); voidxiugai(); voidshanchu(); intn; printf("圖書管理功效界面\n");menu: jm(); scanf("%d",&n); getchar(); if(n==1||n==2||n==3||n==4||n==5||n==6) { switch(n) { case1:input();break; case2:output();break; case3:search();break; case4:xiugai();break; case5:shanchu();break; case6:exit(0);break; } } else { printf("輸入錯誤,請重新輸入!\n"); printf("輸入你再次選擇:\n"); printf("\n"); printf("\n"); printf("\n"); gotomenu; } }voiddl(){intn; intk=0;zl: system("cls"); printf("\n"); printf("\n"); printf("\n"); printf("********歡迎光臨圖書管理系統(tǒng)********\n"); printf("\n"); printf("\n"); printf("請輸入你學號:"); scanf("%d",&n); if(n==11056026) select(); else { if(k<2) { printf("輸入錯誤,請重新輸入!\n"); printf("輸入你再次選擇:"); k++; gotozl; } else { printf("登錄失敗\n"); exit(0); } }}voidjm(){ printf("*\n"); printf("***\n"); printf("********\n"); printf("***************\n"); printf("********************\n"); printf("*********************\n"); printf("**1.圖書信息錄入***\n"); printf("**2.圖書信息瀏覽***\n"); printf("**3.圖書查詢***\n"); printf("**4.圖書信息修改***\n"); printf("**5.圖書信息刪除***\n"); printf("**6.退出***\n"); printf("*********************\n");printf("請輸入序號:\n"); printf("\n");}voidinput(){ system("cls"); inti=0; chara;lr: printf("%s","圖書書名:"); scanf("%s",books[i].shuming); printf("%s","作者名:"); scanf("%s",books[i].zuozheming); printf("%s","分類號:"); scanf("%s",books[i].fenleihao); printf("%s","出版單位:"); scanf("%s",books[i].danwei); printf("%s","出版時間:"); scanf("%s",books[i].shijian); printf("%s","價格:"); scanf("%s",books[i].jiage); i++; printf("\n"); printf("是否繼續(xù),輸入Y/N:");shifou: scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { select(); } elseif(a=='y'||a=='Y') { gotolr; } else { printf("輸入錯誤,請重新輸入"); gotoshifou; } system("cls");}voidoutput(){ system("cls"); inti=0; chara,b;shuchu: printf("圖書書名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); i++; printf("是否繼續(xù)瀏覽下一本:Y/N?\n");shifou: scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { select(); } elseif(a=='Y'||a=='y') { if(books[i+1].shuming!=0) gotoshuchu; else { printf("查詢完成,輸入Y返回界面\n"); scanf("%s",&b); getchar(); system("cls"); if(b=='y'||b=='Y') select(); } } else { printf("輸入錯誤,請重新輸入"); gotoshifou; } system("cls");}voidsearch(){ system("cls"); inti; charj,m[100],a;mulu: printf("請選擇查詢方法:\n"); printf("A、按書名查詢\n"); printf("B、按作者名查詢\n"); printf("C、按分類號查詢\n"); printf("D、返回\n"); printf("請選擇:"); scanf("%s",&j); getchar(); system("cls"); if('A'==j||'a'==j) {chaxun1: printf("請輸入圖書書名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].shuming,m)==0) { printf("書名:%s\n",books[i].shuming); printf("作者:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); } } printf("是否繼續(xù),輸入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { gotomulu; } else gotochaxun1; } elseif('B'==j||'b'==j) {chaxun2: printf("請輸入作者名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("圖書書名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); } } printf("是否繼續(xù),輸入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { gotomulu; } else gotochaxun2; } elseif('C'==j||'c'==j) {chaxun3: printf("請輸入分類號:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].fenleihao,m)==0) { printf("圖書書名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); } } printf("是否繼續(xù),輸入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { gotomulu; } else gotochaxun3; } elseif('D'==j||'d'==j) { select(); } else { printf("輸入錯誤,請重新輸入"); gotomulu; } system("cls");}voidxiugai(){ system("cls"); inti; charj,m[100],a;mulu: printf("請選擇修改方法:\n"); printf("A、按書名修改\n"); printf("B、按作者名修改\n"); printf("C、返回\n"); printf("請選擇:"); scanf("%s",&j); getchar(); if('A'==j||'a'==j) { system("cls");xiugai1: printf("請輸入要修改圖書書名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].shuming,m)==0) { printf("圖書書名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); printf("請修改:"); printf("%s","圖書書名:"); scanf("%s",books[i].shuming); printf("%s","作者名:"); scanf("%s",books[i].zuozheming); printf("%s","分類號:"); scanf("%s",books[i].fenleihao); printf("%s","出版單位:"); scanf("%s",books[i].danwei); printf("%s","出版時間:"); scanf("%s",books[i].shijian); printf("%s","價格:"); scanf("%s",books[i].jiage); printf("是否繼續(xù),輸入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { gotomulu; } else gotoxiugai1; } system("cls"); } } elseif('B'==j||'b'==j) {xiugai2: printf("請輸入要修改作者名:"); scanf("%s",&m); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("圖書書名:%s\n",books[i].shuming); printf("作者名:%s\n",books[i].zuozheming); printf("分類號:%s\n",books[i].fenleihao); printf("出版單位:%s\n",books[i].danwei); printf("出版時間:%s\n",books[i].shijian); printf("價格:%s\n",books[i].jiage); printf("請修改:"); printf("%s","圖書書名:"); scanf("%s",books[i].shuming); printf("%s","作者名:"); scanf("%s",books[i].zuozheming); printf("%s","分類號:"); scanf("%s",books[i].fenleihao); printf("%s","出版單位:"); scanf("%s",books[i].danwei); printf("%s","出版時間:"); scanf("%s",books[i].shijian); printf("%s","價格:"); scanf("%s",books[i].jiage); printf("是否繼續(xù),輸入Y/N:"); scanf("%s",&a); getchar(); system("cls"); if(a=='n'||a=='N') { gotomulu; } else gotoxiugai2; } system("cls"); } } elseif('c'==j||'C'==j) { select(); } else { printf("輸入錯誤,請重新輸入"); gotomulu; }}voidshanchu(){ system("cls"); inti,p; charj,m[100],a,dd; printf("請選擇刪除方法:\n"); printf("A、按書名刪除\n"); printf("B、按作者名刪除\n"); printf("C、返回\n"); printf("請選擇:"); scanf("%c",&j); getchar(); system("cls"); if('A'==j||'a'==j) {shanchu1: printf("請輸入要刪除圖書書名:"); scanf("%s",m); getchar(); for(i=0;i<=999;i++) { if(strcmp(books[i].shuming,m)==0) { printf("%s","作者名:"); printf("%s\n",books[i].zuozheming); printf("%s","分類號:"); printf("%s\n",books[i].fenleihao); printf("%s","出版單位:"); printf("%\ns",books[i].danwei); printf("%s","出版時間:"); printf("%s\n",books[i].shijian); printf("%s","價格:"); printf("%s\n",books[i].jiage); printf("確定刪除,輸入Y/N:"); scanf("%c",&dd); getchar(); if(dd=='y'||dd=='Y') { for(p=i;p<=997;p++) {strcpy(books[p].shuming,books[p+1].shuming);strcpy(books[p].zuozheming,books[p+1].zuozheming);strcpy(books[p].fenleihao,books[p+1].fenleihao);strcpy(books[p].danwei,books[p+1].danwei);strcpy(books[p].shijian,books[p+1].shijian); strcpy(books[p].jiage,books[p+1].jiage); } } else { printf("是否繼續(xù),輸入Y/N:"); scanf("%c",&a); getchar(); system("cls"); if(a=='n'||a=='N') shanchu(); else gotoshanchu1; } system("cls"); } } } elseif('B'==j||'b'==j) {shanchu2: printf("請輸入要刪除作者名:"); scanf("%s",m); getchar(); for(i=0;i<=999;i++) { if(strcmp(books[i].zuozheming,m)==0) { printf("%s","圖書書名:"); printf("%s\n",books[i].shuming); printf("%s","分類號:"); printf("%s\n",books[i].fenleihao); printf("%s","出版單位:"); printf("%s\n",books[i].danwei); printf("%s","出版時間:"

溫馨提示

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

評論

0/150

提交評論