久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

c++課程設(shè)計(jì)心得體會(huì)

時(shí)間:2019-05-12 16:20:13下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《c++課程設(shè)計(jì)心得體會(huì)》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《c++課程設(shè)計(jì)心得體會(huì)》。

第一篇:c++課程設(shè)計(jì)心得體會(huì)

課程設(shè)計(jì)心得體會(huì)

學(xué)生成績(jī)管理是高等學(xué)校教務(wù)管理的重要組成部分,其內(nèi)容較多,要完成能夠?qū)崿F(xiàn)人員的信息錄入、查詢、修改、刪除、統(tǒng)計(jì)、保存、顯示等操作。系統(tǒng)具體實(shí)現(xiàn)的功能如下:

1.添加新的聯(lián)系人

2.刪除所有聯(lián)系人

3.刪除某個(gè)聯(lián)系人

4.查詢某個(gè)聯(lián)系人

5.查詢所有聯(lián)系人

6.將電話本導(dǎo)出到文件

7.從文件導(dǎo)入電話本

8.查詢并編輯某個(gè)聯(lián)系人

9.全班同學(xué)的平均分

大概的算法分析

學(xué)生成績(jī)管理軟件的數(shù)據(jù)結(jié)構(gòu)

學(xué)生成績(jī)一般都是以每個(gè)成員為單位進(jìn)行管理的,一個(gè)學(xué)生學(xué)號(hào)用一個(gè)結(jié)點(diǎn)來表示。考慮到添加、查詢和刪除的方便,這些以學(xué)號(hào)為單位的結(jié)點(diǎn)用鏈表方式組成一個(gè)主目錄。每個(gè)結(jié)點(diǎn)有四個(gè)域:

(1)學(xué)生代號(hào);

(2)課程情況;

(3)成績(jī)信息管理情況;

各函數(shù)的功能和實(shí)現(xiàn)(學(xué)生成績(jī)管理的相關(guān)功能由對(duì)應(yīng)的函數(shù)來實(shí)現(xiàn))(1)添加新的聯(lián)系人

用代碼實(shí)現(xiàn)輸入及輸出添加新的聯(lián)系人的學(xué)號(hào),姓名,性別,生日、語文成績(jī),數(shù)學(xué)成績(jī);完成添加工作。

(2)刪除某個(gè)聯(lián)系人

首先輸入要?jiǎng)h除的姓名,然后要在系統(tǒng)中查看是否有此記錄,再用分支結(jié)構(gòu)實(shí)現(xiàn)刪除鏈表中此員工結(jié)點(diǎn)并修改學(xué)校員工鏈表及未找到這條記錄;因?yàn)榭赡芟到y(tǒng)中不存在此記錄。

(3)刪除所有聯(lián)系人

此功能要逐條刪除聯(lián)系人,則我們采用分支、循環(huán)結(jié)構(gòu)實(shí)現(xiàn)首先遍歷是否有給記錄,輸出讀取記錄或沒有該記錄;再到文件是否讀完,若沒讀完則要循環(huán)繼續(xù)讀取,否則已刪除了所有記錄。

(4)查詢某個(gè)聯(lián)系人

因此功能會(huì)出現(xiàn)還沒有任何記錄、未找到這條記、輸出該聯(lián)系人信息三種情況,我們則選用簡(jiǎn)單的三分支結(jié)構(gòu);首先要請(qǐng)輸入要查詢聯(lián)系人的姓名,輸出有記錄或還沒有任何記錄,有記錄則遍歷所有人,最后是未找到這條記錄,輸出該聯(lián)系人信息。

(7)從電話本導(dǎo)入文件的流程圖

首先查看是否有記錄,輸出沒有任何記錄或打開“Manager.txt”,歷遍鏈表,將人員結(jié)點(diǎn)信息寫入文件Manager.txt、關(guān)閉文件,最后成功保存到Manager.txt。

其余的函數(shù)功能實(shí)現(xiàn)相似則不重復(fù)。

心得體會(huì)

剛放假不久,我們組的積極分子們就張羅著要開始編寫程序了,編寫這個(gè)程序我們經(jīng)歷了討論選題,編寫代碼,調(diào)試,寫設(shè)計(jì)報(bào)告等。在這期間我們查閱了很多相關(guān)的資料,曾盯著課本發(fā)呆過,我們成員之間也曾進(jìn)行過激烈的口舌論戰(zhàn)。經(jīng)過這個(gè)暑假來的實(shí)踐學(xué)習(xí),使我們對(duì)C++語言有了更進(jìn)一步的認(rèn)識(shí)和了解,要想學(xué)好它,則重在實(shí)踐,要通過不斷的上機(jī)操作及實(shí)例運(yùn)用才能更好地深入體會(huì)它,當(dāng)然通過實(shí)踐,我們也發(fā)現(xiàn)我們的好多不足之處。就比如我們對(duì)C++語言的一些標(biāo)準(zhǔn)庫函數(shù)不太了解,還有對(duì)函數(shù)調(diào)用的正確使用不夠熟悉,一些經(jīng)常出現(xiàn)的錯(cuò)誤也不能很好地處理。我們編寫這個(gè)程序使用的是比較簡(jiǎn)單的函數(shù)及結(jié)構(gòu),由于我們的水平有限,還不能很好的使用一些效率高的方式來編寫,所以也沒有突出的創(chuàng)新點(diǎn)。在做題的時(shí)候我們都是分工合作。分工完成結(jié)構(gòu)體、函數(shù)設(shè)計(jì)、算法分析等,這些過程中總是有很多錯(cuò)誤出現(xiàn),有好多的小問題都是我們粗心大意造成的,所以設(shè)計(jì)程序一定要仔細(xì),不容一點(diǎn)的馬虎。當(dāng)然也有大問題,關(guān)于文件的操作,類的使用等等這些使用我們都琢磨了很久,在解決錯(cuò)誤時(shí)我們有時(shí)幾乎焦頭爛額了。但是我們與隊(duì)友之間都會(huì)不斷的相互鼓勵(lì)、支持,彼此都努力維護(hù)著將作業(yè)寫完。雖然這設(shè)計(jì)有點(diǎn)枯燥無味,但是當(dāng)最后我們大功告成時(shí),回味起來還是美滋滋的。總的來說我們真的是在設(shè)計(jì)的過程中受益匪淺。

第二篇:c++課程設(shè)計(jì)總結(jié)

課程設(shè)計(jì)總結(jié)

經(jīng)過一個(gè)學(xué)期對(duì)《C++程序設(shè)計(jì)》的學(xué)習(xí),我學(xué)習(xí)到了基本的理論知識(shí),了解到了C++語言程序設(shè)計(jì)的思想,這些知識(shí)都為我的課程實(shí)踐和進(jìn)一步的學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。在為期近兩周的C++課程設(shè)計(jì)中,我體會(huì)頗多,學(xué)到了很多東西。我加強(qiáng)了對(duì)C++程序設(shè)計(jì)這門課程的認(rèn)識(shí),并且復(fù)習(xí)了自己以前學(xué)習(xí)到的知識(shí)。這些都使得我對(duì)計(jì)算機(jī)語言的學(xué)習(xí)有了更深入的認(rèn)識(shí)!總之,通過這次課程設(shè)計(jì),我收獲頗豐,相信會(huì)為自己以后的學(xué)習(xí)和工作帶來很大的好處。像職工信息表這樣的程序設(shè)計(jì),經(jīng)歷了平時(shí)在課堂和考試中不會(huì)出現(xiàn)的問題和考驗(yàn)。而這些問題,這并不是我們平時(shí)只靠課本,就可以輕易解決的。所以,鍛煉了我們挑戰(zhàn)難題,學(xué)會(huì)用已掌握的知識(shí)去解決具體問題的能力,進(jìn)一步培養(yǎng)了獨(dú)立思考問題和解決問題的能力。特別是學(xué)會(huì)了在Visual C++中如何調(diào)試程序的方法。當(dāng)然,老師的指導(dǎo)和同學(xué)的幫助也是不可忽視的,他們給了我許多提示和幫助,教會(huì)了我編譯復(fù)雜程序的方法。

