




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、C語言程序設計清華大學出版社項目7 學生成績管理系統(tǒng)4.X本章學習目標掌握結構體數據類型的定義掌握結構體類型變量的定義、引用及初始化掌握結構體類型數組的定義、引用及初始化理解并掌握結構體數組編程項目7:學生成績管理系統(tǒng)4.X學生成績管理系統(tǒng)V4.X功能描述學生成績管理系統(tǒng)V4.X : 學生成績管理系統(tǒng)V4.X,采用結構體數據類型,存儲、管理學生學號、姓名、成績等相關信息,利用函數實現學生信息的輸入、計算總成績和平均成績、輸出、修改、查詢、排序功能。 7.1學生成績管理系統(tǒng)V4.07.1.1 定義結構體類型結構體是派生類型的一種自定義類型,遵循先定義后使用的規(guī)則。定義結構體類型的格式:struc
2、t 結構體名 數據類型1 成員1; 數據類型2 成員2; . 數據類型n 成員n; 7.1學生成績管理系統(tǒng)V4.07.1.1 定義結構體類型說明:(1) struct 是定義結構體的關鍵字,結構體名遵循標識符命名規(guī)則。(2) 結構體有若干數據成員,用 括起來。數據成員格式:數據類型 成員名;。數據成員可以是基本類型,也可以是派生類型,比如數組、結構體。(3) 定義結構體類型,就是定義了一種數據類型,與先前所學的int、float一樣,只是結構體類型是一種復雜的數據類型,是基本數據類型的組合。 7.1學生成績管理系統(tǒng)V4.0 7.1.2定義結構體類型變量1. 先定義結構體類型,再定義變量例如:s
3、truct student /*定義結構體類型struct student*/ int num; char name20; int age; float score; char addr40; ; 分號不能少!struct student student1,student2 ; 7.1學生成績管理系統(tǒng)V4.0 7.1.2定義結構體類型變量2. 定義結構體類型的同時定義結構體變量例如:struct student int num; char name20; int age; float score; char addr30; student1,student2; 說明:定義struct stud
4、ent結構體類型變量student1,student2,與上面方法等價。結構體變量所占的存儲空間是其各個成員所占存儲空間的總和。7.1學生成績管理系統(tǒng)V4.07.1.3結構體變量的引用在定義結構體變量以后,不能直接引用變量,而是引用該變量的成員,格式如下:結構體變量名.成員名 說明:(1) “.” 稱為成員運算符,在所有運算符中優(yōu)先級最高,與圓括號( )是一個級別。(2) 不允許將結構體變量整體輸入和輸出,只能對結構體變量中的各個成員分別進行輸入、輸出和運算。例如:scanf(%d%s,&student1.num,); printf(%d,%s,student1.nu
5、m,); student1.num =11303; student1.age+; (3) 同一種類型的結構體變量之間可以直接賦值。例如:student2=student1; 7.1學生成績管理系統(tǒng)V4.07.1.14結構體變量的賦值1結構體變量的初始化結構體變量的初始化是指在定義結構體變量時即賦初值。例如:struct student int num; char name20; char sex; int age; float score; char addr30; student1=20050201,zhangqiang,M,18,456,Jining guangh
6、e 13; 7.1學生成績管理系統(tǒng)V4.07.1.14結構體變量的賦值1結構體變量的初始化說明:變量后面的一組數據用 括起來,其順序要與結構體中的數據成員類型、順序保持一致。初始化后,student1.num的值是20050201,student1.age的值是18。 7.1學生成績管理系統(tǒng)V4.07.1.14結構體變量的賦值2用scanf( )函數給結構體變量的成員賦值。例如:scanf(%d%s%d%f%s, &student1.num, , &student1.age,&student1.score,student1.addr); 7.1學生成績管理系統(tǒng)V4.0
7、7.1.14結構體變量的賦值【示例7-1】使用結構體類型變量存儲學生學號、姓名、入學成績,并輸出。#include int main() struct student int num; char name20; float score; char addr30; student1=20130101,張琳,356, 山東;/*初始化*/printf(=n);printf(學號tt姓名t入學總成績t地址n);printf(n%dt%st%.1ftt%sn,student1.num,,student1.score,student1.addr);printf(=n);retu
8、rn 0; 7.1學生成績管理系統(tǒng)V4.07.1.14結構體變量的賦值【示例7-1】使用結構體類型變量存儲學生學號、姓名、入學成績,并輸出。#include int main() struct student int num; char name20; float score; char addr30; student1=20130101,張琳,356, 山東;/*初始化*/printf(=n);printf(學號tt姓名t入學總成績t地址n);printf(n%dt%st%.1ftt%sn,student1.num,,student1.score,student1.
9、addr);printf(=n);return 0; 7.1學生成績管理系統(tǒng)V4.07.1.14結構體變量的賦值運行結果:7.1學生成績管理系統(tǒng)V4.07.1.5學生成績管理系統(tǒng)V4.0設計1. 明確功能學生成績管理系統(tǒng)V4.0功能:使用結構體類型及變量,實現學生學號、姓名和入學總成績等信息的輸入和輸出(以2個學生為例)。2. 分析問題定義struct student結構體類型,包括學號、姓名、成績三個數據成員。結構體定義如下:struct student int num; char name20; float score; 7.1學生成績管理系統(tǒng)V4.07.1.5學生成績管理系統(tǒng)V4.0設計
10、3. 邏輯設計學生成績管理系統(tǒng)4.0偽代碼:開始:main函數 定義struct student 結構體類型 定義2個struct student類型變量 輸入兩個學生信息 輸出兩個學生信息結束7.1學生成績管理系統(tǒng)V4.07.1.5學生成績管理系統(tǒng)V4.0設計1.編寫代碼#include struct student int num; char name20; float score; student1,student2; int main() printf(請輸入2個學生的學號、姓名、入學總成績:n); scanf(%d%s%f,&student1.num,,&s
11、tudent1.score); scanf(%d%s%f,&student2.num,,&student2.score); printf(=n); printf(學號 姓名 入學總成績:n); printf(n%d%6s%12.1fn,student1.num,,student1.score); printf(n%d%6s%12.1fn,student2.num,,student2.score);printf(=n);return 0;7.1學生成績管理系統(tǒng)V4.07.1.5學生成績管理系統(tǒng)V4.0設計5. 輸入、保
12、存程序程序輸入,要保存后,再運行。6. 運行、調試程序運行程序,如果出錯,檢查程序,修改錯誤,并重新運行。運行結果:7.2學生成績管理系統(tǒng)V結構體數組 結構體數組是指數組的類型為結構體類型,即數組的每個元素都是該結構體類型的變量。 定義結構體數組和定義結構體變量的方法相同。結構體數組的初始化和結構體變量的初始化方法相同,只是每個結構體數組元素的初始化值 “”括起來。7.2學生成績管理系統(tǒng)V結構體數組 1先定義結構體,再定義數組。例如:利用結構體數組來保存3個學生的信息。struct student int num; char name20; int age; f
13、loat score; char addr30; ;struct student stu3= 20050201,“zhangqiang”,18,56, “Jining”,20050202, “l(fā)iling”, 19,86, “qufu”,20050203, “wanglei ”,18,73, “Jining ”;定義了結構體數組后,可以采用“數組元素.成員名”引用結構體數組某個元素的成員。7.2學生成績管理系統(tǒng)V結構體數組 2定義結構體的同時定義數組例如:利用結構體數組來保存3個學生的信息。 struct student int num; char name20; int ag
14、e; float score; char addr30; stu3= 20050201,zhangqiang,18,456, Jining,20050202, liling,19,406, qufu,20050203, wanglei ,18,503, Jining ; 18,73, “Jining ”;7.2學生成績管理系統(tǒng)V結構體數組 【示例7-2】候選人得票統(tǒng)計程序。每次輸入一個得票的候選人的名字,票數加1。要求最后輸出各人的得票數(以3個候選人為例)。#include #include Struct candi char name20; int count; /*得票數
15、用count來計數*/leader3=wang,0,liu,0,song,0;int main() int i,j; char name20; 7.2學生成績管理系統(tǒng)V結構體數組 for(i=0;i10;i+) /*假設總共十人投票*/ scanf(%s,name);/*輸入姓名*/ for(j=0;j3;j+) if(strcmp(name,)=0)leaderj.count+; printf(n姓名 票數n); for(j=0;j3;j+) printf(%-5s%5dn,,leaderj.count);/%-5s表示輸出le
16、計票姓名時,按字符串格式輸出/寬度占5列,- 控制姓名字符串左對齊,右補空格return 0; 7.2學生成績管理系統(tǒng)V結構體數組【示例7-3】使用結構體數組,存儲學生學號、姓名和三門課程成績信息,利用函數實現學生信息的輸入、輸出(以3個學生為例)。#include #include #define N 3void input();void display();struct student int num; char name20; float score3;/*分別存放三門課程的成績*/;struct student stuN;7.2學生成績管理系統(tǒng)V4.
17、17.2.1結構體數組void input() /*輸入函數*/ int i,j; printf(請輸入學生學號、姓名、英語成績、數學成績、C語言成績:n); for(i=0;iN;i+) scanf(%d%s%,&stui.num,); for(j=0;j3;j+) scanf(%f,&stui.scorej); void display()/*輸出函數*/ int i; printf( 學號 姓名 英語 數學 C語言n); for(i=0;iN;i+) printf( %d%7s%7.1f%7.1f%7.1f%n,stui.num, ,stui.scor
18、e0,stui.score1,stui.score2); 7.2學生成績管理系統(tǒng)V結構體數組int main() input(); display(); return 0;7.2學生成績管理系統(tǒng)V結構體數組【示例7-4】使用結構體數組,利用函數實現按學生學號和姓名的查詢操作。#include #include #define N 3void input();void display();void locatedata();struct student int num; char name20; float score3;/*分別存放三門課程的成績*/;7.2學生
19、成績管理系統(tǒng)V結構體數組struct student stuN;void input() /*輸入函數*/ int i,j; printf(請輸入學生學號、姓名、英語成績、數學成績、C語言成績:n); for(i=0;iN;i+) scanf(%d%s%,&stui.num,); for(j=0;j3;j+) scanf(%f,&stui.scorej); void display()/*輸出函數*/ int i; printf( 學號 姓名 英語 數學 C語言n); for(i=0;iN;i+) printf( %d%7s%7.1f%7.1f%7.1f%n,
20、stui.num, ,stui.score0,stui.score1,stui.score2); 7.2學生成績管理系統(tǒng)V結構體數組void locatedata() int i,select; int number; char name20; printf(1:按學號查詢 2:按姓名查詢:n); printf(請選擇1或者2:n); scanf(%d,&select); if(select=1) printf(請輸入要查找學生的學號:); scanf(%d,&number); for(i=0;i3;i+) if(number=stui.num) break;
21、 7.2學生成績管理系統(tǒng)V結構體數組else if (select=2) printf(請輸入要查找學生的姓名:); scanf(%s,name); for(i=0;i=0&iN) printf(第%d條記錄:n,i+1); printf(學號 姓名 英語 數學 C語言n); printf(%d%7s%7.1f%7.1f%7.1fn, stui.num, ,stui.score0,stui.score1, stui.score2); else printf(該學生信息不存在n);7.2學生成績管理系統(tǒng)V結構體數組int main() input
22、(); display(); locatedata(); return 0;7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計1. 明確功能學生成績管理系統(tǒng)V4.1版使用結構體數組,存儲學生學號、姓名、三門課程成績信息,利用函數實現學生信息的輸入、輸出、求總成績和平均成績以及按學生學號、姓名查詢功能。2. 分析問題學生成績管理系統(tǒng)V4.1利用結構體數組來實現,有4個操作選擇:輸入、輸出、統(tǒng)計總成績、平均成績和查詢。(1)輸入模塊:由輸入函數input ()實現,輸入若干同學的學號、姓名、三門課程成績信息。(2)輸出模塊:由輸出函數display()實現,輸出若干學生的學號、
23、姓名、成績信息。(3)統(tǒng)計模塊:由函數sum()實現,計算每位同學各科成績的總成績和平均成績。(4)查詢模塊:由函數locatedata()實現,根據學生學號或姓名查詢學生信息。7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計 3. 邏輯設計開始:main函數 調用manager()函數 調用operate()函數,輸出操作菜單 根據用戶輸入值1、2、3、4、0,依次 調用input函數輸入學生信息 調用display函數輸出學生信息 調用sum函數求總成績和平均成績 調用locatedata函數查詢符合條件的學生信息 輸出“謝謝使用,再見”信息 輸入值1或0,選擇是否繼
24、續(xù)使用學生成績管理系統(tǒng)V4.1 輸入1,繼續(xù)使用學生成績管理系統(tǒng)V4.1 輸入0,退出使用學生成績管理系統(tǒng)V4.1結束7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計 4. 編寫代碼#include #include #include #include #define N 3void input();void display();void sum();void locatedata();void operate();void manage();struct student int num; char name20; float score5;/*分別存放三門課程的成績、總
25、成績和平均成績*/;struct student stuN;7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計void input() /*輸入函數*/ int i,j;printf(請輸入學生學號、姓名、英語成績、數學成績、C語言成績:n);for(i=0;iN;i+) scanf(%d%s%,&stui.num,); for(j=0;j3;j+) scanf(%f,&stui.scorej); void display()/*輸出函數*/ int i; printf( 學號 姓名 英語 數學 C語言 總成績 平均成績n); for(i=0;iN;i+)
26、 printf( %d%7s%7.1f%7.1f%7.1f%8.1f%9.1fn,stui.num,,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4); 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計/*求每一位學生總成績及求平均成績函數*/void sum() int i,j;for(i=0;iN;i+) stui.score3=0;for(j=0;j3;j+) stui.score3+=stui.scorej; stui.score4=stui.score3/3; /*根據學號
27、或姓名查詢學生信息函數*/void locatedata() int i,select; int number; char name20; printf(1:按學號查詢 2:按姓名查詢:n); printf(請選擇1或者2:n); scanf(%d,&select); 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計if(select=1) printf(請輸入要查找學生的學號:); scanf(%d,&number); for(i=0;i3;i+) if(number=stui.num) break; else if (select=2) printf(請輸入要查找學生
28、的姓名:); scanf(%s,name); for(i=0;i=0&iN) printf(第%d條記錄:n,i+1); printf(學號 姓名 英語 數學 C語言 總成績 平均成績n);printf(%d%7s%7.1f%7.1f%7.1f%8.1f%9.1fn, stui.num, ,stui.score0,stui.score1, stui.score2,stui.score3,stui.score4); else printf(該學生信息不存在n); 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計void operate() printf(t
29、 歡迎進入學生成績管理系統(tǒng)V4.1n); printf(=n); printf(tt請你選擇操作類型:n); printf(tt1輸入學生信息n); printf(tt2顯示學生信息n); printf(tt3統(tǒng)計總成績、平均成績n); printf(tt4查詢學生信息 n); printf(tt0返回n); printf(=n); 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計void manage() int choicemanage; int choice=1; system(cls); while(choice) operate(); printf(請選擇:);
30、 scanf(%d,&choicemanage); switch(choicemanage) case 1:input();break; case 2:display();break; case 3:sum();display();break; case 4:locatedata();break; case 0:printf(謝謝使用 再見n);return; default:printf(輸入有誤,請重新輸入!n); 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計printf(是否繼續(xù)管理?(0/1); scanf(%d,&choice); system(cls);
31、if(!choice) /輸入0時 printf(操作完畢,按任意鍵返回n); getch(); return; 7.2學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.1設計printf(是否繼續(xù)管理?(0/1); scanf(%d,&choice); system(cls); if(!choice) /輸入0時 printf(操作完畢,按任意鍵返回n); getch(); return; int main() manage(); return 0; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計1. 明確功能學生成績管理系統(tǒng)V4.2:使用結構體數組,利用函數
32、實現學生信息的輸入、輸出、求總成績和平均成績、查詢、修改、刪除、排序、統(tǒng)計功能。2. 分析問題學生成績管理系統(tǒng)V4.2登錄主界面操作選擇界面輸入輸出查詢統(tǒng)計修改排序刪除7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計學生成績管理系統(tǒng)V4.2的操作步驟如下:(1) 按三次有效次數輸入系統(tǒng)登錄密碼,登錄“學生成績管理系統(tǒng)V4.2”。(2) 進入系統(tǒng)主界面,按提示選擇需要的操作:進入系統(tǒng)、退出系統(tǒng)。(3) 進入系統(tǒng)操作功能界面,具體實現以下操作: 輸入模塊:輸入學生的記錄,包括學號、姓名和三門課程成績。 輸出模塊:輸出學生的記錄,包括學號、姓名和三門課程成績(此時還沒有調用su
33、m函數,因此總成績和平均成績均顯示為0)。 統(tǒng)計模塊:計算并輸出每個學生學號、姓名、課程成績及總成績、平均成績。 查詢模塊:按學號、姓名查詢學生信息并輸出。 修改模塊:根據課程代碼,修改學生指定課程成績。 刪除模塊:先調用查詢函數查找到符合條件的學生,然后刪除。 排序模塊:按平均成績排序,輸出排序后的學生信息。 返回退出。(4) 輸入操作類型,分別調用相應函數模塊實現成績管理功能。7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計3. 邏輯設計 學生成績管理系統(tǒng)V4.2偽代碼開始:main函數 輸入密碼登陸到主用戶界面 選擇使用使用或是退出系統(tǒng) 當使用系統(tǒng)時 根據輸入值來選
34、擇 調用input函數輸入學生信息 調用display函數輸出學生信息 調用sum函數求總成績和平均成績 調用locatedata查詢符合條件的信息 調用update函數修改學生信息 調用deletedata函數刪除學生信息 調用sort函數按平均成績升序排序結束7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計4. 編寫代碼#include #include #include #include #define N 3int LEN;void inland();void manage();void input();void display();void update();v
35、oid sum();int locatedata();void sort();void deletedata();char password10=jsjteach; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計4. 編寫代碼struct student int num; char name20; float score5;struct student stuN;int main() char s12; int choice;int flag=0;int n=3;do printf(請輸入密碼:n);scanf(%s,s); 7.3學生成績管理系統(tǒng)V 學
36、生成績管理系統(tǒng)V4.2設計if(!strcmp(s,password)/*若密碼正確*/ printf(恭喜您 登陸成功!nn);flag=1;break; printf(輸入有誤,請重新輸入n);n-;while(n0);if(flag)do printf(按任意鍵繼續(xù)n);getch();system(cls);/*包含在頭文件stdlib.h中*/inland();scanf(%d,&choice); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計switch(choice)case 1:manage();break;case 0:printf(謝謝使用 再見!n
37、);if(choice=0)break;while(1);else printf(對不起,您的輸入次數已到!再見n);return 0; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計void inland() printf(n);printf(t 歡迎使用學生成績管理系統(tǒng)V4.2n);printf(n);printf(tt 請您選擇操作類型:n);printf(=n);printf(tt 1進入管理系統(tǒng)n);printf(tt 0退出管理系統(tǒng)n);printf(=n); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計void operate()
38、 printf(t 歡迎進入學生成績管理系統(tǒng)V4.2n);printf(=n);printf(tt請你選擇操作類型:n);printf(tt1輸入學生信息n);printf(tt2顯示學生信息n);printf(tt3統(tǒng)計總成績、平均成績n);printf(tt4查詢學生信息 n);printf(tt5修改學生成績n);printf(tt6刪除學生n);printf(tt7平均成績升序排序n);printf(tt0返回n);printf(=n); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計void manage() int choicemanage;int choi
39、ce=1;system(cls);while(choice) operate();printf(請選擇:);scanf(%d,&choicemanage);switch(choicemanage) case 1:input();break;case 2:display();break;case 3:sum();display();break;case 4:locatedata();break;case 5:update();break;/*修改完要更新總成績及平均成績*/case 6:deletedata();break;case 7:sort();break;case 0:printf(謝謝
40、使用 再見n);return; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計default:printf(輸入有誤,請重新輸入!n);printf(是否繼續(xù)管理?(0/1);scanf(%d,&choice);system(cls);if(!choice) printf(操作完畢,任意鍵返回n);getch();return; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計void input() int i,j;printf(請輸入學生學號、姓名、英語成績、數學成績、C語言成績:n);for(i=0;iN;i+) scanf(%d%s%,&s
41、tui.num,); for(j=0;j3;j+) scanf(%f,&stui.scorej); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計void display() int i; printf( 學號 姓名 英語 數學 C語言 總成績 平均成績n); for(i=0;iN;i+) printf( %d%7s%7.1f%7.1f%7.1f%8.1f%9.1fn,stui.num,,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4); 7.3學生成績管理系統(tǒng)V
42、 學生成績管理系統(tǒng)V4.2設計void update() int i,j; i=locatedata(); if(i=N) printf(查無此人);else printf(請選擇要修改成績代碼:n); printf(1英語成績 2數學成績 3C語言成績,請選擇數字1-3n); scanf(%d,&j); switch(j) case 1:printf(請輸入英語成績:);scanf(%f,&stui.score0);break; case 2:printf(請輸入數學成績:);scanf(%f,&stui.score1);break; case 3:printf(請輸入C語言
43、成績:);scanf(%f,&stui.score2);break; default:printf(請輸入1到3之間的數據n); sum();printf(修改成功!n);display(); int locatedata()/*在修改及刪除函數內需要定位記錄,因此需要有函數返回值*/ int i,select; int number; char name20; printf(1:按學號查詢 2:按姓名查詢:n); printf(請選擇1或者2:n); scanf(%d,&select); if(select=1) printf(請輸入要查找學生的學號:); scanf(%d,&number)
44、; for(i=0;i3;i+) if(number=stui.num) break; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計sum();printf(修改成功!n);display();void sum() int i,j; for(i=0;iN;i+) stui.score3=0;for(j=0;j3;j+) stui.score3+=stui.scorej; stui.score4=stui.score3/3; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計int locatedata()/*在修改及刪除函數內需要定位記錄,因此需要
45、有函數返回值*/ int i,select; int number; char name20; printf(1:按學號查詢 2:按姓名查詢:n); printf(請選擇1或者2:n); scanf(%d,&select); if(select=1) printf(請輸入要查找學生的學號:); scanf(%d,&number); for(i=0;i3;i+) if(number=stui.num) break; 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計 else if (select=2) printf(請輸入要查找學生的姓名:); scanf(%s,name)
46、; for(i=0;i=0&iN) printf(第%d條記錄:n,i+1); printf(學號 姓名 英語 數學 C語言 總成績 平均成績n); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計 void deletedata() /*刪除學生信息函數。先調用查找函數找到學生信息,然后刪除。*/ int i,j,m;LEN=N; i=locatedata(); for(j=i;jN-1;j+) stuj= stuj+1; LEN-;printf(刪除成功!剩余學生信息:n);printf(學號 姓名 英語 數學 C語言 總成績 平均成績n);for(i=0;iLEN;
47、i+) printf(%d%7s%7.1f%7.1f%7.1f%8.1f%9.1fn,stui.num, ,stui.score0,stui.score1,stui.score2,stui.score3,stui.score4); 7.3學生成績管理系統(tǒng)V 學生成績管理系統(tǒng)V4.2設計 void sort()/*按平均成績排序*/ int i,j;struct student t;for(j=0; jN-1; j+) /*起泡法排序n個數進行n-1輪*/ for (i=0; istui+1.score4 ) /*比較平均成績 */ t=stui; stui=s
48、tui+1; stui+1=t; /*交換記錄*/printf(排序成功!n);display(); /*輸出排序后的學生成績*/7.4 自學園地7.4.1 枚 舉 類 型枚舉類型是指將變量的值一一列舉出來,變量的值只限于列舉出來的值的范圍內。1. 聲明枚舉類型的格式enum 枚舉類型名 枚舉常量1,枚舉常量2,枚舉常量n ;2. 定義枚舉類型變量定義枚舉類型的同時定義變量:enum 枚舉類型名枚舉常量1,枚舉變量名;先定義類型后定義變量:enum 枚舉類型名 枚舉變量名;7.4 自學園地7.4.1 枚 舉 類 型說明:(1) enum是標識枚舉類型的關鍵詞,定義枚舉類型時用enum開頭。(2
49、) 枚舉常量是符號,由程序設計者自己指定,命名規(guī)則同標識符。使用枚舉常量,可以提高程序的可讀性。枚舉類型在可視化編程時常使用。(3) 枚舉元素在編譯時,按定義時的排列順序取值0,1,2,(類似整型常數)在定義枚舉類型時,可以給這些枚舉常量指定整型常數值(未指定值的枚舉常量的值是前一個枚舉常量的值加1)。7.4 自學園地7.4.1 枚 舉 類 型說明:(4) 枚舉元素是常量,不是變量,可以將枚舉元素賦值給枚舉變量,但是不能給枚舉常量賦值。(5) 枚舉常量不是字符串。(6) 枚舉變量、常量一般可以參與整數可以參與的運算,如算術/關系/賦值等運算。7.4 自學園地7.4.1 枚 舉 類 型【示例7-
50、5】編寫一款軟件,輸入今天是星期幾,計算并輸出指定n天后是星期幾。#includeint FindDayOf(enum WEEKDAY,int n); /*聲明FindDayOf函數*/enum WEEKDAYSun,Mon,Tue,Wed,Thu,Fri,Sat; /*定義枚舉類型WEEKDAY*/int main()enum WEEKDAY today; /*定義枚舉變量today*/int findday , n ;printf(n Please input today(06):);scanf(%d,&today);printf(n Please input day number:);7.4 自學園地7.4.1 枚 舉 類 型fi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- Unit 1 My school Part A Let's learn(教學設計)-2023-2024學年人教PEP版英語四年級下冊
- 砌磚質量合同范本
- 20 美麗的小興安嶺 第二課時 教學設計-2024-2025學年語文三年級上冊統(tǒng)編版
- 9 玩得真開心 (教學設計)-2023-2024學年道德與法治一年級上冊統(tǒng)編版
- 房屋全款購買合同范本
- 制作預案合同范本
- 5的乘法口訣(教學設計)- 2024-2025學年二年級上冊數學人教版
- 舊物交易合同范本
- 4 地球-我們的家園:《環(huán)境問題敲響了警鐘》 (教學設計)統(tǒng)編版道德與法治六年級下冊
- 2023-2024學年清華版(2012)信息技術三年級下冊第一單元《3課 妙筆生花-文本的修飾》教學設計
- 2024年河南鄭州二七區(qū)侯寨中心衛(wèi)生院招聘筆試真題
- 中國糖尿病防治指南+2024+解讀
- 數學-山東省天一大聯考齊魯名校教研共同體2024-2025學年(下)高三開學質量檢測聯考試題和答案
- 崗位職責心得體會(2篇)
- 2025年上海寶冶集團限公司招聘歷年高頻重點提升(共500題)附帶答案詳解
- GB/T 6822-2024船體防污防銹漆體系
- 電信網絡詐騙犯罪的特征、治理困境及對策建議
- 救護車掛靠私立醫(yī)院協(xié)議書(2篇)
- 《血透患教》課件
- app 購買合同范例
- 高二上學期物理(理科)期末試題(含答案)
本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。人人文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知人人文庫網,我們立即給予刪除!
- 川公網安備: 51019002004831號 | 備案號:蜀ICP備2022000484號-2 | 經營許可證: 川B2-20220663
-
Copyright ? 2020-2025 renrendoc.com 人人文庫版權所有 違法與不良信息舉報電話:400-852-1180
評論
0/150
提交評論