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

下載本文檔

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

文檔簡介

1、C語言課程設(shè)計報告圖書信息管理系統(tǒng)設(shè)計專業(yè) 計應(yīng) 班級 3 學號 姓名 陳金 指導(dǎo)老師 楊有安C 語言程序設(shè)計1、題目要求設(shè)計“圖書信息管理系統(tǒng)”要求:圖書信息包括:登錄號,書名,作者名,分類號,出版單位,出版時間,價格等。使之提供以下功能:(1) 系統(tǒng)以菜單方式工作。(2) 管理員登入系統(tǒng)。(3) 圖書信息錄入功能。(圖書信息用文件保存)。(4) 圖書信息瀏覽功能。(5) 圖書信息(按作者,按書名查)(6) 圖書信息查詢功能的刪除和修改。2、分析:根據(jù)題目要求,應(yīng)當把圖書信息和管理員信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進行整個程序的運行,然后把圖書信息送到文件中,所以應(yīng)該提供一

2、個結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實現(xiàn)圖書信息錄入,瀏覽,查詢,刪除和修改等功能的操作,所以需要建立相應(yīng)的模塊來實現(xiàn);另外還需提供鍵盤式選擇菜單實現(xiàn)功能,在運行時達到所要目的。3、總體設(shè)計: 一、根據(jù)題目要求,可以將系統(tǒng)分為六個模塊:(1) 管理員登錄系統(tǒng)模塊。(2) 菜單選擇模塊。(3) 圖書信息錄入功能模塊。(4) 圖書信息瀏覽功能。(5) 圖書信息查詢功能。(6) 圖書信息的刪除和修改。 二、功能模塊圖管理員登錄系統(tǒng)模塊菜單選擇模塊。菜單選擇模塊。菜單選擇模塊。菜單菜單選擇模塊。(1) 擇模塊。圖書信息錄入功能模塊圖書信息瀏覽功能模塊圖書信息查詢功能模塊圖書信息的刪除和修改圖書信

3、息管理系統(tǒng)三、程序結(jié)構(gòu)head head users User ,up, mgstruct users管理員賬戶、密碼書1struct *next書1的各項圖書信息struct tsxt_list char bookname20; char chubanshe20; char cbtime15; char loginnum10; float price; char fenleihao10; struct tsxt_list * next; ;書2struct *next書2的各項圖書信息 /*圖書信息結(jié)構(gòu)體*/ 管理員結(jié)構(gòu)體 struct users Char Name20; char ps8

4、; user,up,mg; 書2的各項圖書信息書3struct *next 書nstruct *next 書2的各項圖書信息null四、程序調(diào)用圖主函數(shù)main函數(shù)cijiemian登入菜單界面函數(shù)loginmanager登入系統(tǒng)賬戶密碼不匹配匹配函數(shù) zujiemian進入圖書信息管理系統(tǒng)菜單選擇錯誤查尋2、圖書瀏覽1、圖書錄入圖書瀏覽圖書信息修改按作者按書名四、各個函數(shù)所實現(xiàn)的功能cijimian -次界面菜單creat_Books_doc-增加圖書節(jié)點DeleteDoc -刪除圖書Info_changw-改變圖書信息insertDoc-錄入圖書loginmanager- 管理員登陸pri

5、nt_book_Doc- 打印圖書save - 保存圖書search- 查詢界面search_author_name- 按作者查search_book_name- 按書名查4、詳細設(shè)計:頭函數(shù)名:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#include<conio.h>/*圖書信息結(jié)構(gòu)體*/*包括登錄號,書名,作者名,分類號,出版單位,出版時間,價格等*/struct tsxt_list char bookname20; char chu

6、banshe20; char cbtime15; char loginnum10; float price; char fenleihao10; struct tsxt_list * next; ; struct users /管理員結(jié)構(gòu)體 char Name20; /管理員賬戶 char ps8; / 用戶密碼 user,up,mg; /userN為文件保存的管理員信息,up為鍵盤輸入管理員信息,mg為管理員結(jié)構(gòu)體變量。一管理員登入:/*管理員登錄函數(shù)*/void loginmanager()FILE * fp=NULL; /定義文件指針 char DataFile20="mana

7、ger.txt"/存儲管理員信息的文件名 int i=0,j=1; char relogin; /是否重新登錄 int success=0; /登錄成功的標志 printf("n-管理員登錄-n"); fp=fopen(DataFile,"r");if(fp=NULL) /如果當前文件不存在,初始化根賬戶為gary,密碼為313 printf("首次使用該系統(tǒng)!n");printf("管理員賬戶為:gary 密碼為:313n");fp=fopen(DataFile,"a"); /以追加

8、方式打開文件strcpy(user.Name,"gary");strcpy(user.ps,"313"); fwrite(&user,sizeof(user),1,fp); fclose(fp);elsefclose(fp);again: printf("請輸入管理員賬戶:"); scanf("%s",up.Name); /輸入用戶名 up.Name19='0' printf("請輸入管理員密碼:"); fflush(stdin);for(i=0;i<7;i+) /

