C語言課程設計圖書管理系統_第1頁
C語言課程設計圖書管理系統_第2頁
C語言課程設計圖書管理系統_第3頁
C語言課程設計圖書管理系統_第4頁
C語言課程設計圖書管理系統_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 學號: 指導老師: 班級: 姓名: 前 言計算機科學技術的發展,不僅極大地促進了整個科學技術的發展,而且明顯地加快了經濟信息化和社會信息化的進程。因此,計算機教育在全國備受重視,計算機知識與能力已成為21世紀人才素質的基本要素之一。如今,高等教育的計算機教育發展十分迅速。十多年前,只有部分理工科專業開設計算機課程。今天,幾乎所有高校的所有專業都開設了程度不同的計算機課程。人們已經認識到,計算機知識已成為當代知識分子知識結構中不可缺少的重要組成部分。而除了掌握計算機的基礎知識和操作的基本能力外,掌握一門高級編程語言,并可以熟練運用它,已成為當代大學生綜合能力必要組成。計算機技術發展如此迅猛,計

2、算機應用如此廣泛,需要學習的東西愈來愈多,而我們的總學時是有限的。一般來說,計算機課程學習可以分為兩部分:一部分是理論課程學習,一部分是上機應用實習。根據我們專業的性質和要求,則應側重于上機操作運用。為此,學校特意在寒假最后一星期安排了C語言上機實習。 現將一星期的實習內容及結果分析分列如下: 課題圖書信息管理系統要求 圖書信息包括:登陸號,作者名,分類號,出版單位,出版時間,試試機已圖書信息管理系統,使之能提供以下功能:(1)系統以菜單方式共作(2)圖書信息錄入功能(3)圖書信息瀏覽功能(4)圖書信息查詢功能(5)圖書信息的刪除與修改:可選(本功能作出來了)思路:圖書信息采用結構體結構存取,

3、信息包括登陸號,作者名,分類號,出版單位,出版時間等五項程序采用菜單形式,共包括五個模塊(1) 添加模塊(2) 瀏覽模塊(3) 查找模塊(4) 刪除模塊(5) 修改模塊設計流程圖如下; 模塊圖課題主函數修改數據瀏覽所有數據查找數據刪除數據添加數據 各模塊的詳細流程圖 添加數據函數流程圖輸入要填加的紀錄個數K輸入紀錄的詳細信息紀錄是否輸完畢 N 返回主菜單保存記錄 Y瀏覽數據函數流程圖 查找函數流程圖主菜單開始 按作者名查找按ID查找按姓名查找輸出記錄格式 調用函數load(),計算記錄個數n 開始顯示記錄判斷記錄是否全部顯示? 開始輸入要查找紀錄的條件 N Y 用戶是否繼續瀏覽 與已知紀錄中對

4、應相比較是 Y Y N N 返回主函數(mian)是否與所有的都比較完 N 是否找到要找的紀錄 Y Y 顯示 not find顯示find 是否返回返回主函數(main) 修改函數流程圖 開始 輸入要修改紀錄的名稱 Y 選擇要修改紀錄的相應的項在已知的紀錄中根據輸入的相應的紀錄輸入紀錄相應項的替代內容更改保存 是否繼續更改 是否返回主函數 N Y 返回主函數 N 跳出程序刪除函數流程圖 返回主函數跳出程序是否返回主函數是否繼續刪除保存是否找到想要找的記錄根據名稱在所有紀錄中查找你要刪除的記錄輸入你想刪除的記錄的名稱開始 Y N 顯示 沒有此書信息 Y 將后面的記錄覆蓋要刪除的記錄,后面的記錄一

5、次覆蓋前一紀錄 是否所有紀錄都被覆蓋 N Y N Y 具體程序及結構分析#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 10 定義結構體struct library int num; char book_name30; char writer30; char sort_num3; char pub_company30; char pub_time30; char prise30;typedef struct library LIB;LIB libN;FILE *fp; 文件指

