| 
 | 
 
 
发表于 2014-2-19 12:52:44
|
显示全部楼层
 
 
 
这是个体力活好不好(你没有给出DISPLAY函数我自己加的,你可以自己改掉),以下程序已经编译完成 
 
 
#include <stdio.h>         /*控制台I/O的头文件*/ 
#include <string.h>        /*字符串的头文件*/ 
#include <stdlib.h>        /*exit函数的头文件*/ 
#define M 20               /*定义最多好可录入的单位数*/ 
#define N 100              /*定义最多可录入的会员数*/ 
int Interface(char (*x)[20], int n);                      /*操作界面函数*/ 
 
int Search(char (*x)[20], char (*y)[20], char (*z)[20], char *person, int n)  ;        /*信息检索函数*/ 
 
int AddList(int start, char Unit[][20], char Nanme[][20], char Number[][20], int Parameter[][50]);     /*添加信息函数*/ 
 
void Display(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int start, int end);     /*显示信息函数*/ 
 
void SwapChar(char *x, char *y);       /*字符互换函数*/ 
 
void SwapInt(int *x, int *y);         /*整型互换函数*/ 
 
void Sort(char (*x)[20],char (*y)[20],char (*z)[20],int Parameter[][50],int n);       /*按姓名排序函数*/ 
 
          
 
int FindStaff(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50],int n);         /*信息查找函数*/ 
 
void Modify(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50],int n);       /*信息修改函数*/ 
 
int Delete(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50],int n);       /*信息删除函数*/ 
 
 
 
char password[8]="79260497";             /*设置系统管理员密码*/ 
 
 
/*************************************************************************\ 
                                  主函数 
\*************************************************************************/ 
 
void main() 
{ 
        char Unit[M][20]; 
 
        char Number[N][20]; 
 
        char Name[N][20]; 
 
        int Parameter[N][50]; 
 
        int select; 
 
        int n=0; 
 
        char mainName[][20]={"添加信息","显示信息","按姓名排序","按姓名检索","修改信息","删除信息"}; 
 
/***************************系统密码管理*******************************/ 
 
    int flag; 
 
        char choice; 
 
        char s[8]; 
 
        int dlag=0; 
 
        int w=3; 
        do 
        { 
                printf("请输入管理员密码:\n"); 
 
                scanf("%s",s); 
 
                if(strcmp(s,password)) 
                { 
 
                        printf("PASS\n\n\n"); 
 
                        flag=1; 
 
                        break; 
                } 
                else 
                { 
                        printf("密码错误,请重新输入:\n"); 
 
                        w--; 
                } 
        } 
        while(w > 0); 
 
        if(!flag) 
        { 
                printf("你已连续三次输入错误,请确认后再使用本系统,谢谢!"); 
                 
                exit(0); 
        } 
        system("cls"); 
 
/*****************************欢迎界面***********************************/ 
 
        printf("~~~~~~~~~~~~~~~~~~~~~~~~\t\t\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~"); 
 
        printf("\t\t欢迎进入极限俱乐部会员管理信息系统\n"); 
 
        printf("\n%%%%%%%%%%%%%%%%%%%%%%%\t\t\t\t\t%%%%%%%%%%%%%%%%%%%%%%%%%"); 
 
        printf("\n\n\n\n"); 
 
        printf("单位:北京极限俱乐部\n"); 
 
        printf("地址:北京西城区四环\n"); 
 
        printf("会员热线:010--66886688"); 
 
        printf("\n\n\n\n"); 
 
        printf("============================\t\t============================\n"); 
 
        printf("本系统由天地人和软件有限公司开发"); 
         
        printf("作者:天天\n"); 
 
        printf("地址:北京海淀区学院路\n"); 
 
        printf("=============================\t\t============================\n"); 
         
        printf("\n\n"); 
 
        printf("\t\t请任意输入一个值并回车进入系统\n"); 
 
        scanf("%s",&choice); 
 
        if(choice=='\n'||choice=='n') 
        { 
                exit(1); 
        } 
 
/************************************欢迎界面结束*********************************/ 
 
 
        system("cls"); 
 
        do 
        { 
                select=Interface(mainName,6); 
 
                switch(select) 
                { 
 
case 0: n=AddList(n, Unit, Number, Name, Parameter); break; 
 
case 1: Display(Unit, Number, Name, Parameter, 0, n-1); break; 
 
case 2:        Sort(Unit, Number, Name, Parameter, n); break; 
 
case 3: FindStaff(Unit, Number, Name, Parameter, n); break; 
 
case 4: Modify(Unit, Number, Name, Parameter, n); break; 
 
case 5: n=Delete(Unit, Number, Name, Parameter, n); break; 
                } 
        } 
         
        while(select >= 0&&select <= 5); 
 
         
 
} 
 
 
/*****************************************************************************************\ 
                                       操作界面函数 
\*****************************************************************************************/ 
 
int Search(char (*x)[20], char (*y)[20], char (*z)[20], char *person, int n)        
{ 
        int i; 
 
        for(i=0; i < n; i++) 
                if(!strcmp(z[i], person)) 
 
                        return i; 
 
} 
 
int Interface(char (*x)[20], int n) 
 
