2011年3月26日 星期六

EX05結構練習

修改程式範例: Ch2-3-3.c  Ch2-3-3e.c
1.struct test 增加1項成員:
n會計分數 int accounting  
2.使用新型態變數宣告, 增加宣告學生結構變數 john, 且指定數值


2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/* 程式範例: Ch2-3-3e.c */
#include <stdio.h>
#include <stdlib.h>

/* 主程式 */ 
int main() {
struct test
{                              /* 宣告結構 */
   int math;
   int english;
   int computer;
   int accounting;  
};

   typedef struct test score;  /* 定義新型態 */
   score joe, jane, john;      /* 使用新型態變數宣告 */
   
   joe.math = 80;              /* 指定成員變數 */ 
   joe.english = 85;
   joe.computer = 83;
   joe.accounting= 83;
      
   jane.math = 78;             /* 指定成員變數 */ 
   jane.english = 65;
   jane.computer = 55;
   jane.accounting = 55;
   
   john.math = 88;             /* 指定成員變數 */ 
   john.english = 98;
   john.computer = 85;
   john.accounting = 95;
   
   /* 顯示成績 */
   printf("姓名: Joe\n");
   printf("數學: %d\n", joe.math);
   printf("英文: %d\n", joe.english);
   printf("數學: %d\n", joe.computer);
   printf("會計: %d\n", joe.accounting);
   printf("=================\n");
   
   printf("姓名: Jane\n");
   printf("數學: %d\n", jane.math);
   printf("英文: %d\n", jane.english);
   printf("數學: %d\n", jane.computer);
   printf("會計: %d\n", jane.accounting);
   printf("=================\n");
   
   printf("姓名: John\n");
   printf("數學: %d\n", john.math);
   printf("英文: %d\n", john.english);
   printf("數學: %d\n", john.computer);
   printf("會計: %d\n", john.accounting);
      
   system("PAUSE");
   return 0;  
}
執行結果:
姓名: Joe
數學: 80
英文: 85
數學: 83
會計: 83
=================
姓名: Jane
數學: 78
英文: 65
數學: 55
會計: 55
=================
姓名: John
數學: 88
英文: 98
數學: 85
會計: 95
請按任意鍵繼續 . . .

EX04結構練習

修改程式範例: Ch2-3-1.c Ch2-3-1e.c
1.struct student 增加2項成員:
n班級         char Class[10]  
n會計分數  int accounting  
2.增加宣告學生結構變數 std4,且用指定值的方式
3.total增列會計分數



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* 程式範例: Ch2-3-1e.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct student 
{                               /* 學生資料 */
    char Class[10];
    int id;  
    char name[20];    
    int math;
    int english;
    int computer;
    int accounting;
};
/* 主程式 */ 
int main() 
{
   struct student std1;         /* 宣告結構變數 */
   struct student std2 = {"資一1" ,2, "江小魚", 45, 78, 66, 80};
   struct student std3;
   struct student std4;
   int total; 
   
   strcpy(std1.Class,"資一1"); 
   std1.id = 1;                 /* 指定結構變數的值 */
   strcpy(std1.name, "陳會安");
   std1.math = 78;
   std1.english = 65;
   std1.computer = 90;
   std1.accounting = 60;
   std3 = std2;                 /* 指定敘述 */ 
   
   strcpy(std4.Class,"資一1"); 
   std4.id = 4;                 /* 指定結構變數的值 */
   strcpy(std4.name, "林琦閔");
   std4.math = 90;
   std4.english = 90;
   std4.computer = 95;
   std4.accounting = 95;
    
   /* 顯示學生資料 */
   printf("班級: %s\n", std1.Class);
   printf("學號: %d\n", std1.id);
   printf("姓名: %s\n", std1.name);
   total = std1.math + std1.english + std1.computer + std1.accounting;
   printf("成績總分: %d\n", total);
   printf("=================\n"); 
   
   printf("班級: %s\n", std2.Class);
   printf("學號: %d\n", std2.id);
   printf("姓名: %s\n", std2.name);
   total = std2.math + std2.english + std2.computer + std2.accounting;
   printf("成績總分: %d\n", total);
   printf("=================\n"); 
   
   printf("班級: %s\n", std3.Class);
   printf("學號: %d\n", std3.id);
   printf("姓名: %s\n", std3.name);
   total = std3.math + std3.english + std3.computer + std3.accounting;
   printf("成績總分: %d\n", total);
   printf("=================\n");  
   
   printf("班級: %s\n", std4.Class); 
   printf("學號: %d\n", std4.id);
   printf("姓名: %s\n", std4.name);
   total = std4.math + std4.english + std4.computer + std4.accounting;
   printf("成績總分: %d\n", total);
      
   system("PAUSE");
   return 0; 
}


執行結果:
班級: 資一1
學號: 1
姓名: 陳會安
成績總分: 293
=================
班級: 資一1
學號: 2
姓名: 江小魚
成績總分: 269
=================
班級: 資一1
學號: 2
姓名: 江小魚
成績總分: 269
=================
班級: 資一1
學號: 4
姓名: 林琦閔
成績總分: 370
請按任意鍵繼續 . . .

