#include
#include
#include
#include
#define N 100 /*存储100个学生的学籍信息*/
int flag; /*标记是否登录*/
struct date /*出生日期*/
{
int year;
int month;
int day;
};
struct student
{
char num[20];/*学号*/
char name[25];/*姓名*/
char sex[10];/*性别*/
struct date birthday;/*出生年月*/
int age;/*年龄*/
char addr[50];/*籍贯*/
char dept[50]; /*系别*/
char major[30]; /*专业*/
char classs[30]; /*班级*/
char phone[20];/*电话*/
}stu[N];
void login() /*登录*/
{
void menu();
system("cls");
if(flag)
{
printf(" 已经登录!\n");
printf("Press any key to continue…\n");
getchar();
getchar();
system("cls");
menu();
}
int load();
int n,i,m,w;
FILE *fp;
if((fp=fopen("D:\\file.txt","rb"))!=NULL) /*不是空文件*/
n=load(); /*打开文件*/
else
n=0;
struct student s;
char password[20];
int d,q;
printf("\n\t请选择登录身份:1.管理员 2.用户 [ ]\b\b");
scanf("%d",&d);
if(d==1)
{
printf("\n\t\t\t请输入密码:");
getchar();
int j=0;
while(1)
{
password[j]=getch();
if(password[j]=='\r')
break;
printf("*");
j++;
}
password[j]='\0';
if(!strcmp(password,"930322")) /*判断密码是否正确*/
{
flag=1;
printf("\n\t登录成功!\n");
printf("\tPress [ Enter ] key to continue…");
getchar();
system("cls");
menu();
}
if(!flag)
{
printf("\t\n密码错误!\n");
printf("What do you want to do next 1.继续登录 2.返回菜单 [ ]\b\b");
scanf("%d",&q);
if(q==1) /*继续登录*/
{
system("cls");
login();
}
else if(q==2) /*返回主菜单*/
{
system("cls");
menu();
}
}
}
else
{
printf("\n\t\t\t用户名:");
scanf("%s",s.name);
printf("\t\t\t密码:");
int j=0;
while(1)
{
password[j]=getch();
if(password[j]=='\r')
break;
printf("*");
j++;
}
password[j]='\0';
flag=0; /*未登录时flag=0*/
for(i=0;i0)
printf("用户名不存在或密码错误!\n"); /*第一次登录时输入不存在的用户时显示*/
printf("What do you want to do next 1.继续登录 2.返回菜单 [ ]\b\b");
scanf("%d",&q);
if(q==1) /*继续登录*/
{
login();
m=1;
}
else if(q==2) /*返回主菜单*/
{
system("cls");
menu();
m=1;
}
else
{
printf("选择错误!请重新选择:\n");
w=0;
}
}while(m==0);
}
}
}
void printf_one(int k) /*输出一个学生的信息*/
{
system("color 4e");
printf("学号:%s\n",stu[k].num);
printf("姓名:%s\n",stu[k].name);
printf("性别:%s\n",stu[k].sex);
printf("出生年月:%d/%d/%d\n",stu[k].birthday.year,stu[k].birthday.month,stu[k].birthday.day);
printf("年龄:%d\n",stu[k].age);
printf("籍贯:%s\n",stu[k].addr);
printf("系别:%s\n",stu[k].dept);
printf("专业:%s\n",stu[k].major);
printf("班级:%s\n",stu[k].classs);
printf("电话:%s\n",stu[k].phone);
}
void printf_n(int n) /*浏览时输出所有学生的信息*/
{
system("color 2e");
int j,i=1;
for(j=0;j2)
{
printf("输入错误!请重新输入!\n");
w2=1;
}
else
w2=0; /*这里要注意:不加这句话会陷入死循环,跳不出来*/
}while(w2==1);
if(w1==1) /*按姓名查找*/
{
do
{
k=-1;
do
{
printf("\n请输入您想要查找的学生的姓名!\nName:");
scanf("%s",s.name);
for(i=0;i12||c<1)
{
puts("\n选择错误!请重新选择!");
getchar();
}
}while(c>12||c<1);
do
{
switch(c)
{
case 1: printf("学号:"); scanf("%s",stu[i].num); break;
case 2: printf("姓名:"); scanf("%s",stu[i].name); break;
case 3: printf("性别:"); scanf("%s",stu[i].sex); break;
case 4: printf("出生年月:"); scanf("%d/%d/%d",&stu[i].birthday.year,&stu[i].birthday.month,&stu[i].birthday.day); break;
case 5: printf("年龄:"); scanf("%d",&stu[i].age);break;
case 6: printf("籍贯:"); scanf("%s",stu[i].addr);break;
case 7: printf("系别:"); scanf("%s",stu[i].dept);break;
case 8: printf("专业:"); scanf("%s",stu[i].major);break;
case 9: printf("班级:"); scanf("%s",stu[i].classs);break;
case 10: printf("电话:"); scanf("%s",stu[i].phone);break;
case 11: input(i); break; /*修改这个学生的所有信息*/
case 12: menu(); /*返回主菜单*/
}
puts("\nNow:\n");
printf_one(i); /*输出 修改后 的这个学生的信息*/
printf("\n确定 \n\n\t1).是 2).不,重新修改 3).返回不保存 [ ]\b\b");
scanf("%d",&w1);
}while(w1==2);
return(w1); /*修改成功并选择1后返回1*/
}
void modify() /*修改*/
{
void menu();
if(!flag)
{
printf("\n\n\t请先登录!\n");
printf("\n\t请按 Enter 键进入登录界面!");
getchar();
getchar();
login();
}
else
{
struct student s;
int i,n,k,w0=1,w1,w2=0;
n=load();
do
{
k=-1;
//printf_n(n); /*删除之前先显示所有学生的信息*/
do
{
printf("\n请输入您想要修改的学生的姓名!\nName:");
scanf("%s",s.name);
for(i=0;i系统! ※※");
puts("\t ※※ ※※");
puts("\t ※※ ※※");
puts("\t ※※ ※※");
puts("\t ※※ ※※");
puts("\t ※※ 制作人:李远航 ※※");
puts("\t ※※ 2013.6.20 ※※");
puts("\t ※※ ※※");
puts("\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※");
printf("\n\tPress [ Enter ] key to continue……\n");
getchar();
system("cls");
}
void menu() /*主菜单*/
{
system("color 2e");
printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
printf("\n");
int n,w1;
do
{
puts("\t\t★★★★★★★★ 菜单 ★★★★★★★★");
puts("\t\t★ 1.登 录 ★");
puts("\t\t★ 2.插 入 ★");
puts("\t\t★ 3.删 除 ★");
puts("\t\t★ 4.查 找 ★");
puts("\t\t★ 5.修 改 ★");
puts("\t\t★ 6.浏 览 ★");
puts("\t\t★ 7.退 出 ★");
puts("\t\t★★★★★★★★★★★★★★★★★★★★★");
printf("请选择服务种类(1-7) : [ ]\b\b");
scanf("%d",&n);
if(n<1||n>7)
{
system("cls");
printf("选择错误! 请重新选择!\n");
w1=1;
}
else
w1=0;
}while(w1==1);
switch(n)
{
case 1: login(); break; /*登录*/
case 2: system("cls"); insert(); break; /*插入*/