{ 
        int i=0; 
 
int j; 
 
printf("\n%%%%%%%%%%%%%%%%%%%%%%%%%%%%%极限俱乐部会员信息系统%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); 
 
do 
{ 
        for(j=0; j < n; j++) 
        { 
                printf("%2d.%s\n",j+1,x[j]); 
        } 
 
        printf("%2d.返回并退出\n",j++); 
 
        printf("请从上述选项中选择:\n"); 
 
        scanf("%d",&i); 
 
} 
while(i < 0 || i > n+1); 
 
return (i-1); 
 
} 
 
 
/*********************************************************************************************\ 
                                     添加信息函数 
\*********************************************************************************************/ 
 
 
int AddList(int start, char Unit[][20], char Number[][20], char Name[][20], int Parameter[][50]) 
{ 
        system("cls"); 
 
        int i, n; 
 
        for(n=start; n < N; n++) 
        { 
                printf("\n请输入单位(按e键返回):\n"); 
 
                scanf("%s",Unit[n]); 
 
                if(strcmp(Unit[n],"e")==0 )break; 
 
                printf("\n请输入会员编号:\n"); 
 
                scanf("%s",&Number[n]); 
 
                printf("请输入会员姓名:\n"); 
 
                scanf("%s",&Name[n]); 
 
                for(i=0; i<5; i++) 
                { 
                        printf("生理指标[%d]=",i++); 
 
                        scanf("%d",&Parameter[n][i]); 
 
 
                } 
 
        } 
        return n; 
} 
 
/***************************************************************************************\ 
                                   字符串互换函数 
\***************************************************************************************/ 
 
 
void SwapChar(char *x, char *y) 
{ 
        char temp[20]; 
 
        strcpy(temp,x); 
 
        strcpy(x, y); 
 
        strcpy(y, temp); 
 
} 
 
 
/**************************************************************************************\ 
                                整型互换函数 
\**************************************************************************************/ 
 
void SwapInt(int *x, int *y) 
 
{ 
        int p; 
 
        p=*x; 
 
        *x=*y; 
 
        *y=p; 
} 
 
 
/*****************************************************************************************\ 
                                 按姓名字典排序函数 
\*****************************************************************************************/ 
 
 
void Sort(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int n) 
{ 
        int i, k, j; 
 
        for(i=0; i <= n-1; i++) 
        { 
                k=1; 
 
                for(j=j+1; j < n; j++) 
                 
                        if(strcmp(z[k], z[j]) > 0); 
                         
                                k=j; 
                                if(i!=k) 
                                { 
                                        SwapChar(x[k], z[j]); 
 
                                        SwapChar(y[k], y[i]); 
 
                                        SwapChar(z[k], z[i]); 
 
                                        for(j=0; j<5; j++) 
                                         
                                                SwapInt(&Parameter[k][j], &Parameter[i][j]); 
 
                                } 
        } 
 
 
        printf("\n按姓名排序已完!\n"); 
 
} 
 
 
/*******************************************************************************************\ 
                                  显示信息函数,为下一函数的中间调用 
\*******************************************************************************************/ 
 
 
 
 
 
/******************************************************************************************\ 
                                  显示信息函数 
\******************************************************************************************/ 
 
 
int FindStaff(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int n) 
{ 
       
           
        system("cls"); 
 
        int i; 
         
         
        char str[20]; 
 
        printf("\n请输入要检索的会员姓名:"); 
 
        scanf("%s",str); 
         
        i=Search(x, y, z, str, n); 
         
        if(i==-1) 
 
                printf("没有关于%s的记录,请确认输入后再次输入!\n",str); 
 
        else 
 
          Display(x, y, z, Parameter, i,n); 
 
        getchar(); 
 
        return i; 
} 
 
/*********************************************************************************************\ 
                                 信息修改函数 
\*********************************************************************************************/ 
 
 
void Modify(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int n) 
{ 
        int i, j; 
 
        i=FindStaff(x, y, z, Parameter, n); 
 
        if(i >= 0) 
        { 
                printf("请输入修改后的会员信息:\n"); 
 
                printf("\n请输入单位\n"); 
 
                scanf("%s", x[i]); 
 
                printf("\n请输入会员编号\n"); 
 
                scanf("%s",y[i]); 
 
                for(j=0; j<5; j++) 
                { 
                        printf("生理指标[%d]=",j+1); 
 
                        scanf("%d",&Parameter[i][j]); 
 
                } 
 
                printf("\n修改已完成\n"); 
        } 
 
} 
 
 
/**********************************************************************************************\ 
                                     信息删除函数 
\**********************************************************************************************/ 
 
int Delete(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int n) 
{ 
        int i, j; 
 
        i=FindStaff(x, y, z, Parameter, n); 
 
        if(i >= 0) 
        { 
                strcpy(x[i], x[n-1]); 
                         
                strcpy(y[i], y[n-1]); 
                         
                strcpy(z[i], z[n-1]); 
 
                for(j=0; j<5; j++) 
 
                        Parameter[i][j]=Parameter[n-1][j]; 
 
                n=n-1; 
                printf("\n已删除所选会员信息!\n"); 
 
                 
 
        } 
 
        return n; 
 
} 
 
 
void Display(char (*x)[20], char (*y)[20], char (*z)[20], int Parameter[][50], int start, int end) 
{ 
 
  printf("%s\n",x);printf("%s\n",y);printf("%s\n",z);printf("%d\n",Parameter); 
 
 
} 
 
 |   
 
 
 
 |