C语言课程设计――学生学籍管理系统 (一)

2014-11-23 22:04:08 · 作者: · 浏览: 14
#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;j
2) { 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; /*插入*/