在老師和同學(xué)的幫助下,通過自己的努力,終于完成了這次職工信息表的簡(jiǎn)單課程設(shè)計(jì)。我經(jīng)過這段時(shí)間的編程,對(duì)其中的艱辛,我是深有體會(huì)。從剛開始的選擇程序、理解程序到后來的調(diào)試程序以及改進(jìn)程序這個(gè)過程中,我遇到了各種各樣的困難和挫折。但是我堅(jiān)定信念,對(duì)自己充滿了信心,想盡一切辦法克服重重困難。

通過課程設(shè)計(jì)的訓(xùn)練,我進(jìn)一步學(xué)習(xí)和掌握了對(duì)程序的設(shè)計(jì)和編寫,從中體會(huì)到了面向?qū)ο蟪绦蛟O(shè)計(jì)的方便和巧妙。懂得了在進(jìn)行編寫一個(gè)程序之前,要有明確的目標(biāo)和整體的設(shè)計(jì)思想。另外某些具體的細(xì)節(jié)內(nèi)容也是相當(dāng)?shù)闹匾_@些寶貴的編程思想和從中摸索到的經(jīng)驗(yàn)都是在編程的過程中獲得的寶貴財(cái)富。這些經(jīng)驗(yàn)對(duì)我以后的編程會(huì)有很大的幫助的,我要好好利用。

雖然這次課程設(shè)計(jì)是在參考程序的基礎(chǔ)之上進(jìn)行的,但是我覺得對(duì)自己是一個(gè)挑戰(zhàn)和鍛煉。我很欣慰自己能在程序中加入自己的想法和有關(guān)程序內(nèi)容,也就是對(duì)它的程序改進(jìn)了一番改進(jìn),并有創(chuàng)新。但是我感覺自己的創(chuàng)新還不夠典型,總之還不是很滿意。另外由于時(shí)間的緊迫和對(duì)知識(shí)的了解不夠廣泛,造成了系統(tǒng)中還存在許多不足,功能上還不夠完善。以后我會(huì)繼續(xù)努力,大膽創(chuàng)新,爭(zhēng)取能編寫出透射著自己思想的程序。這次課程設(shè)計(jì)讓我充分認(rèn)識(shí)到了自己的不足,認(rèn)識(shí)到了動(dòng)手能力的重要性。我會(huì)在以后的學(xué)習(xí)中更加努力鍛煉自己,提高自己,讓自己寫出更好更完善的程序,為以后的編程打好基礎(chǔ)!

總而言之,這次C++程序設(shè)計(jì)實(shí)踐讓我收獲很大。

計(jì)算機(jī)科學(xué)與技術(shù)13-2班

2010年7月4日

第三篇:C++課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告(范文)

C++課程設(shè)計(jì)報(bào)告

設(shè)計(jì)題目:

學(xué)

院: 專業(yè)班級(jí): 學(xué)生姓名: 學(xué)生學(xué)號(hào): 指導(dǎo)教師:

計(jì)算機(jī)技術(shù)與科學(xué)

3班 樊冠男 40912140 馬軍亮

提交時(shí)間:

2011/1/12 成績(jī):

目錄

C++課程設(shè)計(jì)報(bào)告

第一章 引言

C++課程設(shè)計(jì)報(bào)告

第二章 概要設(shè)計(jì)

C++課程設(shè)計(jì)報(bào)告

第三章 軟件實(shí)現(xiàn)

C++課程設(shè)計(jì)報(bào)告

第四章 結(jié)果與討論

第四篇:C++課程設(shè)計(jì)電話簿管理

C++課程設(shè)計(jì)

————簡(jiǎn)單電話簿管理

報(bào)告內(nèi)容: 一.程序功能簡(jiǎn)介 二.課程設(shè)計(jì)要求 三.課程設(shè)計(jì)說明 四.參考數(shù)據(jù)結(jié)構(gòu) 五.具體功能及實(shí)現(xiàn)六.源程序及注釋 七.感想與心得

學(xué)號(hào):050930109 姓名:陳浩 指導(dǎo)老師:臧洌 日期:2010年6月20日

一.程序功能簡(jiǎn)介

一個(gè)基本的電話簿管理程序,具有插入、刪除、顯示、修改和查詢聯(lián)系人電話碼的功能。主菜單如右圖所示,每個(gè)菜單項(xiàng)功能如下:

1.增加記錄菜單:請(qǐng)輸入用戶姓名,如果該用戶已經(jīng)存在則添加失敗,否則,輸入用戶的電話號(hào)碼,進(jìn)行添加。

2.修改某條記錄:請(qǐng)輸入用戶姓名,如果沒有該用戶顯示“ 該用戶不存在”信息,否則,輸出原電話號(hào)碼,然后輸入新的電話號(hào)碼,進(jìn)行修改。3.刪除記錄:

輸入用戶姓名,進(jìn)行刪除(刪除時(shí)要進(jìn)行確認(rèn))。4.查詢:輸入用戶姓名,進(jìn)行查找。

5.排序:根據(jù)子菜單,選擇不同的排序方式。6.顯示:逐屏顯示(每屏顯示10條記錄)。7.全刪:進(jìn)行全部刪除(要確認(rèn))。

二.課程設(shè)計(jì)要求

請(qǐng)選擇以下功能 1-增加記錄 2-修改記錄 3-刪除記錄

4-查找(按姓名)5-排序 6-顯示記錄

1.用漢化菜單實(shí)現(xiàn)。

2.提供按姓名查詢電話號(hào)碼的功能。

3.顯示功能(提供逐屏顯示的功能,每屏顯示10條記錄)。4.刪除和修改時(shí)要進(jìn)行確認(rèn)。

5.將電話簿記錄以文件的形式存在磁盤上;每次操作時(shí)將電話簿調(diào)出,操作完畢后存盤。

三.課程設(shè)計(jì)說明

1.程序采用數(shù)組數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。2.用類來實(shí)現(xiàn)數(shù)據(jù)的封裝。

四.參考數(shù)據(jù)結(jié)構(gòu)

1.“電話簿”稱為用戶信息表,用數(shù)組實(shí)現(xiàn)。用戶信息表由若干用戶信息構(gòu)成,每個(gè)用戶信息是一個(gè)數(shù)組元素。

2.“user.txt”是一個(gè)文件,用于保存“用戶信息表”中的信息。當(dāng)系統(tǒng)啟動(dòng)時(shí),從該文件中讀入信息,當(dāng)退出系統(tǒng)時(shí),將“用戶信息表”中的信息寫到該文件中。該文件中信息存放形式如下:

