#include <stdlib.h>
#include <string.h>
struct student
{
char code[20];//學號
char name[32];//姓名
int age;//年齡
char sex[3];//性別
char time[100];//出生日期
char add[32];//地址
char phone[30];//電話
char mail[30];//電子郵箱
}stu[50];
int k=1,n,m;
void read();//錄入
void display();//瀏覽
void seek();//查詢
void del();//刪除
void mod();//修改
void menu();//主界面
void save();
int main()
{
system("color 1f");
while(k)
menu();
system("pause");
return 0;
}
void menu()//主界面
{
int num;
printf("------------------\n");
printf("1.學生信息錄入\n");
printf("2.學生信息瀏覽\n");
printf("3.學生信息查詢\n");
printf("4.學生信息刪除\n");
printf("5.學生信息修改\n");
printf("6.學生信息保存\n");
printf("------------------\n");
printf("請輸入指令\n");
scanf("%d ",&num);
switch(num)
{
case 1:read();break;
case 2:display();break;
case 3:seek();break;
case 4:del();break;
case 5:mod();break;
case 6:save();break;
default:printf("請在1~6中選擇\n");
}
}
void read()//錄入
{
char *p="student.txt";
FILE *fp;
int i=0;
if((fp=fopen("student.txt","r"))==NULL)//打開只讀文件
{
printf("打開文件 %s 失敗 ",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].phone,stu[i].mail)==8)
{
i++;
i=i;
}
fclose(fp);
n=i;
printf("錄入完成\n");
}
void save()//保存函數
{
int i;
FILE *fp;
fp=fopen("stduent.txt","w");//寫入
for(i=0;i<n;i++)
{
fprintf(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].phone,stu[i].mail);
}
fclose(fp);
}
void display()//瀏覽
{
int i;
printf("所有學生的信息爲:\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].phone,stu[i].mail);
}
}
void seek()//查詢,按學號查詢
{
printf("請輸入所要查詢的學生學號:\n");
char s1[30];
scanf("%s ",s1);
int i;
for(i=0;i<n;i++)
{
if(strcmp(stu[i].code,s1)==0)
{
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].phone,stu[i].mail);
}
else
{
printf("該學號不存在\n");
}
}
}
void del()//刪除
{
int x,j,f;
f=0;
char s2[30];
printf("請輸入所要刪除的學生學號\n");
scanf("%s ",s2);
for(x=0;x<n;x++)
if(strcmp(stu[x].code,s2)==0)
{
f=1;
for(j=x;j<50-1;j++)
stu[j]=stu[j+1];
}
if(f==0)
{
printf("該學號不存在\n");
}
if(f==1)
{
printf("刪除成功,謝謝使用\n");
}
}
void mod()//修改
{
int a,b,c;
char sex1[3],s3[30],s4[30];
printf("請輸入所要修改的學生學號\n");
scanf("%s",s3);
for(a=0;a<n;a++)
if(strcmp(stu[a].code,s3)==0)
c=a;
printf("------------------------\n");
printf("1.修改姓名\n");
printf("2.修改年齡\n");
printf("3.修改性別\n");
printf("4.修改出生日期\n");
printf("5.修改地址\n");
printf("6.修改電話號碼\n");
printf("7.修改E-mail地址\n");
printf("------------------------\n");
scanf("%d ",&b);
if(b==1)
{
printf("請輸入新的姓名\n");
scanf("%s ",s4);
strcpy(stu[c].name,s4);
}
else if(b==2)
{
printf("請輸入新的年齡\n");
scanf("%d ",&stu[c].age);
}
else if(b==3)
{
printf("請輸入新的性別\n");
scanf("%s ",sex1);
strcpy(stu[c].sex,sex1);
}
else if(b==4)
{
printf("請輸入新的出生日期\n");
scanf("%s ",s4);
strcpy(stu[c].time,s4);
}
else if(b==5)
{
printf("請輸入新的地址\n");
scanf("%s ",s4);
strcpy(stu[c].add,s4);
}
else if(b==6)
{
printf("請輸入新的電話號碼\n");
scanf("%s ",s4);
strcpy(stu[c].phone,s4);
}
else if(b==7)
{
printf("請輸入新的E-mail地址\n");
scanf("%s ",s4);
strcpy(stu[c].mail,s4);
}
else
{
printf("操作有誤,謝謝使用\n");
}
}