C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.

Slides:



Advertisements
Similar presentations
湘雅路街道 刘韬 2014 年 4 月 微时代 · 新挑战. 什么是微时代 : 微时代即以微博、微信 等作为传播媒介代表,以短 小精炼作为文化传播特征的 时代。 开福区湘雅路街道工委 微博:微型博客的简称,即一句话 博客,是一种通过关注机制分享简 短实时信息的广播式的社交网络平 台。 微信:是腾讯公司于.
Advertisements

企业文化与核心价值观 主讲:孟凡驰 教授 中交四航局. 2 目 录 一、企业文化的目的价值恒久性与工具价值实践性 二、企业文化管理学特征 三、企业文化与企业发展战略 四、企业文化整合、提炼、培育和建设的目的 五、集团文化与分公司文化 六、企业核心价值观.
第四單元 通電的玩具 張老師的網頁.
基本概論 Basic concepts.
电子成绩单项目实现.
教 师:曾晓东 电 话: E_mail: 计算机软件技术基础 教 师:曾晓东 电 话: E_mail:
公关协调 能力目标 初步学会对内及对外公众关系协调的基本方法。 知识目标 掌握组织内外公众协调的原理和方法。
第一章 C语言概述 计算机公共教学部.
第二节 工业地域的形成 工业联系 工业集聚 工业地域
當代國際企業.
第三章 鏈結串列 Linked List.
编译原理上机实习
数据结构与算法 数据结构与算法实验
第八章 类和对象.
Chapter 3.0 C語言的結構與指標 資料結構導論 - C語言實作.
第7章 结构体、联合体和枚举类型 本章导读 本章主要知识点 《 C语言程序设计》 (Visual C++ 6.0环境)
C程序设计 第9章 自定义数据类型 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
程式設計 博碩文化出版發行.
struct 可以在同一個名稱下擁有多種資料型態。使用struct能讓資料的存取和處理更為靈活。
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
複習 char name1[20]; //長度為20的字串 char name2[20]; //讀取字串 gets(name1);
第十一章 面向对象设计 第十二章 面向对象实现
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
结构体和共用体 2 梁春燕 华电信息管理教研室.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
Chap 9 结构 9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针.
第9章 自訂資料型態 – 結構 9-1 結構資料型態 9-2 結構陣列 9-3 指標與結構 9-4 動態記憶體配置 9-5 聯合資料型態
STRUCTURE 授課:ANT 日期:2010/5/12.
C语言程序设计基础 第9章 结构 刘新国.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
第九章 结构体和共用体 结构体的定义 结构体的使用 共用体的定义 共用体的使用 主讲:李祥 时间:2015年10月.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第三章 C++中的C 面向对象程序设计(C++).
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
第十三章 其他的C語言課題.
第10章 檔案與資料夾處理 10-1 C語言的檔案輸入與輸出 10-2 文字檔案的讀寫 10-3 二進位檔案的讀寫
C++语言程序设计 第二章 C++简单程序设计.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
明解C++教學手冊 柴田望洋 博士 著 書號:PG20269
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第三章 C# 基础知识.
Struct結構 迴圈
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
C语言程序设计.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
OOP6 結構Struct 黃兆武.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
第十章 结构体与链表 西安工程大学.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
Java變數 2014/6/24.
第 二 章 数据类型、运算符与表达式.
本节内容 字节对齐.
第三章 数据抽象.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
Review 1~3.
知识产权在中小企业中的作用 讲座内容 一、知识产权在发达国家及知名企业中的地位 二、知识产权的基本概念及其特点
#include <iostream.h>
本节内容 结构体数组.
本节内容 指针类型.
本节内容 结构体数组 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第18讲 从C到C++ 计算机与通信工程学院.
第 10 章 JSP应用实例 10.1 网上书店概述 10.2 系统功能 10.3 数据库设计 10.4 各模块功能介绍及实现.
本节内容 结构体数组 视频提供:昆山爱达人信息技术有限公司.
C++程序语言设计 Chapter 14: Templates.
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
安排座位.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
Presentation transcript:

C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班

課程大綱 C語言簡介 基本資料型態, 變數, 基本輸入輸出 控制敘述- 選擇控制與重覆控制 陣列 函式 指標 字元與字串 結構 檔案處理

本次課程大綱 資料型態別名 (typedef) 結構(Structure) 結構陣列 結構與函式 聯合(Union) 列舉資料型態 (enum)

typedef型態定義 (1) typedef資料型態 識別字(別名); 資料型態是識別字所對應的真實資料型態,它可以是C語言的基本資料型態,或其他已經定義過的自訂資料型態,或已經使用typedef定義過的別名。 識別字(別名),一旦經由typedef定義之後,在程式中就可以使用該別名來宣告變數,而實際上,該別名將會被編譯器代替為原來的資料型態。

typedef型態定義 (2) 範例: 例子 typedef int score; /* 定義資料型態的別名 */ score student01,student02; typedef char * STRING; /* 定義資料型態的別名 */ STRING str1="Book"; 例子

