C++課程設(shè)計(jì)完整版_第1頁
C++課程設(shè)計(jì)完整版_第2頁
C++課程設(shè)計(jì)完整版_第3頁
C++課程設(shè)計(jì)完整版_第4頁
C++課程設(shè)計(jì)完整版_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上信息管理與系統(tǒng)開發(fā)設(shè)計(jì)綜合模擬實(shí)習(xí)一、實(shí)習(xí)目的通過模擬實(shí)習(xí),要達(dá)到兩個(gè)目的,一是檢驗(yàn)和鞏固專業(yè)知識(shí)、二是提高綜合素質(zhì)和能力。信管11級學(xué)生的模擬實(shí)習(xí)主要是復(fù)雜程序和簡單軟件的實(shí)現(xiàn)。通過該模擬實(shí)習(xí),可以將學(xué)生課堂上掌握的理論知識(shí)與處理數(shù)據(jù)的業(yè)務(wù)相結(jié)合,以檢驗(yàn)我們同學(xué)們掌握知識(shí)的寬度、深度及對知識(shí)的綜合運(yùn)用能力。二、實(shí)習(xí)環(huán)境計(jì)算機(jī)硬件配置:VC+6.0操作系統(tǒng): Win7旗艦版開發(fā)環(huán)境:單核CPU;內(nèi)存1G或以上,硬盤空間320G或以上,100M或1000M網(wǎng)卡。三、實(shí)習(xí)內(nèi)容內(nèi)容一:紙牌游戲。任務(wù):編號為1-52張牌,正面向上,從第2張開始,以2為基數(shù),是2的倍數(shù)的牌翻一

2、次,直到最后一張牌;然后,從第3張開始,以3為基數(shù),是3的倍數(shù)的牌翻一次,直到最后一張牌;然后從第4張開始,以4為基數(shù),是4的倍數(shù)的牌翻一次, 直到最后一張牌;.再依次5的倍數(shù)的牌翻一次,6的,7的 直到 以52為基數(shù)的 翻過,輸出:這時(shí)正面向上的牌有哪些?內(nèi)容二:文章編輯。功能:輸入一頁文字,程序可以統(tǒng)計(jì)出文字、數(shù)字、空格的個(gè)數(shù)。靜態(tài)存儲(chǔ)一頁文章,每行最多不超過80個(gè)字符,共N行;要求(1)分別統(tǒng)計(jì)出其中英文字母數(shù)和空格數(shù)及整篇文章總字?jǐn)?shù);(2)統(tǒng)計(jì)某一字符串在文章中出現(xiàn)的次數(shù),并輸出該次數(shù);(3)刪除某一子串,并將后面的字符前移。存儲(chǔ)結(jié)構(gòu)使用線性表,分別用幾個(gè)子函數(shù)實(shí)現(xiàn)相應(yīng)的功能;輸入數(shù)據(jù)

3、的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號。輸出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出"全部字母數(shù)"、"數(shù)字個(gè)數(shù)"、"空格個(gè)數(shù)"、"文章總字?jǐn)?shù)"(3)輸出刪除某一字符串后的文章;內(nèi)容三:設(shè)計(jì)學(xué)生成績管理系統(tǒng)。該系統(tǒng)中存儲(chǔ)學(xué)生的學(xué)號、姓名、性別、年齡、課程成績等信息。要求:1)瀏覽學(xué)生信息 2)添加學(xué)生信息 3)刪除學(xué)生信息 4)查找學(xué)生信息 5)修改學(xué)生信息 6)對成績的處理7)按照學(xué)生某門課程的成績對學(xué)生排序 求出每個(gè)學(xué)生各門課程的總成績、平均成績、最高分和最低分。 求出某一

