C語言程序設計—結(jié)構(gòu)體—實驗報告(共10頁)_第1頁
C語言程序設計—結(jié)構(gòu)體—實驗報告(共10頁)_第2頁
C語言程序設計—結(jié)構(gòu)體—實驗報告(共10頁)_第3頁
C語言程序設計—結(jié)構(gòu)體—實驗報告(共10頁)_第4頁
C語言程序設計—結(jié)構(gòu)體—實驗報告(共10頁)_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上實 驗 報 告 專業(yè) 軟 件 工 程 班級 X 班 學號_ XXXXXXXXX_ 姓名 實驗日期:201X年X月X日 報告退發(fā) (訂正 、 重做) 課程 C程序設計實驗 實驗名稱 結(jié) 構(gòu) 體 一、實驗目的二、實驗環(huán)境(描述實驗的軟件、硬件環(huán)境)1 軟件環(huán)境:windows xp/win7等操作系統(tǒng),Microsoft Visual C+ 6.0編譯器;2 硬件環(huán)境:PC機一臺三、實驗內(nèi)容、步驟和結(jié)果分析題目一:#include #include struct Stuint num;char name20;char sex;int age;float score3;vo

2、id fun(struct Stu *stu, int i)float sum = stu-score0 + stu-score1 + stu-score2, aeg = sum / 3.0;printf(n第%d位學生的基本信息如下:nn, i);printf(學號:(%d)t姓名:(%s)t性別:(%c)t年齡:(%d)nn, stu-num, stu-name, stu-sex, stu-age);printf(三科成績:(%.2f,%.2f,%.2f)nn, stu-score0, stu-score1, stu-score2);printf(總成績:(%.2f) 平均成績:(%.2f

3、)n, sum, aeg);printf(n+n);int main()int i, n;printf(The number of students is:);scanf(%d, &n);struct Stu *stu = (struct Stu *)calloc(n, sizeof(struct Stu);for (i = 0; inum);printf(姓名:);scanf(%s, (stu + i)-name);printf(性別:);scanf( %c, &(stu + i)-sex);printf(年齡:);scanf(%d, &(stu + i)-age);printf(三科成績:

4、);scanf(%f%f%f, &(stu + i)-score0, &(stu + i)-score1, &(stu + i)-score2);putchar(n);printf(=n);for (i = 0; in; i+)fun(stu + i, i + 1);return 0;題目二:計算每一個結(jié)構(gòu)體的兩個變量所表示的長度之和(單位:厘米)要求:(1)分別定義公制METRIC(成員包括:米、厘米)和英制BRITISH(成員包括:英尺、英寸)兩個結(jié)構(gòu)體;(2)為每一個結(jié)構(gòu)定義兩個變量。#include int main()struct METRIC float m;float cm; m

5、1, m2;struct BRITISHfloat foot;float inches; b1, b2;printf(Enter the info of m1(米,厘米):);scanf(%f%f, &m1.m, &m1.cm);printf(Enter the info of m2(米,厘米):);scanf(%f%f, &m2.m, &m2.cm);printf(nEnter the info of m2(英尺,英寸):);scanf(%f%f, &b1.foot, &b1.inches);printf(Enter the info of m2(英尺,英寸):);scanf(%f%f, &

6、b2.foot, &b2.inches);printf(nSum of m1 and m2 is:%.2f(厘米)n, (m1.m + m2.m) * 100 + m1.cm + m2.cm);printf(Sum of b1 and b2 is:%.2f(厘米)nn, (b1.inches + b2.inches)*30.48 + (b1.foot + b2.foot)*2.54);return 0;題目三:編寫一個函數(shù)用于計算某個日期是相應年份的第幾天要求:聲明一個描述日期(年、月、日)的結(jié)構(gòu)體類型。#include struct time int year;int month;int d

7、ay;void fun(struct time time)int a,b,sum=0;for(a=1;atime.month;a+)if(a=4|a=6|a=9|a=11)sum+=30;else if(a=2)if(time.year%4=0)&(time.year%100!=0|time.year%400=0)sum+=29;elsesum+=28; elsesum+=31;sum+=time.day;printf(%d-%d-%d 是該年的第 %d 天!nn,time.year,time.month,time.day,sum);int main()struct time time;pri

8、ntf(Enter the date(Example:xxxx xx xx)(End with 0000 00 00):nn);while(scanf(%d%d%d,&time.year,&time.month,&time.day)!=EOF)if(time.year=0&time.month=0&time.day=0)break;fun(time);return 0;題目四:定義兩個函數(shù)分別用于輸入和輸出N個STUDENT結(jié)構(gòu)體變量的信息要求:定義兩個結(jié)構(gòu)體STUDENT和BIRTHDAY。 其中結(jié)構(gòu)體STUDENT包含成員有:姓名(char name20),學號(int number),出

9、生日期(BIRTHDAY birth);結(jié)構(gòu)體BIRTHDAY包含的成員有:年份(int year),月份(int month)和日期(int day)。#include #include struct BIRTHDAY int year;int month;int day;struct STUDENT char name20;int number;struct BIRTHDAY birth;void input(struct STUDENT *stu,int n)int i;putchar(n);for (i = 0; i n; i+)printf(第 %d 位學生的信息:n姓名:, i +

10、 1);scanf(%s, );printf(學號:);scanf(%d, &stui.number);printf(生日:);scanf(%d-%d-%d, &stui.birth.year, &stui.birth.month, &stui.birth.day);if (i != n - 1)putchar(n);elseprintf(輸入完畢!n);void output(struct STUDENT *stu, int n)int i;for (i = 0; i n; i+)printf(n第 %d 位學生的信息如下:n, i + 1);printf(姓名:(%s)t

11、學號:(%d)t生日:(%d-%d-%d)n, , stui.number, stui.birth.year, stui.birth.month, stui.birth.day);if (i != n - 1)putchar(n);elseprintf(輸出完畢!n);int main()int n;printf(請輸入待輸入資料的學生的數(shù)目N:);scanf(%d, &n);struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT);input(stu, n);printf(=n);out

