#include <stdlib.h> #include <stdio.h> #include <string.h> #include <ctype.h> #define N 100 struct record /*结构体*/ { char xh[21]; /*学号*/ char name[16]; /*姓名*/ char add[30]; /*地址*/ char tel[16]; /*电话*/ char mail[30]; /*邮箱*/ }stu[N]; int k=1,p=0; /*定义全局变量*/ void seek(); /*查询函数声明*/ void xg(); /*修改*/ void insert(); /*增加*/ void del(); /*删除*/ void display(); /*显示*/ void save(); /*保存*/ void menu(); /*主菜单*/ int main() /*主函数*/ { FILE *fp; if((fp=fopen("d:student.txt","r"))!=NULL) for(;feof(fp)==0;p++) fread(&stu[p],sizeof(struct record),1,fp); fclose(fp); p--; fp=fopen("d:student.txt","w"); while(k) menu(); save(); /*进入主菜单*/ system("pause"); /*系统停止*/ return 0; } void menu() /*主菜单*/ { int num; printf("\n\n 学生通讯录信息系统 \n\n"); printf("*************************系统功能菜单*******************\n"); printf("* * 1增加学生信息 ** 2查询学生信息 *\n"); printf("* * 3修改学生信息 ** 4按学号删除信息 *\n"); printf("* * 5保存当前信息 ** 6显示当前信息 *\n"); printf("* * 7退出系统 ** *\n"); printf("**********************************************\n"); printf("请选择菜单编号"); scanf("%d",&num); /*获取用户选择的内容*/ switch(num) /*switch语句进入子菜单*/ { case 1:insert();break; case 2:seek();break; case 3:xg();break; case 4:del();break; case 5:save();break; case 6:display();break; case 7:k=0;break; default:printf("请在1-7之间选择\n"); } } void seek() /*查找函数*/ { int i,item,flag; char s1[21]; /*用数组来保存用户的输入*/ printf ("**************************************************************\n"); printf ("************************1、按学号查询*************************\n"); printf ("************************2、按姓名查询*************************\n"); printf ("************************3、退出本菜单*************************\n"); printf ("**************************************************************\n"); while (1) { printf("请选择子菜单编号:"); scanf ("%d",&item); flag=0; switch (item) { case 1:printf ("请输入要查询的学号:\n"); scanf ("%s",s1); for (i=0;i<p;i++) if (strcmp(stu[i].xh,s1)==0)/*找到用户输入的内容并输出*/ { flag=1; printf("学号 姓名 地址 电话 E-mail\n"); printf("*********************************************\n"); printf ("%s%7s%8sss\n",stu[i].xh,stu[i].name,stu[i].add,stu[i].tel,stu[i].mail); } if(flag==0) printf("该学号不存在!\n");break; case 2:printf("请输入要查询的学生姓名:\n"); scanf ("%s",s1); for (i=0;i<p;i++) if (strcmp(stu[i].name,s1)==0) { flag=1; printf ("学号 姓名 地址 电话 E-mail\n"); printf ("**********************************************\n"); printf ("%6s%7s%8sss\n",stu[i].xh,stu[i].name,stu[i].add,stu[i].tel,stu[i].mail); } if (flag==0) printf ("该姓名不存在\n");break; case 3:return; default :printf ("请在1~3中选择\n"); } } } void xg() /*修改函数*/ { int i,item,xh; char s1[16],s2[16]; printf ("请输入要修改的学号:\n"); scanf ("%s",s1); for(i=0;i<p;i++) if (strcmp(stu[i].xh,s1)==0) xh=i; printf("*************************************************************\n"); printf("1:修改姓名\n"); printf("2:修改地址\n"); printf("3:修改电话号码\n"); printf("4:修改E-mail地址\n"); printf("5:退出本菜单\n"); printf("**************************************************"); while(1) { printf("请选择子菜单编号:"); scanf("%d",&item); /*获得用户输入的选择*/ switch(item) {case 1:printf("请输入新姓名:\n"); scanf("%s",s2); strcpy(stu[xh].name,s2);break; case 2:printf("请输入新的地址:\n"); scanf("%s",s2); strcpy(stu[xh].add,s2);break; case 3:printf("请输入新的电话号码:\n"); scanf("%s",s2); strcpy(stu[xh].tel,s2);break; case 4:printf("请输入新的E-mail地址:\n"); scanf("%s",s2); strcpy(stu[xh].mail,s2);break; case 5:return; default:printf("请在1-5之间选择\n"); } } } void insert() /*插入函数*/ { int i,m,j,flag; printf("请输入待增加的学生数:\n"); scanf("%d",&m); for(i=0;i<m;i++) { flag=1; while(flag) { flag=0; printf("请输入第%d个学生的学号:\n",i+1); scanf("%s",stu[i+p].xh); for(j=0;j<i+p;j++) if(strcmp(stu[i+p].xh,stu[j].xh)==0) { printf("已有该学号,请检查后重新登录\n"); flag=1; break; } } printf("请输入第%d个学生的姓名:\n",i+1); scanf("%s",stu[i+p].name); printf("请输入第%d个学生的地址:\n",i+1); scanf("%s",stu[i+p].add); printf("请输入第%d个学生的电话:\n",i+1); scanf("%s",stu[i+p].tel); printf("请输入第%d个学生的E-mail:\n",i+1); scanf("%s",stu[i+p].mail); } p=p+m; printf("录入完毕\n\n"); } void del() /*删除函数*/ { int i,j,flag=0; char s1[16]; printf("请输入要删除的学号:\n"); scanf("%s",s1); for(i=0;i<p;i++) if(strcmp(stu[i].xh,s1)==0) { flag=1; for(j=i;j<p-1;j++) stu[j]=stu[j+1]; } if(flag==0) printf("该学号不存在!\n"); if(flag==1) { printf("删除成功,显示结果请选择菜单6\n"); p--; } } void display() /*显示函数*/ { int i; printf("所有学生的信息为:\n"); printf("学号 姓名 地址 电话 E-mail\n"); printf("*************************************************\n"); for(i=0;i<p;i++) { printf("%6s%7s%8sss\n",stu[i].xh,stu[i].name,stu[i].add,stu[i].tel,stu[i].mail); } } void save() /*保存函数*/ { int i; FILE *fp; fp=fopen("d:student.txt","w"); for(i=0;i<p;i++) { fwrite(&stu[i],sizeof(struct record),1,fp); } fclose(fp); }
- 粉丝: 0
- 资源: 6
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助