4、門課程所有學(xué)生的總成績、平均成績、最高分和最低分。四、算法分析、設(shè)計(jì)與描述1算法分析和設(shè)計(jì)內(nèi)容一:由題目可知,總共有52張牌,且最開始的狀態(tài)都是正面朝上,所以我們先定義一個(gè)數(shù)組flag,這個(gè)數(shù)組存儲(chǔ)52個(gè)數(shù)據(jù),下標(biāo)是0-51,我們用一個(gè)for循環(huán)將所有牌的狀態(tài)值都賦值為1,代表正面向上。如果反面朝上,則將其賦值為0。然后用一個(gè)for循環(huán)來控制基數(shù)的增加,用j變量代替,它的取值范圍是2,52,再用一個(gè)for循環(huán)嵌套在上一個(gè)for循環(huán)中,用來遍歷所有牌,由于數(shù)組下表是從0開始,所以要用(i+1)%j=0作為條件來給相應(yīng)的牌賦狀態(tài)值。這樣就實(shí)現(xiàn)了當(dāng)基數(shù)是2時(shí),找出符合條件的牌并翻轉(zhuǎn);當(dāng)基數(shù)是3時(shí),找

5、出相應(yīng)的牌并翻轉(zhuǎn)依此類推,直到基數(shù)j>52,不符合j<=52的條件,而跳出循環(huán)。至此,flag數(shù)組中元素的值將不會(huì)再是都為1,如果仍是正面朝上,flagi的值仍為1,否則為0。最后我們再用一個(gè)for循環(huán)來遍歷flag數(shù)組,并將flagi的值為1的牌對應(yīng)的i值加1再輸出,即輸出i+1,代表第i+1張牌是正面朝上的。內(nèi)容二:本程序是對一段英文文章的內(nèi)容進(jìn)行處理,存儲(chǔ)方式采用鏈?zhǔn)酱鎯?chǔ),沒有文件操作,故本程序?qū)ζ湮谋緝?nèi)容的所有操作都是在鏈表中進(jìn)行的。對于文本的輸入,采用頭插法將文本信息存儲(chǔ)到鏈表已申請好的存儲(chǔ)空間中,在此部分設(shè)計(jì)中最大的問題在于輸入文章過程中輸入的字符數(shù)大于80時(shí)如何換行;

6、對于文本內(nèi)容的統(tǒng)計(jì),使用循環(huán)對已存儲(chǔ)的文章進(jìn)行匹配,大寫字母數(shù)、小寫字母數(shù)、空格數(shù)、數(shù)字?jǐn)?shù)直接通過比較即可得到,標(biāo)點(diǎn)符號通過ASC比較即可得到;對于文本內(nèi)容的處理,查找部分仍是使用循環(huán)對已存儲(chǔ)的文章進(jìn)行匹配,判斷需要查找的字符或者字符串是否與文章中某部分內(nèi)容相同,如果存在相同的記錄相同的個(gè)數(shù)及位置并輸出個(gè)數(shù)及位置。刪除部分先使用程序的查找功能對文章中需要?jiǎng)h除的字符或者字符串進(jìn)行查找,然后對其進(jìn)行刪除。插入部分為通過輸入的插入位置(行、列)將字符或者字符串插入到文章制定位置。內(nèi)容三:該程序分6個(gè)模塊完成各項(xiàng)功能,通過主函數(shù)調(diào)用個(gè)函數(shù)完成實(shí)驗(yàn),以達(dá)到實(shí)驗(yàn)?zāi)康摹?#160;1、顯示模塊:用于對學(xué)生的