9、輸入密碼,以*在屏幕顯示 up.psi=getch(); up.psi+1='0' /字符要以'0'結(jié)尾 if(up.psi='b')i-; up.psi='0' /清除前一個字符 i-; /接收前一個字符 printf("b "); printf("b"); continue;if(up.psi='r') up.psi='0' break; printf("*"); fp=fopen(DataFile,"rt"); i

10、f(fp=NULL) / 打開文件失敗時提示 printf("n打開 %s 失敗!按任意鍵結(jié)束程序n",DataFile); perror("Open file fail"); getchar(); return; if(fp=fopen("manager.txt","r")=NULL)/打開文件,并判斷是否出錯 printf("n出錯,請檢查文件是否存在,按任意鍵返回主菜單n");elsefread(&mg,sizeof(struct users),1,fp);/從文件中讀取信息 fc

11、lose(fp);if(strcmp(mg.Name,up.Name)=0&&strcmp(mg.ps,up.ps)=0) success=1; if(success=1) printf("n登錄成功,按任意鍵進入圖書管理系統(tǒng)菜單系統(tǒng)!n"); getchar(); zujiemian(); else fflush(stdin); /清除輸入緩沖區(qū)中的字符 printf("n用戶名或密碼錯誤!重新輸入請按y,退出請按n:n"); relogin=getchar(); if(relogin='y'|relogin='

12、Y') getchar(); goto again; else cijiemian(); exit(0); 登入流程圖 開始輸入管理員帳號和密碼輸入正確與否進入功能菜單頁面結(jié)束N 二、來到功能菜單頁面void search_author_name(struct tsxt_list *head);void search_book_name(struct tsxt_list * head);struct tsxt_list * Create_Books_Doc() /*新增圖書*/ struct tsxt_list * head; head=(struct tsxt_list *)mall

13、oc(sizeof(struct tsxt_list); head->next=NULL; return head;void save(struct tsxt_list * head) /*保存圖書 */ struct tsxt_list *p; FILE *fp; p=head; fp=fopen("data.txt","w+");fprintf(fp," n"); fprintf(fp," 登錄號書名 作 者 出版單位出版時間分類號 價格 n"); fprintf(fp," n");w

14、hile(p->next!= NULL) p=p->next; fprintf(fp,"%-6.6%-10.10s%-10.10s%-10.10s%-12.12s%-6.6s%.2fn",p->loginnum,p->bookname,p->author,p->chubanshe,p->cbtime,p->fenleihao,p->price); fprintf(fp," n"); fclose(fp); printf(" 已將圖書數(shù)據(jù)保存n"); void InsertDoc(s

15、truct tsxt_list *head) /*添加圖書*/ struct tsxt_list *s, *p; char flag='Y' p=head; while(p->next!= NULL) p=p->next; while(flag='Y'|flag='y') system("cls"); /* *進行清屏 */ s=(struct tsxt_list *)malloc(sizeof(struct tsxt_list); printf("-<-<-<-圖書錄入-<-&l

16、t;-<"); printf("tttttttttt"); printf("n 請輸入圖書登陸號(5位):"); fflush(stdin); scanf("%s",s->loginnum); printf("n 請輸入圖書書名(5位):"); fflush(stdin); scanf("%s",s->bookname); printf("n 請輸入圖書作者名(4位):"); fflush(stdin); scanf("%s",

17、s->author); printf("n 請輸入圖書出版社(4位):"); fflush(stdin); scanf("%s",s->chubanshe); printf("n 請輸入圖書出版時間(9位):"); fflush(stdin); scanf("%s",s->cbtime); printf("n 請輸入圖書分類號(5位):"); fflush(stdin); scanf("%s",s->fenleihao); printf("n

18、 請輸入圖書價格(4位):"); fflush(stdin); scanf("%f",&s->price); printf("n"); p->next=s; p=s; s->next=NULL; printf(" 添加成功!"); system("cls"); /* *進行清屏 */ printf("n 繼續(xù)添加?(Y/N):"); fflush(stdin); scanf("%c",&flag); printf("n&q

19、uot;); if(flag='N'|flag='n') break; else if(flag='Y'|flag='y') continue; save(head); return;void search(struct tsxt_list *head) /* *定義查詢函數(shù) */ int a; system("cls"); /* *進行清屏 */ printf("tt*n"); printf("開始查詢n"); printf("ttt1 一 按書名查詢n&qu

20、ot;); printf("ttt2 一 按作者查詢n"); printf("ttt0 一 退出n" ); printf("tt*n" ); printf("tt請選擇你想要的槍斃的方式(*_*) 嘻嘻 :"); scanf("%d",&a); switch(a) case 1: search_book_name(head); break; case 2: search_author_name(head); break; case 0: system("cls");

21、/* *進行清屏 */ return; void search_book_name(struct tsxt_list *head)/*按照書名查詢*/ struct tsxt_list *p; char temp20; p=head; if(head=NULL | head->next=NULL) printf(" 圖書庫為空!n"); else printf("請輸入您要查找的書名: "); fflush(stdin); scanf("%s",temp); while(p->next!= NULL) p=p->ne

22、xt; if(strcmp(p->bookname,temp)=0) printf("n圖書已找到!n"); printf("n"); printf("登錄號: %stn",p->loginnum); printf("書名: %stn",p->bookname); printf("作者名: %stn",p->author); printf("出版單位: %stn",p->chubanshe); printf("出版時間: %stn&qu

23、ot;,p->cbtime); printf("分類號: %stn",p->fenleihao); printf("價格: %.2ftn",p->price); if(p->next=NULL) printf("n查詢完畢!n"); return; void search_author_name(struct tsxt_list *head) /*按照作者查詢*/ struct tsxt_list *p; char t20; p=head; if(head=NULL|head->next=NULL) pr

24、intf(" 圖書庫為空! n"); else printf("請輸入您要查找的作者名:"); fflush(stdin);scanf("%s",t); while(p->next!=NULL) p=p->next; if(strcmp(p->author,t)=0) printf("n*圖書已找到!*n"); printf("n"); printf("*登入號:%stn",p->loginnum); printf("n"); pr

25、intf("*書名:%stn",p->bookname); printf("n"); printf("*作者名:%stn",p->author); printf("n"); printf("*出版單位:%stn",p->chubanshe); printf("n"); printf("*出版時間:%stn",p->cbtime); printf("n"); printf("*分類號:%stn"

26、,p->fenleihao); printf("n"); printf("*價格:%.2ftn",p->price); if(p->next=NULL) printf("查詢完畢!"); printf("n"); printf("n"); return; void Print_Book_Doc(struct tsxt_list * head) /*打印圖書信息*/ struct tsxt_list *p; if(head=NULL | head->next=NULL) p

27、rintf("n 沒有圖書記錄! nn"); return; p=head; printf(" n"); printf(" 登錄號書 名 作 者出版單位| 出版時間分類號價格n"); printf(" n"); while(p->next!= NULL) p=p->next; printf("%-6.6s%-10.10s%-8.8s%-9.8s %-12.12s%-6.5s%.2fn",p->loginnum,p->bookname,p->author,p->

28、chubanshe,p->cbtime,p->fenleihao,p->price); printf(" n"); printf("n"); void info_change(struct tsxt_list * head) /*修改圖書信息*/ struct tsxt_list * p; int panduan=0; char temp20; p=head; system("cls"); /*進行清屏*/ printf("請輸入要修改的書名:"); scanf("%s",te

29、mp); while(p->next!= NULL) p=p->next; if(strcmp(p->bookname,temp)=0) printf("n 請輸入圖書登陸卡號:"); fflush(stdin); scanf("%s",p->loginnum); printf("n 請輸入圖書書名:"); fflush(stdin); scanf("%s",p->bookname); printf("n 請輸入圖書作者名:"); fflush(stdin); sc

30、anf("%s",p->author); printf("n 請輸入圖書出版社:"); fflush(stdin); scanf("%s",p->chubanshe); printf("n 請輸入圖書出版時間:"); fflush(stdin); scanf("%s",p->cbtime); printf("n 請輸入圖書分類號:"); fflush(stdin); scanf("%s",p->fenleihao); printf(

31、"n 請輸入圖書價格:"); fflush(stdin); scanf("%f",&p->price); printf("n"); panduan=1; if(panduan=0) system("cls"); /*進行清屏*/ printf("n 沒有圖書記錄! nn"); return; void DeleteDoc(struct tsxt_list * head) /*刪除圖書*/ struct tsxt_list *s,*p; char temp20; int pandua

32、n; panduan=0; p=s=head; system("cls"); /*進行清屏*/ printf(" 請輸入您要刪除的書名:"); scanf("%s",temp); while(p!= NULL) if(strcmp(p->bookname,temp)=0) panduan+; break; p=p->next; if(panduan=1) for(;s->next!=p;) s=s->next; s->next=p->next; free(p); printf("n 刪除成

33、功! n"); else printf(" 您輸入的書目不存在,請確認后輸入!n"); return; int zujiemian() /*主界面*/ struct tsxt_list * head; char choice; head=NULL; system("cls"); for(;) printf(" n"); printf(" 一 圖書信息管理系統(tǒng) n"); printf(" n"); printf(" 1圖書信息錄入 n"); printf("

34、 n"); printf(" 2圖書信息瀏覽 n"); printf(" n"); printf(" 3圖書信息查詢 n"); printf(" n"); printf(" 4圖書信息修改 n"); printf(" n"); printf(" 5圖書信息刪除 n"); printf(" n"); printf(" 6退出系統(tǒng) n"); printf(" n"); printf(" 計應(yīng)<三>班:n"); printf(" -陳金 "); printf(" 請選擇菜單序號:"); fflush(stdin); scanf("%c",&choice); if(choice='1') if(head=NULL) head=Create_Books_Doc(); InsertDoc(head); else if(choice='2') Print_Book_Doc(head)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論