Ex06結構練習

 
 
 
 
 
 
 
 
 
 
 
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
修改程式範例: Ch2-3-4.c 為Ch2-3-4e.c 
1.增加電話結構的宣告 
struct phone /* phone結構 */ 
{ 
char phone1[10];
char phone2[12];
};
2.將 struct student 增加phone結構成員: 
struct phone callno;
3.指定std1 及 std2 的值
 
 
/* 程式範例: Ch2-3-4e.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h> 

    struct test                    /* 考試成績的結構 */ 
{
    int math;
    int english;
    int computer;
};

    struct phone                   /* phone結構 */                       
{
    char phone1[10];
    char phone2[12];
};

    struct student                 /* 學生資料的結構 */ 
{
    int id;
    char name[20];
    struct test score;             /* 結構變數 */ 
    struct phone callno;
};

/* 主程式 */ 
int main() {
   /* 結構變數的宣告 */
   struct student std1;
   struct student std2 = {2, "江小魚", {45, 78, 66},{"23375698","0926154277"}};
   int total;

   std1.id = 1;               /* 指定結構變數的值 */ 
   strcpy(std1.name, "陳會安");
   std1.score.math = 78;
   std1.score.english = 65;
   std1.score.computer = 90;
   strcpy(std1.callno.phone1,"23367894");
   strcpy(std1.callno.phone2,"0926154867");
   
   /* 顯示學生資料 */
   printf("學號: %d\n", std1.id);
   printf("姓名: %s\n", std1.name);
   printf("聯絡電話: %s\n", std1.callno.phone1); 
   printf("手機號話: %s\n", std1.callno.phone2);  
   total = std1.score.math + std1.score.english + std1.score.computer;
   printf("成績總分: %d\n", total);
   printf("====================\n"); 
   
   printf("學號: %d\n", std2.id);
   printf("姓名: %s\n", std2.name);
   printf("聯絡電話: %s\n", std2.callno.phone1);
   printf("手機號話: %s\n", std2.callno.phone2);   
   total = std2.score.math + std2.score.english + std2.score.computer;
           
   printf("成績總分: %d\n", total);
   system("PAUSE");
   return 0;  
}
執行結果:
學號: 1
姓名: 陳會安
聯絡電話: 23367894
手機號話: 0926154867
成績總分: 233
====================
學號: 2
姓名: 江小魚
聯絡電話: 23375698
手機號話: 0926154277
成績總分: 189
請按任意鍵繼續 . . .

2011年3月19日 星期六

EX03陣列程式

修改程式範例: Ch2-1-2.c Ch2-1-2e.c
1.增加成績對調的功能
2.於選單增加成績對調選項
3.詢問欲對調成績的學生學號
4.將輸入的學生學號對應的成績執行對調
   對調方式:temp=scores[std1];
scores[std1]=scores[std2];
scores[std2]=temp;




       #include <stdio.h>
#include <stdlib.h>
/* 主程式 */
int main()   
{  /* 學生成績陣列 */ 
   int scores[11] = {0,76,85,90,67,59,79,82,95,91,65};
   int num,num1;        /* 學號 */
   int grade;           /* 成績 */
   int i, choice;       /* 選項 */ 
   int temp;            /* 暫時(對調) */     
   int doit = 1;
   /* 執行操作的主迴圈 */
   while ( doit ) 
   {
      printf("----選單----\n"); 
      printf("1: 查詢成績\n");
      printf("2: 修改成績\n");      
      printf("3: 顯示成績\n");
      printf("4: 成績對調\n");
      printf("5: 離開作業\n");
      printf("請輸入選項( 1 到 5 ). ==> ");
      scanf("%d", &choice); 
      if (choice < 3 ) 
     {
      printf("請輸入學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num);            /* 讀入學號 */
     }  
      switch( choice ) 
     {
      case 1:  /* 查詢成績 */
      grade = scores[num];       /* 取得成績 */
      printf("學生成績: %d\n", grade);
      break;
      case 2:  /* 修改成績 */
      grade = scores[num];
      printf("原來學生成績: %d\n", grade);
      printf("輸入新成績. ==> ");/* 讀取新成績 */
      scanf("%d", &grade);
      scores[num] = grade;       /* 更新成績 */
      break;
      case 3:  /* 顯示成績 */
      printf("學生成績: \n");
      for ( i = 1; i <= 10; i++ )
      printf("%d:%d ", i, scores[i]);
      printf("\n");
      break; 
      case 4:  /* 成績對調 */
      printf("請輸入第1位學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num);         /* 讀入第1位學生學號 */
      printf("請輸入第2位學生學號( 1 到 10 ). ==> ");
      scanf("%d", &num1);        /* 讀入第2位學生學號 */
      temp = scores[num];  
      scores[num] = scores[num1];
      scores[num1] = temp;
      break;        
      case 5:  /* 結束作業 */ 
      doit = 0;
      break; 
     }  
     }      
      system("PAUSE");
      return 0; 
     }

2011年3月3日 星期四

資料結構-學習上的期望與建議

1.     個人對於資訊相關課程之學習經驗與問題分析.
(Ex.曾學習過之相關電腦文書處理、程式語言、網路等;較有心得及較無心得之科目,請分析一下原因?)

程式語言只有學過c++但並不是很懂因為以前沒有學過只是上課有學到上班也沒接觸過所以有一點不是很好理解。





2.     個人對本課程學習上的想法、期望、與建議.
Ex.如上課方式、教材內容等)
希望上課所學到的課程在以後工作上可以有用到的機會。