學生社團管理程序C課程設(shè)計1_第1頁
學生社團管理程序C課程設(shè)計1_第2頁
學生社團管理程序C課程設(shè)計1_第3頁
學生社團管理程序C課程設(shè)計1_第4頁
學生社團管理程序C課程設(shè)計1_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、合肥學院計算機科學與技術(shù)系課程設(shè)計報告20102011學年第二學期課程 C+課程設(shè)計課程設(shè)計名稱學生社團管理程序?qū)W生姓名章 丹學號1004013033專業(yè)班級計科(1)班 指導教師華姍姍2011年6月一、 課程設(shè)計目的:將理論教學中涉及到的知識點貫穿起來,對不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作一比較和總結(jié),結(jié)合設(shè)計題目進行綜合性應(yīng)用,對所學知識達到融會貫通的程度。通過課程設(shè)計,學生在下述各方面的能力應(yīng)該得到鍛煉:(1)進一步鞏固、加深學生所學專業(yè)課程C+程序設(shè)計語言的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)學生綜合分析問題,解決問題的能力。 (2)全面考核學生所掌握的基本理論知識及其實際業(yè)務(wù)

2、能力,從而達到提高學生素質(zhì)的最終目的。 (3)利用所學知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C+語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓練獨立開發(fā)應(yīng)用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進行分析,理清思路,并給出相應(yīng)的數(shù)學模型。 (5)掌握結(jié)構(gòu)化程序設(shè)計方法,熟悉面向?qū)ο蟪绦蛟O(shè)計方法。(6)熟練掌握C+語言的基本語法,靈活運用各種數(shù)據(jù)類型。(7)進一步掌握在集成環(huán)境下如何調(diào)試程序和修改程序。二、需求分析:課程設(shè)計名稱:學生社團管理程序設(shè)計內(nèi)容:編寫一個簡單的學生社團管理程序,幫助管理學生社團信息。要求具有學生信息管理和社團信息管理的功能。其中學生信息管理包括學生基本信息的錄入、刪除和修改

3、等功能。社團信息管理包括社團信息的錄入,查看,刪除,修改等功能。 二 算法設(shè)計1設(shè)計思想:學生社團管理程序(添加信息、修改信息、刪除信息,查詢信息,); 要完成這個題目,主要是建立解決輸入的信息的存儲,解決的方法是建立動態(tài)數(shù)組,用于存儲信息。解決了這個問題后就是如何建立聯(lián)系了,解決的方法是創(chuàng)建一個文件檔用來儲存輸入的信息。2功能要求 在學生社團管理系統(tǒng)中須實現(xiàn)以下功能:(1) 添加社員信息:能夠社員的信息,添加信息如下圖;(2) 修改社員信息:能對學生社團管理系統(tǒng)中存儲的信息進行修改;(3) 刪除社員信息:可以刪除學生社團管理系統(tǒng)中所有社員的信息;(4) 查詢社員信息: 按照每個社員的會員號可

4、以進行查詢社員的情況;(5) 存儲信息:能夠記錄保存在設(shè)定的文件檔中,以便使用;(6) 退出系統(tǒng):任務(wù)完成后,能夠正常退出系統(tǒng)。3. 技術(shù)要求(1)學生信息管理包括學生基本信息的錄入、刪除和修改等功能。社團信息管理包括社團信息的錄入,查看,刪除,修改等功能。 (2)信息以文件檔的形式存儲,存儲位置,文件名,文件格式由設(shè)計者確定。(3)以菜單方式實現(xiàn)功能選擇控制。 三 學生社團管理程序的框圖設(shè)計1 總體實現(xiàn)功能 主要的數(shù)據(jù)結(jié)構(gòu):社員會員號、社員姓名,社員年齡,社員性別,社員專業(yè),社員班級、社團名稱。以這些數(shù)據(jù)來存儲學生的信息,能夠了解學生社團的各項情況。 下圖給出了學生社團管理程序的功能結(jié)構(gòu):社