7、基本信息的顯示,可以用函數(shù)void print(ID *head)來實(shí)現(xiàn), 2、添加學(xué)生信息模塊:其中包括學(xué)生的學(xué)號,姓名,年齡,性別以及學(xué)生的高數(shù)成績、線代成績、英語成績;可用函數(shù)ID *cin(ID *head)來實(shí)現(xiàn)此操作。 3、查詢模塊:用于對學(xué)生的基本信息查詢,通過學(xué)生的學(xué)號進(jìn)行查找,可用ID *find(ID *head) 來實(shí)現(xiàn)。通過學(xué)好查詢,找到學(xué)生信息,輸出包括初始是輸入的一切信息。 4、排序模塊:可用函數(shù)ID *sort(ID *head來實(shí)現(xiàn)。其中通過平均分的高低來比較,并

8、且以此來排序。 5、刪除學(xué)生信息模塊:通過學(xué)生的學(xué)號來查找,找出相應(yīng)信息確定刪除,可以通過函數(shù)ID *delet(ID *head)實(shí)現(xiàn)此功能。 6、修改學(xué)生信息模塊:通過對學(xué)生學(xué)號查找,找出相應(yīng)的信息進(jìn)行修改,可以通過函數(shù)ID *alter(ID *head)實(shí)現(xiàn)此操作。 7、安全退出系統(tǒng)與自動(dòng)保存文件模塊:可用一個(gè)函數(shù)ID *over(ID *head)來實(shí)現(xiàn),首先將信息保存到文件中,釋放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。2算法描述(可插入流程圖)內(nèi)容一:開始建立一個(gè)線性表L,將所有變量賦初值為1,表

9、示牌正面向上i>=2&&i<=52j>=i&&j<=52,j%i=0翻牌,如果flagj=1,則變?yōu)?翻牌,如果flagj=1,則變?yōu)?j+輸出線性表中正面向上的牌的編號結(jié)束內(nèi)容二:(1)、統(tǒng)計(jì)字符個(gè)數(shù)算法流程圖i=0 n=0i<N i>=Nj=0 len=strlen(wzi)j<len j>=lenif(wzij>=n1&&wzij<=n2)n+j+i+return n算法結(jié)束 (2)、查找某一字符串出現(xiàn)的次數(shù)算法流程圖i=0 n=0i<N i>=Nc=strstr(wz

10、i,s)c!=0 c=0c=strstr(c+lens,s)n+i+return n算法結(jié)束(3)、刪除某一字符串算法流程圖i+i=0 n=0i<N i>=Nc=strstr(wzi,s)c!=0 c=0leni=strlen(wzi);lenc=strlen(c);p=leni-lencreturn n算法結(jié)束for(k=1;k<=lens;k+)for(j=p;j<=leni;j+)wzij=wzij+1; leni=strlen(wzi) wzij-1='0'leni=strlen(wzi);c=strstr(wzi,s); 內(nèi)容三:根據(jù)本系統(tǒng)的模

11、塊劃分及流程,分別從學(xué)生學(xué)籍管理,成績管理,和用戶管理等主要功能模塊進(jìn)行分析。 用戶登陸學(xué)籍添加學(xué)籍刪除用戶管理模塊圖 學(xué)生信息管理功能管理模塊圖成績管理添加成績查詢成績成績的匯總信息:總分,平均分,排序等。成績的修改成績的刪除成績管理模塊五、程序設(shè)計(jì)1程序設(shè)計(jì)的基本思路內(nèi)容一:第一步:定義i,j變量和flag52數(shù)組。即int i,j,flag52; 第二步:利用一個(gè)for循環(huán),將flag數(shù)組中所有元素的值賦為1,表示正面朝上。即for(i=0;i<52;i+) flagi=1;第三步:用一個(gè)for循環(huán)控制基數(shù)的變化,再用一個(gè)for循環(huán)控制牌的數(shù)量并嵌套在上一個(gè)循環(huán)中,再用一個(gè)if判斷

12、,判斷其是否符合被翻轉(zhuǎn)的條件。即 for(j=2;j<=52;j+)for(i=0;i<52;i+) if(i+1)%j=0) flagi=flagi?0:1; printf("正面向上的牌:n"); 第四步:對flag數(shù)組進(jìn)行遍歷,輸出正面向上的牌。即for(i=0;i<52;i+) if(flagi) printf("%dn",i+1); 內(nèi)容二:存儲(chǔ)結(jié)構(gòu):采用單鏈表結(jié)構(gòu)存儲(chǔ)文章,每個(gè)結(jié)點(diǎn)存儲(chǔ)一行,每行最長不超過80個(gè)字符。 一、輸入模塊結(jié)構(gòu)定義: typedef struct line ch

13、ar *data;/字符串指針需要時(shí)動(dòng)態(tài)分配內(nèi)存      struct line *next; LINE;算法描述:用gets函數(shù)接收輸入,每遇到一個(gè)回車換行就新建一個(gè)結(jié)點(diǎn),將當(dāng)前行存入其data域。當(dāng)發(fā)現(xiàn)輸入為E時(shí),在Data的最后加上字符串結(jié)束標(biāo)志,并置當(dāng)前結(jié)點(diǎn)的Next指針域?yàn)镹ULL。 二、統(tǒng)計(jì)模塊 模塊包括統(tǒng)計(jì)全部字母數(shù),統(tǒng)計(jì)數(shù)字個(gè)數(shù),統(tǒng)計(jì)空格個(gè)數(shù),以及統(tǒng)計(jì)文章總字?jǐn)?shù),這四個(gè)部分的實(shí)現(xiàn)算法大體相同,四者的關(guān)系是:全部字母數(shù)數(shù)字個(gè)數(shù)空格個(gè)數(shù)文章總字?jǐn)?shù),也就是說可以在統(tǒng)計(jì)出其中

