版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、合肥學(xué)院計算機(jī)科學(xué)與技術(shù)系課程設(shè)計報告20102011學(xué)年第二學(xué)期課程 C+課程設(shè)計課程設(shè)計名稱學(xué)生社團(tuán)管理程序?qū)W生姓名章 丹學(xué)號1004013033專業(yè)班級計科(1)班 指導(dǎo)教師華姍姍2011年6月一、 課程設(shè)計目的:將理論教學(xué)中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計題目進(jìn)行綜合性應(yīng)用,對所學(xué)知識達(dá)到融會貫通的程度。通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1)進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程C+程序設(shè)計語言的基本理論知識,理論聯(lián)系實際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。 (2)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)
2、能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。 (3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運(yùn)用C+語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。 (5)掌握結(jié)構(gòu)化程序設(shè)計方法,熟悉面向?qū)ο蟪绦蛟O(shè)計方法。(6)熟練掌握C+語言的基本語法,靈活運(yùn)用各種數(shù)據(jù)類型。(7)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。二、需求分析:課程設(shè)計名稱:學(xué)生社團(tuán)管理程序設(shè)計內(nèi)容:編寫一個簡單的學(xué)生社團(tuán)管理程序,幫助管理學(xué)生社團(tuán)信息。要求具有學(xué)生信息管理和社團(tuán)信息管理的功能。其中學(xué)生信息管理包括學(xué)生基本信息的錄入、刪除和修改
3、等功能。社團(tuán)信息管理包括社團(tuán)信息的錄入,查看,刪除,修改等功能。 二 算法設(shè)計1設(shè)計思想:學(xué)生社團(tuán)管理程序(添加信息、修改信息、刪除信息,查詢信息,); 要完成這個題目,主要是建立解決輸入的信息的存儲,解決的方法是建立動態(tài)數(shù)組,用于存儲信息。解決了這個問題后就是如何建立聯(lián)系了,解決的方法是創(chuàng)建一個文件檔用來儲存輸入的信息。2功能要求 在學(xué)生社團(tuán)管理系統(tǒng)中須實現(xiàn)以下功能:(1) 添加社員信息:能夠社員的信息,添加信息如下圖;(2) 修改社員信息:能對學(xué)生社團(tuán)管理系統(tǒng)中存儲的信息進(jìn)行修改;(3) 刪除社員信息:可以刪除學(xué)生社團(tuán)管理系統(tǒng)中所有社員的信息;(4) 查詢社員信息: 按照每個社員的會員號可
4、以進(jìn)行查詢社員的情況;(5) 存儲信息:能夠記錄保存在設(shè)定的文件檔中,以便使用;(6) 退出系統(tǒng):任務(wù)完成后,能夠正常退出系統(tǒng)。3. 技術(shù)要求(1)學(xué)生信息管理包括學(xué)生基本信息的錄入、刪除和修改等功能。社團(tuán)信息管理包括社團(tuán)信息的錄入,查看,刪除,修改等功能。 (2)信息以文件檔的形式存儲,存儲位置,文件名,文件格式由設(shè)計者確定。(3)以菜單方式實現(xiàn)功能選擇控制。 三 學(xué)生社團(tuán)管理程序的框圖設(shè)計1 總體實現(xiàn)功能 主要的數(shù)據(jù)結(jié)構(gòu):社員會員號、社員姓名,社員年齡,社員性別,社員專業(yè),社員班級、社團(tuán)名稱。以這些數(shù)據(jù)來存儲學(xué)生的信息,能夠了解學(xué)生社團(tuán)的各項情況。 下圖給出了學(xué)生社團(tuán)管理程序的功能結(jié)構(gòu):社
5、 員選擇1、添加社員信息2、修改社員信息5、退出系統(tǒng)4、查詢社員信息3、刪除社員信息社員會員號社員姓名社員年齡社員性別社員專業(yè)社員班級社團(tuán)名稱(1) 添加信息模塊社員進(jìn)入該模塊,輸入自己的相關(guān)信息,輸入后,保存自己的信息,這樣系統(tǒng)就存儲了你的信息。添加服務(wù)信息社員會員號社員姓名社員性別社員年齡社員專業(yè)社員班級社團(tuán)名稱存儲信息(2) 修改信息模塊社員進(jìn)入該模塊,輸入自己的社員會員號,在進(jìn)入自己的信息區(qū)域,修改自己的相關(guān)信息,再保存,即可。輸入要修改的社員會員號(正確)社員會員號社員姓名社員性別社員年齡社員專業(yè)社員班級社團(tuán)名稱存儲信息修改社員信息(3)刪除信息模塊社員進(jìn)入模塊,可以刪除社員的所有信
6、息,進(jìn)行查看。(4)查詢信息模塊 社員進(jìn)入該模塊,可以查詢自己的信息情況。輸入要查詢的社員的會員號(正確)社員會員社員姓名社員年齡社員性別社員專業(yè)社員班級 社團(tuán)名稱查詢社員信息(5)退出系統(tǒng)2、設(shè)計功能的實現(xiàn)和分析(1)定義結(jié)構(gòu)體struct Message /構(gòu)造學(xué)生信息結(jié)構(gòu)體 string ID; /社團(tuán)會員號 string name; /社員姓名 string sex; /社員性別 string age; /社員年齡 string profession; /社員專業(yè) string grade; /社員班級 string club; /社團(tuán)名稱(2)學(xué)生信息類class studentme
7、ssagepublicchar Menu(); /菜單 void Add(); /添加社員信息 void Change(); /修改社員信息 void Delate(); /刪除社員信息 void Search(); /查詢社員信息void Write(); /寫入文件void Read(); /從文件中讀取private:vector mes; static int times;(3) 顯示菜單函數(shù)/菜單/char studentmessage:Menu() coutendl; coutendl;coutendl;cout 學(xué)生社團(tuán)管理系統(tǒng)-選項endl; cout*endl;coutend
8、l;cout 1.添加社員信息endl;cout 2.修改社員信息endl; cout 3.刪除社員信息endl; cout 4.查詢社員信息endl;cout 5.退出程序choose; return choose;(4) 函數(shù)的分析添加社員信息/錄入/void studentmessage:Add()Read(); /從文件檔中讀取已存的信息Message temp; /構(gòu)建一個臨時的tempcout 請依次輸入新社員的信息 endl; cout社員會員號:temp.ID; cout社員姓名:; cout社員性別:temp.sex;cout社員年齡:temp.age; c
9、out社員專業(yè):fession; cout社員班級:temp.grade;cout社團(tuán)名稱:temp.club;mes.push_back(temp); /運(yùn)用push_back把輸入的新信息存儲到文件檔中times+;Write();將原有文件檔中的信息讀取出來,然后將信息添加在其后,再一起存入文件檔中。2修改社員信息void studentmessage:Change()Read(); /從文件檔中讀取已存的信息string sign; /構(gòu)建一個臨時的sign cout endl 輸入要修改的社員信息的會員號: sign;for(int i=0;imes.size();i
10、+) /利用for循環(huán)查找文件檔中的已存入的會員號 if (mesi.ID=sign) cout endl 你要修改的社員信息是: endlendl; cout社員會員號:mesi.IDendl; cout社員姓名:endl; cout社員性別 :mesi.sexendl; cout社員年齡:mesi.ageendl; cout社員專業(yè):fessionendl; cout社員班級:mesi.gradeendl; cout社團(tuán)名稱:mesi.clubendl; coutendl; coutendl; cout 請依次輸入新教材的信息 endl; cout社員會員
11、號:mesi.ID; cout社員姓名:; cout社員性別:mesi.sex;cout社員年齡:mesi.age;cout社員專業(yè):fession;cout社員班級:mesi.grade;cout社團(tuán)名稱:mesi.club;Write();break;先將文件檔中的信息讀取出來,然輸入自己需要修改的會員號,利用for循環(huán)查找文件檔中是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,先把信息顯示出來,然后改寫信息。查找社員信息void studentmessage:Search()Read(); /從文件檔中讀取已存的信息string sig
12、n; cout endl 輸入要查找的社員信息的會員號: sign;bool flog=false; for(int i=0;imes.size();i+) /利用for循環(huán)查找文件檔中的已存入的會員號 if (mesi.ID=sign) coutendl你要查找的教材信息是: endlendl; cout社員會員號:mesi.IDendl;cout社員姓名:endl; cout社員性別 :mesi.sexendl; cout社員年齡:mesi.ageendl; cout社員專業(yè):fessionendl; cout社員班級:mesi.gradeendl; co
13、ut社團(tuán)名稱:mesi.clubendl;flog=true;break; if(flog=false) coutnounendl; 先將文件檔中的信息讀取出來,然輸入自己需要查找的會員號,利用for循環(huán)查找文件檔中是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,把該會員的信息顯示出來。/寫入/void studentmessage:Write()ofstream os(clubmessage.txt,ios_base:out);for(int i=0;imes.size();i+)osmesi.ageendlmesi.clubendlmesi.gradeendlmesi.I
14、Dfessionendlmesi.sexendl;os.close(); 創(chuàng)建一個clubmessage.txt用于儲存社員信息。運(yùn)用ofstream os將信息儲存起來。/讀取/void studentmessage:Read()Message tempstudent; ifstream is(clubmessage.txt,ios_base:in); while(!is.eof() /當(dāng)字符長度部位空時運(yùn)行下例讀取文件檔中的信息istempstudent.agetempstudent.clubtempstudent.gradetempstu
15、dent.IDfessiontempstudent.sex;mes.push_back(tempstudent);times+;上面已經(jīng)創(chuàng)建一個clubmessage.txt用于儲存社員信息。運(yùn)用ifstream os將信息讀取出來。刪除社員信息void studentmessage:Delate()Read();string sign; cout endl 輸入要刪除的社員信息的會員號: sign;int i;string signstr;for(i=0;imes.size();i+) if (mesi.ID=sign) cout
16、endl你要刪除的社員信息是: endlendl;cout社員會員號:mesi.IDendl;cout社員姓名:endl; cout性別 :mesi.sexendl; cout年齡:mesi.ageendl; cout專業(yè):fessionendl; cout班級:mesi.gradeendl; cout社團(tuán)名稱:mesi.clubendl;couty/n?signstr;if(signstr=y|signstr=Y)mes.erase(&mesi);Write();break; 先將文件檔中的信息讀取出來,然輸入自己需要刪除的會員號,利用for循環(huán)查找文件檔中
17、是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,確定刪除按“y”,把該會員的信息刪除。主函數(shù)int main()studentmessage student;while(1) switch(student.Menu()/運(yùn)用switch產(chǎn)生循環(huán)操作。 case 1:student.Add(); break; case 2:student.Change(); break; case 3:student.Delate(); break; case 4:student.Search(); break; case 5:exit(0); default:cout輸入有誤endl;bre
18、ak; return 0;四、 用戶手冊首先根據(jù)你在菜單中選擇的類型進(jìn)入,輸入會員號,找到相對應(yīng)的信息。然后根據(jù)顯示的提示依次進(jìn)行輸入。用戶利用該系統(tǒng)時可根據(jù)該利用手冊進(jìn)行運(yùn)用。五、 調(diào)試及測試 出現(xiàn)問題:在修改信息函數(shù)中,開始并不能將原有信息進(jìn)行修改,只能覆蓋掉第一個會員信息,而且并沒有把修改之前的信息刪除,顯示時同時顯示了修改前后的信息;文件操作時不知道如何將輸入的信息進(jìn)行保存,怎樣取出文件的信息,不能很好的運(yùn)用文件操作;題目提示的運(yùn)用鏈表不會用,數(shù)組類模版不會用。解決問題:通過問同學(xué),查書籍,上網(wǎng)查看,了解可以創(chuàng)建一個文件檔來解決問題,能夠很好的存儲信息在文件檔中,將信息取出,調(diào)用等;文
19、件的操作我利用一個函數(shù)編寫保存信息的函數(shù),每次輸入一個客戶的信息就進(jìn)行保存。數(shù)據(jù)用一個動態(tài)數(shù)組分配一定的內(nèi)存存儲服務(wù)信息在文件檔中;設(shè)計本程序了解到類和對象、動態(tài)數(shù)組、創(chuàng)建文檔等知識的用途,學(xué)到了新的知識點,也看到了自己的不足,要學(xué)好自己的專業(yè)課程看來不是那樣的簡單,在學(xué)習(xí)階段并沒有寫過這樣大的程序,開始有些手忙腳亂的,所以說還是要多多看看這的程序,試著寫寫,提高自己的編程能力。六、 小結(jié) 這次基礎(chǔ)強(qiáng)化訓(xùn)練的課程設(shè)計對于我們來說,有一定的難度。因為他要求我們較完整的去實現(xiàn)一個比較可行的程序。將其應(yīng)用到實際的生活中去。我被分配到的題目是售后服務(wù)管理系統(tǒng)的實現(xiàn)與設(shè)計。這個題目相對來說貼近生活,比較
20、容易理解。但是設(shè)計一個較為完整的程序卻不是這么簡單的。 首先我分析了相關(guān)的題目內(nèi)容,并由此而進(jìn)行了相關(guān)資料和書籍的查詢工作然后才開始正式進(jìn)行設(shè)計。一開始不知從何下手但后來分析了一下題目,并結(jié)合這學(xué)期所學(xué)的知識,再加上相關(guān)提示我決定用類和對象、對象指針和文件的內(nèi)容來編寫程序。服務(wù)管理主要就是有一些操作來完成,這些操作包括:添加社員信息,修改社員信息,刪除社員信息,查詢社員信息,等等。用C+的知識來實現(xiàn)函數(shù):添加,查詢,修改,刪除。最后編寫退出系統(tǒng)的函數(shù)。 在具體編寫程序時考慮只要編寫前三個函數(shù),后面的函數(shù)幾乎差不多。添加社員信息:考慮到社員的信息較多,所以用類對其定義。又考慮到信息量大,所以添加
21、后要保存到文件中去。信息查詢:用構(gòu)建文件檔來寫。修改信息:把保存到文件中的內(nèi)容寫到文件檔中去,把其讀取出來,再進(jìn)行修改,再保存。 同時通過這幾天的程序及報告編寫,我也發(fā)現(xiàn)了自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還是比較脆弱。尤其是編寫大型的程序所要擁有的知識和技能比較缺乏。程序編好了,還要經(jīng)過調(diào)試和修改,這步也很關(guān)鍵,好的程序是經(jīng)過了無數(shù)次的修改和調(diào)試才產(chǎn)生的。我的程序基本上能夠滿足要求,但還有一些地方需要改進(jìn),在今后我應(yīng)該在多看書的同時還要加強(qiáng)實踐的練習(xí)。才能進(jìn)一步提高自己的編程能力。 最后,還要感謝我們實驗室指導(dǎo)老師的細(xì)心指導(dǎo)、熱心幫助。路
22、漫漫其修遠(yuǎn)兮,雖然本學(xué)期數(shù)據(jù)結(jié)構(gòu)課程結(jié)束了,但仍覺得自己還有很多東西要學(xué),我會在自己在以后的學(xué)習(xí)生活中不斷努力、不斷提高,爭取更大的進(jìn)步。七、參考文獻(xiàn)1 閔聯(lián)營,何克右.C+程序設(shè)計教程.武漢理工大學(xué)出版社; 2 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).清華大學(xué)出版社; 3 張文祥, 肖四友.C+實驗與案例分析. 科學(xué)出版社; 4 譚浩強(qiáng).C+程序設(shè)計. 清華大學(xué)出版社; 5 朱戰(zhàn)立.數(shù)據(jù)結(jié)構(gòu)(C+語言描述)(第二版本).高等教育出版社。 附錄1 #include#include#include#include#includeusing namespace std;struct Message
23、string ID; /社員姓名 string sex; /社員性別 string age; /社員年齡 string profession; / 社員專業(yè) string grade; /社員班級 string club; /社團(tuán)名稱;class studentmessagepublic:charMenu();/菜單 voidAdd(); /添加社員信息 voidChange(); /修改社員信息 voidDelate(); /刪除社員信息 voidSearch(); /查詢社員信息voidWrite(); /寫入文件voidRead();/從文件中讀取private:vector mes;
24、static int times;int studentmessage:times=0;/菜單/char studentmessage:Menu() coutendl; coutendl;coutendl;cout 學(xué)生社團(tuán)管理系統(tǒng)-選項endl; cout*endl;coutendl;cout 1.添加社員信息endl;cout 2.修改社員信息endl; cout 3.刪除社員信息endl; cout 4.查詢社員信息endl;cout 5.退出程序choose; return choose;/錄入/void studentmessage:Add()Read();Message temp;
25、cout 請依次輸入新社員的信息 endl; cout社員會員號:temp.ID; cout社員姓名:; cout社員性別:temp.sex;cout社員年齡:temp.age; cout社員專業(yè):fession; cout社員班級:temp.grade;cout社團(tuán)名稱:temp.club;mes.push_back(temp);times+;Write();void studentmessage:Change()Read();string sign; cout endl 輸入要修改的社員信息的會員號: sign;for(int i=0;imes.size(
26、);i+)if (mesi.ID=sign) cout endl 你要修改的社員信息是: endlendl; cout社員會員號:mesi.IDendl; cout社員姓名:endl; cout社員性別 :mesi.sexendl; cout社員年齡:mesi.ageendl; cout社員專業(yè):fessionendl; cout社員班級:mesi.gradeendl; cout社團(tuán)名稱:mesi.clubendl; coutendl; coutendl; cout 請依次輸入新教材的信息 endl; cout社員會員號:mesi.ID; cout社員姓名:m
27、;cout社員性別:mesi.sex;cout社員年齡:mesi.age;cout社員專業(yè):fession;cout社員班級:mesi.grade;cout社團(tuán)名稱:mesi.club;Write();break; void studentmessage:Search()Read();string sign; cout endl 輸入要查找的社員信息的會員號: sign;bool flog=false;for(int i=0;imes.size();i+) if (mesi.ID=sign) coutendl你要查找的教材信息是: endlendl; cout社
28、員會員號:mesi.IDendl; cout社員姓名:endl; cout社員性別 :mesi.sexendl; cout社員年齡:mesi.ageendl; cout社員專業(yè):fessionendl; cout社員班級:mesi.gradeendl; cout社團(tuán)名稱:mesi.clubendl;flog=true;break; if(flog=false) coutnounendl; /寫入/void studentmessage:Write()ofstream os(clubmessage.txt,ios_base:out);for(int i=0;im
29、es.size();i+)osmesi.ageendlmesi.clubendlmesi.gradeendlmesi.IDfessionendlmesi.sextempstudent.agetempstudent.clubtempstudent.gradetempstudent.IDfessiontempstudent.sex;mes.push_back(tempstudent);times+;void studentmessage:Delate()Read();string sign;cout endl
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版建筑起重機(jī)械安裝與拆卸工程風(fēng)險評估與管控合同
- 2024年度淘寶天貓店鋪視覺設(shè)計裝修合同3篇
- 內(nèi)蒙古赤峰市元寶山區(qū)2024-2025學(xué)年高二數(shù)學(xué)下學(xué)期4月月考理試題含解析
- 2024年瓷磚無縫鋪貼技術(shù)裝修服務(wù)合同3篇
- 2024-2025年高中化學(xué) 專題3 第2單元 第4課時 糖類教學(xué)實錄 蘇教版必修2
- 柳州職業(yè)技術(shù)學(xué)院《提高石油采收率原理》2023-2024學(xué)年第一學(xué)期期末試卷
- 第3章 能量的轉(zhuǎn)化與守恒第5節(jié) 物體的內(nèi)能 第三課時教學(xué)實錄-2024-2025學(xué)年浙教版九年級上冊科學(xué)
- 2024年倉單質(zhì)押貸款條件3篇
- 12 玩也有學(xué)問 教學(xué)實錄-2024-2025學(xué)年道德與法治一年級上冊統(tǒng)編版
- 海上運(yùn)輸協(xié)議書
- 【安井食品公司償債能力存在的問題及對策9000字】
- 食品進(jìn)銷存臺賬【模板】
- 大額采購監(jiān)督方案
- 提高感染性休克集束化治療達(dá)標(biāo)率
- 《外科護(hù)理》第二十章 第一節(jié) 骨折病人的護(hù)理課件
- 電氣設(shè)備安全操作培訓(xùn)
- 計算機(jī)專業(yè)大學(xué)生職業(yè)生涯發(fā)展展示
- 門診護(hù)士長年終工作總結(jié)
- 政治單招考試重點知識點
- 膝關(guān)節(jié)骨性關(guān)節(jié)炎(骨痹)護(hù)理課件
- 門禁系統(tǒng)施工方案
評論
0/150
提交評論