#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define BUFLEN 100
#define LEN 15
#define N 100 struct record
{ char code[LEN+1];
char name[LEN+1];
int age;
char sex[3];
char time[LEN+1];
char add[30];
char tel[LEN+1];
char mail[30];
}stu[N];
int k=1,n,m;
void readfile();
void seek();
void modify();
void insert();
void del();
void display();
void save();
void number();
void menu();
int main()
{
while(k)
menu();
system("pause");
return 0;
}
void readfile()//刷新学生信息
{
char *p="student.txt";
FILE *fp;
int i=0;
if ((fp=fopen("student.txt","r"))==NULL)
{
printf("Open file %s error! Strike any key to exit!",p);
system("pause");
exit(0);
}
while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)
{
i++;
i=i;
}
fclose(fp);
n=i;
printf("录入完毕!\n");
}
void seek()//查询学生信息
void modify()//修改学生信息
void sort()//对学生信息按学号排序
{
int i,j,*p,*q,s;
char temp[10];
for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
if(strcmp(stu[j-1].code,stu[j].code)>0)
{
strcpy(temp,stu[j-1].code);
strcpy(stu[j-1].code,stu[j].code);
strcpy(stu[j].code,temp);
strcpy(temp,stu[j-1].name);
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j].name,temp);
strcpy(temp,stu[j-1].sex);
strcpy(stu[j-1].sex,stu[j].sex);
strcpy(stu[j].sex,temp);
strcpy(temp,stu[j-1].time);
strcpy(stu[j-1].time,stu[j].time);
strcpy(stu[j].time,temp);
strcpy(temp,stu[j-1].add);
strcpy(stu[j-1].add,stu[j].add);
strcpy(stu[j].add,temp);
strcpy(temp,stu[j-1].tel);
strcpy(stu[j-1].tel,stu[j].tel);
strcpy(stu[j].tel,temp);
strcpy(temp,stu[j-1].mail);
strcpy(stu[j-1].mail,stu[j].mail);
strcpy(stu[j].mail,temp);
p=&stu[j-1].age;
q=&stu[j].age;
s=*q;
*q=*p;
*p=s;
}
}
}
void insert()//增加学生信息
void display()//显示当前学生信息
{
int i;
printf("所有学生的信息为:\n");
printf("学生学号, 学生姓名, 年龄, 性别, 出生年月, 地址, 电话, E-mail\n");
printf("------------------------------------------------------------------\n");
for(i=0;i<n;i++)
{
printf("%6s, %7s, %5d, %5s, %9s, %8s, %10s, %14s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
}
void save()//保存当前学生信息
{
int i;
FILE *fp;
fp=fopen("student.txt","w");
for(i=0;i<n;i++)
{
fprintf(fp,"%s, %s, %d, %s, %s, %s, %s, %s\n",stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);
}
fclose(fp);
}
void number()//汇总学生数目
{
int i,girl,boy=0;
for(i=0;i<n;i++)
if(strcmp(stu[i].sex,"1")==0)
{
boy++;
}
girl=n-boy;
printf("男生人数是:%d\n女生的人数是:%d\n",boy,girl);
printf("总的学生人数为:%d",n);
}
void help()//系统帮助
{
printf("输入性别时男为1,女为2");
printf("\n3.增加学生信息后,切记保存按7;\n");
printf("\n4.谢谢您的使用!\n");
}
void menu()//可视化的系统操作界面
{
int num;
printf(" \n\n 学生通讯录管理系统 \n\n");
printf(" *********************系统功能菜单************************ \n");
printf(" -------------------------------- ------------------------------- \n");
printf(" 1.刷新学生信息 2.查询学生信息 \n");
printf(" ********************************************* \n");
printf(" 3.修改学生信息 4.增加学生信息 \n");
printf(" ********************************************* \n");
printf(" 5.按学号删除信息 6.显示当前信息 \n");
printf(" ********************************************* \n");
printf(" 7.保存当前学生信息 8.汇总学生数目 \n");
printf(" ********************************************* \n");
printf(" 9.系统帮助 10.退出系统 \n");
printf(" --------------------------------- ------------------------------ \n");
printf(" ************************************************************ \n");
printf("请选择菜单编号:"); scanf("%d",&num);
switch(num)
{
case 1:readfile();break;
case 2:seek();break;
case 3:modify();break;
case 4:insert();break;
case 5:del();break;
case 6:display();break;
case 7:save();break;
case 8:number();break;
case 9:help();break;
case 10:k=0;break;
default:printf("请在1-10之间选择\n");
}
}