/*极限俱乐部会员信息系统* *说明:《极限俱乐部会员信息系统》基本信息包括单位、姓名、性别、年龄、身高、体重 六个基本信息,可以根据实际情况有所增减* #include "stdio. h" /*控制台IO的头文件* #include"string /*字符串函数的头文件* #include "stdlib. h" /*exiO函数的头文件* #define max 100 定义最多可以输入的会员数* int Inter face( char(*x)[20], int n) 操作界面* int Add(int start, struct staff*p) *增加会员数*/ void Display(struct staff*p, int start, int end) /*显示已存在的数据* void SortName(struct staff*p, int n) /*按姓名排序 yoid Sort Height( struct staff*p, int n); 按身高排序(由高到低) void Sort Weight( struct staff*p, int n); *按体重排序(由重到轻)* int Search(struct staff*p, char *t, int n); /*信息检索* int Find(struct staff"p, int n) /*信息查找* void Modify(struct staff*p, int n); /信息修改* int Delete(struct staff, int n) /*信息删除* void Swap(struct staff* pl, struct staff*p2); /*会员信息互换* void SaveFile(struct staff*p, int n /*文件存盘* char password 8=7654321 设置系统管理员密码* struct staff char unit[ 601 char name[201 char sex(201 Int we 主函数 **亲幸本孝**本本*本本***幸****本幸******幸/ struct staff sta( Max] /*定义结构数组* FILE *fp; *结构数组,即可输入的最大会员数,最大值为声明中预定义的 /*设置变量,以用于用户输入信息的接收,并将其作为转向函数的参数* int n=0 /整型变量* char pass[ 8 int flag=0 int w=3
/*极限俱乐部会员信息系统*/ /*说明:《极限俱乐部会员信息系统》基本信息包括单位、姓名、性别、年龄、身高、体重 六个基本信息,可以根据实际情况有所增减*/ #include "stdio.h" /*控制台 I/O 的头文件*/ #include "string.h" /*字符串函数的头文件*/ #include "stdlib.h" /*exit()函数的头文件*/ #define Max 100 /*定义最多可以输入的会员数*/ int Interface(char (*x)[20],int n); /*操作界面*/ int Add(int start, struct staff *p); /*增加会员数*/ void Display(struct staff *p, int start, int end); /*显示已存在的数据*/ void SortName(struct staff *p, int n); /*按姓名排序*/ void SortHeight(struct staff *p, int n); /*按身高排序(由高到低)*/ void SortWeight(struct staff *p, int n); /*按体重排序(由重到轻)*/ int Search (struct staff *p, char *t, int n); /*信息检索*/ int Find(struct staff *p, int n); /*信息查找*/ void Modify(struct staff *p, int n); /*信息修改*/ int Delete(struct staff *p, int n); /*信息删除*/ void Swap(struct staff *p1, struct staff *p2); /*会员信息互换*/ void SaveFile(struct staff *p,int n); /*文件存盘*/ char password[8]="7654321"; /*设置系统管理员密码*/ struct staff { char unit[60]; char name[20]; char sex[20]; int age; int height; int weight; }; /**********************************************************\ 主函数 \**********************************************************/ void main() { struct staff sta[Max]; /*定义结构数组*/ FILE *fp; /*结构数组,即可输入的最大会员数,最大值为声明中预定义的 Max*/ int s; /*设置变量,以用于用户输入信息的接收,并将其作为转向函数的参数*/ int n=0; /*整型变量*/ char choice; char pass[8]; int flag=0; int w=3;
char menu[20}={"添加","显示""按姓名排序""按身高排序 按体重排序","检索”,"修改""删除”,"存盘""返回"} char openfile[ 101 /*********系统密码管理****事***幸* { printf("请输入管理员密码:n") if(lstrcmp(pass, password)) printf("PASSInInIn") flag } printf("密码错误,请重新输入mn") if(!flag) printf("你已连续三次输入错误,请确认后再使用本系统谢谢!n") exit(o) system("cls") /*用 system调用dos命令,清屏* /***事幸**幸*幸*幸*打开已有文件幸*幸*本春春春* printf(("n打开已有的文件saf3.txt"?(y)”) scanf("%s"openfile) if(strcmp(openfile, y)==NULL)) if(fp=fopen("d: STaff 3. txt", "I"))==NULL) printi("不能打开文件!n") exIl while(feof(fp)==0) fscanf(fp, "%s%S%S%d%d%d%d\n", stan]. unit, stan) name, sta(n). sex, &stan]. age
char menu[][20]={"添加","显示","按姓名排序","按身高排序", "按体重排序","检索","修改","删除","存盘","返回"}; char openfile[10]; /**********************系统密码管理********************/ do{ printf("请输入管理员密码:\n"); scanf("%s",pass); if(!strcmp(pass,password)) { printf("PASS\n\n\n"); flag = 1; break; } else { printf("密码错误,请重新输入:\n"); w--; } } while(w>0); if(!flag) { printf("你已连续三次输入错误,请确认后再使用本系统,谢谢!\n"); exit(0); } system("cls"); /*用 system 调用 dos 命令,清屏*/ /**********************打开已有文件********************/ printf ("\n 打开已有的文件\"staff_3.txt\"?(y/n)"); scanf("%s",openfile); if((strcmp(openfile,"y")==NULL)) { if((fp=fopen("d:\\staff_3.txt","r"))==NULL) { printf("不能打开文件!\n"); exit(0); } while (feof(fp)==0) { fscanf(fp,"%s%s%s%d%d%d%d\n",sta[n].unit,sta[n].name,sta[n].sex,&sta[n].age
&stan height, &sta n weight) fclose(fp); printi("请创建一个新文件"sta3twt"mn") system("cls"),/*用 system调用dos命令,清屏* /**本本幸*幸*幸***欢迎界面*幸*******奉* printf("wwwwwwwmmItlt' ttt~~~~~ printf( Ititltitlt ~~~n") printf("t欢迎进入会员医疗保健信息系统ln"), printf(%%‰%%‰%%%%‰%%%%‰%%%%%%%%%%%ttit%%%%%%%%%%% %%%%%%%%%%%%%%%%") printf("inIninIn") printf("单位:北京极限俱乐部n") printi("地址:北京市西城区西四n") printf("会员热线:010-668868 printf("Inininin") n") printi("本系统由“天地人和软件有限公司”开发n"), printf("地址:北京市海淀区学院路ln") printi("作者:天天n") printf( ==tt= n") printf("\nIn") printf("t请任意输入一个值并回车进入系统ln"); canf("%s", &choice) if(choice==n'lche exit(1) system("cls"); /用 system调用dos命令,清屏* sInterface(menu, 10); /*调用 Interface(函数* switch(s) 转向语句,选择以实现不同的功能* case 0: n=Add(n, sta); break case 1: Display(sta, 0, n-1); break; case 3: SortHeight(sta, n); break; case 4: Sort Weight(sta, n); break; case 5: Find (sta, n); break case 6: Modify(sta, n); break;
&sta[n].height,&sta[n].weight); n++; } fclose(fp); } else printf("请创建一个新文件\"staff_3.txt\".\n"); system("cls"); /*用 system 调用 dos 命令,清屏*/ /**********************欢迎界面********************/ printf("~~~~~~~~~~~~~\t\t\t\t\t~~~~~~~~~~~~~\n"); printf("~~~~~~~~~~~~~\t\t\t\t\t~~~~~~~~~~~~~\n"); printf("\t\t 欢迎进入会员医疗保健信息系统\n"); printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\t\t\t\t\t%%%%%%%%%%% %%%%%%%%%%%%%%%%\n"); printf("\n\n\n\n"); printf("单位:北京极限俱乐部\n"); printf("地址:北京市西城区西四\n"); printf("会员热线:010-66886688"); printf("\n\n\n\n"); printf("==============\t\t==============\n"); printf("本系统由“天地人和软件有限公司”开发\n"); 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"); /*用 system 调用 dos 命令,清屏*/ do { s=Interface(menu,10); /*调用 Interface()函数*/ switch (s) /*转向语句,选择以实现不同的功能*/ { case 0: n=Add(n,sta);break; case 1: Display(sta,0,n-1);break; case 2: SortName(sta,n);break; case 3: SortHeight(sta,n);break; case 4: SortWeight(sta,n);break; case 5: Find(sta,n);break; case 6: Modify(sta,n);break;
7: n=Delete(sta, n); break while(s>=0&&s< 本幸本举幸本幸本本*本本本本客************家*家*衣亲本*本*亲***本*家*亲*料 操作界面 *本幸**亲率幸本李**春家本本**幸本本*客春事幸本**幸本本本*客本幸**/ int Interface(char(*x)[20], int n) int ]; printf("n×××××××极限俱乐部会员信息系统×××X×××Ⅶn"); for (=0: j<n j++) intf("%2d %sIn"j+1, xD printi("请从上述选项中选择:in"); &i); 体*输入选项* while (i<olli>n+1) rn(-1); /*****幸******幸本*家春*亲***本****本*本*幸****幸*客*春*** 增添信息 int Add(int start, struct staff"p) for(n=start; n<Max; n++) printf("n[%d]请输入会员信息(按e键退出:ln",n1), /*若要退出输入, 则按e*/ printi("单位:") if(strcmp((p+n)->unit, e")==0)break printi("姓名:") scanf("%s" (p+n)->name) printf("性别(Male/ Female)")
case 7: n=Delete(sta,n);break; case 8: SaveFile(sta,n); } } while(s>=0&&s<=8); } /**********************************************************\ 操作界面 \**********************************************************/ int Interface(char (*x)[20],int n) { int i; int j; printf("\n×××××××极限俱乐部会员信息系统×××××××\n"); do { for (j=0;j<n;j++) printf("%2d.%s\n",j+1,x[j]); printf("请从上述选项中选择:\n"); scanf("%d",&i); /*输入选项*/ } while (i<0||i>n+1); return (i-1); } /**********************************************************\ 增添信息 \**********************************************************/ int Add(int start,struct staff *p) { int n; for (n=start;n<Max;n++) { printf("\n [%d]请输入会员信息(按 e 键退出):\n",n+1); /*若要退出输入, 则按 e*/ printf("单位:"); scanf("%s",(p+n)->unit); if (strcmp((p+n)->unit,"e")==0)break; printf("姓名:"); scanf("%s",(p+n)->name); printf("性别(Male/Female):");
scanf("%s", (p+n)->sex); printi("年龄 scanf("%d", &((p+n)->age)) printi("身高(cm)") scanf("%d", &((p+n)->height) printi("体重(kg):"); scanf("%d", &((p+n)->weight return n. 显示输入或者修改后的内容 void Display (struct staff*p, int start, int end) printf("n%10%10s%10s”,"单位","姓名"性别") /*显示标题* printf("%10s%10s%10s"年龄","身高”"体重") /显示数据信息* printf("nnA for(i=start; i<=end; i++) printf("%10s%10s%10s" (p+1)->unit, (p+1->name, (p+1)->sex) printf("%10d%10d%10d",(p+i)->age, (p+i)->height, (p+i)->weight) printf("\n"); 选择法按姓名排序(依据字典顺序) void SortName(struct staff*p, int n int i,j, k; for(i=0;i<n-1;i++) for (=i+l: j<n: j++) (strcmp((p+k)->name, (p+j)->name)>0)k-j if(il=k)Swap(p+k, p+i) /交换会员姓名* printf("n完成姓名排序!n")
scanf("%s",(p+n)->sex); printf("年龄:"); scanf("%d",&((p+n)->age)); printf("身高(cm):"); scanf("%d",&((p+n)->height)); printf("体重(kg):"); scanf("%d",&((p+n)->weight)); } return n; } /**********************************************************\ 显示输入或者修改后的内容 \**********************************************************/ void Display(struct staff *p, int start, int end) { int i; printf("\n%10s%10s%10s","单位","姓名","性别"); /*显示标题*/ printf("%10s%10s%10s","年龄","身高","体重"); /*显示数据信息*/ printf("\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); for(i=start;i<=end;i++) { printf("%10s%10s%10s",(p+i)->unit,(p+i)->name,(p+i)->sex); printf("%10d%10d%10d",(p+i)->age,(p+i)->height,(p+i)->weight); printf("\n"); } } /**********************************************************\ 选择法按姓名排序(依据字典顺序) \**********************************************************/ void SortName(struct staff *p,int n) { int i,j,k; for (i=0;i<n-1;i++) { k=i; for (j=i+1;j<n;j++) if(strcmp((p+k)->name,(p+j)->name)>0)k=j; if(i!=k)Swap(p+k,p+i); /*交换会员姓名*/ } printf("\n 完成姓名排序!\n");