freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

實用c語言程序設(shè)計教程7復(fù)雜數(shù)據(jù)結(jié)構(gòu)——結(jié)構(gòu)體、聯(lián)合及用戶自定義類型ppt(已修改)

2024-10-30 13:51 本頁面
 

【正文】 第 7章 復(fù)雜數(shù)據(jù)結(jié)構(gòu) —— 結(jié)構(gòu)體、聯(lián)合及 用戶自定義類型 C語言程序設(shè)計 Programming in C 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 —— 學(xué)習(xí)并不等于就是摹仿某些東西,而是掌握技巧和方法。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 掌握定義結(jié)構(gòu)體類型、結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù) 組和結(jié)構(gòu)體指針的方法。 掌握初始化結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組的方法。 掌握結(jié)構(gòu)體成員的引用方法。 應(yīng)用結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組和結(jié)構(gòu)體指針 掌握結(jié)構(gòu)體在函數(shù)中的使用 掌握鏈表的概念和基本操作 掌握聯(lián)合體的概念、存儲特點及應(yīng)用。 了解自定義類型、枚舉類型的概念和應(yīng)用 本章教學(xué)目標(biāo) 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 本章項目任務(wù) 利用結(jié)構(gòu)體,重新設(shè)計“ 學(xué)生信息管理系統(tǒng) ” 。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 本章內(nèi)容 結(jié)構(gòu)及結(jié)構(gòu)變量的引入 結(jié)構(gòu)數(shù)組 結(jié)構(gòu)與指針 結(jié)構(gòu)體與函數(shù) 鏈表 特殊的數(shù)據(jù)類型 —— 聯(lián)合體 用 typedef定義類型 枚舉 (Enumeration)類型 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 結(jié)構(gòu)( Structure)及結(jié)構(gòu)變量的引入 結(jié)構(gòu)體類型的定義 結(jié)構(gòu)體變量的定義和初始化 結(jié)構(gòu)體變量的使用 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 C語言引入了一種能集不同數(shù)據(jù)類型于一體的結(jié)構(gòu)體類型。結(jié)構(gòu)體類型的變量可以擁有不同數(shù)據(jù)類型的成員,是不同數(shù)據(jù)類型成員的集合。 例 :住宿表、成績表、通訊地址表如下 , 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 結(jié)構(gòu)體類型適合將屬于同一對象的,具有不同方面的不同類型的數(shù)據(jù)信息有機地組合在一起,即將具有內(nèi)在聯(lián)系的不同類型的數(shù)據(jù)統(tǒng)一為一個整體,形成一種新的數(shù)據(jù)類型。 “ 結(jié)構(gòu)體 ” 組合了一組相關(guān)聯(lián)的數(shù)據(jù),但各個數(shù)據(jù)成員并不需要具有同一數(shù)據(jù)類型,它能夠客觀反映現(xiàn)實信息的本質(zhì)。 使用結(jié)構(gòu)體類型和數(shù)據(jù),均需要用戶根據(jù)實際分析結(jié)果自行定義。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 結(jié)構(gòu)體類型 (Structure type )的定義 結(jié)構(gòu)體類型定義的一般形式 : struct 結(jié)構(gòu)體類型名 { 類型名 1 結(jié)構(gòu)成員名表 1; 類型名 2 結(jié)構(gòu)成員名表 2; …… 類型名 n 結(jié)構(gòu)成員名表 n; }; 用戶可按照實際需求,并根據(jù) C語言提供的結(jié)構(gòu)體格式,自行定義 結(jié)構(gòu)體數(shù)據(jù)類型 ,某結(jié)構(gòu)體一旦定義,程序中就具有了這種結(jié)構(gòu)的數(shù)據(jù)類型,其用法與其它的數(shù)據(jù)類型相同。 說明: ( 1)“ struct”為定義結(jié)構(gòu)體類型的關(guān)鍵字; ( 2)“結(jié)構(gòu)體名”為用戶自行命名的結(jié)構(gòu)體類型標(biāo)識符; ( 3)結(jié)構(gòu)體的各成員列表放在“ { }”中; ( 4)整個結(jié)構(gòu)體類型定義必須用“;”作為結(jié)束符。 代表客觀現(xiàn)實信息的不同方面 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 依照結(jié)構(gòu)體定義格式,前述各表格的用戶自定義結(jié)構(gòu)體類型可以定義如下。 ( 1) “住宿表”結(jié)構(gòu)體類型: struct acmod /*結(jié)構(gòu)體類型名 */ { char name[20]。 /*姓名 */ char sex。 /*性別 */ char job[40]。 /*職業(yè) */ int age。 /*年齡 */ long number。 /*身份證號碼 */ }。 ( 2)“成績表”結(jié)構(gòu)體類型: struct score /*結(jié)構(gòu)體類型名 */ { char grade[20]。 /*班級 */ long number。 /*學(xué)號 */ char name[20]。 /*姓名 */ float os。 /*操作系統(tǒng) */ float datastru。 /*數(shù)據(jù)結(jié)構(gòu) */ float p。 /*計算機網(wǎng)絡(luò) */ }。 ( 3)“通訊地址表”結(jié)構(gòu)體類型: addr /*結(jié)構(gòu)體類型名 addr*/ name[ ]。 /*姓名 */ char department[30]。 /*部門 */ addr ss[30]。 /*住址 */ long box。 /*郵編 */ long phone。 /*電話號碼 */ char [30]。 /*Email*/ 結(jié)構(gòu)體類型根據(jù)不同的問題 ,其成員是不同的,可以有任意多的結(jié)構(gòu)體類型描述。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 結(jié)構(gòu)體類型定義的嵌套 : 結(jié)構(gòu)體類型中的成員類型不僅可是簡單數(shù)據(jù)類型,也可是構(gòu)造類型,當(dāng)然也可是某種結(jié)構(gòu)體類型。當(dāng)結(jié)構(gòu)體定義中又包含結(jié)構(gòu)體類型時稱為結(jié)構(gòu)體的嵌套。 ( 4)定義“日期”結(jié)構(gòu)體類型: struct data /*結(jié)構(gòu)體類型名 data*/ { int year, month, day。 }。 /*年、月、日為整型 */ ( 5)定義“學(xué)生”結(jié)構(gòu)體類型: struct student /*結(jié)構(gòu)體類型名 student*/ { long number; /*學(xué)號 */ char name[20]; /*姓名 */ char sex; /*性別 */ struct data birthday; /*出生日期,結(jié)構(gòu)體嵌套 */ char addr[30]; /*住址 */ }。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 分析: 綜合前面各章節(jié)的分析,在 “ 學(xué)生信息管理系統(tǒng) ” 中應(yīng)該有 用戶、課程結(jié)、班級和學(xué)生 結(jié)構(gòu)體。各結(jié)構(gòu)體類型定義如下: ( 1)用戶結(jié)構(gòu)體類型 對于登錄系統(tǒng)的用戶應(yīng)包括兩種最基本的用戶:管理員(系統(tǒng)管理員)、普通用戶(教師和學(xué)生)。每個用戶都有各自的用戶名、密碼和用戶類型三個最基本的屬性,且不同的用戶有不同的操作權(quán)限。因此可以將用戶結(jié)構(gòu)體定義如下: 【 項目案例 71】 “學(xué)生信息管理系統(tǒng)”中不同結(jié) 構(gòu)體類型的定義。 struct user /*定義用戶結(jié)構(gòu)體類型user*/ { char username[20]。 /*用戶名(要保證唯一) */ char userpass[20]。 /*用戶密碼 */ char usertype。 /*用戶類型 */ }。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 struct course /*定義課程結(jié)構(gòu)體 course */ { int courseid。 /*課程編號,用整型變量表示 */ char coursename[20]。 /*課程名稱 */ int credit。 /*課程學(xué)分 */ int AcademicHour。 /*教學(xué)課時 */ }。 ( 2)課程結(jié)構(gòu)體類型 為了反映課程的特征,需要設(shè)置課程結(jié)構(gòu)體。課程結(jié)構(gòu)體定義如下: 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 struct class /*定義班級結(jié)構(gòu)體 class */ { char classname[20]。 /*班級編號 */ char specialty[20]。 /*專業(yè)名稱 */ int studentnum。 /*班級的學(xué)生人數(shù) */ int class_coursenum。 /*班級要求所修的課程數(shù) */ /*假設(shè)每班最多能設(shè)置 N(符號常量)門課程 */ int class_courseid[N]。 /*班級必修課程編號數(shù)組 */ }。 ( 3)班級結(jié)構(gòu)體類型 為了反映班級的基本信息,需要設(shè)置班級結(jié)構(gòu)體。班級結(jié)構(gòu)體定義如下: 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 struct student /*定義學(xué)生結(jié)構(gòu)體 student */ { char studentid[20]。 /*學(xué)生學(xué)號,惟一 */ char classname[20]。 /*所在班級編號 */ char studentname[N]。 /*學(xué)生姓名 */ struct date { int year,month,day。 }birthday。 /*出生日期 */ int scorearr[N]。 /*學(xué)生成績數(shù)組 */ }。 ( 4)學(xué)生結(jié)構(gòu)體類型 學(xué)生結(jié)構(gòu)體類型成員應(yīng)該包含兩大類: 基本信息 (學(xué)號、姓名、出生日期、班級代碼等)和 成績信息 (各科成績)。因此可以把學(xué)生結(jié)構(gòu)體定義如下: 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 /*定義班級 課程結(jié)構(gòu)體 class_course*/ struct class_course { char classname[20]。 /*班級編號 */ int class_courseid[N]。 /*班級課程編號數(shù)組 */ char coursename[N] [20]。 /*課程名稱 */ }。 ( 5)班級 課程結(jié)構(gòu)體 學(xué)校中的每個班級編號是唯一的,而不同的班級可以設(shè)置不同的課程組。為了反映班級和所選課程組之間的關(guān)系,定義班級 課程結(jié)構(gòu)體如下: 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 /*定義班級 學(xué)生結(jié)構(gòu)體 class_student */ struct class_student { char classname[N]。 /*班級編號 */ char specialty[20]。 /*專業(yè)名稱 */ char studentid[N]。 /*學(xué)生學(xué)號 */ }。 ( 6)班級 學(xué)生結(jié)構(gòu)體 入學(xué)時確定某學(xué)生屬于某班級,但有可能發(fā)生學(xué)生異動的情況,為了反映班級和學(xué)生之間的關(guān)系,需要設(shè)置班級 學(xué)生結(jié)構(gòu)體。定義如下: 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 通常情況下,結(jié)構(gòu)體類型的定義在所有函數(shù)之外,位于 main()函數(shù)之前。這使得新定義的結(jié)構(gòu)體數(shù)據(jù)類型在程序的任何地方都可以被共享使用。 定義一個結(jié)構(gòu)體類型并不分配內(nèi)存,內(nèi)存分配發(fā)生在定義這個新數(shù)據(jù)類型的變量中。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 結(jié)構(gòu)體變量的定義和初始化 定義所需要的結(jié)構(gòu)體類型之后,利用所定義的類型可以進(jìn)一步定義簡單結(jié)構(gòu)體變量、結(jié)構(gòu)體數(shù)組、指向結(jié)構(gòu)體變量或數(shù)組的指針等。 結(jié)構(gòu)體類型變量的定義有三種形式 : ( 1)緊跟在結(jié)構(gòu)體類型定義之后進(jìn)行定義。 ( 2)在定義一個無名結(jié)構(gòu)體類型的同時,直接進(jìn) 行結(jié)構(gòu)體變量的定義。 ( 3)先定義結(jié)構(gòu)體類型,再單獨定義變量。 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 ( 1)緊跟在結(jié)構(gòu)體類型定義之后進(jìn)行定義。 例如,定義某班級學(xué)生結(jié)構(gòu)體類型和變量: struct score { char grade[20]。 /*班級 */ long number。 /*學(xué)號 */ char name[20]。 /*姓名 */ float os。 /*操作系統(tǒng) */ float datastru。 /*數(shù)據(jù)結(jié)構(gòu) */ float p。 /*計算機網(wǎng)絡(luò) */ }std。 /*定義某班級學(xué)生結(jié)構(gòu)體類型 score和結(jié)構(gòu)體變量 std*/ 第 7章 結(jié)構(gòu)體、聯(lián)合及用戶自定義類型 ( 2)在定義一個無名結(jié)構(gòu)體類型的同時,直接進(jìn)行結(jié)構(gòu)體變量的定義。 例如: struct { char grade[20]。 /*班級 */ long number。 /*學(xué)號 */ char name[20]。 /*姓名 */ float os。 /*操作系統(tǒng) */ float datastru。 /*數(shù)據(jù)結(jié)構(gòu) */ float p。 /*計算機網(wǎng)絡(luò) */ }std。 /*定義某班級學(xué)生結(jié)構(gòu)體類型和結(jié)構(gòu)體
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1