14、三者的前提下計(jì)算出第四個(gè)的數(shù)量。 另外一個(gè)重要的統(tǒng)計(jì)功能是統(tǒng)計(jì)某一字符串在整篇文章中出現(xiàn)的次數(shù),這個(gè)需要用到串的模式匹配算法來實(shí)現(xiàn)。 三、刪除模塊 刪除模塊的算法思想類同統(tǒng)計(jì)字符串的算法思想,由于采用了鏈表的存儲(chǔ)結(jié)構(gòu),使得刪除算法的時(shí)間復(fù)雜度大大減少。  void Del_String(LINE * &head,char *sch) /刪除指定的字符串     LINE *p=head;   

15、60;  do          while(strstr(p->data,sch)!=NULL)del_string_word(p->data,sch);  while(p=p->next)!=NULL);    /遍歷鏈表 內(nèi)容三:該系統(tǒng)由以下功能模塊組成:1.登錄模塊: 輸入相應(yīng)的信息登陸該系統(tǒng)。2.系統(tǒng)維護(hù)模塊: 課程設(shè)置子模塊:在每學(xué)期開始需要進(jìn)行本學(xué)期需要開設(shè)課程的設(shè)置。在某一課程發(fā)生變動(dòng)時(shí)可以進(jìn)行課程的維

16、護(hù)。 3學(xué)生信息管理模塊:新生信息錄入子模塊:在每學(xué)年開始或中間可以進(jìn)行學(xué)生信息的錄入,包括學(xué)生的基本信息等。學(xué)生信息查詢子模塊:方便教務(wù)管理人員快速的查找某一學(xué)生。分為按照學(xué)生的姓名進(jìn)行查找和按照學(xué)生的所在班級名進(jìn)行查找。利于管理人員隨時(shí)掌握學(xué)生信息。更新學(xué)生信息子模塊:教務(wù)管理人員可以隨時(shí)更改學(xué)生的某些信息,包括學(xué)生姓名、身份證號、班級等信息的更改。4學(xué)生成績管理模塊:學(xué)生成績錄入子模塊:按照學(xué)生考試的時(shí)間和課程錄入學(xué)生的考試成績。學(xué)生成績查詢子模塊:方便教務(wù)管理人員快速的查找某一學(xué)生的成績。分為按照學(xué)生的姓名進(jìn)行查找和按照學(xué)生的所在班級名進(jìn)行查找。利于管理人員隨時(shí)掌握學(xué)生考試信息。該系統(tǒng)

17、的所有模塊的設(shè)計(jì)均采用VC+6.0為開發(fā)環(huán)境,在各個(gè)模塊的設(shè)計(jì)中都使用主要應(yīng)用的函數(shù)和語句有循環(huán),查找,刪除等。2程序代碼內(nèi)容一:#include<stdio.h>void main()int i,j,flag52;for(i=0;i<52;i+)flagi=1;for(j=2;j<=52;j+)for(i=0;i<52;i+)if(i+1)%j=0)flagi=flagi?0:1;printf("正面向上的牌:n");for(i=0;i<52;i+)if(flagi)printf("%dn",i+1);內(nèi)容二:#in

18、clude <string.h>#include <stdio.h> typedef struct line char *data; struct line *next;LINE; /創(chuàng)建鏈表,向里面輸入文本數(shù)據(jù)/向屏幕輸出文字void OutPut(LINE * &head) LINE *p=head; printf("輸入的文章為:n"); do printf("%sn",p->data); while(p=p->next)!=NULL); /遍歷鏈表printf("n");void m

19、enu()printf("*文章編輯*n");printf("*n");printf("1.統(tǒng)計(jì)文章中全部英文字母數(shù) n");printf("2.統(tǒng)計(jì)文章中空格個(gè)數(shù) n");printf("3.統(tǒng)計(jì)文章中數(shù)字個(gè)數(shù) n");printf("4.統(tǒng)計(jì)文章總字?jǐn)?shù) n"); printf("5.統(tǒng)計(jì)指定字符串在文中出現(xiàn)的次數(shù) n");printf("6.刪除指定字符串 n");printf("*n");void Create

