


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、停車場管理系統-課程設計高級語言程序設計( 1)課程設計一、程序設計說明書設計題目】 停車場信息管理系統問題描述】現如今隨著經濟的發展,私家車越來越多,系統管理停車場變得尤為重 要。某小區停車場有車數輛,將每個車主的信息用該軟件通過鍵盤敲入并以 文本文件方式存放在磁盤,內容為五列:停車場車位號、車牌號、車主姓 名、車主身份證號、車主電話。編寫程序,錄入車主信息,可對車主信息隨 時進行修改、刪除,并按車位號查詢車主信息。基本要求】1. 通過此軟件可以錄入該汽車的車牌號;2. 通過此軟件能夠瀏覽錄入該汽車所停車位號;3. 通過此軟件錄入車主信息,包括車主姓名、車主身份證號以及車主的聯系方式;4.
2、通過此軟件可根據輸入的車位號刪除、修改或查詢車主信息;5. 過此軟件能將車主信息按照車位號進行排序;6. 通過此軟件可輸出全部車主信息。算法思想】1. 構造一個結構體類型,成員包括五項:一個字符型數組存放:車主姓名, 四個整形變量:汽車的車牌號、汽車所停車位號、車主身份證號以及車主的 聯系方式。2. 錄入車主信息及車位號時,通過循環語句將各項信息輸入到結構體中,然 后通過循環語句算出總分并寫入文本文件中,并存入磁盤。3. 修改車主信息時,先將文件讀出到結構體中,通過字符的比較查找所修改 的信息所在處,如果沒有找到則輸出警告語句,找到后則通過輸入輸出函數 與賦值進行修改,并將修改過后的車主信息寫
3、入文本文件中,并存入磁盤。4. 查詢車主信息時,直接通過已經存在的文本文件進行讀出并在屏幕上輸出 結果,如果文件不存在則輸出警告語句。5. 查找時,直接通過已經存在的文本文件進行讀出到結構體中,并將結構提 數組通過車位號的大小用冒泡法進行排序,然后將結果顯示在屏幕上。【調用關系】main函數分別調用:in sert();/輸入信息del();/ 刪除車主信息modify();/修改車主信息in quire();/查詢車主信息sort ();/對車主信息進行排序print_inf ()/打印車主信息【概要設計】1 功能模塊圖;主函數驗證讀取插入修改刪除查找排序保存文 信 信 信 信 信 文2 各
4、個模塊詳細的功能描述。1. 保存信息模塊:將程序中鏈表里所存儲的信息保存到已經指定好的文件 中(result.txt)(主要是 fprintf 函數)。2讀取信息模塊:將指定的文件(result.txt)中的信息讀取后存入運行程序中 的鏈表當中(主要是fscanf函數)3. 簡單菜單模塊:顯示程序執行時的主菜單(主要是switch語句實現)。4輸出信息模塊:將鏈表中的信息輸出到程序的顯示框上(主要是for循環和printf函數實現)。5.添加信息模塊:按照停車號的大小進行插入,有重號系統會顯示“有重 號,添加失敗”,否則“插入成功”。6. 刪除信息模塊:通過停車號的比較,當無此車位號則刪除失敗
5、,否則刪除成功。7修改信息模塊:先找到需要修改的車位號,再按照車牌號,車主姓名, 車主身份證,車主聯系方式進行進一步修改若無該車位號則提示錯誤信 息返回主菜單。8. 查詢信息模塊:如果鏈表里無數據則顯示“系統無數據,按任意鍵返回” 如果有則按車位號查詢,并輸出。9. 排序信息模塊:按照簡單排序按車位號對信息進行排序,并輸出。10. 主函數模塊:將以上模塊進行組合實現系統的功能。【詳細設計】【程序使用方法】1. 執行程序,先輸入密碼,進入程序主界面按照程序提示進入所要執行的內 容。2. 選擇1,根據所停車位號添加車主信息,添加完成后按任意鍵返回主菜單。3. 選擇2,根據所停車位號刪除車主信息,刪
6、除完成后按任意鍵返回主菜單。4. 選擇3,根據所停車位號修改車主信息,修改完成后按任意鍵返回主菜單。5. 選擇4,根據所停車位號查詢車主信息,查詢后按任意鍵返回主菜單。6. 選擇5,給居所停車位對車主信息進行排序,排序完成后按任意鍵返回。7. 選擇6,可輸出全部車主信息,出現在屏幕上,按任意鍵進行返回。8. 顯示主菜單是,選擇0,結束本次程序。程序上機調試報告【語法錯誤及其排除】1. 個別用戶表示符和關鍵字相同導致程序無法運行,找出錯誤修改。2. 使用fscanf() 函數時,參數直接寫的是變量名,應該取地址3. 宏定義時在末尾處加上了分號,應該不加分號。4. 部分單詞拼寫錯誤,導致定義的變量
7、不存在,根據提示進行修改。 三.程序測試結果程序測試主要截屏1.輸入系統密碼2.密碼正確,進入主菜單3.添加停車信息4修改車主信息5.排序車主信息6.打印車主信息7.查找車主信息8.刪除車主信息« 下常SOdata俚妥卻培熄IHT娛思辰計王冃慚Debu叭掙車驗信息號理基離 王冋鞠用燉”1 = i 回 | S3J幘輸入要刪陡的豐位號:11弓除咸功F按任意鍵返叵主菓單!11T9.退出程序【收獲及體會】對自己的設計進行評價,指出合理和不足之處,提出改進方案;我自己覺得自己的程序還存在很大問題,比如如果使用者不按照程序先前制定的規則輸入則會出現bug合理之處就在于基本完成了一個非收費停車場的
8、基 本信息的管理。改進之處就是增加信息的項目已經bug的問題。還有就是將這個停車場改成一個收費的停車場,按照時間來收費,有過想法但是不知道該怎么實現,有 想到用 time 函數,但不知道怎么用!四、源程序代碼#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<malloc.h>#include<string.h>struct car *creat_inf();void save_inf(struct car *h);struct car *read_inf(stru
9、ct car *head);void menu(void);void scan_inf(struct car *h);void print_inf(struct car *h);int insert(struct car *h);int del(struct car *h);int modify(struct car *h);struct car * inquire(struct car *h);struct car *sort(struct car *head);/定義結構體struct car/停車場車位號/車牌號/車主姓名/車主身份證號int n;char num20;char name
10、20;char number20;/建立單鏈表頭結點 struct car *creat_inf()struct car *head;head=(struct car *)malloc(sizeof(struct car);head->next=NULL;/表尾節點 next 域置空return head;/將單鏈表中的信息保存到指定的磁盤文件中void save_inf(struct car *h)struct car *c;FILE *fp;if(fp=fopen("result.txt","wt")=NULL)printf("寫文件
11、出錯,按任意鍵退出!");getch();exit(1); for(c=h->next;c!=NULL;c=c->next)fprintf(fp,"%d %s %s %s %s",c->n,c->num,c->name,c->number,c->tel_num);printf("n 文件已成功保存 ,按任意鍵退出 !nn"); getch();fclose(fp);/從指定的磁盤文件中讀取信息并存入單鏈表中struct car *read_inf(struct car *head)struct car
12、*p1,*p2;FILE *fp;system("cls"); if(fp=fopen("result.txt","rt")=NULL) printf(" 文件空,按任意鍵返回 !");getch();return head;p2=head;while(!feof(fp) / 文件未結束p1=(struct car *)malloc(sizeof(struct car);/存放讀取信息fscanf(fp,"%d %s %s %s %sn",&p1->n,p1->num,p1-
13、>name,p1- >number,p1->tel_num);p2->next=p1;/鏈接節點p2=p1; p2->next=NULL;fclose(fp);printf("n 文件中信息以正確讀出 ,按任意鍵返回 !");getch();system("cls");return head;/停車場管理系統菜單void menu(void)printf("nnn 歡迎來到停車場管理系統 nnn");printf("1. 添加停車信息nn");printf("2. 刪除停車信
14、息nn");printf("3. 修改停車信息nn");printf("4. 查詢停車信息nn");printf("5. 排序停車信息nn");printf("6. 打印停車信息nn");printf("7. 讀取庫中數據nn");printf("0.退出系統nn");printf(" 請選擇 0-6 選項 nn");/輸出模塊 void print_inf(struct car *h) struct car *p;system("cl
15、s");printf("nn 目前停車場的數據為 :nn");printf(" 車位號 車牌號 車主姓名 車主身份證號 車主聯系電話 n"); for(p=h->next;p!=NULL;p=p->next)printf("%5d %10s %8s %10s %10sn",p->n,p->num,p->name,p- >number,p->tel_num);printf(" 按任意鍵返回主菜單 !n");getch();/添加信息模塊int insert(stru
16、ct car *h)struct car *p;p=(struct car *)malloc(sizeof(struct car); /p 指向新生成的節點 system("cls");printf("請輸入要添加的車位號,車牌號,車主姓名,車主身份證號,車主聯系電話 n");scanf("%d%s%s%s%s",&(p->n),(p->num),(p->name),(p->number),(p- >tel_num);while(h->next!=NULL && h->
17、next->n < p->n)h=h->next;if(h->next!=NULL && h->next->n = p->n)free(p);printf(" 有重號 ,添加失敗 ,按任意鍵返回主菜單 !"); p->next=h->next; h->next=p;printf("添加成功,按任意鍵返回主菜單門;getch();return 1;/刪除信息模塊 int del(struct car *h)int m; struct car *p;p=h->next;system
18、("cls");if(p=NULL)/只有頭結點為空表,不能刪除printf("無內容,無法刪除,按任意鍵退出返回主菜單!n");getch();return 0;elseprintf(" 請輸入要刪除的車位號 :n");scanf("%d",&m);while(p!=NULL)if(p->n=m)h->next = p->next;free(p);printf(" 刪除成功 !按任意鍵返回主菜單 !n");getch();return 1;h = p; p=p->
19、;next;printf(" 無此車位號 ,刪除失敗 ,按任意鍵返回主菜單 !n");getch();return 0;/修改信息模塊int modify(struct car *h)int m,choice;struct car *p;p = h->next;system("cls");printf("n 請輸入要修改的車位號 :n");scanf("%d",&m);while (p!=NULL)if(p->n=m)printf(" 您要修改哪一項 :n"); printf
20、("n 1. 車牌號 n"); printf("n 2. 車主姓名 n"); printf("n 3. 車主身份證號 n");printf("n 4. 車主聯系方式 n");printf(" 請選擇 1-4:");scanf("%d",&choice);switch(choice)case 1:printf("請輸入修改后的車牌號:n"); scanf("%s",p->num);break;case 2:printf(&q
21、uot;請輸入修改后的車主姓名:n");scanf("%s",p->name); break;case 3:pri ntf("請輸入修改后的車主身份證號:n");scanf("%s",p->number); break;case 4:pri ntf("請輸入修改后的車主聯系方式:n"); scanf("%s",p->tel_num);break;printf("n停車信息 n");printf(" 車位號 車牌號 車主姓名 車主身份證號
22、車主聯系電話 n");printf("%5d %10s %8s %10s %10sn",p->n,p->num,p->name,p- >number,p->tel_num);printf(" 修改信息成功 !按任意鍵返回主菜單 !");getch();return 1;p=p->next;printf(" 您所要修改的信息不存在 ,按任意鍵返回主菜單 !");getch();return 0;/查詢信息模塊struct car * inquire(struct car *h) int m;
23、 struct car *p; system("cls"); if(h->next = NULL) printf(" 系統無數據,按任意鍵返回主菜單 n");getch();return 0;elsep = h->next;printf(" 請輸入要要查找的車位號 :");scanf("%d",&m);while (p!=NULL)if(p->n=m)printf(" 車位號 車牌號 車主姓名 車主身份證號車主聯系電話 n");printf("%5d %10s
24、 %8s %10s %10sn",p->n,p->num,p- >name,p->number,p->tel_num);printf(" 按任意鍵返回主菜單 .");getch();return p;/找到則返回指向該節點的指針 P p=p->next;/排序 struct car *sort(struct car *head)struct car *temp1,*p1,*p2,*min,*temp,*p; temp=(struct car*)malloc(sizeof(struct car); if(head->next
25、=NULL)system("cls");printf(" 系統無數據 !按任意鍵返回主菜單 !");getch();return head; for(p1=head->next;p1!=NULL;p1=p1->next)min=p1;for(p2=p1->next;p2!=NULL;p2=p2->next)if(min->n > p2->n)min=p2;if(min!=p1)*temp=*min;*min=*p1;*p1=*temp;temp1=min->next;min->next=p1->next; p1->next=temp1;system("cls");printf(&quo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3-10數據比較器電子課件教學版
- 工作中的心理健康與情緒調理考核試卷
- 名字的來歷初三語文作文
- 砼構件預制件的施工現場臨時設施設計考核試卷
- 箱包企業人力資源管理與發展規劃考核試卷
- 中藥批發商的產學研合作模式探索與實踐考核試卷
- 心力衰竭護理查房 3
- 部編版語文二年級上冊日積月累
- 塔里木大學《新媒體與體育》2023-2024學年第一學期期末試卷
- 江蘇護理職業學院《漢代刻石書法》2023-2024學年第二學期期末試卷
- 中美關系新時代52張課件
- 廣東省廣州市廣外、鐵一、廣附三校2022-2023學年高一下學期期末聯考物理試題(無答案)
- 《通達信炒股軟件從入門到精通》讀書筆記模板
- 科研誠信問題課件
- 高頻電刀之負極板的正確使用方法
- 關于高中班級管理論文
- 21秋國家開放大學《公共部門人力資源管理》單元自測題參考答案
- 東北抗聯英雄人物智慧樹知到答案章節測試2023年牡丹江師范學院
- 2023年鄭州信息科技職業學院單招考試職業適應性測試模擬試題及答案解析
- 國開電大2022年《小學數學教學研究》形考任務1-4答
- 精神科護士分層次培訓計劃
評論
0/150
提交評論