#include<stdio.h> /*I/o函数*/
#include<stdlib.h> /*其他说明*/
#include<string.h> /*字符串函数*/
#define LEN 30 /*学号和姓名最大学生人数*/
#define N 100 /*最大学生人数*/
struct record /*声明函数体*/
{
char code[20]; /*学号*/
char name[10]; /*姓名*/
int age; /*年龄*/
char sex[5]; /*性别*/
char time[20]; /*出生年月*/
char addr[20]; /*家庭地址*/
char tel[20]; /*电话*/
char mail[20]; /*邮箱地址*/
}stu[N];
int k=1,m,n;
void Input();
void Inquire();
void Amend();
void Add();
void Delete();
void Display();
void Save();
void menu();
void Exit();
void Welcome();
int main()
{
while(k)
{
Welcome();
system("pause");
system("cls");
printf("请按任意键进入主菜单!\n");
system("cls");
menu();
system("pause");
}
return 0;
}
void help()
{ system("COLOR 2f");
printf("\n 尊敬的用户您好!");
printf("\n ============================================================\n | |");
printf("\n | 1.欢迎进入帮助系统! |\n | |");
printf("\n | ★ ★ ★ ★ ★ ★ ★ ★ |\n | |");
printf("\n | 2.请按照菜单提示进入数字代号! |\n | |");
printf("\n | 3.增加学生信息后,请切记保存! |\n | |");
printf("\n | 4.谢谢您的使用! |\n | |");
printf("\n ============================================================\n ");
}
void Input() /* 实现录入学生基本信息功能 */
{
int i,flag=1;
while(flag)
{
flag=0;
printf("请输入需要创建信息的学生人数(1-100):\n");
scanf("%d",&n);
if(n<1||n>100)
{
flag=1;
printf("输入错误,检查后请重新输入!\n");
}
}
for(i=0;i<n;i++)
{
printf("请输入第%d个学生的基本信息:\n",i+1);
printf("请输入学号:\n");
scanf("%s",stu[i].code);
printf("请输入姓名:\n");
scanf("%s",stu[i].name);
getchar();
printf("请输入性别(男,女):\n");
scanf("%s",stu[i].sex);
printf("请输入年龄:\n");
scanf("%d",&stu[i].age);
printf("请输入出生年月(输入格式:年.月):\n");
scanf("%s",stu[i].time);
printf("请输入家庭地址:\n");
scanf("%s",stu[i].addr);
printf("请输入电话号码:\n");
scanf("%s",stu[i].tel);
printf("请输入E-mail地址:\n");
scanf("%s",stu[i].mail);
}
printf("录入完毕!\n");
Save();
}
void Save() /*保存学生信息到文件的函数*/
{
int i;
FILE *fp;
if((fp=fopen("student.txt","wb"))==NULL) /*创建文件并判断是否能够打开成功*/
{
printf("文件不能打开!\n");
exit(0); /*如果不能打开文件,则关闭当前所有的文件*/
}
for(i=0;i<n;i++) /*将内存中的学生信息写入到磁盘文件中*/
if(fwrite(&stu[i],sizeof(struct record),1,fp)!=1)
printf("文件输入错误!\n");
fclose(fp); /*关闭文件*/
}
void Inquire()
{
int i,t,flag;
char s1[30];
system("COLOR 5f");
printf("\n =================================\n");
printf(" | 1.按学号查询 |\n");
printf(" | 2.按姓名查询 |\n");
printf(" | 3.退出本菜单 |\n");
printf(" =================================\n");
while(1)
{
flag=0;
printf(" 请输入子菜单编号: ");
scanf("%d",&t);
switch(t)
{
case 1:
printf(" 请输入要查询的学生的学号: \n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
{
flag=1;
printf("学生学号 学生姓名 年龄 性别 出生年月 家庭地址 电话 E-mail \n");
printf("================================================================================\n");
printf("%6s %7s %6d %5s %9s %8s %10s %14s\n", stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].addr,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该学号不存在! \n");break;
case 2:
printf(" 请输入要查询的学生的姓名: \n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].name,s1)==0)
{
flag=1;
printf("学生学号 学生姓名 年龄 性别 出生年月 家庭地址 电话 E-mail \n");
printf("================================================================================\n");
printf("%6s %7s %6d %5s %9s %8s %10s %14s\n", stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].addr,stu[i].tel,stu[i].mail);
}
if(flag==0)
printf("该姓名不存在!\n");break;
case 3:
return;
default:
printf("请在1--3之间选择\n");
}
}
}
void Amend()
{
int i,t,num;
char sex1[3],s1[30],s2[30];
printf(" 请输入要查询的学生的学号:\n");
scanf("%s",s1);
for(i=0;i<n;i++)
if(strcmp(stu[i].code,s1)==0)
num=i;
system("COLOR 4f");
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(" | 8.修改退出本菜单 |\n");
printf(" =============================================\n");
while(1)
{
printf("请输入子菜单的编号:");
scanf("%d",&t);
switch(t)
{
case 1:
printf("请输入新的姓名:\n");
scanf("%s",s2);
strcpy(stu[num].name,s2);break;
case 2:
printf("请输入新的年龄:\n");
scanf("%s",s2);
scanf("%d",&stu[num].age);break;
case 3:
printf("请输入新的性别:\n");
scanf("%s",sex1);
strcpy(stu[num].sex,sex1);break;
case 4:
printf("请输入新的出生年月: \n");
scanf("%s",s2);
strcpy(stu[num].time,s2);break;
case 5:
printf("请输入新的地址: \n");
scanf("%s",s2);
strcpy(stu[num].addr,s2);break;
case 6:
printf("请输入新的电话号码: \n");
scanf("%s",s2);
strcpy(stu[num].tel,s2);break;
case 7:
printf("请输入新的E-mail: \n");
scanf("%s",s2);
strcpy(stu[num].mail,s2);break;
case 8:
return;
default:
printf("请在1--8之间选择\n");}
}
}
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);