計算機(jī)編程設(shè)計報告_第1頁
計算機(jī)編程設(shè)計報告_第2頁
計算機(jī)編程設(shè)計報告_第3頁
計算機(jī)編程設(shè)計報告_第4頁
計算機(jī)編程設(shè)計報告_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

計算機(jī)編程設(shè)計報告 計算機(jī)編程設(shè)計報告題目:電話訂餐信息處理 專業(yè)名稱:信息與計算科學(xué)班級:2學(xué)號:201141210201姓名:孫龍指導(dǎo)教師:組織單位:時間:計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第1頁。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第1頁。目錄TOC\o"1-3"\h\u129951.設(shè)計目的 237642.功能描述 3156513.總體設(shè)計 4228203.1功能模塊設(shè)計 410933.2完整數(shù)組程序 10326193.3完整指針程序 10121554.程序?qū)崿F(xiàn) 14111544.1運(yùn)行結(jié)果 14256805.小結(jié) 15計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第2頁。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第2頁。1.設(shè)計目的一個小飯館的生意非常紅火,要想用餐必須提前一天打電話預(yù)訂。假設(shè)我們是飯館負(fù)責(zé)接受電話預(yù)訂的服務(wù)員,我們需要做些什么呢?首先,需要準(zhǔn)備一張大小適當(dāng)?shù)陌准?,等待顧客的電話。李紅最先打進(jìn)了電話,她預(yù)約第2天中午12點用餐,用餐人數(shù)5人,服務(wù)員在紙上做了如下記錄:"李紅12點5人“;接著,劉娜、汪寒、孫杰和趙軍分別來了電話,服務(wù)員根據(jù)他們的要求做了記錄,此時紙上記錄的內(nèi)容是:李紅12點5人劉娜11點2人汪寒11點503人孫杰10點104人趙軍13點206人 孫杰隨后又來了電話,將用餐時間推后一個小時,那么記錄的內(nèi)容也應(yīng)該做相應(yīng)的修改。劉娜來用餐以后,可以將其信息從紙上劃去。下面編寫程序處理電話訂餐的情況。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第3頁。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第3頁。2.功能描述這是一個小型的管理系統(tǒng),可以使用結(jié)構(gòu)數(shù)組存儲訂餐的情況。每個結(jié)構(gòu)的數(shù)據(jù)可以包括姓名、人數(shù)、用餐時間等。為了方便處理,還需要給每個打進(jìn)電話的客戶編個號,就像在飯館等候用餐時,服務(wù)員會發(fā)給客戶一樣。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第4頁。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第4頁。3.總體設(shè)計3.1功能模塊設(shè)計可以聲明以下的結(jié)構(gòu)體類型:structguest_info{//姓名charname[8];//人數(shù)intsum;//用餐時間chartime[10];//編號intnumber;}GuestList[MaxSize];程序包括5個函數(shù),Insert,,Search,Update,Delete和Show,分別負(fù)責(zé)插入、查詢、修改、刪除和顯示數(shù)據(jù)。一般的信息管理系統(tǒng)都應(yīng)該具備這幾個功能,小型信息管理系統(tǒng)也不例外。程序采用簡單菜單驅(qū)動方式,屏幕上顯示菜單如下:1————插入(Insert)2————查詢(Search)3————修改(Update)4————刪除(Delete)5————顯示(Show)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第5頁。6————退出(Exit)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第5頁。3.2完整數(shù)組程序#include<stdio.h>#include<string.h>#defineMaxSize20structguest_info{ charname[8]; intsum; chartime[10]; intnumber;}GuestList[MaxSize];voidInsert(int*);voidSearch(int);voidUpdate(int);voidDelete(int*);voidShow(int);intmain(){ inti; intcount=0; do {printf("\n"); printf("1插入(Insert)\n");計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第6頁。 printf("2查詢(Search)\n");計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第6頁。 printf("3修改(Update)\n"); printf("4刪除(Delete)\n"); printf("5顯示(Show)\n"); printf("6退出(Exit)\n"); scanf("%d",&i); switch(i){case1:Insert(&count); break; case2:Search(count); break; case3:Update(count); break; case4:Delete(&count); break; case5:Show(count); break; case6:break; default:printf("錯誤選擇!請重選");break; } }while(i!=6); return0;}voidInsert(int*count){inti,in_number;if(*count==MaxSize){printf("空間已滿!");return;}printf("請輸入編號:");scanf("%d",&in_number);for(i=0;i<*count;i++) 計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第7頁。 if(GuestList[i].number==in_number)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第7頁。 {printf("已經(jīng)有相同的編號:");return;}GuestList[i].number=in_number; printf("請輸入姓名:"); scanf("%s",GuestList[i].name);printf("請輸入人數(shù):"); scanf("%d",&GuestList[i].sum);printf("請輸入用餐時間:"); scanf("%s",GuestList[i].time); (*count)++;}voidSearch(intcount){inti,number,flag=1;printf("請輸入要查詢的編號:");scanf("%d",&number);for(i=0;i<count&&flag;i++)if(GuestList[i].number==number){printf("姓名:%s",GuestList[i].name);printf("人數(shù):%d",GuestList[i].sum);printf("用餐時間:%s",GuestList[i].time);flag=0;}elseprintf("沒有查詢到!!");}voidUpdate(intcount){inti,number,flag=1;printf("請輸入要修改數(shù)據(jù)的編號:");scanf("%d",&number);計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第8頁。for(i=0;i<count&&flag;i++)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第8頁。if(GuestList[i].number==number){printf("請輸入人數(shù):");scanf("%d",&GuestList[i].sum);printf("請輸入用餐時間:");scanf("%s",&GuestList[i].time);flag=0;}elseprintf("沒有查詢到可以修改的數(shù)據(jù)!!");}voidDelete(int*count){inti,j,number,flag=1;printf("請輸入要刪除數(shù)據(jù)的編號:");scanf("%d",&number);for(i=0;i<*count&&flag;i++){if(GuestList[i].number==number){for(j=i;j<*count-1;j++)GuestList[j]=GuestList[j+1];flag=0;(*count)--;}elseprintf("沒有查詢到可以刪除的數(shù)據(jù)!!");}}voidShow(intcount){inti;printf("\n");計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第9頁。printf("編號姓名人數(shù)用餐時間\n");計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第9頁。for(i=0;i<count;i++){printf("%10d",GuestList[i].number);printf("%12s",GuestList[i].name);printf("%10d",GuestList[i].sum);printf("%12s\n",GuestList[i].time);}}在上面的程序中,客戶的訂餐信息是存儲在一個數(shù)組中的。數(shù)組是一種處理數(shù)據(jù)的存儲方式,下面用單鏈表存儲這組數(shù)據(jù)。因為指針是C語言的精髓,不能掌握指針的用法,不能說學(xué)會了C語言。要建立單鏈表,首先需要正確的定義每個結(jié)點的數(shù)據(jù)是如何構(gòu)成的,下面是訂餐信息存儲在鏈表中的數(shù)據(jù)定義。圖13.5則是示意圖,表示鏈表中有3個結(jié)點時的情況。typedefstructguest_info{Charname[8]; //姓名intsum; //人數(shù)chartime[10]; //用餐時間intnumber; //編號structguest_info*next;}Guestlink;…李紅5人12點3汪寒3人11點502劉娜2人11點1…李紅5人12點3汪寒3人11點502劉娜2人11點1 Head頭指針計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第10頁。對于單鏈表,插入,查詢,修改,刪除和顯示也是必須要完成的5個操作。曾在前面討論過有關(guān)單鏈表的操作方式,本例是嘗試將有關(guān)單鏈表的操作集中起來,構(gòu)成一個完整的管理系統(tǒng),供讀者參考和使用。圖13.6顯示程序部分運(yùn)行情況。計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第10頁。3.3完整指針程序#include<stdio.h>#include<string.h>#include<stdlib.h>#defineMaxSize20typedefstructguest_info{ charname[8]; intsum; chartime[10]; intnumber; structguest_info*next;}GuestLink,*Pointer;voidInsert(Pointer*Head);voidSearch(PointerHead);voidUpdate(PointerHead);voidDelete(Pointer*Head);voidShow(PointerHead);intmain(){ PointerHead=NULL; inti; do {printf("\n"); printf("1插入(Insert)\n"); printf("2查詢(Search)\n"); printf("3修改(Update)\n"); printf("4刪除(Delete)\n"); printf("5顯示(Show)\n"); printf("6退出(Exit)\n"); scanf("%d",&i); switch(i) {case1:Insert(&Head); break; case2:Search(Head); break; case3:Update(Head); break;計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第11頁。 case4:Delete(&Head);計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第11頁。 break; case5:Show(Head); break; case6:break; default:printf("錯誤選擇!請重選");break; } }while(i!=6); return0;}voidInsert(Pointer*Head){ intin_number; Pointerp,q,r; printf("請輸入編號:"); scanf("%d",&in_number); p=q=*Head; while(p!=NULL) { if(p->number==in_number) {printf("已經(jīng)有相同的編號;");return;} else {q=p;p=p->next;} } r=(Pointer)malloc(sizeof(GuestLink)); r->next=NULL; if(r==NULL) {printf("分配空間失敗!");return;} if(q==NULL) *Head=r; else {q->next=r;} r->number=in_number; printf("請輸入姓名:"); scanf("%s",r->name); printf("請輸入人數(shù):"); scanf("%d",&r->sum); printf("請輸入用餐時間:"); scanf("%s",r->time);}voidSearch(PointerHead)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第12頁。{計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第12頁。 intflag=1; intnumber; Pointerp;printf("請輸入要查詢的編號:");scanf("%d,d",&number);p=Head;while(p!=NULL&&flag) { if(p->number==number) { printf("姓名:%s",p->name); printf("人數(shù):%d",p->sum); printf("用餐時間:%s",p->time); flag=0; } else p=p->next; } if(flag) printf("沒有查詢到!");}voidUpdate(PointerHead){ intflag=1; intnumber; Pointerp;printf("請輸入要修改數(shù)據(jù)的編號:");scanf("%d",&number);p=Head;while(p!=NULL&&flag) {if(p->number==number) { printf("請輸入人數(shù):"); scanf("%d",p->sum); printf("請輸入用餐時間:"); scanf("%s",p->time); flag=0; } else p=p->next; }計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第13頁。 if(flag)計算機(jī)編程設(shè)計報告全文共16頁,當(dāng)前為第13頁。 printf("沒有找到要修改的記錄!");}voidDelete(Pointer*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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論