main 部分
//
// main.m
// First test
// Created by lanou3g on 15/6/26.
// Copyright (c) 2015年 wangjiafu. All rights reserved.
#import <Foundation/Foundation.h>
#import "Teacher.h"
int main(int argc, const char * argv[]) {
Teacher tea[] = {
{"tb", 'm', 25, 7, 80.6},
{"ta", 'w', 24, 6, 75.5},
{"tc", 'm', 27, 9, 90.4},
{"td", 'w', 26, 8, 69.3},
{"te", 'm', 22, 5, 96.5}
};
int count = sizeof(tea)/sizeof(tea[0]);
printf("輸入1:實作姓名升序排列\n");
printf("輸入2:實作姓名降序排列\n");
printf("輸入3:實作工作編号升序排列\n");
printf("輸入4:實作工作編号降序排列\n");
printf("輸入5:實作評分升序排列\n");
printf("輸入6:實作評分降序排列\n");
printf("輸入7:實作輸出所有女教師\n");
printf("輸入1:實作所有男教師\n");
printf("=========================\n");
printf("請輸入對應功能的數字:");
enum functionName c = 1;
scanf("%d",&c);
while (c < 1 || c > 8) {
printf("請輸入有效數字");
scanf("%d",&c);
}
switch (c) {
case 1:
softTeachers(tea, count, CompareName1);
break;
case 2:
softTeachers(tea, count, CompareName2);
case 3:
softTeachers(tea, count, CompareNumber1);
case 4:
softTeachers(tea, count, CompareNumber2);
case 5:
softTeachers(tea, count, ComparScore1);
case 6:
softTeachers(tea, count, CompareScore2);
case 7:
printFemale(tea, count);
case 8:
printMale(tea, count);
default:
return 0;
}
.h 部分
typedef struct teacher{
char name[20];
char gender;
int age;
int number;
float score;
}Teacher;
enum functionName{
CompareNameByAscending = 1,
CompareNameByDesscending,
CompareNumberByAscending,
CompareNumberByDescending,
CompareScoreByScenging,
CompareScoreByDescending,
PrinterFemaleTeacher,
PrinterMaleTeacher,
};
typedef BOOL (*compare)(Teacher teacher1, Teacher teacher2);
void softTeachers(Teacher teacher[],int count,compare cfp);
void printTeachers(Teacher *teacher,int count);
BOOL CompareName1(Teacher teacher1,Teacher teacher2);
BOOL CompareName2(Teacher teacher1,Teacher teacher2);
BOOL CompareNumber1(Teacher teacher1, Teacher teacher2);
BOOL CompareNumber2(Teacher teacher1, Teacher teacher2);
BOOL ComparScore1(Teacher teacher1, Teacher Teacher2);
BOOL CompareScore2(Teacher teacher1, Teacher teacher2);
void printMale(Teacher *teacher,int count);
void printFemale(Teacher *teacher, int count);
.m部分