20、(LINE * &head) printf ("請輸入一頁文章,以Ctrl+E(E)為結(jié)尾(每行最多輸入80個(gè)字符):n"); LINE *p=new LINE; /首先為鏈表建立一個(gè)附加表頭結(jié)點(diǎn) head=p; /將頭結(jié)點(diǎn)付給表頭指針 char tmp100; while(1) gets(tmp); /輸入字符串 if(strlen(tmp)>80) printf("每行最多輸入80個(gè)字符!"); break; if(tmp0=5)break; /如果發(fā)現(xiàn)輸入E,則退出輸入 p=p->next=new LINE; p->dat

21、a=new charstrlen(tmp)+1; /為結(jié)點(diǎn)分配空間 strcpy(p->data,tmp); if(tmpstrlen(tmp)-1=5) /除去最后一個(gè)控制符E p->datastrlen(tmp)-1='0' break; p->next=NULL; /最后一個(gè)指針為空 head=head->next; OutPut(head); printf("n"); menu();/統(tǒng)計(jì)英文字母數(shù)void CountLetter(LINE * &head) LINE *p=head; int count=0;do i

22、nt Len=strlen(p->data); /計(jì)算當(dāng)前data里的數(shù)據(jù)元素個(gè)數(shù) for(int i=0;i<Len;i+)if(p->datai>='a'&&p->datai<='z')|(p->datai>='A'&&p->datai<='Z') /計(jì)算字母數(shù)count+; while(p=p->next)!=NULL); /遍歷鏈表 printf("全部英文字母數(shù)%d n", count);/返回文章里 p

23、rintf("n"); menu();void CountNumber(LINE * &head) LINE *p=head; int count=0; do int Len=strlen(p->data); for(int i=0;i<Len;i+) if(p->datai>=48 && p->datai<=57)count+; while(p=p->next)!=NULL); printf("文章中數(shù)字個(gè)數(shù): %d n",count); printf("n"); m

24、enu();void CountSpace(LINE * &head) LINE *p=head; int count=0; do int Len=strlen(p->data); for(int i=0;i<Len;i+) if(p->datai=32)count+; while(p=p->next)!=NULL); printf("空格個(gè)數(shù)y: %d n", count); printf("n"); menu();void CountAll(LINE * &head) LINE *p=head; int cou

25、nt=0; do count+=strlen(p->data); while(p=p->next)!=NULL); printf("文章總字?jǐn)?shù): %d n",count); printf("n"); menu();void FindString(LINE * &head) LINE *p=head; int count=0;int len1=0; int len2; int i,j,k; char str120; printf("n"); printf("請輸入要統(tǒng)計(jì)的字符串:"); scanf

