c++課程實踐報告_第1頁
c++課程實踐報告_第2頁
c++課程實踐報告_第3頁
c++課程實踐報告_第4頁
c++課程實踐報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

中南大學(xué)《C++課程設(shè)計》設(shè)計報告題 目一.8二.3三.3學(xué)生姓名李勝學(xué) 號1304090322專業(yè)班級 0903指導(dǎo)老師 數(shù)學(xué)科學(xué)與計算技術(shù)學(xué)院2010年6月18日題目一、實驗?zāi)康摹?nèi)容描述進行的程序設(shè)計:第一大類:8.編制具有如下原型的函數(shù)prime,用來判斷整數(shù)n是否為素數(shù):boolprime(intn);而后編制主函數(shù),任意輸入一個大于4的偶數(shù)d,找出滿足d=dl+d2的所有數(shù)對,其中要求di與d2均為素數(shù)(通過調(diào)用prime來判斷素數(shù))。如偶數(shù)18可以分解為11+7以及13+5;而偶數(shù)80可以分解為:43+37、61+19、67+13、73+7。提示:i與d-i的和恰為偶數(shù)d,而且只有當(dāng)i與d-i均為奇數(shù)時才有可能成為所求的“數(shù)對”。第二大類:3編一查找給定字符串程序,要求輸出給定字符串在文件中的出現(xiàn)的行數(shù),第一個字符在此行中的位置。應(yīng)區(qū)分給定字符串本身構(gòu)成一個字和作為另外一個字的子串兩種情況。。第三大類:3.商品銷售統(tǒng)計問題描述編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數(shù)等),根據(jù)單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應(yīng)計算出客戶應(yīng)付的錢款數(shù)?;疽蟪绦蚍譃閮蓚€部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計。程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應(yīng)考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼(如-1)表示本次購物結(jié)束。此時。程序計算出應(yīng)付錢款數(shù)并顯示。測試數(shù)據(jù)程序應(yīng)輸入不少于10種商品的信息,并進行模擬運行。實現(xiàn)提示本程序的商品信息管理可采用與課程設(shè)計題目二類似的數(shù)據(jù)結(jié)構(gòu),既定義一個商品類,每種商品作為商品類的實例(對象)存儲在鏈表節(jié)點中。選做內(nèi)容程序在營業(yè)結(jié)束時統(tǒng)計每種商品的銷售量,銷售金額及總營業(yè)額。因此第二部分應(yīng)有營業(yè)結(jié)束的選擇,當(dāng)用戶選擇此項時屏幕上顯示當(dāng)天營業(yè)的每種商品的銷售量,銷售金額及總營業(yè)額。注意,商品類的數(shù)據(jù)成員應(yīng)增加有商品的銷售量和銷售金額。總營業(yè)額是所有商品的營業(yè)額之和,可用靜態(tài)數(shù)據(jù)成員實現(xiàn)?;蚩捎稍唐奉惻缮鲆粋€特殊的類,增加上面的數(shù)據(jù)成員及相應(yīng)的成員函數(shù)。二、設(shè)計的特點和結(jié)果包括實驗處理結(jié)果和設(shè)計心得。指出實驗結(jié)果運行的操作系統(tǒng)和平臺,運行結(jié)果。運行的平臺:VistualStudio2005和dev-c++面向過程化:年月日的天數(shù)。運行的結(jié)果見程序后面文件操作類:給出代碼源文件的文件名,注意輸入的格式,對已經(jīng)存在文件的操作為。比如:E:WcppW求和.cpp在運行中可以讀取源文件并且對源文件進行過濾,刪除其中的注釋,然后生成一份更高效的文件,使得程序運行更快。三、設(shè)計心得通過課程實踐設(shè)計進一步的鞏固了用C++語言編寫程序,并且有利于更好的掌握C++語言!在編寫過程中也體會到了做事情一頂要細心、認真。更加知道了要掌握好基礎(chǔ)知識。還有體會到了成功的感覺!在萬年歷的設(shè)計過程中更加體會到了團隊合作的重要性,“一個諸葛亮比不上三個臭皮匠。”知道了只有團隊合作才會更好的完成設(shè)計!也體會到以后在工作中團隊合作的必要性和重要性!通過本項課程設(shè)計也培養(yǎng)了我獨立思考、綜合運用所學(xué)有關(guān)相應(yīng)知識的能力,掌握工程軟件設(shè)計的基本方法,強化上機動手編程能力,闖過理論與實踐相結(jié)合的難關(guān)!4 由于C語言是近年在國內(nèi)外得到迅速推廣應(yīng)用的一種語言。C語言功能豐富,表達能力強,使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點。通過這次的c語言程序設(shè)計更加了解了c語言的好處和其可用性!5.在這次課程設(shè)計中也知道了自己的動手能力不強有待進一部的提高!在設(shè)計過程中不能夠把書本上的知識與實踐相結(jié)合,這也就增加了設(shè)計不好該程序的想法!在設(shè)計過程中的一次次設(shè)計錯誤增加了我放棄的想法!不過經(jīng)過大家的努力終于完成了課程設(shè)計!完成該程序后想起自己以前的每一次對自己失去信心,就覺得并不是在知識掌握上打敗了,而是自己對自己缺乏信心!只要自己對自己不失去信心相信就可以完成那些以前認為完成不了的事情!也讓我懂得了要想成功首先就必須有很強的自信心!懂得了自己以后要在做任何事情時都要自信!當(dāng)自己都不相信自己能夠成功時還可能會獲得成功嗎?6.在本次程序設(shè)計的過程中也知道了自己在以前的學(xué)習(xí)中有很大的不足導(dǎo)致在設(shè)計過程中出現(xiàn)了很多的問題,有些地方看不懂也不知道怎么去設(shè)計,但是在設(shè)計過程中也學(xué)習(xí)了很多,掌握了自己以前沒有學(xué)好的知識,雖然一時可以掌握完以前沒有學(xué)好的知識,不過也給自己敲響了警鐘,在學(xué)習(xí)中不可以伏于表面,要想學(xué)好每一門課程都要踏踏實實,做什么都不是給別人看的!都是要更好的掌握該門知識,提高自己的自身的修養(yǎng),提高自己的能力!為以后的工作打下良好的知識基礎(chǔ)和技能基礎(chǔ)!附錄自己做的主要實驗源代碼第一大類8題:#include<iostream>Intprime(intn){Int,flag=0;For(i=2;i<n;i++){If(n%i==0)Flag=0;}Returnflag;}Voidmain(){intprime(intn);intd1,d2,d,a,b;coutvv”請輸入大于4的偶數(shù)d:”;cin>>d;for(d1=3;d1<=d/2;d1=d1+2){d2=d-d1a=prime(d1);b=prime(d2);if(a==0&&b==0)cout<<”n=”<<d1<<”+”<<d2<<endl;}}第二大類3題#include<fstream.h>structRecord{charname[30];charage[30];charsalary[30];voidDisplay(){"vvsalaryvvendl;coutvv"姓名:"vvnamevv"\t年齡:"vvagevv"\t工資:"vvsalaryvvendl;}};voidWriteFile(ofstream&file,Record&data){file<<<<''<<data.age<<''<<data.salary<<endl;}voidReadFile(ifstream&file,Record&data){file>>>>data.age>>data.salary;}voidmain(){inti,id;char*fname1="e:\\exercise\\data.txt";char*fname2="e:\\exercise\\backup.txt";Recorddata;//創(chuàng)建文件并寫入數(shù)據(jù)ofstreamxfile(fname1);if(!xfile){cerrvv"不能打開文件!"vvendl;return;for(i=0;i<3;i++){coutvv"請輸入"vvi+lvv"個人的姓名、年齡和工資:"vvendl;cin>>>>data.age>>data.salary;WriteFile(xfile,data);}xfile.close();//備份文件ifstreaminfile(fnamel);if(!infile){coutvv"不能打開源文件"vvendl;return;}ofstreamoutfile(fname2);if(!outfile){coutvv"不能建立備份文件"vvendl;return;}id=l;while(!infile.eof()){ReadFile(infile,data);if(infile.eof())break;outfilevvid++vv""; //記錄加標(biāo)號WriteFile(outfile,data);}outfile.close();infile.close();}第三大類3題#include"iostream.h"#include"fstream.h"#include"string.h"#defineMAX30classPhoneBook{public:charTelephone[20];charName[l0];