ZhangHong 5221369 LiLi 84891112

ZhaoQiang 5221498

其中 ??name(姓名)占20列 ??phone_num(電話號(hào)碼)占12列

五.具體功能及實(shí)現(xiàn)

定義Fphone類,通過其私有成員數(shù)組name[20]和phone[12]分別記錄用戶姓名與電話號(hào)碼,定義UserDatabase類記錄用戶信息,通過公有成員函數(shù)實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。

六.源程序及注釋

#include #include #include #include #include #define M 20 #define N 12 #define MAX 100 class Fphone

//用戶信息類的定義 {

char name[M];

// 姓名

char phone_num[N];

//電話號(hào)碼 public: Fphone(char *na=“",char *ph=”“){ strcpy(name,na);

strcpy(phone_num,ph);} char*getname();

//獲取姓名

char*getphone_num();

//獲取電話號(hào)碼

void setname(char*a);

//設(shè)置姓名

void setphone_num(char*a);//設(shè)置電話號(hào)碼

void disp();

//顯示用戶信息 };char *Fphone::getname()

{ return name;} char *Fphone::getphone_num(){ return(phone_num);} void Fphone::setname(char *a){ strcpy(name,a);

} void Fphone::setphone_num(char*a){ strcpy(phone_num,a);} void Fphone::disp(){ cout<<”姓名:“<//用戶信息表類的定義 { int nElem;

//用戶信息表中的元素個(gè)數(shù),即當(dāng)前記錄總數(shù)

int Maxu;

//最多的用戶

Fphone *user;

//指向用戶信息表的指針

public: UserDatabase()

//構(gòu)造函數(shù),初始化用戶信息表,將user.txt文件中數(shù)據(jù)讀到User[]中

{ nElem=0;

Maxu=50;

user=new Fphone[Maxu];

fstream in;

in.open(”user.txt“,ios::in|ios::nocreate);//打開文件

for(int i=0;(!in.eof());i++)

{ in>>user[i].getname();in>>user[i].getphone_num();

nElem++;

}

in.close();}

~UserDatabase()

//析構(gòu)函數(shù),將user[]寫入user.txt文件中

{ fstream out;

Fphone *p=NULL;

p=user;

out.open(”user.txt“,ios::out,filebuf::sh_none);

for(int i=0;i

{ out<getname())<

<<((p+i)->getphone_num())<

}delete []user;

out.close();} void clear()

//刪除所有用戶信息

{ char ord;

cout<<”確定刪除嗎?(選擇:[y]是;[n]否)aa“<

do

{ cin>>ord;

if(ord=='N'||ord=='n')return;

else if(ord=='Y'||ord=='y')

{ delete[Maxu]user;

} user=0;cout<<”刪除成功啦!“<

user->setname(na);

user->setphone_num(ph_num);

} else if(nElem=0;i--)

{ if(strcmp((user+i)->getname(),na)>0)

{(user+i+1)->setname(((user+i)->getname()));

(user+i+1)->setphone_num(((user+i)->getphone_num()));

}

else break;

}

(user+i+1)->setname(na);

(user+i+1)->setphone_num(ph_num);

nElem++;} else cout <<”空間不足,無法添加!“<

//返回user指針 { return(user);} void delete_record(Fphone *p,int k)

//刪除用戶信息 { char con;cout<<”確認(rèn)刪除?(Y/N)“;cin>>con;if(con=='N'||con=='n')return;else if(con=='Y'||con=='y'){ for(int i=k;i

{ user[i]=user[i+1];}

nElem--;

cout<<”已刪除!“<

return;} else

{ cout<<”輸入錯(cuò)誤!“<

system(”pause“);

return;} } void modify_record(Fphone *p,char*ph_num)//修改用戶信息 { p->setphone_num(ph_num);} Fphone *query(char *na)

//按姓名查找 順序查找,這里也可以用折半 { Fphone *p=user;

int i=0;

while(1)

{ if(strcmp(p->getname(),na)==0)

return p;

p++;

if(i++==nElem)

break;} return NULL;} void sorta_name()//按姓名升序排序 插入排序法 { Fphone temp;int i,j;for(i=1;i

for(j=i-1;j>=0&&(strcmp(temp.getname(),user[j].getname())<0);j--)

{ strcpy(user[j+1].getname(),user[j].getname());

strcpy(user[j+1].getphone_num(),user[j].getphone_num());

}

strcpy(user[j+1].getname(),temp.getname());

strcpy(user[j+1].getphone_num(),temp.getphone_num());} } void sorta_phonenum()//按電話號(hào)碼升序排序 選擇排序法 { int i,j,p;Fphone temp;for(i=0;i

for(j=i+1;j

if(strcmp(user[j].getphone_num(),user[p].getphone_num())<0)p=j;

if(p!=i)

{ strcpy(temp.getname(),user[p].getname());

strcpy(temp.getphone_num(),user[p].getphone_num());

strcpy(user[p].getname(),user[i].getname());

strcpy(user[p].getphone_num(),user[i].getphone_num());

strcpy(user[i].getname(),temp.getname());

strcpy(user[i].getphone_num(),temp.getphone_num());

} } } void sort_name()//按姓名降序排序,將排成升序的對(duì)象數(shù)組逆向放置 { Fphone temp;int i,m=(nElem+1)/2;for(i=0;i

strcpy(temp.getphone_num(),user[i].getphone_num());

strcpy(user[i].getname(),user[nElem-i-1].getname());

strcpy(user[i].getphone_num(),user[nElem-i-1].getphone_num());

strcpy(user[nElem-i-1].getname(),temp.getname());

strcpy(user[nElem-i-1].getphone_num(),temp.getphone_num());} } void sort_phonenum()//按電話號(hào)碼降序排序 冒泡排序法 { Fphone temp;int i,m=(nElem+1)/2;for(i=0;i

strcpy(temp.getphone_num(),user[i].getphone_num());

strcpy(user[i].getname(),user[nElem-i-1].getname());

strcpy(user[i].getphone_num(),user[nElem-i-1].getphone_num());

strcpy(user[nElem-i-1].getname(),temp.getname());

strcpy(user[nElem-i-1].getphone_num(),temp.getphone_num());} } void disp(){ int i,n=0;cout<

cout<getname()

<getphone_num()<

n++;

if(n%10==0)

{ system(”pause“);

system(”cls“);

} }

cout<

請(qǐng)選擇以下功能:“<

1-增加記錄“<

2-修改記錄“<

3-刪除記錄“<

4-查找(按姓名)“<

5-排序“<

6-顯示記錄“<

7-全刪“<

0-退出“<

輸入選擇:“<

“<

“<

歡迎使用電話簿管理系統(tǒng)

“<

祝您使用愉快

“<

“<

system(”cls“);

menu();

int k;

cin>>k;

switch(k)

