《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》習(xí)習(xí)題答案_第1頁
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》習(xí)習(xí)題答案_第2頁
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》習(xí)習(xí)題答案_第3頁
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》習(xí)習(xí)題答案_第4頁
《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》習(xí)習(xí)題答案_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余24頁可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、C+程序設(shè)計(jì)習(xí)題解答27目錄第2部分 習(xí)題解答2第1章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述2第2章 面向過程程序設(shè)計(jì)12第3章 類和對(duì)象14第4章 繼承與派生18第5章 多態(tài)性與虛函數(shù)21第6章 友元與靜態(tài)成員25第7章 運(yùn)算符重載29第8章 泛型編程33第9章 輸入/輸出36第10章 異常處理38第2部分 習(xí)題解答第1章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述一、簡(jiǎn)答題簡(jiǎn)述面向過程程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)的編程思想,體會(huì)面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)?!敬鸢敢c(diǎn)】面向過程程序設(shè)計(jì)的編程思想:功能分解、逐步求精、模塊化、結(jié)構(gòu)化。當(dāng)要設(shè)計(jì)一個(gè)目標(biāo)系統(tǒng)時(shí),首先從整體上概括出整個(gè)系統(tǒng)需要實(shí)現(xiàn)的功能,然后對(duì)系統(tǒng)的每項(xiàng)功能進(jìn)行逐層分解,直到

2、每項(xiàng)子功能都足夠簡(jiǎn)單,不需要再分解為止。具體實(shí)現(xiàn)系統(tǒng)時(shí),每項(xiàng)子功能對(duì)應(yīng)一個(gè)模塊,模塊間盡量相對(duì)獨(dú)立,通過模塊間的調(diào)用關(guān)系或全局變量而有機(jī)地聯(lián)系起來。面向?qū)ο蟪绦蛟O(shè)計(jì)的編程思想:(1)客觀世界中的事物都是對(duì)象(object),對(duì)象之間存在一定的關(guān)系。(2)用對(duì)象的屬性(attribute)描述事物的靜態(tài)特征,用對(duì)象的操作(operation)描述事物的行為(動(dòng)態(tài)特征)。(3)對(duì)象的屬性和操作結(jié)合為一體,形成一個(gè)相對(duì)獨(dú)立、不可分的實(shí)體。對(duì)象對(duì)外屏蔽其內(nèi)部細(xì)節(jié),只留下少量接口,以便與外界聯(lián)系。(4)通過抽象對(duì)對(duì)象進(jìn)行分類,把具有相同屬性和相同操作的對(duì)象歸為一類,類是這些對(duì)象的抽象描述,每個(gè)對(duì)象是其所

3、屬類的一個(gè)實(shí)例。(5)復(fù)雜的對(duì)象可以用簡(jiǎn)單的對(duì)象作為其構(gòu)成部分。(6)通過在不同程度上運(yùn)用抽象的原則,可以得到一般類和特殊類。特殊類繼承一般類的屬性與操作,從而簡(jiǎn)化系統(tǒng)的構(gòu)造過程。(7)對(duì)象之間通過傳遞消息進(jìn)行通信,以實(shí)現(xiàn)對(duì)象之間的動(dòng)態(tài)聯(lián)系。(8)通過關(guān)聯(lián)表達(dá)類之間的靜態(tài)關(guān)系。與傳統(tǒng)的面向過程程序設(shè)計(jì)相比,面向?qū)ο蟪绦蛟O(shè)計(jì)的優(yōu)點(diǎn)如下:(1)從認(rèn)識(shí)論的角度看,面向?qū)ο蟪绦蛟O(shè)計(jì)改變了軟件開發(fā)的方式。軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方式來進(jìn)行軟件開發(fā)。(2)面向?qū)ο蟪绦蛑械臄?shù)據(jù)的安全性高。外界只能通過對(duì)象提供的對(duì)外接口操作對(duì)象中的數(shù)據(jù),這可以有效保護(hù)數(shù)據(jù)的安全。(3)面向?qū)ο蟪绦蛟O(shè)計(jì)