12、put(stu, n);printf(=n);return 0;題目五:函數(shù)sortInfo()是按照總成績從高到低的順序進行排序的。如果兩位學生的總成績相等,則按照學號從小到大排序。要求:1 聲明一個STUDENT結(jié)構(gòu)體,成員有:姓名(char name20),學號(int number),總成績(float totalScore)2 在main函數(shù)中定義一個長度為N的結(jié)構(gòu)體數(shù)組arr,調(diào)用函數(shù)sortInfo(struct STUDENT *arr, int n)對N位學生的信息進行排序#include #include struct STUDENT char name20;int num

13、ber;float totalScore;void input(struct STUDENT *stu,int n)int i;putchar(n);for (i = 0; i n; i+)printf(第 %d 位學生的基本信息:n姓名:, i + 1);scanf(%s, );printf(學號:);scanf(%d, &stui.number);printf(總成績:);scanf(%f, &stui.totalScore);putchar(n);void sortInfo(struct STUDENT *stu, int n)int i,j;struct STUDEN

14、T temp;for (i = 0; i n; i+)for (j = 1; j n - i; j+)if (stui.totalScore (stui + j.number)temp = stui;stui = stui + j;stui + j = temp;void output(struct STUDENT *stu, int n)int i;for (i = 0; i n; i+)printf(姓名:(%s)t學號:(%d)t總成績:(%.2f)n, , stui.number, stui.totalScore);int main()int n;printf(請輸入

15、待輸入資料的學生的數(shù)目N:);scanf(%d, &n);struct STUDENT *stu = (struct STUDENT *)calloc(n, sizeof(struct STUDENT);input(stu, n);printf(=n);printf(排序之前的初始狀態(tài):n);output(stu, n);printf(=n);sortInfo(stu, n);printf(排序之后的最終狀態(tài):n);output(stu, n);printf(=n);return 0;題目六:編程模擬一個時鐘(時間實時更新)要求:1 聲明一個時間結(jié)構(gòu)體TIME,包含成員:時(int hour)

16、,分(int minute),秒(int second)。定義函數(shù)updata()用于更新時間。2 假設當前時刻為23:59:59,則調(diào)用函數(shù)updata將得到的下一刻時間為00:00:00假設當前時刻為23:45:56,則調(diào)用函數(shù)updata將得到的下一刻時間為23:45:57#include #include struct TIME int hour;int minute;int second;updata(struct TIME *t)if (t-second = 59)t-second = 0;if (t-minute = 59)t-minute = 0;if (t-hour = 23)t-hour = 0;else(t-

溫馨提示

  • 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

提交評論