5、 員選擇1、添加社員信息2、修改社員信息5、退出系統(tǒng)4、查詢社員信息3、刪除社員信息社員會員號社員姓名社員年齡社員性別社員專業(yè)社員班級社團名稱(1) 添加信息模塊社員進入該模塊,輸入自己的相關(guān)信息,輸入后,保存自己的信息,這樣系統(tǒng)就存儲了你的信息。添加服務(wù)信息社員會員號社員姓名社員性別社員年齡社員專業(yè)社員班級社團名稱存儲信息(2) 修改信息模塊社員進入該模塊,輸入自己的社員會員號,在進入自己的信息區(qū)域,修改自己的相關(guān)信息,再保存,即可。輸入要修改的社員會員號(正確)社員會員號社員姓名社員性別社員年齡社員專業(yè)社員班級社團名稱存儲信息修改社員信息(3)刪除信息模塊社員進入模塊,可以刪除社員的所有信

6、息,進行查看。(4)查詢信息模塊 社員進入該模塊,可以查詢自己的信息情況。輸入要查詢的社員的會員號(正確)社員會員社員姓名社員年齡社員性別社員專業(yè)社員班級 社團名稱查詢社員信息(5)退出系統(tǒng)2、設(shè)計功能的實現(xiàn)和分析(1)定義結(jié)構(gòu)體struct Message /構(gòu)造學生信息結(jié)構(gòu)體 string ID; /社團會員號 string name; /社員姓名 string sex; /社員性別 string age; ···············&#

7、183;· /社員年齡 string profession; /社員專業(yè) string grade; /社員班級 string club; /社團名稱(2)學生信息類class studentmessagepublicchar Menu(); /菜單 void Add(); /添加社員信息 void Change(); /修改社員信息 void Delate(); /刪除社員信息 void Search(); /查詢社員信息void Write(); /寫入文件void Read(); /從文件中讀取private:vector<Message> mes; static

8、int times;(3) 顯示菜單函數(shù)/菜單/char studentmessage:Menu() cout<<endl; cout<<endl;cout<<endl;cout<<" 學生社團管理系統(tǒng)-選項"<<endl; cout<<"*"<<endl;cout<<endl;cout<<" 1.添加社員信息"<<endl;cout<<" 2.修改社員信息"<<endl;

9、 cout<<" 3.刪除社員信息"<<endl; cout<<" 4.查詢社員信息"<<endl;cout<<" 5.退出程序"<<endl; char choose; cin>>choose; return choose;(4) 函數(shù)的分析<1>添加社員信息/錄入/void studentmessage:Add()Read(); /從文件檔中讀取已存的信息Message temp; /構(gòu)建一個臨時的tempcout <<&q

10、uot;請依次輸入新社員的信息" <<endl; cout<<"社員會員號:"<<endl; cin >>temp.ID; cout<<"社員姓名:"<<endl; cin>>; cout<<"社員性別:"<<endl;cin>>temp.sex;cout<<"社員年齡:"<<endl; cin>>temp.age; cout<

11、<"社員專業(yè):"<<endl;cin>>fession; cout<<"社員班級:"<<endl;cin>>temp.grade;cout<<"社團名稱:"<<endl; cin>>temp.club;mes.push_back(temp); /運用push_back把輸入的新信息存儲到文件檔中times+;Write();將原有文件檔中的信息讀取出來,然后將信息添加在其后,再一起存入文件檔中。2修改社員信息void

12、studentmessage:Change()Read(); /從文件檔中讀取已存的信息string sign; /構(gòu)建一個臨時的sign cout <<endl <<"輸入要修改的社員信息的會員號: "<<endl; cin >>sign;for(int i=0;i<mes.size();i+) /利用for循環(huán)查找文件檔中的已存入的會員號 if (mesi.ID=sign) cout <<endl <<"你要修改的社員信息是: " <<endl<<e

13、ndl; cout<<"社員會員號:"<<mesi.ID<<endl; cout<<"社員姓名:"<<<<endl; cout<<"社員性別 :"<<mesi.sex<<endl; cout<<"社員年齡:"<<mesi.age<<endl; cout<<"社員專業(yè):"<<fession<&

14、lt;endl; cout<<"社員班級:"<<mesi.grade<<endl; cout<<"社團名稱:"<<mesi.club<<endl; cout<<endl; cout<<endl; cout <<"請依次輸入新教材的信息" <<endl; cout<<"社員會員號:"<<endl; cin>>mesi.ID; cout<<"社

15、員姓名:"<<endl; cin >>; cout<<"社員性別:"<<endl;cin>>mesi.sex;cout<<"社員年齡:"<<endl;cin>>mesi.age;cout<<"社員專業(yè):"<<endl;cin>>fession;cout<<"社員班級:"<<endl;cin>>mesi.gr