charAdress[100];PhoneBook*next;PhoneBook(){strcpy(Telephone,"");strcpy(Name,"");strcpy(Adress,"");next=NULL;}PhoneBook(chara1[20],chara2[10],chara3[100]){strcpy(Telephone,a1);strcpy(Name,a2);strcpy(Adress,a3);}}Phonebook[MAX];intintHash(intnum) //再哈希函數(shù){intkey;key=(num%21)+1;returnkey;}intcharHash(charnum[20]) //哈希函數(shù){inti=strlen(num)-5;intkey=0;//=(int)num[0];//-48;while(num[i]!=NULL){key=num[i]+(key<<5);i++;}key=key%13;returnkey;}voidList(){voidList(){//顯示通訊錄中的所有記錄coutvv"電話號碼——用戶名 地址"vvendl;for(inti=0;i<MAX;i++){if(Phonebook[i].next!=NULL){coutvvPhonebook[i].next->Telephonevv""vvPhonebook[i].next->Namevv""vvPhonebook[i].next->Adressvvendl;}}}voidCreat() //創(chuàng)建新的通訊錄。{PhoneBook*tmp=newPhoneBook();cin>>tmp->Telephone>>tmp->Name>>tmp->Adress;tmp->next=NULL;inta=charHash(tmp->Telephone);mark: if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}}voidDelete(chara[10]) //刪除某人的信息,如果未找到要刪除的人,則提示通訊錄中沒有此人的信息,并返回選單。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(!strcmp(Phonebook[i].next->Telephone,a))mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){Phonebook[mark].next->next=NULL;Phonebook[mark].next=NULL;coutvv"刪除中 \n"<<"現(xiàn)在數(shù)據(jù)為:"vvendl;List();}else{coutvv"查無此人!"vvendl;}voidAlter(chara[20]) //修改某人的信息,如果未找到要修改的人,則提示通訊錄中沒有此人的信息,并返回選單。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(!strcmp(Phonebook[i].next->Telephone,a)){mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){coutvv"你要修改的用戶姓名和住址"vvendl;cin>>Phonebook[mark].next->Name>>Phonebook[mark].next->Adress;coutvv"修改中 \n"vv"現(xiàn)在數(shù)據(jù)為:"vvendl;List();}else{coutvv"查無此號碼的記錄。"vvendl;}voidFind(chara[20]) //查詢某人的信息,如果找到了,則顯示該人的信息,如果沒有則提示通訊錄中沒有此人的信息,并返回選單。{intmark=-1;inti=charHash(a);while(1){if(Phonebook[i].next!=NULL){if(strcmp(Phonebook[i].next->Telephone,a)==0){mark=i;break;}else{i=intHash(i);}}elsebreak;}if(mark!=-1){cout<<Phonebook[mark].next->Telephone<<""<<Phonebook[mark].next->Name<<""<<Phonebook[mark].next->Adress<<endl;}else{coutvv"查無此號碼的相關(guān)信息!"vvendl;}}voidAppend() //在通訊錄的末尾寫入新的信息,并返回選單。{PhoneBook*tmp=newPhoneBook();coutvv"請輸入你要輸入的電話號碼,用戶姓名,住址"vvendl;cin>>tmp->Telephone>>tmp->Name>>tmp->Adress;tmp->next=NULL;inta=charHash(tmp->Telephone);mark: if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}inti;fstreamiiout("out.txt",ios::out);for(i=0;i<20;i++){if(Phonebook[i].next!=NULL){iiout<<Phonebook[i].next->Telephone<<"\t"<<Phonebook[i].next->Name<<"\t"<<Phonebook[i].next->Adress<<"\0"<<endl;}}}voidLoad() //從指定文件中讀取通訊錄中的記錄。{inti;inta;fstreaminf("out.txt",ios::in);for(i=0;i<5;i++){PhoneBook*tmp=newPhoneBook();inf>>tmp->Telephone>>tmp->Name>>tmp->Adress;a=charHash(tmp->Telephone);mark:if(Phonebook[a].next->Telephone!=NULL){a=intHash(a);gotomark;}else{tmp->next=&Phonebook[a];Phonebook[a].next=tmp;}}}intQuit() //退出選單。return0;

voidMenu()//顯示中文選單voidMenu()C平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平平flcout<<"**"<<endl;cout<<"*0.新建"<<"1.添加"<<"2.修改"<<"3.刪除"<<"4.查找 *"<<endl;cout<<"*5.列表"<<"6.讀取"<<"7.保存"<<"8.退出 *"<<endl;cout<<cout<<"*

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論