結構 (structure) (1) 由於每一種資料可能擁有不同的資料型態,因此,我們有的時候無法單純使用多維陣列來加以存放資料,例如:我們要記錄全班同學的成績,每一位同學的資料為學號(字串資料型態)、計概成績(整數資料型態)、數學成績(整數資料型態)、英文成績(整數資料型態)、平均成績(浮點數資料型態),如下圖。

結構 (structure) (3) 結構能夠結合數個彼此相關的變數在一個名稱之下, 並可包含許多不同資料型態的變數. 和結構相比, 陣列也只能包含相同資料型態的元素. struct 結構型態 { 資料型態 變數1; 資料型態 變數2; ………………….. 資料型態 變數3; };

結構 (structure)定義 struct開始定義一個結構 student稱為該結構的標籤(struct tag) { char stu_id[12]; /* 學號 */ int ScoreComputer; /* 計概 */ int ScoreMath; /* 數學 */ int ScoreEng; /* 英文 */ float ScoreAvg; /* 平均成績 */ };

結構的記憶體內容

結構宣告 struct 結構名稱 變數或陣列名稱 struct 結構資料型態名稱 { 結構主體 }結構變數名稱; struct student John; struct student IM[50]; struct 結構資料型態名稱 { 結構主體 }結構變數名稱; struct X { … }Y;

存取結構 (1) 結構體變數.資料項 結構體指標變數->資料項 struct student John; /* John是一個普通結構體變數 */ ……………… John.ScoreMath=86; John.ScoreAvg=76.67; 結構體指標變數->資料項 struct student John; /* John一個普通結構體變數 */ struct student *pJohn; /* pJohn是一個結構體指標變數(指向結構體變數的指標) */ pJohn = &John; /* pJohn指標指向John變數 */ pJohn->ScoreMath=86; pJohn->ScoreAvg=76.67;

存取結構 (2) 結構中的成員可以透過點運算符號 . 進行存取. 例子1: 建立一個存放學生資料的結構. 例子2: 一開始就給結構初始值. 例子3: 輸入某學生的出生日期, 姓名及學號.

結構與指標 (1) struct student { char name[20]; int num; }; struct student *stud;

結構與指標 (2) 若要存取結構指標變數的成員, 必須使用下列的方法: student->name; 或 輸入一個學生的資料, 並且將他輸出

結構陣列 利用結構可以存放個人的許多資料, 若宣告成陣列的話,則可以存放一群人的資料. struct { char name[20]; int num; } class[40]; class[0].name : 第一個成員的name元素 class[0].num : 第一個成員的num元素 …..以此類推

結構陣列的記憶體內容 struct student John; struct student IM[50];

例子 輸入三個學生的學號,姓名及成績並列印出來.

巢狀結構 結構中的成員也是結構時, 可以用巢狀結構來處理. 例子

結構與函式 當函式的參數的型式為結構時,將結構型態傳給函式的方式將和一般的資料型態相同. 例子1: 個別傳送結構成員 例子2: 整個結構傳送 例子3: 輸入5個學生的資料,並輸出

練習 建立一個員工結構, 裡面有 name, age, address, salary, phone的資料結構. 由使用者輸入5個員工資料.

聯合 (union) 聯合與結構相當類似,兩者之間的差異在於結構中的資料型態必須佔用不同的記憶體空間,而聯合可以使不同的資料型態佔用相同的記憶體空間. 聯合變數的長度是其中的最大值. union { int one; float two; } num;

聯合 (union) 與結構 union u_member { short int id; int income; }John; struct s_member { short int id; int income; }Mary;

例子 利用sizeof()比較結構和聯合在記憶體中所佔空間的差異. 輸入一個員工的加班時數及正常上班時數,並計算出該員工薪資.

enum列舉集合 希望變數內容被侷限在某些合法的範圍內,此時,我們可以將所有可能的狀況列舉出來,並透過C語言提供的進階資料結構enum來加以宣告。 定義語法 enum 列舉資料型態名稱{ 此資料型態內所有可能的成員 }; enum manufacturer { IBM, MAXTOR,WD,SEAGATE }; enum manufacturer HardDisk; enum 列舉資料型態名稱{ 此資料型態內所有可能的成員 }變數1,變數2,….; enum animal { dog,cat,bird } pet;

練習 改寫例子 例子 列舉成員 IBM MAXTOR WD SEAGATE 序號 1 2 3 列舉成員 IBM MAXTOR WD 1 2 3 enum manufacturer {IBM=1,MAXTOR,WD=10,SEAGATE}; 列舉成員 IBM MAXTOR WD SEAGATE 序號 1 2 10 11

今天學到了什麼 如何使用資料型態別名 (typedef) 如何使用結構(Structure) 如何使用結構陣列 如何使用結構與函式 如何使用聯合(Union) 如何使用列舉資料型態 (enum)