16、ade;cout<<"社團名稱:"<<endl;cin>>mesi.club;Write();break;先將文件檔中的信息讀取出來,然輸入自己需要修改的會員號,利用for循環(huán)查找文件檔中是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,先把信息顯示出來,然后改寫信息。<4>查找社員信息void studentmessage:Search()Read(); /從文件檔中讀取已存的信息string sign; cout <<endl <<"輸入要查找的社員信息的會員號: &quo

17、t;<<endl; cin >>sign;bool flog=false; for(int i=0;i<mes.size();i+) /利用for循環(huán)查找文件檔中的已存入的會員號 if (mesi.ID=sign) cout<<endl<<"你要查找的教材信息是: " <<endl<<endl; cout<<"社員會員號:"<<mesi.ID<<endl;cout<<"社員姓名:"<<mesi.na

18、me<<endl; cout<<"社員性別 :"<<mesi.sex<<endl; cout<<"社員年齡:"<<mesi.age<<endl; cout<<"社員專業(yè):"<<fession<<endl; cout<<"社員班級:"<<mesi.grade<<endl; cout<<"社團名稱:"<<m

19、esi.club<<endl;flog=true;break; if(flog=false) cout<<"noun"<<endl; 先將文件檔中的信息讀取出來,然輸入自己需要查找的會員號,利用for循環(huán)查找文件檔中是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,把該會員的信息顯示出來。<5>/寫入/void studentmessage:Write()ofstream os("clubmessage.txt",ios_base:out);for(int i=0;i<mes.size

20、();i+)os<<mesi.age<<endl<<mesi.club<<endl<<mesi.grade<<endl<<mesi.ID<<endl<<<<endl<<fession<<endl<<mesi.sex<<endl;os.close(); 創(chuàng)建一個clubmessage.txt用于儲存社員信息。運用ofstream os將信息儲存起來。<6>/讀取/void studen