{ case 1:

{ system(”cls“)

cout<<”*****************************************“<

cout<<”

增加記錄

“<

Fphone *t=NULL;

char w;

do

{ cout<<”請(qǐng)輸入您要增加的用戶的姓名“;

cin>>na;

t=(s.query(na));

if(t)

{ cout<<”用戶已經(jīng)存在,添加失敗!!“<

else

{ cout<<”請(qǐng)輸入用戶的電話號(hào)碼“;

cin>>ph_num;

s.add_record(na,ph_num);cout<<”您添加的信息為:“;cout<<”姓名:“<cout<<”成功添加“<

}

cout<<”是否繼續(xù)?(Y or N)“<

cin>>w;} while(w=='Y');break;}

case 2: { system(”cls“);

cout<<”***************************************“<

修改記錄

“<

char na[M],ph_num[N];

Fphone *t=NULL;

char w;

do

{ cout<<”請(qǐng)輸入您要修改的用戶的姓名“;

cin>>na;

t=s.query(na);

if(!t)

cout<<”沒有該用戶!“<

else

{ cout<<”該用戶原號(hào)碼為:“<getphone_num()<

cout<<”請(qǐng)輸入新的電話號(hào)碼“;

cin>>ph_num;

s.modify_record(t,ph_num);

cout<<”成功修改“<

}

cout<<”是否繼續(xù)?(Y or N)“<

cin>>w;

}

while(w=='Y');

break;} case 3: { system(”cls“);

cout<<”********************************************“<

刪除記錄

“<

cout<<”************** ***************************“<

char w;

char na[M];

int k;

Fphone *p;

do

{ cout<<”請(qǐng)輸入您要?jiǎng)h除的用戶的姓名“;

cin>>na;

p=s.query(na);

if(p==0)

cout<<”沒有該用戶!“<

else

{(*p).disp();

k=p-s.getuser();

s.delete_record(p,k);

}

cout<<”是否繼續(xù)?(Y or N)“<

cin>>w;

}

while(w=='Y');

break;} case 4: { system(”cls“);

cout<<”*********************************“<

cout<<”

查詢記錄

“<

cout<<”**********************************“<

char na[M];int p=1;

Fphone *t=NULL;

char w;

do

{ cout<<”請(qǐng)輸入您要查詢的用戶的姓名“;

cin>>na;

t=s.query(na);

if(t)

{

cout<<”姓名:“<getname()<

cout<<”電話號(hào)碼:“<getphone_num()<

}

else

cout<<”對(duì)不起,沒有此人信息!“<

cout<<”是否繼續(xù)?(Y or N)“<

cin>>w;}

} case 5: { while(w=='Y');break;system(”cls“);

cout<<”

請(qǐng)選擇排序方式

“<

cout<<”

1.按姓名(升序)

“<

cout<<”

2.按電話號(hào)碼(升序)

“<

cout<<”

3.按姓名(降序)

“<

cout<<”

4.按電話號(hào)碼(降序)

“<

cout<<”

請(qǐng)輸入你的選擇:

“<

int k;

cin>>k;

switch(k)

{ case 1:

s.sorta_name();

cout<<”排序完成“<

system(”cls“);

break;

case 2:

s.sorta_phonenum();

cout<<”排序完成“<

system(”cls“);

break;

case 3:

s.sort_name();

cout<<”排序完成“<

system(”cls“);

break;

case 4:

s.sort_phonenum();

cout<<”排序完成“<

system(”cls“);

break;

} }

case 6: { system(”cls“);

cout<<”*****************************************“<

cout<<”

顯示記錄

“<

cout<<”*****************************************“<

s.disp();

system(”pause“);break;

}

} } case 7: { system(”cls“);

cout<<”您確定要?jiǎng)h除所有記錄嗎?(Y or N)“<

char q;

cin>>q;

if(q=='Y'||q=='y')

{ cout<<”*********************************“<

cout<<”

全部刪除記錄

“<

cout<<”*********************************“<

s.clear();

}

else break;

system(”pause“);

break;} case 0: { system(”cls“);

cout<<”謝謝使用,再見!“<

exit(0);} default:

cout<<”不存在該選擇,請(qǐng)重新輸入要進(jìn)行的操作:“<

system(”pause");

break;} 七.感想與心得

1.電話簿管理程序較長(zhǎng),算法比較復(fù)雜,調(diào)試的過程中遇到了各種各樣的問題。各種各樣的小錯(cuò)誤尋找起來十分困難。在今后編寫程序時(shí)應(yīng)當(dāng)隨編隨找錯(cuò)。

2.課設(shè)讓我們把這一學(xué)期所學(xué)的C++知識(shí)得到了很好的應(yīng)用,開拓了我們的思路,所謂溫故而而知新,這次課設(shè)也讓我們對(duì)以前的知識(shí)有了一個(gè)全面的回顧,加深了對(duì)已學(xué)知識(shí)的理解。

3.課設(shè)過程艱辛,花費(fèi)時(shí)間很長(zhǎng),需要很強(qiáng)的耐力和信心。而這也是對(duì)我們的一次考驗(yàn),養(yǎng)成了堅(jiān)持不懈和吃苦耐勞的精神。總之,C++課設(shè)讓我們學(xué)到了很多,也收獲了很多,這必將成為我人生中的一個(gè)深刻的回憶。

第五篇:C++數(shù)據(jù)結(jié)構(gòu) 大作業(yè)課程設(shè)計(jì)

C++/數(shù)據(jù)結(jié)構(gòu) 大作業(yè)/課程設(shè)計(jì)——【校園導(dǎo)游咨詢】【停車場(chǎng)管理】娃娃們可以收著以后用 絕對(duì)純手工打造 內(nèi)含類模塊/一維指針數(shù)組(謹(jǐn)以此程序供大家參考。運(yùn)行結(jié)果后面有貼圖)

目錄

【1】校園導(dǎo)游咨詢 程序設(shè)計(jì)源代碼 及 截圖 【2】停車場(chǎng)管理——方案一 程序設(shè)計(jì)源代碼 及 截圖 【3】停車場(chǎng)管理——方案二 程序設(shè)計(jì)源代碼 及 截圖

【1】【【校園導(dǎo)游咨詢】】

######

(ps:該校園導(dǎo)游咨詢系統(tǒng)沒有輸入值,所有信息是都在class MGraph的構(gòu)造函數(shù)中傳輸?shù)模倚@景點(diǎn)信息皆為【【上海電力學(xué)院】】景點(diǎn)信息。請(qǐng)大家注意,直接從文章copy到visual stutio中會(huì)出現(xiàn)中文字符,注意刪除,推薦大家在一行語句的分號(hào)后面,點(diǎn)出光標(biāo),按一下delete鍵,然后按一下enter鍵,完成visual stutio的自動(dòng)對(duì)齊,這樣程序看起來一目了然,更易于操作和更改)【問題描述】

設(shè)計(jì)一個(gè)校園導(dǎo)游程序,為來訪的客人提供各種信息查詢服務(wù)。【基本要求】

(1)設(shè)計(jì)你所在學(xué)校的校園平面圖,所含景點(diǎn)不少于10個(gè)。以圖中頂點(diǎn)表示校內(nèi)各景點(diǎn),存放景點(diǎn)名稱、代號(hào)、簡(jiǎn)介等信息;以邊表示路徑,存放路徑長(zhǎng)度等相關(guān)信息。(2)為來訪客人提供圖中任意景點(diǎn)相關(guān)信息的查詢。

(3)為來訪客人提供圖中任意景點(diǎn)的問路查詢,即查詢?nèi)我鈨蓚€(gè)景點(diǎn)之間的一個(gè)最短的簡(jiǎn)單路徑。【選作內(nèi)容】

(6)擴(kuò)充每個(gè)景點(diǎn)的鄰接景點(diǎn)的方向等信息,使得路徑查詢結(jié)果能提供詳盡的導(dǎo)向信息。**************************【以下為類的定義】******************************** #include #include using namespace std;const int MaxSize=18;const int INFINITY=65535;//最大值無窮