6、針int all=0;int menu(void);void input(void);void output(void);void save(void);void del(void);void search(void);void xiugai(void);main() for(;) switch(menu() 用switch選擇結構做出主菜單的基本功能 case 1:input();break; case 2:output();break; case 3:save();break; case 4:search();break; case 5:xiugai();break; case 6:del

7、();break; case 0:exit(1);break; int menu(void) char m3; int n; system("color 2"); 設計屏幕輸出效果 printf("tt C語言課程設計n"); printf("tt052081班 黎志偉 20081001034n"); printf("tt歡迎來到圖書信息管理系統n"); printf("tt 1:輸入n"); printf("tt 2:輸出n"); printf("tt 3:保存n

8、"); printf("tt 4:查找n"); printf("tt 5:修改n"); printf("tt 6:刪除n"); printf("tt 0:退出n"); printf("tt 請選擇一項操作(0-6):n"); scanf("%s",m); n=atoi(m); return(n); 輸入模塊void input(void) 定義無返回值的輸入函數 int i; char m3; for(i=all;i<N;i+) all+; printf(&q

9、uot;請輸入相關信息:n"); printf("tt登陸號:n"); scanf("%d",&libi.num); printf("tt書名:n"); scanf("%s",libi.book_name); printf("tt作者名:n"); scanf("%s",libi.writer); printf("tt分類號:n"); scanf("%s",libi.sort_num); printf("tt出

10、版單位:n"); scanf("%s",libi.pub_company); printf("tt出版時間:n"); scanf("%s",libi.pub_time); printf("tt價格:n"); scanf("%s",libi.prise);a: printf("tt是/否繼續此操作?n"); printf("tt1:是n"); printf("tt2:否n"); scanf("%s",m);

11、if(atoi(m)=1) continue; else if(atoi(m)=2) return; else printf("tt出現錯誤!n"); goto a; 解釋goto算法:goto a指返回程序中有a標記的地方輸出即瀏覽模塊void output(void) 定義無返回值的輸出瀏覽函數 int i; for(i=0;i<all;i+) printf("登陸號:tt%dn",libi.num); printf("%stt書名%stt作者名%s分類號n",libi.book_name,libi.writer,libi.

12、sort_num); printf("%stt出版單位%stt出版時間%s價格n",libi.pub_company,libi.pub_time,libi.prise); 保存模塊void save(void) 定義無返回值的保存函數 int i;if(fp=fopen("file.c","wb")=NULL) printf("不能打開此文件"); exit(1); for(i=0;i<all;i+) if(fwrite(&libi,sizeof(LIB),1,fp)!=1) printf("

13、;can not write!"); exit(1); fclose(fp); 查詢模塊void search(void) 定義無返回值的查詢函數 int i,flag; char m3; char name30; printf("tt請選擇您要查詢的方式:n"); printf("tt1:書名!n"); printf("tt2:作者!n"); scanf("%s",m); i=atoi(m); switch(i) case 1: printf("tt請輸入書名:n"); scanf(

14、"%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.book_name)=0) printf("登陸號:tt%dn",libi.num); printf("書名:%stt作者名:%stt分類號:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版單位:%stt出版時間:%stt價格:%sn",libi.pub_company,libi.pub_time,libi.prise); flag

15、=1;break; if(flag=0) printf("tt沒有找到此書n"); case 2: printf("tt請輸入作者名:n"); scanf("%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.writer)=0) printf("登陸號:tt%dn",libi.num); printf("書名:%stt作者名:%stt分類號:%sn",libi.book_name,libi.writer,libi.sort_num

16、); printf("出版單位:%stt出版時間:%stt價格:%sn",libi.pub_company,libi.pub_time,libi.prise); flag=1;break; if(flag=0) printf("tt不能找到此作者!n"); 修改模塊void xiugai(void) 定義無返回值的修改函數 int i,flag; char name30,n3; printf("tt請選擇要修改的書名 :n"); scanf("%s",name); flag=0; for(i=0;i<N;i+

17、) if(strcmp(name,libi.book_name)=0) printf("登陸號:tt%dn",libi.num); printf("書名:%stt作者名:%stt分類號:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版單位:%stt出版時間:%stt價格:%sn",libi.pub_company,libi.pub_time,libi.prise); printf("tt請輸入要修改的信息:n"); printf("tt登

18、陸號:n"); scanf("%d",&libi.num); printf("tt書名:n"); scanf("%s",libi.book_name); printf("tt作者名:n"); scanf("%s",libi.writer); printf("tt分類號:n"); scanf("%s",libi.sort_num); printf("tt出版單位:n"); scanf("%s",lib

19、i.pub_company); printf("tt出版時間:n"); scanf("%s",libi.pub_time); printf("tt價格:n"); scanf("%s",libi.prise); flag=1;break; if(flag=0) printf("tt沒有找到要修改的這本書!n");刪除模塊void del(void) 定義無返回值的刪除函數 int i,j,flag; char name30; printf("tt請輸入要刪除的書名:n"); s

20、canf("%s",name); flag=0; for(i=0;i<N;i+) if(strcmp(name,libi.book_name)=0) printf("登陸號:tt%dn",libi.num); printf("書名:%stt作者名:%stt分類號:%sn",libi.book_name,libi.writer,libi.sort_num); printf("出版單位:%stt出版時間:%stt價格:%sn",libi.pub_company,libi.pub_time,libi.prise); for(j=N;j>i;j-) libj-1.num=libj.num; strcpy(libj-1.book_name,libj.book_name); strcpy(libj-1.writer,libj.writer); strcpy(libj-1.sort_num,libj.sort_num); strcpy(libj-1.pub_company,libj.pub_company); strcpy(libj-1.pub_time,libj.pub_time); strcpy(libj-1.prise,libj.prise); flag=1;

溫馨提示

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

評論

0/150

提交評論