26、("%s",str1); len2=strlen(str1); do len1=strlen(p->data); for(i=0;i<len1;i+) if(p->datai=str10)k=0; for(j=0;j<len2;j+) if(p->datai+j=str1j) k+;if(k=len2)count+;i=i+k-1; while(p=p->next)!=NULL);/遍歷鏈表 printf("該字符串在文中出現(xiàn)的次數(shù): %d n",count); printf("n"); menu(

27、);/刪除指定的字符串void delstringword(char *s,char *str) /*s為輸入的字符串,*str為將要?jiǎng)h除的字符 char *p=strstr(s,str); /從字符串中尋找str第一次出現(xiàn)的位置 char tmp80; int len=strlen(s); int i=len-strlen(p); int j=i+strlen(str); int count=0; for(int m=0;m<i;m+)tmpcount+=sm; for(int n=j;n<len;n+)tmpcount+=sn; tmpcount='0' str

28、cpy(s,tmp); void DelString(LINE * &head) LINE *p=head;char str20; printf("請輸入要?jiǎng)h除的某一字符串:"); scanf("%s",str); do if(strstr(p->data,str)!=NULL)delstringword(p->data,str);while(p=p->next)!=NULL); printf("刪除指定字符串后的文章為a: n");OutPut(head); printf("n"); m

29、enu();void main() LINE *head; int i; Create(head); for(;) printf("請輸入當(dāng)中任意一個(gè)數(shù)字:n"); scanf("%d",&i); switch(i) case 1:CountLetter(head);break; case 2:CountSpace(head);break;case 3:CountNumber(head);break; case 4:CountAll(head);break; case 5:FindString(head);break; case 6:DelStr

30、ing(head);break; default:printf("您輸入的數(shù)字錯(cuò)誤n"); 內(nèi)容三:# include <iostream># include <fstream># include <string.h>#include <conio.h>/用getch()();using namespace std;/Student類class Studentpublic: char name20; char Id20; int Cnum; /C課程得分 int Mnum; /數(shù)學(xué)課程得分 int Enum; /英語課程得分

31、int sum; /總分 Student * Next; void Input() cout<<"tt請輸入學(xué)生的姓名:" cin>>name; cout<<"tt請輸入學(xué)生的學(xué)號:" cin>>Id; cout<<"tt請輸入C課程的成績:" cin>>Cnum; cout<<"tt請輸入數(shù)學(xué)課程的成績:" cin>>Mnum; cout<<"tt請輸入英語課程的成績:" cin>

32、>Enum; sum=Cnum+Mnum+Enum; void ReadFile(istream & in) in>>name>>Id>>Cnum>>Mnum>>Enum>>sum; void Show() cout<<"姓名:"<<name<<endl<<"學(xué)號:"<<Id<<endl<<"C+:"<<Cnum<<endl <<&

33、quot;數(shù)學(xué):"<<Mnum<<endl<<"外語:"<<Enum<<endl<<"總成績:"<<sum<<endl<<endl<<endl; ;/Studentmassage類class Studentmassagepublic: Studentmassage(); Studentmassage(); void ShowMenu(); void Find(); void Save(); void ModifyItem();

34、 void RemoveItem(); void Swap(Student *,Student *); void Sort(); /void Unpass(); int ListCount(); /void Average(); void Display() for(Student * p=Head->Next;p!=End;p=p->Next) p->Show(); cout<<"輸入任意字符!繼續(xù)" getch(); void AddItem() End->Input(); End->Next=new Student; End=

35、End->Next; cout<<"添加成功!"<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); private: Student * Head,* End; ifstream in; ofstream out; Student *FindItem(char * name) for(Student * p=Head;p->Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功就返回空 if(!strcmp(p->Next->name,name)ret

36、urn p; return NULL; Student *FindID(char * Id) for(Student * p=Head;p->Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功就返回空 if(!strcmp(p->Next->Id,Id)return p; return NULL; ;/構(gòu)造函數(shù)Studentmassage:Studentmassage() Head=new Student; Head->Next=new Student; End=Head->Next; in.open("sort.txt&q

37、uot;); if(!in) cout<<"這是一個(gè)新系統(tǒng),無學(xué)生信息。請先輸入。"<<endl; else while(!in.eof() End->ReadFile(in); if(End->name0='0')break; End->Next=new Student; End=End->Next; in.close(); cout<<"tt讀取學(xué)生信息成功!"<<endl; /析構(gòu)函數(shù)Studentmassage:Studentmassage() Save();

38、 for(Student * temp;Head->Next!=End;) temp=Head->Next; Head->Next=Head->Next->Next; delete temp; delete Head,End;/菜單void Studentmassage:ShowMenu() cout<<" 學(xué) 生 成 績 管 理 系 統(tǒng) "<<endl; cout<<" "<<endl; cout<<" 1.增加學(xué)生成績 "<<en

39、dl; cout<<" 2.顯示學(xué)生成績 "<<endl; cout<<" 3.排序統(tǒng)計(jì)成績 "<<endl; cout<<" 4.查找學(xué)生成績 "<<endl; cout<<" 5.刪除學(xué)生成績 "<<endl; cout<<" 6.修改學(xué)生信息 "<<endl; cout<<" 0.安全退出系統(tǒng) "<<endl; cout<

40、<"nttntt請選擇:"/查找函數(shù)void Studentmassage:Find() char name20 ,Id10; int x; Student * p=NULL; cout<<"ntt*n" cout<<"tt 1.按學(xué)生的姓名查找ntt 2.按學(xué)生學(xué)號查找" cout<<"ntt*n請選擇:" cin>>x; switch(x) case 1:cout<<"tt請輸入要查找的學(xué)生的姓名:"cin>>na

41、me; if(p=FindItem(name) p->Next->Show(); cout<<"輸入任意字符!繼續(xù)" getch(); else cout<<"tt沒有找到該姓名的學(xué)生!"<<'n'<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); break; case 2: cout<<"tt請輸入要查找的學(xué)生的學(xué)號:"cin>>Id; if(p=FindID(Id) p->N

42、ext->Show(); cout<<"輸入任意字符!繼續(xù)" getch(); else cout<<"tt沒有找到該學(xué)好的學(xué)生!"<<'n'<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); break; /修改信息void Studentmassage:ModifyItem() /修改信息 char name20; Student * p=NULL; cout<<"tt請輸入要修改的人的姓名:"cin

43、>>name; if(p=FindItem(name) cout<<"tt已找到學(xué)生的信息,請輸入新的信息!"<<endl; p->Next->Input(); cout<<"修改成功!"<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); else cout<<"tt沒有找到!"<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); /刪除信息v

44、oid Studentmassage:RemoveItem() / 刪除信息 char name20; Student * p=NULL,*temp=NULL; cout<<"tt請輸入要?jiǎng)h除的學(xué)生的姓名:"<<endl;cin>>name; if(p=FindItem(name) temp=p->Next; p->Next=p->Next->Next; delete temp; cout<<"tt刪除成功!"<<endl; cout<<"輸入任意字

45、符!繼續(xù)" getch(); else cout<<"tt沒有找到!"<<endl; cout<<"輸入任意字符!繼續(xù)" getch(); /void Studentmassage:Swap(Student *p1, Student *p2)/交換兩個(gè)combox變量的數(shù)據(jù)域 Student *temp=new Student; strcpy(temp->name,p1->name); strcpy(temp->Id,p1->Id); temp->Cnum=p1->Cnum

46、; temp->Mnum=p1->Mnum; temp->Enum=p1->Enum; temp->sum=p1->sum; strcpy(p1->name,p2->name); strcpy(p1->Id,p2->Id); p1->Cnum=p2->Cnum; p1->Mnum=p2->Mnum; p1->Enum=p2->Enum; p1->sum=p2->sum; strcpy(p2->name,temp->name); strcpy(p2->Id,temp-&g

47、t;Id); p2->Cnum=temp->Cnum; p2->Mnum=temp->Mnum; p2->Enum=temp->Enum; p2->sum=temp->sum;/int Studentmassage:ListCount()/統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù) if(! Head) return 0; int n=0; for(Student * p=Head->Next;p!=End;p=p->Next) n+; return n;/void Studentmassage:Sort()/對當(dāng)前鏈表進(jìn)行排序 cout

48、<<"Sorting."<<endl; Student *p=NULL,*p1=NULL,*k=NULL; int n=Studentmassage:ListCount(); if(n<2) return; for(p=Head->Next;p!=End;p=p->Next) for(k=p->Next;k!=End;k=k->Next) if(p->sum>k->sum) Studentmassage:Swap(p,k); cout <<"排序完成!"<<e

49、ndl; getch(); return;/保存函數(shù)void Studentmassage:Save() out.open("sort.txt"); for(Student *p=Head->Next;p!=End;p=p->Next) out<<p->name<<"t"<<p->Id<<"t"<<p->Cnum<<"t" <<p->Mnum<<"t"<<

50、;p->Enum<<"t"<<p->sum<<'n' out.close();/主函數(shù)int main() int x,i=0; bool quit=false; cout<<"tt§§§§§§§§§§§§§§§§§§§§§§§§§§

51、"<<endl; for(i=0;i<3;i+) cout<<"tttttttt "<<endl; cout<<"tt【 歡迎進(jìn)入學(xué)生成績管理系統(tǒng) 】"<<endl; for(i=0;i<3;i+) cout<<"tttttttt "<<endl; cout<<"tt§§§§§§§§§§§§

52、§§§§§§§§§§§§§§n"<<endl; Studentmassage Grade; cout<<"按任意鍵開始" getch(); while(!quit) system("cls"); Grade.ShowMenu(); cin>>x; switch(x) case 0:quit=true;break; case 1:Grade.AddItem();break; case 2:Grade.Display();break; case 3:Grade.Sort();break; case 4:Grade.Find(

溫馨提示

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

評論

0/150

提交評論