第九章結構體與共用體實驗報告

2022-07-31 23:12:19 字數 3511 閱讀 4883

c程式實驗報告

實驗專案

一、實驗目的與要

1、結構體變數的應用

定義結構體型別struct date,它含有年、月、日3個成員;

定義struct date型別的變數,並從鍵盤輸入初值;

利用迴圈語句,計算天數;

利用分支結構,判斷閏年。

2、結構體陣列的應用

定義候選人struct person結構體陣列,含有姓名、得票數兩個成員

●定義struct person結構體陣列,人數自定,初始票數為0;

●利用迴圈輸入候選人名字,該人員票數加1;

●輸入的候選人不是規定的候選人時,相當於廢票,不累計。

3、共用體的應用

●定義結構體型別,其成員有編號、姓名、職業和班級(或職務);

●定義該結構體型別的陣列,可有若干個陣列元素;

●利用該迴圈語句輸入每條記錄的資料,若該記錄的職業為『s』,則該記錄是學生,輸入該學生的班級;若該記錄的職業是』t『,則該記錄是教師的,輸入該教師的職務;

●根據記錄的職業來判斷,使用哪個printf()語句輸出記錄。

4、結構體指標的應用

●定義該結構體型別的陣列,可有n個陣列元素;

●n個人圍成一圈,可以考慮用結構體陣列元素中的「下一人員編號」來實現,但最後乙個元素的「下一人員編號」指向第乙個。

二、實驗內容

實驗**:

#includemain()

;

struct

date a;

int i,days=0

; printf(

"輸入年,月 ,日:");

scanf(

"%d,%d,%d

",&a.year,&a.month,&a.day);

for(i=1;i)

days+=a.day;

printf(

"%d年%d月%d日是該年的第%d天

",a.year,a.month,a.day,days);

}

實驗結果:

問題分析:這道題我開始的時候一直多一天,後來定義的時候讓days的初始值為0,結果才正確。

問題分析:這道題我for迴圈少了大括號,結果一直是錯的;要引用strcmp()比較函式進行比較。

#include#include

struct

categoty;

}person[2];

main()

else

if(person[i].job=='t'

)

else

}printf("\n

");printf(

"編號\t姓名\t職業\t班級/職務\n");

問題分析:這道題的示例輸入與給出的實驗**在輸入的編號、姓名、職業的順序中不是對應的,導致一開始一直執行錯誤。

#include#define n 10

struct

child;

struct

child link[n];

main()

count=0

;

if(s==1)h=n;else h=s-1

; printf(

"出圈順序為:");

問題分析:無。三、實驗小結

1、這節實驗課進行的是關於結構體和共用體的一些相關實驗,讓我對結構體型別變數、陣列、指標的定義有了進一步的了解,學會了怎麼引用結構體中的成員。

2、結構體中陣列變數的輸入可以不使用『&』取位址運算子;函式定義的巢狀使用,在輸出的時候要明確好結構體名字逐級輸入。

3、要注意for迴圈的大括號,括號裡面要包括哪些。

第九章實驗

實驗目的和要求 1 掌握格式化的輸入輸出方法。2 熟悉系統提供的輸入操作函式。3 掌握磁碟檔案的輸入輸出方法。實驗內容 1 程式sy9 1.cpp用以列印表中的資料,但程式中存在邏輯錯誤。上機除錯後寫出正確的 include includeusing namespace std int main c...

第九章實驗

一 實驗目的和要求 1.掌握格式化的輸入輸出方法。2.熟悉系統提供的輸入操作函式。3.掌握磁碟檔案的輸入輸出方法。二 實驗內容 1.程式sy9 1.cpp用以列印表中的資料,但程式中存在邏輯錯誤。上機除錯後寫出正確的 cpp view plain copy include include using...

第九章 實驗

實驗目的和要求 1 掌握格式化的輸入輸出方法。2 熟悉系統提供的輸入操作函式。3 掌握磁碟檔案的輸入輸出方法。實驗內容 1 程式sy9 1.cpp用以列印表中的資料,但程式中存在邏輯錯誤。上機除錯後寫出正確的 include include using namespace std int main ...