4、有助于軟件的維護(hù)與復(fù)用。某類對(duì)象數(shù)據(jù)結(jié)構(gòu)的改變只會(huì)引起該類對(duì)象操作代碼的改變,只要其對(duì)外提供的接口不發(fā)生變化,程序的其余部分就不需要做任何改動(dòng)。面向?qū)ο蟪绦蛟O(shè)計(jì)中類的繼承機(jī)制有效解決了代碼復(fù)用的問題。人們可以像使用集成電路(IC)構(gòu)造計(jì)算機(jī)硬件那樣,比較方便地重用對(duì)象類來構(gòu)造軟件系統(tǒng)。二、編程題【程序參考代碼】/*學(xué)生信息管理系統(tǒng)C語言源代碼*/#include <> /*包含輸入/輸出頭文件*/#include <> /*包含字符串處理頭文件*/#include <>#define MAXSIZE 100 /*能夠處理的學(xué)生總?cè)藬?shù),可以隨意修改*/type

5、def struct /*用于存放生日信息的結(jié)構(gòu)體*/ int year; int month; int day;Date;typedef struct Stud /*用于存放學(xué)生信息的結(jié)構(gòu)體*/char Num12; /*學(xué)號(hào)為11位*/ char Name11; /*姓名,最多5個(gè)漢字*/ char Sex2; /*性別,男記為m,女記為f */Date Birthday; /*出生日期*/ float English, DataStructure, CPlusPlus; /*三門課成績(jī)*/ float Sum, Average; /*總成績(jī)、平均成績(jī)*/Student;char CurF

6、ile40; /*存放當(dāng)前正在操作的磁盤文件的文件名*/int IsOpen=0; /*當(dāng)前是否有磁盤文件被打開標(biāo)志*/int found=0; /*在查找學(xué)生信息時(shí)是否找到標(biāo)志*/Student studMAXSIZE; /*用于存放讀入內(nèi)存中的所有學(xué)生信息的全局?jǐn)?shù)組*/int Index=0; /*存放實(shí)際學(xué)生人數(shù)的全局變量*/*各自定義函數(shù)原型聲明*/void Create(); /*新建學(xué)生信息文件*/ void Open(); /*打開學(xué)生信息文件,并讀取學(xué)生信息到全局?jǐn)?shù)組stud中*/void Display(); /*顯示學(xué)生信息*/void Search(); /*查詢學(xué)生信息

7、*/int SearchNum(char* Num); /*按學(xué)號(hào)查詢學(xué)生信息*/int SearchName(char* Name); /*按姓名查詢學(xué)生信息*/void Append(); /*添加學(xué)生信息*/void Modify(); /*修改學(xué)生信息*/void Delete(); /*刪除學(xué)生信息*/void Total(); /*統(tǒng)計(jì)所有學(xué)生某一科目總成績(jī)*/void Sort(); /*學(xué)生信息排序*/ void Backup(); /*備份學(xué)生信息*/void menu() /*系統(tǒng)功能菜單*/ int choice; /*用于保存用戶對(duì)功能菜單的選擇結(jié)果*/for( ; ;

8、 ) /*顯示系統(tǒng)功能菜單*/printf("n*n");printf("* 學(xué)生信息管理系統(tǒng) *n"); printf("*n"); printf("* 1新建學(xué)生信息文件 *n"); printf("* 2打開學(xué)生信息文件 *n"); printf("* 3顯示學(xué)生信息 *n"); printf("* 4查詢學(xué)生信息 *n"); printf("* 5添加學(xué)生信息 *n");printf("* 6修改學(xué)生信息 *n&quo

9、t;);printf("* 7刪除學(xué)生信息 *n");printf("* 8統(tǒng)計(jì)學(xué)生信息 *n");printf("* 9學(xué)生信息排序 *n"); printf("* 10備份學(xué)生信息 *n"); printf("* 0退出系統(tǒng) *n"); printf("*n"); printf(" 請(qǐng)選擇要執(zhí)行的操作(08):_"); scanf("%d", &choice); switch(choice) case 1: Create()

10、; break; case 2: Open(); break; case 3: Display(); break; case 4: Search(); break;case 5: Append(); break;case 6: Modify(); break;case 7: Delete(); break;case 8: Total(); break; case 9: Sort(); break;case 10: Backup(); break; case 0: return; default: printf("選擇錯(cuò)誤!請(qǐng)重新選擇。n");/*switch結(jié)束*/*for

