《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)

上傳人:29 文檔編號:58651301 上傳時間:2022-02-28 格式:DOC 頁數(shù):66 大?。?95.50KB
收藏 版權(quán)申訴 舉報 下載
《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)_第1頁
第1頁 / 共66頁
《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)_第2頁
第2頁 / 共66頁
《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)_第3頁
第3頁 / 共66頁

下載文檔到電腦,查找使用更方便

20 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)》由會員分享,可在線閱讀,更多相關(guān)《《C++面向?qū)ο蟪绦蛟O(shè)計》習(xí)題答案(共66頁)(66頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、精選優(yōu)質(zhì)文檔-----傾情為你奉上 《C++程序設(shè)計》 習(xí)題解答 專心---專注---專業(yè) 目錄 第2部分 習(xí)題解答 第1章 面向?qū)ο蟪绦蛟O(shè)計概述 一、簡答題 簡述面向過程程序設(shè)計和面向?qū)ο蟪绦蛟O(shè)計的編程思想,體會面向?qū)ο蟪绦蛟O(shè)計的優(yōu)點。 【答案要點】 面向過程程序設(shè)計的編程思想:功能分解、逐步求精、模塊化、結(jié)構(gòu)化。當(dāng)要設(shè)計一個目標(biāo)系統(tǒng)時,首先從整體上概括出

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

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

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

5、ring.h> /*包含字符串處理頭文件*/ #include #define MAXSIZE 100 /*能夠處理的學(xué)生總?cè)藬?shù),可以隨意修改*/ typedef struct { /*用于存放生日信息的結(jié)構(gòu)體*/ int year; int month; int day; }Date; typedef struct Stud{ /*用于存放學(xué)生信息的結(jié)構(gòu)體*/ char Num[12]; /*學(xué)號為11位*/ char Name[11]; /*姓名,最多5個漢字*/

6、 char Sex[2]; /*性別,男記為m,女記為f */ Date Birthday; /*出生日期*/ float English, DataStructure, CPlusPlus; /*三門課成績*/ float Sum, Average; /*總成績、平均成績*/ }Student; char CurFile[40]; /*存放當(dāng)前正在操作的磁盤文件的文件名*/ int IsOpen=0;

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

8、中*/ void Display(); /*顯示學(xué)生信息*/ void Search(); /*查詢學(xué)生信息*/ int SearchNum(char* Num); /*按學(xué)號查詢學(xué)生信息*/ int SearchName(char* Name); /*按姓名查詢學(xué)生信息*/ void Append(); /*添加學(xué)生信息*/ void Modify(); /*修改學(xué)生信息*/ void Delete(); /*刪除學(xué)生信息*/ void