21、tmessage:Read()Message tempstudent; ifstream is("clubmessage.txt",ios_base:in); while(!is.eof() /當字符長度部位空時運行下例讀取文件檔中的信息is>>tempstudent.age>>tempstudent.club>>tempstudent.grade>>tempstudent.ID>>>>fession>>tempstudent.s

22、ex;mes.push_back(tempstudent);times+;上面已經(jīng)創(chuàng)建一個clubmessage.txt用于儲存社員信息。運用ifstream os將信息讀取出來。<7>刪除社員信息void studentmessage:Delate()Read();string sign; cout <<endl <<"輸入要刪除的社員信息的會員號: "<<endl; cin >>sign;int i;string signstr;for(i=0;i<mes.size();i+) if (mesi.ID=s

23、ign) cout<<endl<<"你要刪除的社員信息是: " <<endl<<endl;cout<<"社員會員號:"<<mesi.ID<<endl;cout<<"社員姓名:"<<<<endl; cout<<"性別 :"<<mesi.sex<<endl; cout<<"年齡:"<<mesi.age&l

24、t;<endl; cout<<"專業(yè):"<<fession<<endl; cout<<"班級:"<<mesi.grade<<endl; cout<<"社團名稱:"<<mesi.club<<endl;cout<<"y/n?"<<endl;cin>>signstr;if(signstr="y"|signstr="Y"

25、)mes.erase(&mesi);Write();break; 先將文件檔中的信息讀取出來,然輸入自己需要刪除的會員號,利用for循環(huán)查找文件檔中是否存在該會員,如果不存在,則為空,跳出循環(huán),結(jié)束程序,如果存在,確定刪除按“y”,把該會員的信息刪除。<8>主函數(shù)int main()studentmessage student;while(1) switch(student.Menu()/運用switch產(chǎn)生循環(huán)操作。 case '1':student.Add(); break; case '2':student.Change(); brea

26、k; case '3':student.Delate(); break; case '4':student.Search(); break; case '5':exit(0); default:cout<<"輸入有誤"<<endl;break; return 0;四、 用戶手冊首先根據(jù)你在菜單中選擇的類型進入,輸入會員號,找到相對應(yīng)的信息。然后根據(jù)顯示的提示依次進行輸入。用戶利用該系統(tǒng)時可根據(jù)該利用手冊進行運用。五、 調(diào)試及測試 出現(xiàn)問題:在修改信息函數(shù)中,開始并不能將原有信息進行修改,只能覆蓋掉第一個

27、會員信息,而且并沒有把修改之前的信息刪除,顯示時同時顯示了修改前后的信息;文件操作時不知道如何將輸入的信息進行保存,怎樣取出文件的信息,不能很好的運用文件操作;題目提示的運用鏈表不會用,數(shù)組類模版不會用。解決問題:通過問同學,查書籍,上網(wǎng)查看,了解可以創(chuàng)建一個文件檔來解決問題,能夠很好的存儲信息在文件檔中,將信息取出,調(diào)用等;文件的操作我利用一個函數(shù)編寫保存信息的函數(shù),每次輸入一個客戶的信息就進行保存。數(shù)據(jù)用一個動態(tài)數(shù)組分配一定的內(nèi)存存儲服務(wù)信息在文件檔中;設(shè)計本程序了解到類和對象、動態(tài)數(shù)組、創(chuàng)建文檔等知識的用途,學到了新的知識點,也看到了自己的不足,要學好自己的專業(yè)課程看來不是那樣的簡單,在

28、學習階段并沒有寫過這樣大的程序,開始有些手忙腳亂的,所以說還是要多多看看這的程序,試著寫寫,提高自己的編程能力。六、 小結(jié) 這次基礎(chǔ)強化訓練的課程設(shè)計對于我們來說,有一定的難度。因為他要求我們較完整的去實現(xiàn)一個比較可行的程序。將其應(yīng)用到實際的生活中去。我被分配到的題目是售后服務(wù)管理系統(tǒng)的實現(xiàn)與設(shè)計。這個題目相對來說貼近生活,比較容易理解。但是設(shè)計一個較為完整的程序卻不是這么簡單的。 首先我分析了相關(guān)的題目內(nèi)容,并由此而進行了相關(guān)資料和書籍的查詢工作然后才開始正式進行設(shè)計。一開始不知從何下手但后來分析了一下題目,并結(jié)合這學期所學的知識,再加上相關(guān)提示我決定用類和對象、對象指針和文件的內(nèi)容來編寫程

29、序。服務(wù)管理主要就是有一些操作來完成,這些操作包括:添加社員信息,修改社員信息,刪除社員信息,查詢社員信息,等等。用C+的知識來實現(xiàn)函數(shù):添加,查詢,修改,刪除。最后編寫退出系統(tǒng)的函數(shù)。 在具體編寫程序時考慮只要編寫前三個函數(shù),后面的函數(shù)幾乎差不多。添加社員信息:考慮到社員的信息較多,所以用類對其定義。又考慮到信息量大,所以添加后要保存到文件中去。信息查詢:用構(gòu)建文件檔來寫。修改信息:把保存到文件中的內(nèi)容寫到文件檔中去,把其讀取出來,再進行修改,再保存。 同時通過這幾天的程序及報告編寫,我也發(fā)現(xiàn)了自己的很多不足,自己知識的很多漏洞,看到了自己的實踐經(jīng)驗還是比較缺乏,理論聯(lián)系實際的能力還是比較脆

30、弱。尤其是編寫大型的程序所要擁有的知識和技能比較缺乏。程序編好了,還要經(jīng)過調(diào)試和修改,這步也很關(guān)鍵,好的程序是經(jīng)過了無數(shù)次的修改和調(diào)試才產(chǎn)生的。我的程序基本上能夠滿足要求,但還有一些地方需要改進,在今后我應(yīng)該在多看書的同時還要加強實踐的練習。才能進一步提高自己的編程能力。 最后,還要感謝我們實驗室指導老師的細心指導、熱心幫助。路漫漫其修遠兮,雖然本學期數(shù)據(jù)結(jié)構(gòu)課程結(jié)束了,但仍覺得自己還有很多東西要學,我會在自己在以后的學習生活中不斷努力、不斷提高,爭取更大的進步。七、參考文獻1 閔聯(lián)營,何克右.C+程序設(shè)計教程.武漢理工大學出版社; 2 嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版).清華大學出版社;

31、3 張文祥, 肖四友.C+實驗與案例分析. 科學出版社; 4 譚浩強.C+程序設(shè)計. 清華大學出版社; 5 朱戰(zhàn)立.數(shù)據(jù)結(jié)構(gòu)(C+語言描述)(第二版本).高等教育出版社。 附錄1 #include<iostream>#include<stdlib.h>#include<fstream>#include<string>#include<vector>using namespace std;struct Message string ID; /社員姓名 string sex; /社員性別 string age; /社員年齡 string

32、profession; / 社員專業(yè) string grade; /社員班級 string club; /社團名稱;class studentmessagepublic:charMenu();/菜單 voidAdd(); /添加社員信息 voidChange(); /修改社員信息 voidDelate(); /刪除社員信息 voidSearch(); /查詢社員信息voidWrite(); /寫入文件voidRead();/從文件中讀取private:vector<Message> mes; static int times;int studentmessage:times=0;/

33、菜單/char studentmessage:Menu() cout<<endl; cout<<endl;cout<<endl;cout<<" 學生社團管理系統(tǒng)-選項"<<endl; cout<<"*"<<endl;cout<<endl;cout<<" 1.添加社員信息"<<endl;cout<<" 2.修改社員信息"<<endl; cout<<" 3

34、.刪除社員信息"<<endl; cout<<" 4.查詢社員信息"<<endl;cout<<" 5.退出程序"<<endl; char choose; cin>>choose; return choose;/錄入/void studentmessage:Add()Read();Message temp;cout <<"請依次輸入新社員的信息" <<endl; cout<<"社員會員號:"<&l

35、t;endl; cin >>temp.ID; cout<<"社員姓名:"<<endl; cin>>; cout<<"社員性別:"<<endl;cin>>temp.sex;cout<<"社員年齡:"<<endl; cin>>temp.age; cout<<"社員專業(yè):"<<endl;cin>>fession; cout<&l

36、t;"社員班級:"<<endl;cin>>temp.grade;cout<<"社團名稱:"<<endl; cin>>temp.club;mes.push_back(temp);times+;Write();void studentmessage:Change()Read();string sign; cout <<endl <<"輸入要修改的社員信息的會員號: "<<endl; cin >>sign;for(int i=0;i&

37、lt;mes.size();i+)if (mesi.ID=sign) cout <<endl <<"你要修改的社員信息是: " <<endl<<endl; cout<<"社員會員號:"<<mesi.ID<<endl; cout<<"社員姓名:"<<<<endl; cout<<"社員性別 :"<<mesi.sex<<endl; cout<&

38、lt;"社員年齡:"<<mesi.age<<endl; cout<<"社員專業(yè):"<<fession<<endl; cout<<"社員班級:"<<mesi.grade<<endl; cout<<"社團名稱:"<<mesi.club<<endl; cout<<endl; cout<<endl; cout <<"請依次輸入新教材

39、的信息" <<endl; cout<<"社員會員號:"<<endl; cin>>mesi.ID; cout<<"社員姓名:"<<endl;cin >>;cout<<"社員性別:"<<endl;cin>>mesi.sex;cout<<"社員年齡:"<<endl;cin>>mesi.age;cout<<"社員專業(yè):&

40、quot;<<endl;cin>>fession;cout<<"社員班級:"<<endl;cin>>mesi.grade;cout<<"社團名稱:"<<endl;cin>>mesi.club;Write();break; void studentmessage:Search()Read();string sign; cout <<endl <<"輸入要查找的社員信息的會員號: "<<end

41、l; cin >>sign;bool flog=false;for(int i=0;i<mes.size();i+) if (mesi.ID=sign) cout<<endl<<"你要查找的教材信息是: " <<endl<<endl; cout<<"社員會員號:"<<mesi.ID<<endl; cout<<"社員姓名:"<<<<endl; cout<<"社員

42、性別 :"<<mesi.sex<<endl; cout<<"社員年齡:"<<mesi.age<<endl; cout<<"社員專業(yè):"<<fession<<endl; cout<<"社員班級:"<<mesi.grade<<endl; cout<<"社團名稱:"<<mesi.club<<endl;flog=true;break

43、; if(flog=false) cout<<"noun"<<endl; /寫入/void studentmessage:Write()ofstream os("clubmessage.txt",ios_base:out);for(int i=0;i<mes.size();i+)os<<mesi.age<<endl<<mesi.club<<endl<<mesi.grade<<endl<<mesi.ID<<endl<<m

44、<<endl<<fession<<endl<<mesi.sex<<endl;os.close();/讀取/void studentmessage:Read()Message tempstudent;ifstream is("clubmessage.txt",ios_base:in);while(!is.eof()is>>tempstudent.age>>tempstudent.club>>tempstudent.grade>>tempstudent.ID>>>>fession>>tempstudent.sex;mes.push_back(tempstudent);times+;void studentmessage:Delate()Read();string si

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論