11、結(jié)束*/void ReOrEx()/*在用戶執(zhí)行完一項(xiàng)系統(tǒng)功能后,可以選擇:是繼續(xù)運(yùn)行系統(tǒng),還是退出系統(tǒng)*/int n; printf("n*n");printf("* 1. 返回上級(jí)菜單 *n"); printf("* 0. 退出系統(tǒng) *n");printf("*n");printf(" 請(qǐng)選擇(1/0)_"); scanf("%d",&n);if(n=0)printf("n*n"); printf("* 謝謝使用本系統(tǒng)! *n&quo

12、t;); printf("*n"); exit(1);void main()printf("*n");printf("* 歡迎使用學(xué)生信息管理系統(tǒng)! *n");printf("*n");system("pause"); menu();/*系統(tǒng)功能以菜單的形式提供給用戶*/ printf("n*n");printf("* 謝謝使用本系統(tǒng)! *n");printf("*n");/*main函數(shù)結(jié)束*/*各自定義函數(shù)實(shí)現(xiàn)代碼*/int New

13、(char* FileName) /*創(chuàng)建磁盤文件*/FILE *fp; if(fp=fopen(FileName,"w")=NULL) return 0; else fclose(fp); Index=0;return 1; void Create() /*新建學(xué)生信息文件*/char FileName40;printf("請(qǐng)輸入新建文件的名稱:");scanf("%s", &FileName);if(strcmp(FileName, "studentbackup") strcat(FileName, &

14、quot;.dat");if(!New(FileName)printf("%s文件創(chuàng)建失敗!n", FileName);else strcpy(CurFile, FileName); printf("%s文件創(chuàng)建成功!n", FileName);else printf("%s是備份文件,禁止創(chuàng)建與此文件同名的文件!n",FileName); ReOrEx();void Open() /*打開學(xué)生信息文件*/char FileName40;printf("請(qǐng)輸入要打開的數(shù)據(jù)文件的名稱:");scanf(&q

15、uot;%s", &FileName);if(strcmp(FileName, "studentbackup")strcat(FileName, ".dat"); if(IsOpen=0) FILE *fp; if(fp=fopen(FileName, "rb")=NULL) printf("%s文件打開失敗!n", FileName); elseIsOpen=1;Index=0; while(!feof(fp)fread(&studIndex, sizeof(struct Stud),

16、1, fp);Index+;Index-;printf("學(xué)生總?cè)藬?shù)為:%dn", Index);fclose(fp); printf("%s文件打開成功!n", FileName); strcpy(CurFile, FileName); elseprintf("%s文件已經(jīng)打開!n", FileName); elseprintf("%s是備份文件,禁止打開此文件!n", FileName);ReOrEx();void Display() /*顯示全部學(xué)生信息*/int i; if(!strcmp(CurFile,

17、 "") printf("當(dāng)前并未打開或新建文件,無法顯示!n"); elseprintf("n 顯示所有學(xué)生成績(jī)信息nn");printf("%-12s%-11s%-5s%-14s%-12s%-15s%-12s%-12s%-12sn", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus&qu

18、ot;, "Sum", "Average"); for(i=0; i<Index; i+) printf("%-12s%-11s%-5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12.2fnn", studi.Num, studi.Name, studi.Sex, studi., studi., studi., studi.English, studi.DataStructure, studi.CPlusPlus, studi.Sum, studi.Average);ReOrEx();int Sea

19、rchNum(char* Num) /*按學(xué)號(hào)查詢學(xué)生信息*/int i;for(i=0; <Index; i+)if(!strcmp(studi.Num, Num)printf("對(duì)應(yīng)此學(xué)號(hào)的學(xué)生信息存在!n");found=1;return i;printf("沒有此學(xué)生的信息!n");found=0;return 0;int SearchName(char* Name) /*按姓名查詢學(xué)生信息*/int i;for(i=0; i<Index; i+)if(!strcmp(studi.Name, Name)printf("對(duì)應(yīng)此

20、學(xué)號(hào)的學(xué)生信息存在!n");found=1;return i;printf("沒有此學(xué)生的信息!n");found=0;return 0;void Search() /*查詢學(xué)生信息*/int n;int i;char Num12; char Name10;if(!strcmp(CurFile, "") printf("當(dāng)前并未打開或新建文件,無法查詢!n"); elseprintf("n 查詢某一學(xué)生信息n");printf("*n"); printf("* 1. 按學(xué)號(hào)查

21、詢 *n"); printf("* 2. 按姓名查詢 *n"); printf("*n"); printf(" 請(qǐng)選擇(1/2)_");scanf("%d", &n);if(n=1)printf("請(qǐng)輸入學(xué)生學(xué)號(hào):n");scanf("%s", Num);i=SearchNum(Num);else if(n=2)printf("請(qǐng)輸入學(xué)生姓名:n");scanf("%s", &Name);i=SearchNam

22、e(Name);printf("該學(xué)生的具體信息為:nn");printf("%-12s%-11s%-5s%-14s%-12s%-15s%-12s%-12s%-12sn", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus","Sum", "Average");printf(&quo

23、t;%-12s%-11s%-5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12.2fnn", studi.Num, studi.Name, studi.Sex, studi., studi., studi., studi.English, studi.DataStructure, studi.CPlusPlus, studi.Sum, studi.Average);ReOrEx();void AddData() /*添加一條學(xué)生信息*/char Num12;char Name10;char Sex2;int Year, Month, Day;float

24、English, DataStructure, CPP;int location;if(Index>=MAXSIZE)printf("錯(cuò)誤! 學(xué)生信息已滿,不能添加!n");else printf("執(zhí)行添加學(xué)生信息操作!n");printf("n請(qǐng)輸入學(xué)生學(xué)號(hào):");scanf("%s", Num);location=SearchNum(Num);if (!found) printf("可以進(jìn)行添加操作!n");printf("n請(qǐng)輸入學(xué)生姓名:"); scanf(&

25、quot;%s", Name); printf("n請(qǐng)輸入學(xué)生性別:"); scanf("%s", &Sex); printf("n請(qǐng)輸入學(xué)生出生年份:"); scanf("%d", &Year); printf("n請(qǐng)輸入學(xué)生出生月份:"); scanf("%d", &Month); printf("n請(qǐng)輸入學(xué)生出生日:"); scanf("%d", &Day); printf("n

26、請(qǐng)輸入學(xué)生英語成績(jī):"); scanf("%f", &English); printf("n請(qǐng)輸入學(xué)生數(shù)據(jù)結(jié)構(gòu)成績(jī):"); scanf("%f", &DataStructure); printf("n請(qǐng)輸入學(xué)生C+成績(jī):"); scanf("%f", &CPP); printf("n"); strcpy(studIndex.Num, Num); strcpy(studIndex.Name, Name); strcpy(studIndex.Se

27、x, Sex);studIndex.=Year; studIndex.=Month; studIndex.=Day;studIndex.English=English;studIndex.DataStructure=DataStructure;studIndex.CPlusPlus=CPP;studIndex.Sum=English+DataStructure+CPP;studIndex.Average=studIndex.Sum/3;Index+;printf("插入一條學(xué)生信息操作成功!n");else printf("不能進(jìn)行添加學(xué)生信息操作!n"

28、);void Save(char* FileName) /*學(xué)生信息存盤*/FILE *fp;int i;if(fp=fopen(FileName, "wb")=NULL)printf("文件打開失??!");return;for(i=0;I <Index; i+)fwrite(&studi, sizeof(struct Stud), 1, fp);fclose(fp);void Append() /*添加學(xué)生信息*/if(!strcmp(CurFile, "") printf("當(dāng)前并未打開或新建文件,無法添加

29、!n");elseAddData(); Save(CurFile); ReOrEx();void ModifyData() /*修改一條學(xué)生信息*/char Num12;char Name10;char Sex2;float English, DataStructure, CPP;int Year, Month, Day;int location;printf("n執(zhí)行修改學(xué)生信息操作!nn");printf("請(qǐng)輸入將要修改的學(xué)生的學(xué)號(hào):");scanf("%s", Num);location=SearchNum(Num)

30、;if (found) printf("可以進(jìn)行修改學(xué)生信息操作!n");printf("n請(qǐng)輸入學(xué)生姓名:");scanf("%s", Name);printf("n請(qǐng)輸入學(xué)生性別:"); scanf("%s", &Sex); printf("n請(qǐng)輸入學(xué)生出生年份:"); scanf("%d", &Year); printf("n請(qǐng)輸入學(xué)生出生月份:"); scanf("%d", &Mont

31、h); printf("n請(qǐng)輸入學(xué)生出生日:"); scanf("%d", &Day); printf("n請(qǐng)輸入學(xué)生英語成績(jī):"); scanf("%f", &English); printf("n請(qǐng)輸入學(xué)生數(shù)據(jù)結(jié)構(gòu)成績(jī):");scanf("%f", &DataStructure); printf("n請(qǐng)輸入學(xué)生C+成績(jī):"); scanf("%f", &CPP); printf("n&quo

32、t;);strcpy(studlocation.Num, Num); strcpy(studlocation.Name, Name); strcpy(studlocation.Sex, Sex);studlocation.=Year; studlocation.=Month; studlocation.=Day;studlocation.English=English;studlocation.DataStructure=DataStructure;studlocation.CPlusPlus=CPP;studlocation.Sum=English+DataStructure+CPP;stu

33、dlocation.Average=studIndex.Sum/3;printf("執(zhí)行修改學(xué)生信息操作成功!n"); else printf("不能進(jìn)行修改學(xué)生信息操作!n");void Modify() /*修改學(xué)生信息*/if(!strcmp(CurFile, "") printf("當(dāng)前并未打開或新建文件,無法修改!n"); else ModifyData(); Save(CurFile);ReOrEx();int DeleteData()/*刪除一條學(xué)生信息*/char Num12; int locati

34、on,i;printf("n 執(zhí)行刪除學(xué)生信息操作!nn");printf("警告!學(xué)生信息一旦刪除,將不可恢復(fù)。請(qǐng)小心使用該操作!nn");printf("請(qǐng)輸入將要?jiǎng)h除的學(xué)生的學(xué)號(hào):n");scanf("%s", Num);location=SearchNum(Num);if(found)if(location!=MAXSIZE)for(i=location; i<MAXSIZE; i+)strcpy(studi.Num, studi+1.Num); strcpy(studi.Name, studi+1.

35、Name);strcpy(studi.Sex, studi+1.Sex);studi.=studi+1.;studi.=studi+1.;studi.=studi+1.;studi.English=studi+1.English;studi.DataStructure=studi+1.DataStructure;studi.CPlusPlus=studi+1.CPlusPlus;studi.Sum=studi+1.Sum;studi.Average=studi+1.Average;Index-;return 1;return 0;void Delete() /*刪除學(xué)生信息*/if(!strc

36、mp(CurFile, "")printf("當(dāng)前并未打開或新建文件,無法刪除!n"); elseif(DeleteData()Save(CurFile);printf("刪除一條學(xué)生信息操作成功!n");else printf("不能進(jìn)行刪除操作!n");printf("刪除一條學(xué)生信息操作失??!n");ReOrEx();float GetOneCourseSum(int n) /*計(jì)算所有學(xué)生某一科目的總成績(jī)*/float N=0;int i;switch(n)case 1:nglish;b

37、reak;case 2:ataStructure;break;case 3:PlusPlus; break;return N;float GetOneCourseAverage(int n)/*計(jì)算所有學(xué)生某一科目的平均成績(jī)*/float temp=0;temp=GetOneCourseSum(n)/Index;return temp;void Total() /*統(tǒng)計(jì)某一科目總成績(jī)*/int x;if(!strcmp(CurFile, "")printf("當(dāng)前并未打開或新建文件,無法統(tǒng)計(jì)成績(jī)!n"); elseprintf("n 統(tǒng)計(jì)某一科

38、目總成績(jī)及平均成績(jī)n");printf("n");printf("*n"); printf("* 1. 統(tǒng)計(jì)英語課程總成績(jī)及平均成績(jī) *n"); printf("* 2. 統(tǒng)計(jì)數(shù)據(jù)結(jié)構(gòu)課程總成績(jī)及平均成績(jī) *n");printf("* 3. 統(tǒng)計(jì)C+課程總成績(jī)及平均成績(jī) *n");printf("*n"); printf(" 請(qǐng)選擇(1-3)_");scanf("%d", &x);switch(x)case 1:pri

39、ntf("n英語總成績(jī)?yōu)椋?5.2fnn", GetOneCourseSum(1); printf("英語平均成績(jī)?yōu)椋?5.2fn", GetOneCourseAverage(1);break;case 2:printf("n數(shù)據(jù)結(jié)構(gòu)總成績(jī)?yōu)椋?5.2fnn", GetOneCourseSum(2); printf("數(shù)據(jù)結(jié)構(gòu)平均成績(jī)?yōu)椋?5.2fn", GetOneCourseAverage(2);break;case 3:printf("nC+總成績(jī)?yōu)椋?5.2fnn", GetOneCou

40、rseSum(3); printf("c+平均成績(jī)?yōu)椋?5.2fn", GetOneCourseAverage(3);break;default:printf("選擇錯(cuò)誤!n");ReOrEx();void Bubble(int N) /*冒泡排序*/Student temp;int change=1;int i,j;switch(N)case 1: /*按英語成績(jī)排序*/for(i=Index-1; i>=1 && change; -i)change=0;for(j=0; j<i; +j)if(studj.English&g

41、t;studj+1.English) strcpy, studj.Num); strcpy, studj.Name); strcpy, studj.Sex); =studj.English; =studj.DataStructure; =studj.CPlusPlus; =studj.Sum; =studj.Average; strcpy(studj.Num, studj+1.Num); strcpy(studj.Name, tudj+1.Name); strcpy(studj.Sex, studj+1.Sex); studj.=studj+1.; studj.=studj+1.; studj

42、.=studj+1.; studj.English=studj+1.English; studj.DataStructure=studj+1.DataStructure; studj.CPlusPlus=studj+1.CPlusPlus; studj.Sum=studj+1.Sum; studj.Average=studj+1.Average; strcpy(studj+1.Num, ; strcpy(studj+1.Name, ; strcpy(studj+1.Sex, ; studj+1.= studj+1.= studj+1.= studj+1.English=; studj+1.Da

43、taStructure=; studj+1.CPlusPlus=; studj+1.Sum=; studj+1.Average=; change=1;break;case 2: /*按數(shù)據(jù)結(jié)構(gòu)成績(jī)排序*/for(i=Index-1; i>=1 && change; -i)change=0;for(j=0; j<i; +j)if(studj.DataStructure>studj+1.DataStructure) (此處省略的代碼與按英語成績(jī)排序中的加粗代碼完全一樣) break;case 3: /*按C+成績(jī)排序*/for(i=Index-1; i>=1

44、 && change; -i)change=0;for(j=0; j<i; +j)if(studj.CPlusPlus>studj+1.CPlusPlus) (此處省略的代碼與按英語成績(jī)排序中的加粗代碼完全一樣) break;case 4: /*按總成績(jī)排序*/for(i=Index-1; i>=1 && change; -i)change=0;for(j=0; j<i; +j)if(studj.Sum>studj+1.Sum) (此處省略的代碼與按英語成績(jī)排序中的加粗代碼完全一樣) break;printf("n 顯示所

45、有學(xué)生成績(jī)信息nn");printf("%-12s%-11s%-5s%-14s%-12s%-15s%-12s%-12s%-12sn", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus", "Sum", "Average"); for(i=0;i<Index;i+)printf(&quo

46、t;%-12s%-11s%-5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12.2fnn", studi.Num, studi.Name, studi.Sex, studi., studi., studi., studi.English, studi.DataStructure, studi.CPlusPlus, studi.Sum,studi.Average);void Sort() /*按某一科目成績(jī)升序顯示學(xué)生成績(jī)*/int x;if(!strcmp(CurFile, "") printf("當(dāng)前并未打開或新建文件,無

47、法顯示!n"); elseprintf("n 按某一科目成績(jī)升序顯示學(xué)生成績(jī)n");printf("n");printf("*n"); printf("* 1. 按英語成績(jī)升序顯示學(xué)生成績(jī) *n");printf("* 2. 按數(shù)據(jù)結(jié)構(gòu)成績(jī)升序顯示學(xué)生成績(jī) *n");printf("* 3. 按C+成績(jī)升序顯示學(xué)生成績(jī) *n");printf("* 4. 按總成績(jī)成績(jī)升序顯示學(xué)生成績(jī) *n");printf("*n"); pr

48、intf(" 請(qǐng)選擇(1-4)_");scanf("%d", &x);printf("n"); Bubble(x);ReOrEx();void Backup() /*創(chuàng)建備份文件,備份學(xué)生信息*/if(!strcmp(CurFile, "") printf("當(dāng)前并未打開或新建文件,無法備份!n"); elseFILE *fp; int i; if(fp=fopen("", "wb")=NULL) printf("創(chuàng)建備份文件失??!&qu

49、ot;); return; for(i=0; i<Index; i+) fwrite(&studi, sizeof(struct Stud), 1, fp); printf("備份學(xué)生信息成功!n"); fclose(fp); ReOrEx();第2章 面向過程程序設(shè)計(jì)一、簡(jiǎn)答題1【答案要點(diǎn)】直接常量也稱字面值常量,在程序中直接按其書寫形式對(duì)待,如數(shù)字12、字符'a'、字符串"Hello"等,而常變量是變量,系統(tǒng)會(huì)在靜態(tài)存儲(chǔ)區(qū)為常變量分配內(nèi)存空間,如下語句定義的變量PI就是常變量。const float PI=常變量在聲明時(shí)必須進(jìn)行初始化,可以用值對(duì)其初始化,也可以使用表達(dá)式,使用表達(dá)式時(shí),系統(tǒng)會(huì)先計(jì)算出表達(dá)式的值,然后再將值賦給常變量。在程序運(yùn)行的過程中,其

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論