9、 Total(); /*統(tǒng)計所有學(xué)生某一科目總成績*/ void Sort(); /*學(xué)生信息排序*/ void Backup(); /*備份學(xué)生信息*/ void menu() /*系統(tǒng)功能菜單*/ { int choice; /*用于保存用戶對功能菜單的選擇結(jié)果*/ for( ; ; ) { /*顯示系統(tǒng)功能菜單*/ printf("\n*************************************************

10、***\n"); printf("*************** 學(xué)生信息管理系統(tǒng) *******************\n"); printf("****************************************************\n"); printf("************ 1.新建學(xué)生信息文件 *****************\n"); printf("************ 2.打開學(xué)生信息文件 *****************\n"); printf("******

11、****** 3.顯示學(xué)生信息 *****************\n"); printf("************ 4.查詢學(xué)生信息 *****************\n"); printf("************ 5.添加學(xué)生信息 *****************\n"); printf("************ 6.修改學(xué)生信息 *****************\n"); printf("************ 7.刪除學(xué)生信息 *****************\

12、n"); printf("************ 8.統(tǒng)計學(xué)生信息 *****************\n"); printf("************ 9.學(xué)生信息排序 *****************\n"); printf("************ 10.備份學(xué)生信息 *****************\n"); printf("************ 0.退出系統(tǒng) *****************\n"); printf("****************

13、************************************\n"); printf(" 請選擇要執(zhí)行的操作(0~8):_"); scanf("%d", &choice); switch(choice){ case 1: Create(); break; case 2: Open(); break; case 3: Display(); break; case 4: Search(); break; case 5: Append(

14、); 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("選擇錯誤!請重新選擇。\n"); }/*switch結(jié)束*/ }/*for結(jié)束*/ } void ReOrEx()/*在用戶執(zhí)行完一項系統(tǒng)功能后,可以選擇:是繼續(xù)運行系統(tǒng),還是

15、退出系統(tǒng)*/ { int n; printf("\n****************************************************\n"); printf("*************** 1. 返回上級菜單 **************\n"); printf("*************** 0. 退出系統(tǒng) **************\n"); printf("****************************************************\n"); printf("

16、 請選擇(1/0)?_"); scanf("%d",&n); if(n==0) { printf("\n****************************************************\n"); printf("************* 謝謝使用本系統(tǒng)! ***************\n"); printf("****************************************************\n"); exit(1); } } void main()

17、 { printf("****************************************************\n"); printf("********* 歡迎使用學(xué)生信息管理系統(tǒng)! *********\n"); printf("****************************************************\n"); system("pause"); menu();/*系統(tǒng)功能以菜單的形式提供給用戶*/ printf("\n*****************************************

18、***********\n"); printf("************* 謝謝使用本系統(tǒng)! ***************\n"); printf("****************************************************\n"); }/*main函數(shù)結(jié)束*/ /*各自定義函數(shù)實現(xiàn)代碼*/ int New(char* FileName) /*創(chuàng)建磁盤文件*/ { FILE *fp; if((fp=fopen(FileName,"w"))==NULL) { return 0; } else { fclo

19、se(fp); Index=0; return 1; } } void Create() /*新建學(xué)生信息文件*/ { char FileName[40]; printf("請輸入新建文件的名稱:"); scanf("%s", &FileName); if(strcmp(FileName, "studentbackup")) { strcat(FileName, ".dat"); if(!New(FileName)) printf("%s文件創(chuàng)建失敗!\n", FileName); else { strcpy(CurFile, Fi

20、leName); printf("%s文件創(chuàng)建成功!\n", FileName); } } else { printf("%s是備份文件,禁止創(chuàng)建與此文件同名的文件!\n",FileName); } ReOrEx(); } void Open() /*打開學(xué)生信息文件*/ { char FileName[40]; printf("請輸入要打開的數(shù)據(jù)文件的名稱:"); scanf("%s", &FileName); if(strcmp(FileName, "studentbackup")) { strcat(FileNam

21、e, ".dat"); if(IsOpen==0) { FILE *fp; if((fp=fopen(FileName, "rb"))==NULL) { printf("%s文件打開失??!\n", FileName); } else { IsOpen=1; Index=0; while(!feof(fp)) { fread(&stud[Index], sizeof(struct Stud), 1, fp); Index++; }

22、 Index--; printf("學(xué)生總?cè)藬?shù)為:%d\n", Index); fclose(fp); printf("%s文件打開成功!\n", FileName); strcpy(CurFile, FileName); } } else printf("%s文件已經(jīng)打開!\n", FileName); } else printf("%s是備份文件,禁止打開此文件!\n", FileName); ReOrEx(); } void Display() /*

23、顯示全部學(xué)生信息*/ { int i; if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法顯示!\n"); } else { printf("\n 顯示所有學(xué)生成績信息\n\n"); printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus", "Sum",

24、 "Average"); for(i=0; i

25、ud[i].Sum, stud[i].Average); } } ReOrEx(); } int SearchNum(char* Num) /*按學(xué)號查詢學(xué)生信息*/ { int i; for(i=0;

26、* Name) /*按姓名查詢學(xué)生信息*/ { int i; for(i=0; i

27、trcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法查詢!\n"); } else { printf("\n 查詢某一學(xué)生信息\n"); printf("****************************************************\n"); printf("*************** 1. 按學(xué)號查詢 *************\n"); printf("*************** 2. 按姓名查詢

28、 *************\n"); printf("****************************************************\n"); printf(" 請選擇(1/2)?_"); scanf("%d", &n); if(n==1) { printf("請輸入學(xué)生學(xué)號:\n"); scanf("%s", Num); i=SearchNum(Num); } else if(n==2) { printf("請輸入學(xué)生姓名:\n"); sca

29、nf("%s", &Name); i=SearchName(Name); } printf("該學(xué)生的具體信息為:\n\n"); printf("%--12s%--11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus","Sum", "Average"); printf("%--12s%--11s%--5s%4d/%2d/%2d%10.2f%15.2f%12.2f%12.2f%12

30、.2f\n\n", stud[i].Num, stud[i].Name, stud[i].Sex, stud[i].Birthday.year, stud[i].Birthday.month, stud[i].Birthday.day, stud[i].English, stud[i].DataStructure, stud[i].CPlusPlus, stud[i].Sum, stud[i].Average); } ReOrEx(); } void AddData() /*添加一條學(xué)生信息*/ { char Num[12]; char Name[10]; char

31、Sex[2]; int Year, Month, Day; float English, DataStructure, CPP; int location; if(Index>=MAXSIZE) { printf("錯誤! 學(xué)生信息已滿,不能添加!\n"); } else { printf("執(zhí)行添加學(xué)生信息操作!\n"); printf("\n請輸入學(xué)生學(xué)號:"); scanf("%s", Num); location=SearchNum(Num); if (!found) { printf("可以進(jìn)行添加操作!\n");

32、 printf("\n請輸入學(xué)生姓名:"); scanf("%s", Name); printf("\n請輸入學(xué)生性別:"); scanf("%s", &Sex); printf("\n請輸入學(xué)生出生年份:"); scanf("%d", &Year); printf("\n請輸入學(xué)生出生月份:"); scanf("%d", &Month); printf("\n請輸入學(xué)生出生日:"); scanf("%d", &Day); printf("\n請輸入

33、學(xué)生英語成績:"); scanf("%f", &English); printf("\n請輸入學(xué)生數(shù)據(jù)結(jié)構(gòu)成績:"); scanf("%f", &DataStructure); printf("\n請輸入學(xué)生C++成績:"); scanf("%f", &CPP); printf("\n"); strcpy(stud[Index].Num, Num); strcpy(stud[Index].Name, Name); strcpy(stud[Inde

34、x].Sex, Sex); stud[Index].Birthday.year=Year; stud[Index].Birthday.month=Month; stud[Index].Birthday.day=Day; stud[Index].English=English; stud[Index].DataStructure=DataStructure; stud[Index].CPlusPlus=CPP; stud[Index].Sum=English+DataStructure+CPP;

35、stud[Index].Average=stud[Index].Sum/3; Index++; printf("插入一條學(xué)生信息操作成功!\n"); } else printf("不能進(jìn)行添加學(xué)生信息操作!\n"); } } void Save(char* FileName) /*學(xué)生信息存盤*/ { FILE *fp; int i; if((fp=fopen(FileName, "wb"))==NULL) { printf("文件打開失?。?); return; } for(i=0;I

36、tud[i], sizeof(struct Stud), 1, fp); } fclose(fp); } void Append() /*添加學(xué)生信息*/ { if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法添加!\n"); } else { AddData(); Save(CurFile); } ReOrEx(); } void ModifyData() /*修改一條學(xué)生信息*/ { char Num[12]; char Name[10]; char Sex[2]; float English

37、, DataStructure, CPP; int Year, Month, Day; int location; printf("\n執(zhí)行修改學(xué)生信息操作!\n\n"); printf("請輸入將要修改的學(xué)生的學(xué)號:"); scanf("%s", Num); location=SearchNum(Num); if (found) { printf("可以進(jìn)行修改學(xué)生信息操作!\n"); printf("\n請輸入學(xué)生姓名:"); scanf("%s", Name); printf("\n請輸入學(xué)生性別:"); scan

38、f("%s", &Sex); printf("\n請輸入學(xué)生出生年份:"); scanf("%d", &Year); printf("\n請輸入學(xué)生出生月份:"); scanf("%d", &Month); printf("\n請輸入學(xué)生出生日:"); scanf("%d", &Day); printf("\n請輸入學(xué)生英語成績:"); scanf("%f", &English); printf("\n請輸入學(xué)生數(shù)據(jù)結(jié)構(gòu)成績:"); scanf("%f", &DataStructu

39、re); printf("\n請輸入學(xué)生C++成績:"); scanf("%f", &CPP); printf("\n"); strcpy(stud[location].Num, Num); strcpy(stud[location].Name, Name); strcpy(stud[location].Sex, Sex); stud[location].Birthday.year=Year; stud[location].Birthday.month=Month; stud

40、[location].Birthday.day=Day; stud[location].English=English; stud[location].DataStructure=DataStructure; stud[location].CPlusPlus=CPP; stud[location].Sum=English+DataStructure+CPP; stud[location].Average=stud[Index].Sum/3; printf("執(zhí)行修改學(xué)生信息操作成功!\n"); } else printf("不能進(jìn)行修改學(xué)生

41、信息操作!\n"); } void Modify() /*修改學(xué)生信息*/ { if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法修改!\n"); } else { ModifyData(); Save(CurFile); } ReOrEx(); } int DeleteData()/*刪除一條學(xué)生信息*/ { char Num[12]; int location,i; printf("\n 執(zhí)行刪除學(xué)生信息操作!\n\n"); printf("警告!學(xué)生信息一

42、旦刪除,將不可恢復(fù)。請小心使用該操作!\n\n"); printf("請輸入將要刪除的學(xué)生的學(xué)號:\n"); scanf("%s", Num); location=SearchNum(Num); if(found) { if(location!=MAXSIZE) { for(i=location; i

43、, stud[i+1].Sex); stud[i].Birthday.year=stud[i+1].Birthday.year; stud[i].Birthday.month=stud[i+1].Birthday.month; stud[i].Birthday.day=stud[i+1].Birthday.day; stud[i].English=stud[i+1].English; stud[i].DataStructure=stud[i+1].DataStructure; stud[i].CPlusPlus=stud[i+1].C

44、PlusPlus; stud[i].Sum=stud[i+1].Sum; stud[i].Average=stud[i+1].Average; } } Index--; return 1; } return 0; } void Delete() /*刪除學(xué)生信息*/ { if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法刪除!\n"); } else { if(DeleteData()) { Save(CurFile); printf("刪除一條學(xué)生信息操作成

45、功!\n"); } else { printf("不能進(jìn)行刪除操作!\n"); printf("刪除一條學(xué)生信息操作失敗!\n"); } } ReOrEx(); } float GetOneCourseSum(int n) /*計算所有學(xué)生某一科目的總成績*/ { float N=0; int i; switch(n){ case 1://計算英語總成績 for(i=0; i

46、=0; i

47、某一科目總成績*/ { int x; if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法統(tǒng)計成績!\n"); } else { printf("\n 統(tǒng)計某一科目總成績及平均成績\n"); printf("\n"); printf("****************************************************\n"); printf("*** 1. 統(tǒng)計《英語》課程總成績及平均成績 ***\n"); printf("

48、*** 2. 統(tǒng)計《數(shù)據(jù)結(jié)構(gòu)》課程總成績及平均成績 ***\n"); printf("*** 3. 統(tǒng)計《C++》課程總成績及平均成績 ***\n"); printf("****************************************************\n"); printf(" 請選擇(1-3)?_"); scanf("%d", &x); switch(x) {case 1: printf("\n英語總成績?yōu)椋?5.2f\n\n", GetOneCourseS

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

50、 printf("c++平均成績?yōu)椋?5.2f\n", GetOneCourseAverage(3)); break; default: printf("選擇錯誤!\n"); } } ReOrEx(); } void Bubble(int N) /*冒泡排序*/ { Student temp; int change=1; int i,j; switch(N){ case 1: /*按英語成績排序*/ { for(i=Index-1; i>=1 && change; --i) { change=0; for(j

51、=0; jstud[j+1].English) { strcpy(temp.Num, stud[j].Num); strcpy(temp.Name, stud[j].Name); strcpy(temp.Sex, stud[j].Sex); temp.Birthday.year=stud[j].Birthday.year; temp.Birthday.month=stud[j].Birthday.month; t

52、emp.Birthday.day=stud[j].Birthday.day; temp.English=stud[j].English; temp.DataStructure=stud[j].DataStructure; temp.CPlusPlus=stud[j].CPlusPlus; temp.Sum=stud[j].Sum; temp.Average=stud[j].Average; strcpy(stud[j].Num, stud[j+1

53、].Num); strcpy(stud[j].Name, tud[j+1].Name); strcpy(stud[j].Sex, stud[j+1].Sex); stud[j].Birthday.year=stud[j+1].Birthday.year; stud[j].Birthday.month=stud[j+1].Birthday.month; stud[j].Birthday.day=stud[j+1].Birthday.day; stud[j].English

54、=stud[j+1].English; stud[j].DataStructure=stud[j+1].DataStructure; stud[j].CPlusPlus=stud[j+1].CPlusPlus; stud[j].Sum=stud[j+1].Sum; stud[j].Average=stud[j+1].Average; strcpy(stud[j+1].Num, temp.Num); strcpy(stud[j+1].Name, temp.Na

55、me); strcpy(stud[j+1].Sex, temp.Sex); stud[j+1].Birthday.year=temp.Birthday.year; stud[j+1].Birthday.month=temp.Birthday.month; stud[j+1].Birthday.day=temp.Birthday.day; stud[j+1].English=temp.English; stud[j+1].DataStructure=temp.Dat

56、aStructure; stud[j+1].CPlusPlus=temp.CPlusPlus; stud[j+1].Sum=temp.Sum; stud[j+1].Average=temp.Average; change=1; } } } break; case 2: /*按數(shù)據(jù)結(jié)構(gòu)成績排序*/ { for(i=Index-1; i>=1 && change; --i) { change=0; for(j=0; j

57、 if(stud[j].DataStructure>stud[j+1].DataStructure) { ……(此處省略的代碼與按英語成績排序中的加粗代碼完全一樣) } } } break; case 3: /*按C++成績排序*/ { for(i=Index-1; i>=1 && change; --i) { change=0; for(j=0; jstud[j+1].CPlusPlus) { ……(此處省略的代碼與按英語成績排序中的加粗代碼完全

58、一樣) } } } break; case 4: /*按總成績排序*/ { for(i=Index-1; i>=1 && change; --i) { change=0; for(j=0; jstud[j+1].Sum) { ……(此處省略的代碼與按英語成績排序中的加粗代碼完全一樣) } } } break; } printf("\n 顯示所有學(xué)生成績信息\n\n"); printf("%--12s%-

59、-11s%--5s%--14s%--12s%--15s%--12s%--12s%--12s\n", "Num", "Name", "Sex", "Birthday", "English", "DataStructure", "CPlusPlus", "Sum", "Average"); for(i=0;i

60、irthday.year, stud[i].Birthday.month, stud[i].Birthday.day, stud[i].English, stud[i].DataStructure, stud[i].CPlusPlus, stud[i].Sum,stud[i].Average); } } void Sort() /*按某一科目成績升序顯示學(xué)生成績*/ { int x; if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文件,無法顯示!\n"); } else { printf("\n 按某一科目

61、成績升序顯示學(xué)生成績\n"); printf("\n"); printf("****************************************************\n"); printf("*** 1. 按英語成績升序顯示學(xué)生成績 ***\n"); printf("*** 2. 按數(shù)據(jù)結(jié)構(gòu)成績升序顯示學(xué)生成績 ***\n"); printf("*** 3. 按C++成績升序顯示學(xué)生成績 ***\n"); printf("*** 4. 按

62、總成績成績升序顯示學(xué)生成績 ***\n"); printf("****************************************************\n"); printf(" 請選擇(1-4)?_"); scanf("%d", &x); printf("\n"); Bubble(x); } ReOrEx(); } void Backup() /*創(chuàng)建備份文件,備份學(xué)生信息*/ { if(!strcmp(CurFile, "")) { printf("當(dāng)前并未打開或新建文

63、件,無法備份!\n"); } else { FILE *fp; int i; if((fp=fopen("studentbackup.dat", "wb"))==NULL) { printf("創(chuàng)建備份文件失?。?); return; } for(i=0; i

64、第2章 面向過程程序設(shè)計 一、簡答題 1.【答案要點】 直接常量也稱字面值常量,在程序中直接按其書寫形式對待,如數(shù)字12、字符'a'、字符串"Hello"等,而常變量是變量,系統(tǒng)會在靜態(tài)存儲區(qū)為常變量分配內(nèi)存空間,如下語句定義的變量PI就是常變量。 const float PI=3.14.159; 常變量在聲明時必須進(jìn)行初始化,可以用值對其初始化,也可以使用表達(dá)式,使用表達(dá)式時,系統(tǒng)會先計算出表達(dá)式的值,然后再將值賦給常變量。在程序運行的過程中,其值不能發(fā)生變化。 使用常變量的好處,主要表現(xiàn)在以下幾個方面:(1)常變量更直觀,常變量名可以表示一定的意義;(2)在后期維護(hù)過程中如果需

65、要改變常變量的值,只要在定義該常變量的語句中修改就可以了,即使在程序中多處用到它也只需要修改這一處。(3)系統(tǒng)可以對常變量進(jìn)行類型檢查,這樣進(jìn)一步降低了程序出錯的概率。 2.【答案要點】 main函數(shù)中的第3行代碼有誤,該行代碼直接使用void指針。注釋掉此行,程序運行結(jié)果如下: *p = d *p = 100 *p = 1.4013e-043 *p = -9.25596e+061 3.【答案要點】 所謂名字空間就是一個由程序設(shè)計者命名的內(nèi)存區(qū)域。程序設(shè)計者可以根據(jù)需要指定一些有名字的空間域,把一些全局標(biāo)識符分別放在各個名字空間中,從而與其他全局標(biāo)識符分隔開。 名字空間的作用

66、:解決程序中名字沖突的問題。即在程序運行過程中遇到相同名字的變量,系統(tǒng)能不能正確地區(qū)分它們。 使用名字空間時,語法如下: namespace 名字空間名 { 定義成員 } 訪問名字空間的成員時,可以使用如下3種方式之一。 (1)使用名字空間的別名 可以為名字空間起一個別名來代替較長的名字空間名。如: namespace Information { ... } 可以用一個較短的縮寫作為別名來代替它。如: namespace Info = Information; 通過這樣一個語句使得別名Info與原名Information等價,在原來可以使用Information的位置都可以無條件的換成Info。 (2)使用“using 名字空間的成員名;” 可以在程序中使用“using名字空間中的成員名;”來簡化名字空間的成員訪問,using后面必須是由名字空間限定的成員。如: using ns1::Tax; 后面訪問Tax( )時就相當(dāng)于ns1::Tax( ),這樣可以避免在每一次訪問名字空間的成員時都用名字空間限定,簡化名字空間的使用。但是要注意不能在同一作用

展開閱讀全文
溫馨提示:
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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