class direction;template class MGraph;template class VertexNode//定義頭結(jié)點(diǎn)

{ friend class MGraph;public: int vex;//頂點(diǎn)名稱 T vexname;//頂點(diǎn)名稱 T vexinf;//頂點(diǎn)信息

direction dir;//存放頂點(diǎn)方位信息的direction類的dir。};

class direction { public: int ln;//存放在方向圖中的橫坐標(biāo),表示東西 int col;//存放在方向圖中的縱坐標(biāo),表示南北 };template class MGraph//定義無向圖的鄰接矩陣

{ public: MGraph();

//構(gòu)造函數(shù),初始化具有n個(gè)頂點(diǎn)的圖

void printvexname();//顯示所有景點(diǎn)及景點(diǎn)代號(hào)

void printvexinf(int i);//顯示代號(hào)為i景點(diǎn)的名稱及信息

void printroad(int i,int j);//顯示景點(diǎn)i~j的最短路徑方案信息

void printdir(int i,int j);//顯示景點(diǎn)i到j(luò)的方向信息,如“向東100m,向南200m” VertexNode adjlist[MaxSize];//存放景點(diǎn)全部信息的 景點(diǎn)類數(shù)組 int vertexNum,arcNum;//圖的頂點(diǎn)數(shù)和邊數(shù)

void Root(int p,int q);//遞歸尋找pq間的最短路徑

int Path[MaxSize][MaxSize],Dist[MaxSize][MaxSize];//創(chuàng)建Path和Dist分別存放兩點(diǎn)間最短路徑的前驅(qū)節(jié)點(diǎn),兩點(diǎn)間最短路徑長(zhǎng)度

int Line[MaxSize];//Line存放路徑 int kkk;//Line[]數(shù)組的標(biāo)記

private: T vertex[MaxSize];//存放圖中頂點(diǎn)的數(shù)組

int arc[MaxSize][MaxSize];//存放圖中邊的數(shù)組 };*************************【以下為類的實(shí)現(xiàn) 即類函數(shù)的定義】*********************************** template MGraph::MGraph()//a[]為景點(diǎn)代號(hào),b[]為景點(diǎn)名稱,c[]為景點(diǎn)信息,d[]為景點(diǎn)方位信息的橫坐標(biāo),e[]為景點(diǎn)方位信息的縱坐標(biāo)

//s[]為存放景點(diǎn)鄰接矩陣信息的一維數(shù)組,根據(jù)其對(duì)稱性可以用公式賦值給二維數(shù)組arc[][] { int s[]={0, 1,0, 0,2,0, 0,0,2,0, 0,0,2,3,0, 0,0,0,4,2,0, 0,0,0,0,2,3,0, 0,0,0,0,2,3,1,0, 0,0,2,0,2,0,0,2,0, 4,0,2,0,0,0,0,0,1,0, 0,0,0,0,0,0,0,0,0,2,0, 1,0,0,0,0,0,0,0,0,0,2,0, 0,0,0,0,0,0,0,0,0,3,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0, 0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0, 0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0,2,0};int a[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};char* b[]={“南門”,“實(shí)驗(yàn)樓”,“南圖”,“大活”,“睿思樓”,“大禮堂”, “南4教”,“知行樓”,“國交樓”,“南3教”,“南2教”,“南1教”, “北圖”,“北3教”,“北4教”,“北2教”,“北1教”,“北門”};char* c[]={“南校區(qū)正門”,“物理實(shí)驗(yàn)樓”,“南校區(qū)圖書館”,“大學(xué)生活動(dòng)中心”, “教師辦公樓、醫(yī)務(wù)室及留學(xué)生公寓”,“大禮堂,用于舉辦各種文藝演出”,“南校區(qū)第4教學(xué)樓”,“實(shí)習(xí)基地,計(jì)算機(jī)房等”, “國際交流中心,教職工餐廳”,“南校區(qū)第3教學(xué)樓”,“南校區(qū)第2教學(xué)樓”,“南校區(qū)第1教學(xué)樓”, “北校區(qū)圖書館”,“北校區(qū)第3教學(xué)樓”,“北校區(qū)第4教學(xué)樓”,“北校區(qū)第2教學(xué)樓”, “北校區(qū)第1教學(xué)樓”,“北校區(qū)正門”};int d[]={8,6,4,4,1,0,0,1,3,4,6,8,4,3,2,3,5,8};int e[]={8,8,8,10,8,10,7,6,6,6,6,6,3,1,0,0,0,2};int i,j;vertexNum=18;arcNum=30;

for(i=0;i

for(j=0;j void MGraph::printvexname(){ int i;for(i=0;i

template void MGraph::printvexinf(int i){ cout< void MGraph::printdir(int i,int j){ int dx,nb;//臨時(shí)存放i與j之間的南北東西關(guān)系 j在i的哪邊?? dx=adjlist[j].dir.col-adjlist[i].dir.col;nb=adjlist[j].dir.ln-adjlist[i].dir.ln;if(dx>0)//即j在i的東邊

cout<<“向東”<0)//即j在i的南邊

cout<<“向南”< void MGraph::Root(int p,int q){

if(Path[p][q]>0){

Root(p,Path[p][q]);Root(Path[p][q],q);} else {

Line[kkk]=q;kkk++;} }

template void MGraph::printroad(int i,int j){ int p,q,m,k,item1,item2;for(p=0;p0)

for(q=0;q0)if(((Dist[p][q]>Dist[p][k]+Dist[k][q])||(Dist[p][q]==0))&&(p!=q)){

Dist[p][q]=Dist[p][k]+Dist[k][q];Path[p][q]=k;}

cout<<“n=======n”;cout<<“從”<”;printdir(i,item2);cout<<“-->”<”;printdir(item1-1,item1);cout<<“-->”<

{ int choice;cout<<“================”<>choice;return choice;} void main(){ MGraph mg;int funcchoice();int fc;while(1){ fc=funcchoice();if(fc==1){ int i;for(i=0;i>i;mg.printvexinf(i);} else if(fc==3){ int i,j;mg.printvexname();cout<<“請(qǐng)輸入兩景點(diǎn)代號(hào)(我們將把最短路線反饋予您):”;cin>>i>>j;mg.printroad(i,j);} else if(fc==4)break;else cout<<“輸入有誤,請(qǐng)重新輸入!”<

【2】【停車場(chǎng)管理系統(tǒng)【方案一 程序】】

######

(ps:該程序有漏洞,若將要離開的車輛是停于便道上的,則對(duì)該車進(jìn)行駛離操作時(shí)程序內(nèi)部有錯(cuò)誤數(shù)據(jù),雖然做了函數(shù)完成這一功能,但因時(shí)間有限,沒能及時(shí)查找更正,現(xiàn)在懶得改了。。大家將就看吧。不過運(yùn)行是可以的)【問題描述】

設(shè)停車場(chǎng)是一個(gè)可停放n輛汽車的 長(zhǎng)通道,且只有一個(gè)大門可供汽車進(jìn)出。汽車在停車場(chǎng)內(nèi)按車輛到達(dá)時(shí)間的先后順序,依次由北向南排列(大門在最南端,最先到達(dá)的第一輛車信放在車場(chǎng)的最北端),若車場(chǎng)內(nèi)已停滿n輛汽車,則后來的汽車只能在門外的便道上等候,一旦有車開走,則排在便道上的第一輛車即可開入;當(dāng)停車場(chǎng)內(nèi)某輛車要離開時(shí),在它之后進(jìn)入的車輛必須先退出車場(chǎng)為它讓路,待該輛車開出大門外,其他車輛再按原次序進(jìn)入車場(chǎng)院,每輛停放在車場(chǎng)的車在它離開停車場(chǎng)時(shí)必須按它停留的時(shí)間長(zhǎng)短交納費(fèi)用。試為停車場(chǎng)編制按上述要求進(jìn)行管理的模擬程序。【基本要求】

以棧模擬停車場(chǎng),以隊(duì)列模擬車場(chǎng)外的便道,按照從終端讀入的輸入數(shù)據(jù)序列進(jìn)行模擬管理。每一組輸入數(shù)據(jù)包括三個(gè)數(shù)據(jù)項(xiàng):汽車“到達(dá)”或“離去”信息、汽車牌照號(hào)碼以及到達(dá)或離去的時(shí)刻。對(duì)每一組輸入數(shù)據(jù)進(jìn)行操作后的輸出信息為:若是車輛到達(dá),則輸出汽車在停車場(chǎng)內(nèi)或便道上的停車位置;若是車輛離去,則輸出汽車在停車場(chǎng)內(nèi)停留的時(shí)間和應(yīng)交納的費(fèi)用(在便道上停留的時(shí)間不收費(fèi))。棧以順序結(jié)構(gòu)實(shí)現(xiàn),隊(duì)列以鏈表結(jié)構(gòu)實(shí)現(xiàn)。【測(cè)試數(shù)據(jù)】

設(shè)n=2,輸入數(shù)據(jù)為:(A,1,5),(A,2,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到達(dá)(Arrival);D表示離去(Departure);E表示輸入結(jié)束(End)。**************************【以下為類的定義】************************************* #include using namespace std;const int Max=2;//車庫最大容量

const double price=30;//每小時(shí)的費(fèi)用 //思想:(報(bào)告第四頁)

//我的系統(tǒng)界面,輸入信息為:(到達(dá)/離開/退出);車牌號(hào);時(shí)刻 //因此,我的停車場(chǎng)類分成車輛到達(dá)和車輛離開兩個(gè)主要的函數(shù)實(shí)現(xiàn)。//車輛到達(dá),有入棧和入隊(duì)。車輛離開有出棧,出隊(duì)和入棧操作。

//因此我又編寫入棧的類,隊(duì)的類。與parkingmanagement進(jìn)行友元。

//**************************************類定義*********************************************** class car//車的信息類

{ public: double time;//計(jì)費(fèi)時(shí)間 int number;//車牌號(hào)

car *next;//存放car類型元素的數(shù)組初始地址 };class carstack//棧(停車場(chǎng))的類

{ friend class parkingmanagement;//parkingmanagement能訪問carstack類中所有成員 public: carstack();//構(gòu)造函數(shù),棧的初始化 int empty();//判斷棧是否為空 int full();//判斷棧是否為滿

car *s;//存放car類型棧元素的數(shù)組初始地址 int top;//棧頂指針 };class carqueue//隊(duì)列(便道)的類

{ friend class parkingmanagement;//parkingmanagement能訪問carstack類中所有成員 public: carqueue();//構(gòu)造函數(shù),隊(duì)列的初始化 int full();//判斷隊(duì)列是否為滿 car *front,*rear;//存放car類型隊(duì)列元素的數(shù)組初始地址 };class parkingmanagement { public: int pushstack(carstack &cs,int cnum,double ctime);//入棧,cs棧內(nèi)進(jìn)行調(diào)整,返回棧內(nèi)位置 void popstack(carstack &cs,int cnum);//出棧,cs棧內(nèi)進(jìn)行調(diào)整,//根據(jù)車牌號(hào)把車彈出棧,將出棧car的number賦值給int popstacknumber()//將出棧car的time賦值給double popstacktime(),無返回值!

int pushqueue(carqueue &cq,int cnum,double ctime);//入隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回隊(duì)內(nèi)位置 int popqueue(carqueue &cq);//出隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回汽車車牌號(hào)

void arrival(carstack &cs,carqueue &cq,int cnum,double ctime);//車輛到達(dá),//根據(jù)輸入的車牌號(hào)、到達(dá)時(shí)間,變更函數(shù)參數(shù);并cout車位信息

void leave(carstack &cs,carqueue &cq,int cnum,double ctime);//車輛離開,//根據(jù)輸入的車牌號(hào)找到汽車,并進(jìn)行出棧操作、出隊(duì)操作和入棧操作; //并cout停留時(shí)間和收費(fèi)情況

void deletequeue(carqueue &cq,int i);//刪除cq過道中第i輛車 int popstacknumber;//專門存放出棧的時(shí)候返回的車牌號(hào) double popstacktime;//專門存放出棧的時(shí)候返回的時(shí)刻

};**********************************【以下為類的實(shí)現(xiàn)】************************************ carstack::carstack()//構(gòu)造函數(shù),棧的初始化 { top=-1;s=new car[Max];//創(chuàng)建car類型棧元素的數(shù)組 if(s==NULL){ cout<<“棧空間分配不成功!”<

cs.top++;(cs.s[cs.top]).number=cnum;//將cnum賦給棧頂位置的車的車牌號(hào),s是car類型棧元素的數(shù)組(cs.s[cs.top]).time=ctime;//將ctime賦給棧頂位置的車的入棧時(shí)間,s是car類型棧元素的數(shù)組 return(cs.top+1);//返回棧內(nèi)位置加1,即停車場(chǎng)內(nèi)車位從1號(hào)開始 } } void parkingmanagement::popstack(carstack &cs,int cnum)//出棧,cs棧內(nèi)進(jìn)行調(diào)整,//根據(jù)車牌號(hào)把車彈出棧,將出棧car的number賦值給int popstacknumber //將出棧car的time賦值給double popstacktime,無返回值!{ int i;car p;carstack stemp;//定義一個(gè)carstack類型的臨時(shí)存放出棧元素的棧

for(i=0;i<=cs.top;i++)if((cs.s[i]).number==cnum)break;//當(dāng)要出棧的車的車牌號(hào)=棧內(nèi)的車牌號(hào)元素時(shí),跳出循環(huán) p=cs.s[i];//將要出棧的元素賦給car類型的p存放

while(cs.top>i)stemp.s[++(stemp.top)]=cs.s[(cs.top)--];//出棧的元素?cái)?shù)組逐個(gè)賦給臨時(shí)棧 popstacknumber=p.number;//將這個(gè)車牌號(hào)信息傳給int popstacknumber()popstacktime=p.time;//將該車的時(shí)間信息傳給double popstacktime()cs.top--;//棧頂指針回到原來位置

while(stemp.top>=0)cs.s[++(cs.top)]=stemp.s[(stemp.top)--];//臨時(shí)棧出棧的元素逐個(gè)賦給原棧,完成先退再進(jìn)的工作 } int parkingmanagement::pushqueue(carqueue &cq,int cnum,double ctime)//入隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回隊(duì)內(nèi)位置 { car *p,*countp;int count(1);//count用于記錄車在過道上的位置信息,因隊(duì)列為鏈?zhǔn)降模赃M(jìn)行循環(huán)累加 p=new car;//創(chuàng)建一個(gè)car類型的指針

p->number=cnum;p->time=ctime;p->next=NULL;//首先將指向存放car類型元素的數(shù)組初始地址置空 if(cq.front==NULL)//第一次入隊(duì)要判斷頭結(jié)點(diǎn)是否為空 { cq.front=cq.rear=p;} else

{//尾插法插入元素 p->next=(cq.rear)->next;(cq.rear)->next=p;cq.rear=(cq.rear)->next;} countp=(cq.front)->next;while(countp!=NULL){ count++;countp=countp->next;}//count即車在過道上的位置,【從1開始計(jì)!!】 return count;} int parkingmanagement::popqueue(carqueue &cq)//出隊(duì),隊(duì)內(nèi)進(jìn)行調(diào)整,返回汽車車牌號(hào)

{ car p;p.number=((cq.front)->next)->number;//cq隊(duì)里,從cq.front開始指向下一個(gè)元素的車牌號(hào)賦給car類型的車信息 p.time=((cq.front)->next)->time;//cq隊(duì)里,從cq.front開始指向下一個(gè)元素的時(shí)刻 //賦給car類型的車信息

p.next=((cq.front)->next)->next;//cq隊(duì)里,從cq.front開始指向下一個(gè)元素的指針 //賦給car類型的車信息的下一個(gè)元素的指針 return p.number;cq.front=(cq.front)->next;} void parkingmanagement::arrival(carstack &cs,carqueue &cq,int cnum,double ctime)//車輛到達(dá),根據(jù)輸入的車牌號(hào)、到達(dá)時(shí)間,變更函數(shù)參數(shù);并cout車位信息 { int pos;if(!(cs.full()))//如果棧未滿,車輛停入停車場(chǎng) { int fl(0),i;//定義一個(gè)從0開始的標(biāo)記fl for(i=0;i<=cs.top;i++){ if(cs.s[i].number==cnum)//如果到達(dá)的車的車牌號(hào)=棧內(nèi)已有車輛的車牌號(hào) { fl=1;//fl記1 break;} } if(fl==1)//如果到達(dá)的車的車牌號(hào)!=棧內(nèi)已有車輛的車牌號(hào) cout<<“輸入錯(cuò)誤!請(qǐng)重新輸入!”<

cout<<“該停車場(chǎng)還有空位,請(qǐng)到”<

{ pos=pushqueue(cq,cnum,ctime);//入隊(duì),返回車位信息

cout<<“該停車場(chǎng)已滿,請(qǐng)將車停到便道”<

{ popstack(cs,cnum);//出棧操作

hour=ctime-popstacktime;//時(shí)間計(jì)算

outcarnum=popqueue(cq);//將便道上的第一輛車出隊(duì),入棧。并將其車牌號(hào)賦給outcarnum pstack=pushstack(cs,outcarnum,ctime);//將便道上的第一輛車,入棧

cout<<“該車在本停車場(chǎng)內(nèi)停留時(shí)間為”<

{ p=cq.front;while(p!=NULL){ count++;//如果在過道中找到該車,則該車的位置為過道中的第count位置(count從1開始)p=p->next;if(p->number==cnum)//在過道中找到要出去的車,則在隊(duì)列中刪除該car。//后面的車輛依然順序排列,補(bǔ)足空位

{ deletequeue(cq,count);if(count>Max){ cout<<“您的車在便道上的位置為”<

car *p,*q;int j(0);p=cq.front;while(p && jnext;j++;}//找到第i個(gè)節(jié)點(diǎn)(i從1開始)if(!p ||!p->next)cout<<“i不合法”;else { q=p->next;p->next=q->next;delete q;} } *******************************【以下是主程序】************************************ void print(){ cout<<“= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =”<>acc>>carnum>>cartime;if(acc=='A')park.arrival(cars,carq,carnum,cartime);else if(acc=='D')park.leave(cars,carq,carnum,cartime);else if(acc=='E')break;else cout<<“您的輸入有誤,請(qǐng)重新輸入!”<

######【3】【停車場(chǎng)管理系統(tǒng)【方案二 程序】】

(ps:本方案與方案一有同樣的問題,就是在對(duì) 便道上的車 進(jìn)行駛離操作時(shí),數(shù)據(jù)錯(cuò)誤,同樣的理由,沒有改正。如果有細(xì)心娃娃幫忙指點(diǎn)改正,在此感激啦~)

*************************【以下為類定義】************************************ #include using namespace std;const int MaxSize=2;//停車場(chǎng)內(nèi)最多能停2輛車 template class carStack;// template //定義模板類

struct Node//過道停車的隊(duì)列所需鏈?zhǔn)浇Y(jié)點(diǎn) { T carnum;//定義車牌號(hào)類型

Node *next;//此處也可以省略 };template class carinfo {

friend class carStack;public: T carnum;//車號(hào)

int cartime;//停車時(shí)間 };

template class carQueue { friend class carStack;public: carQueue();//構(gòu)造函數(shù),初始化一個(gè)空的鏈隊(duì)列

int EnQueue(T cnum);//將元素x入隊(duì),并返回其在隊(duì)內(nèi)的位置(從1開始)T DeQueue();//將隊(duì)頭鏈?zhǔn)浇Y(jié)點(diǎn)出隊(duì),并返回汽車車牌號(hào)

void deletequeue(int i);//將隊(duì)內(nèi)低i個(gè)元素刪除,即便道上i位置的汽車駛離 bool Empty();//判斷鏈隊(duì)列是否為空 Node *front, *rear;};template class carStack { friend class carinfo;public: carStack();//構(gòu)造函數(shù),棧的初始化,停車場(chǎng)容量為【size】 void Pushcar(T cnum,int ctime);//有車停入停車場(chǎng)

int Popcar(T outcnum,int outctime);//將第cnum輛車出棧,并返回其停車時(shí)間(hour)bool full();//判斷棧是否為滿?滿則返回1 carinfo *S;//?? int top;};******************************【以下為類的實(shí)現(xiàn)】**************************************** template //初始化隊(duì)列 carQueue::carQueue(){ front=rear=NULL;} template int carQueue::EnQueue(T cnum)//車子進(jìn)入便道 { int i(0);Node *s,*p;//??

s=new Node;s->carnum=cnum;s->next=NULL;if(front==NULL)//空隊(duì)列,【【【新結(jié)點(diǎn)既是隊(duì)頭,又是隊(duì)尾】】】關(guān)鍵是!front指向第一個(gè)結(jié)點(diǎn) {

front=rear=s;} else {

rear->next=s;//將結(jié)點(diǎn)s插入到隊(duì)尾 rear=s;} p=front;while(p!=NULL){ i++;p=p->next;}//i即車在過道上的位置,【從1開始計(jì)!!】 return i;}

template T carQueue::DeQueue(){ Node *p;if(front==NULL)cout<<“便道上沒車”;else { p=front;

front=front->next;//將隊(duì)頭元素所在結(jié)點(diǎn)摘鏈 } return p->carnum;delete p;//將出隊(duì)進(jìn)棧的車從隊(duì)列里刪除 }

template bool carQueue::Empty()//判斷是否為空,為空則返回1,不為空則返回0 { return front==NULL;}

template carStack::carStack()//構(gòu)造棧算法

:top(-1){//建立一個(gè)最大尺寸為size的空棧

S=new carinfo[MaxSize];//創(chuàng)建存儲(chǔ)棧的數(shù)組 if(S==NULL)//分配不成功

{ cerr<<“動(dòng)態(tài)存儲(chǔ)失敗!”<

template void carStack::Pushcar(T cnum,int ctime){ if(top==MaxSize-1)cout<<“車場(chǎng)內(nèi)已停滿汽車”;else { S[++top].carnum=cnum;S[top].cartime=ctime;} }

template int carStack::Popcar(T outcnum,int outctime){ int i,hour;carStack Stemp;//建一個(gè)臨時(shí)模擬停車場(chǎng) int Stop=-1;for(i=0;i<=top;i++)if(outcnum==S[i].carnum)break;while(top>i)Stemp.S[++Stop]=S[top--];hour=outctime-S[top].cartime;return hour;top--;while(Stop>=0)S[++top]=Stemp.S[Stop--];} template bool carStack::full(){ return top==MaxSize-1;} template void carQueue::deletequeue(int i){ Node *p,*q;int j(1);p=front;while(p && jnext;j++;}//找到第i-1個(gè)結(jié)點(diǎn)(結(jié)點(diǎn)位置從1開始)if(!p||!p->next)cout<<“i不合法!”<next;p->next=q->next;delete q;} } ******************************【以下為主函數(shù)】***************************************

void outputpark()//系統(tǒng)功能選擇頁面,輸入泊車信息

{ cout<<“========================”< cs;carQueue cq;while(1){ outputpark();cin>>arrive>>carnum>>cartime;if(arrive=='A'){ if(cs.top!=MaxSize-1)//停車場(chǎng)內(nèi)有空位可以駛?cè)?/p>

{ cs.Pushcar(carnum,cartime);cout<<“請(qǐng)駛?cè)胪\噲?chǎng)的”<

Node *p;p=cq.front;while(p!=NULL){ if(p->carnum==carnum){ flagde=1;break;} pos++;p=p->next;} if(flagde){ cout<<“您的車停在便道上”<

下載c++課程設(shè)計(jì)心得體會(huì)word格式文檔
下載c++課程設(shè)計(jì)心得體會(huì).doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    《C++語言課程設(shè)計(jì)》任務(wù)書_2012

    《C++語言課程設(shè)計(jì)》任務(wù)書 專業(yè) 班級(jí) 學(xué)號(hào) 姓名 一、實(shí)踐目的 通過本課程設(shè)計(jì)教學(xué),為學(xué)生提供一個(gè)綜合運(yùn)用所學(xué)知識(shí),解決實(shí)際問題的機(jī)會(huì),增強(qiáng)其實(shí)踐動(dòng)手能力和工程實(shí)踐能力,鍛......

    C++語言課程設(shè)計(jì)題目

    《C++語言課程設(shè)計(jì)》題目 課程大綱: 一、教學(xué)目標(biāo)和基本要求 本課程全面系統(tǒng)的學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念,基本語法和編程方法。正確理解掌握C++面向?qū)ο蟪绦蛟O(shè)計(jì)的基本......

    測(cè)繪程序設(shè)計(jì)與C++編程課程設(shè)計(jì)心得體會(huì)

    測(cè)繪程序設(shè)計(jì)與C++編程課程設(shè)計(jì) 心得體會(huì) 學(xué)院: 班級(jí): 學(xué)號(hào):姓名: 課程設(shè)計(jì)心得體會(huì) 時(shí)間過的真快,一晃眼的功夫,C++實(shí)習(xí)就要結(jié)束了,雖然只是短短的10天,但帶給我的卻很多。 首先,我......

    C++心得體會(huì)

    C++學(xué)習(xí)心得體會(huì) 通過一學(xué)期對(duì)C++的學(xué)習(xí),我感覺學(xué)習(xí)C++是有一定難度卻又是非常有趣 的科目。也是很有幫助的。 深刻感受到如果真的想要學(xué)好這么課,或者說是從這門課學(xué)到點(diǎn)......

    C++課程設(shè)計(jì)公司人事管理系統(tǒng)

    C++程序設(shè)計(jì)實(shí)踐教學(xué)環(huán)節(jié)任務(wù)書 承接的項(xiàng)目額(10%)提成,業(yè)務(wù)經(jīng)理既拿固定月薪(2000元)也領(lǐng)取提成,財(cái)務(wù)人員固定工資(2000元),文秘為固定工資(1500元)。 (4) 可按姓名顯示、查找、......

    C++課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告

    大連科技學(xué)院 C++課程設(shè)計(jì)報(bào)告 題目稿件管理數(shù)據(jù)系統(tǒng) 小組成員呂榮興 學(xué)生姓名 呂榮興 專業(yè)班級(jí)信管10-1班所在系部 信息科學(xué)系指導(dǎo)教師 曾維佳 職稱 講師目 錄 一 題目 .......

    ATM自動(dòng)取款機(jī)C++課程設(shè)計(jì)

    C++課程設(shè)計(jì) 學(xué)校: 惠州學(xué)院 題目: 設(shè)計(jì)ATM自動(dòng)取款機(jī)系統(tǒng) 系別: 電子科學(xué)系 班級(jí): 11電信2班 學(xué)號(hào): 110703229 姓名: 王志勇2014年4月21日 一、課程設(shè)計(jì)目的及要求 1.1設(shè)計(jì)目的 1......

    C++課程設(shè)計(jì)(簡(jiǎn)單圖書管理系統(tǒng))

    課 程 設(shè) 計(jì) 課程名稱C++課程設(shè)計(jì) 題目名稱圖書管理系統(tǒng) 2016 年6 月 29 日目錄 一.設(shè)計(jì)內(nèi)容與要求 .......................................................................

主站蜘蛛池模板: 成人麻豆亚洲综合无码精品| 亚洲欧美在线观看品| 亚洲精品午夜无码电影网| 人妻少妇偷人无码精品av| 无码专区—va亚洲v天堂麻豆| 日本三级香港三级三级人!妇久| 国产日韩欧美久久久精品图片| 国产日产精品一区二区三区四区的特点| 日韩加勒比一本无码精品| 欧美多毛肥胖老妇做爰| 久久久久久国产精品免费无码| 亚洲成在人线av| 性久久久久久久| 中文无码一区二区三区在线观看| www国产内插视频| 亚洲一区二区三区小说| 欧亚精品一区三区免费| 欧美午夜精品久久久久久浪潮| 国产精品亚洲专区无码导航| 国产明星女精品视频网站| 免费看男阳茎进女阳道动态图| 国产尤物av尤物在线观看| 精品国产一区二区三区香蕉| 黑人大战日本人妻嗷嗷叫| 免费无码十八禁污污网站| 免费a级毛片18禁网站| 国产精品无圣光一区二区| 亚洲欧美黑人猛交群| 久久久精品日本一区二区三区| 18禁超污无遮挡无码免费网站国产| 精品成人免费一区二区| 在线观看免费网页欧美成| 天堂网www在线资源中文| 三叶草欧洲码在线| 亚洲男人的天堂在线播放| 亚洲va在线va天堂xxxx中文| 影音先锋人妻av在线电影| 亚洲精品无码不卡| 国产99久久99热这里只有精品15| 亚洲一区波多野结衣在线| 麻豆国产成人av在线播放欲色|