C語言程序設計立體化教程課件:結構體_第1頁
C語言程序設計立體化教程課件:結構體_第2頁
C語言程序設計立體化教程課件:結構體_第3頁
C語言程序設計立體化教程課件:結構體_第4頁
C語言程序設計立體化教程課件:結構體_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

簡易的通訊錄管理結構體問題導入學號姓名高等數學C語言英語總分101張圣丹758677232102徐麗萍928890270103周京京798868225104申洪偉839382258105胡瀚文768778241106張騰偉688088226107於斌649878222108孫盛兵768460220109任高翔538777197110方轆恒888082238問題解決分析:一個學生的信息包含了學號、姓名、3門課成績、總分。分別定義簡單變量難以反映它們之間的聯系將它們組成一個組合項,其中可以包含若干個類型不同的數據項結構體類型:將不同類型的數據進行組合的一種用戶自定義的類型。關鍵技術:結構體(記錄)結構體類型的定義結構體類型定義的一般形式為:

struct

結構體名{

成員列表};結構體類型的說明(1)struct是聲名結構體類型時必須使用的關鍵字,不能省略。(2)struct結構體名是一個類型名,它的功能和基本數據類型有著同樣的地位和作用,都可以用來定義變量的類型,只不過這種類型是要用戶自己制定而已。(3)成員表由若干個成員組成,每個成員都是該結構的一個組成部分。對每個成員也必須作類型說明,其形式為:類型說明符

成員名;(4)大括號和外面的分號都不能省略。問題實現structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

};關鍵字

不能省略結構體名,和標準類型

名一樣可以定義變量成員列表,每個成員又稱分量或域.

成員名定名規則與變量同作為語句,必須以分號結束案例結構體類型定義的實現:結構體變量的定義(1)先聲明結構體類型再定義結構體變量。struct結構體名{成員表列;};[struct]結構體名變量名表列;structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

};structstudentx,y;structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

};

studentx,y;結構體變量的定義(2)在聲明類型的同時定義變量

struct[結構體名]{成員表列;}變量名表列;structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

}x,y;struct

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

}x,y;

說明

1、結構體變量:能夠賦值、存取或運算,編譯時,分配空間

結構體類型:不能賦值、存取或運算,編譯時,不分配空間2、成員可以是一個結構體變量。structstudent

{intnum;

charname[20];

charsex;

floatscore;structdatebirthday;}student1;structdate

{intmonth;

intday;

intyear;};

結構體變量的使用

一般形式:結構體變量名.成員名“.”是成員(又叫分量)運算符。它的優先級最高structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

}x,y;x.math=60;x.c_language=85;x.english=77;x.sum=x.math+x.c_language+x.english;

結構體變量的初始化

1、直接用賦值運算初始化structstudent

{intnum;

charname[20];

floatmath;

floatc_language;

floatenglish;

floatsum;

}x,y;x.math=60;x.c_language=85;x.english=77;2、通過scanf函數初始化scanf(“%f%f%f”,&x.math,&x.c_language,&x.english);

問題實現

#include"stdio.h”main(){structstudent{intnum;

charname[20];

floatmath,c_language,english,sum;

}x;printf(“請輸入x學生學號、姓名、三門成績:\n");

printf(“學號\t姓名\t數學\tC語言\t英語\t總分\n”);printf("%d\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",x.num,x.name,x.math,x.c_language,x.english,x.sum);}scanf(“%d%s%f%f%f”,&x.num,x.name,&x.math,&x.c_language,&x.english)

溫馨提示

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

評論

0/150

提交評論