C语言课程设计

  学生学籍管理系统

功能及要求描述:

(1)   系统涉及的学生学籍至少应该包括学号、姓名、性别、年龄、籍贯、系别、专业、班级等;

(2)   学籍登录、插入功能;

(3)   学籍记录修改功能;

(4)   学籍记录删除功能;

(5)   学籍记录查找功能;

(6)   学籍表输出功能;

(7)   系统应该具有简单的菜单,能实现友好的交互。


说明:请在 d盘中建一个 以program命名的文件夹!!

代码:


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
int root;
struct student
{
	int num;
	char name[50];
	char sex[20];
	int old;
	char address[50];
	char xb[20];
	char zy[20];
}stu[1000000];
void menu()
{
	system("cls");//清屏!!
	printf("\t\t\t**********welcom!!!************\n");
	printf("\t\t\t*******************************\n");
	printf("\t\t\t**  0:改变登陆权限           **\n");
	printf("\t\t\t**  1:新建一个学籍管理系统   **\n");
	printf("\t\t\t**  2:增加学生学籍           **\n");
	printf("\t\t\t**  3:修改学生学籍信息       **\n");
	printf("\t\t\t**  4:删除学生学籍           **\n");
	printf("\t\t\t**  5:查找学生学籍           **\n");
	printf("\t\t\t**  6:输出所有学生学籍       **\n");
	printf("\t\t\t**  7:退出学籍管理系统       **\n");
	printf("\t\t\t*******************************\n");
	if(root)
	{
		printf("\t\t\t**  8:修改管理员密码       **\n");
		printf("\t\t\t\t\t\t管理员权限\n");
	}
	else
		printf("\t\t\t\t\t\t来宾权限\n");
}
void newbuild()/*新建一个学籍管理系统*/
{
	if(!root)
	{
		printf("sorry,你没有该权限!!\n");
		system("pause\n");
		return;
	}
	int a,b,n;
	printf("说明:新建将删除以前的系统,请输入一个数确定是否进行新建!!是1,否0  \n");
	scanf("%d",&b);
	if(b==0)
		return;
	printf("请你输入你新建学籍管理系统所需登录学生个数\n");
	scanf("%d",&n);
	printf("请依次输入每个学生的 学号 姓名 性别 年龄 籍贯 系院 专业 \n");
	for(a=0;a<n;a++)
		scanf("%d%s%s%d%s%s%s",&stu[a].num,stu[a].name,stu[a].sex,&stu[a].old,stu[a].address,stu[a].xb,stu[a].zy);
    FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","w"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	for(a=0;a<n;a++)
		fprintf(fp,"%d%c%s%c%s%c%d%c%s%c%s%c%s%c",stu[a].num,' ',stu[a].name,' ',stu[a].sex,' ',stu[a].old,' ',stu[a].address,' ',stu[a].xb,' ',stu[a].zy,'\n');
	printf("录入成功!!!数据已储存于d:\\program\\student.txt \n");
	fclose(fp);
	system("pause\n");
}
void add()/*增加学生学籍*/
{
	if(!root)
	{
		printf("sorry,你没有该权限!!\n");
		system("pause\n");
		return;
	}
	int a,b,n;
	FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","a"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	while(1)
	{
		printf("增加请输入1,结束增加请输入0  \n");
		scanf("%d",&n);
		getchar();
		if(!n)
			break;
		printf("请依次输入增加的每个学生的 学号 姓名 性别 年龄 籍贯 系院 专业 \n");
		scanf("%d%s%s%d%s%s%s",&stu[0].num,stu[0].name,stu[0].sex,&stu[0].old,stu[0].address,stu[0].xb,stu[0].zy);
        fprintf(fp,"%d%c%s%c%s%c%d%c%s%c%s%c%s%c",stu[0].num,' ',stu[0].name,' ',stu[0].sex,' ',stu[0].old,' ',stu[0].address,' ',stu[0].xb,' ',stu[0].zy,'\n');
	}
	fclose(fp);
	system("pause\n");
}
void modify()/*修改学生学籍信息*/
{
	if(!root)
	{
		printf("sorry,你没有该权限!!\n");
		system("pause\n");
		return;
	}
    int a=0,b,n;
	FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","r"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	memset(stu,0,sizeof(stu));
	while(fscanf(fp,"%d",&stu[a].num)!=EOF)
	{
		fscanf(fp,"%s%s%d%s%s%s",stu[a].name,stu[a].sex,&stu[a].old,stu[a].address,stu[a].xb,stu[a].zy);
		a++;
	}
	fclose(fp);
	while(1)
	{
		    printf("_____________________________\n");
		    printf("__ 1:按照学号修改学生学籍:__\n");
			printf("__ 2:按照姓名修改学生学籍:__\n");
			printf("__ 3:返回主菜单            __\n");
			printf("_____________________________\n");
            printf("输入数据,请选择(1—3):\n");
			scanf("%d",&n);
			while(n<1||n>3)
			{
				printf("输入错误,请重新输入!!\n");
				scanf("%d",&n);
			}
			if(n==3)
				break;
			if(n==1)
			{
				int num,loop=0;
				printf("\n请输入学号:\n");
				scanf("%d",&num);
				for(b=0;b<a;b++)
				{
					if(stu[b].num==num)
					{
						loop=1;
						printf("请输入该学生的新学籍信息:依次输入 学号 姓名 性别 年龄 籍贯 系院 专业\n");
						scanf("%d%s%s%d%s%s%s",&stu[b].num,stu[b].name,stu[b].sex,&stu[b].old,stu[b].address,stu[b].xb,stu[b].zy);
						break;
					}
				}
				if(loop)
					printf("\n修改成功!!\n");
				else
					printf("\n不存在该学生!!\n");
			}
			else if(n==2)
			{
				int loop=0;
				char ch[50];
				printf("\n请输入姓名:\n");
				scanf("%s",ch);
				for(b=0;b<a;b++)
				{
					if(!strcmp(ch,stu[b].name))
					{
						loop=1;
						printf("\n请输入该学生的新学籍信息:依次输入 学号 姓名 性别 年龄 籍贯 系院 专业\n");
						scanf("%d%s%s%d%s%s%s",&stu[b].num,stu[b].name,stu[b].sex,&stu[b].old,stu[b].address,stu[b].xb,stu[b].zy);
						break;
					}
				}
				if(loop)
					printf("\n修改成功!!\n");
				else
					printf("\n不存在该学号生!!\n");
			}
    }
	if((fp=fopen("d:\\program\\student.txt","w"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	for(b=0;b<a;b++)
		fprintf(fp,"%d%c%s%c%s%c%d%c%s%c%s%c%s%c",stu[b].num,' ',stu[b].name,' ',stu[b].sex,' ',stu[b].old,' ',stu[b].address,' ',stu[b].xb,' ',stu[b].zy,'\n');
	printf("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
	printf("++  成功!!!数据已储存于d:\\program\\student.txt  ++\n");
	printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
	fclose(fp);
	system("pause\n");
}
void del()/*删除学生学籍*/
{
	if(!root)
	{
		printf("sorry,你没有该权限!!\n");
		system("pause\n");
		return;
	}
	int a=0,b,n;
	FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","r"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	memset(stu,0,sizeof(stu));
	while(fscanf(fp,"%d",&stu[a].num)!=EOF)
	{
		fscanf(fp,"%s%s%d%s%s%s",stu[a].name,stu[a].sex,&stu[a].old,stu[a].address,stu[a].xb,stu[a].zy);
		a++;
	}
	fclose(fp);
	while(1)
	{
		    printf("_____________________________\n");
		    printf("__ 1:按照学号删除学生学籍:__\n");
			printf("__ 2:按照姓名删除学生学籍:__\n");
			printf("__ 3:返回主菜单            __\n");
			printf("_____________________________\n");
            printf("输入数据,请选择(1—3):\n");
			scanf("%d",&n);
			while(n<1||n>3)
			{
				printf("输入错误,请重新输入!!\n");
				scanf("%d",&n);
			}
			if(n==3)
				break;
			if(n==1)
			{
				int num,loop=0;
				printf("\n请输入学号:\n");
				scanf("%d",&num);
				for(b=0;b<a;b++)
				{
					if(stu[b].num==num)
					{
						loop=1;
					    stu[b].old=0;
						break;
					}
				}
				if(loop)
					printf("\n删除成功!!\n");
				else
					printf("\n不存在该学生!!\n");
			}
			else if(n==2)
			{
				int loop=0;
				char ch[50];
				printf("\n请输入姓名:\n");
				scanf("%s",ch);
				for(b=0;b<a;b++)
				{
					if(!strcmp(ch,stu[b].name))
					{
						loop=1;
					    stu[b].old=0;
						break;
					}
				}
				if(loop)
					printf("\n删除成功!!\n");
				else
					printf("\n不存在该学生!!\n");
			}
	}
	if((fp=fopen("d:\\program\\student.txt","w"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	for(b=0;b<a;b++)
	    if(stu[b].old)
		   fprintf(fp,"%d%c%s%c%s%c%d%c%s%c%s%c%s%c",stu[b].num,' ',stu[b].name,' ',stu[b].sex,' ',stu[b].old,' ',stu[b].address,' ',stu[b].xb,' ',stu[b].zy,'\n');
	printf("\n++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
	printf("++  成功!!!数据已储存于d:\\program\\student.txt  ++\n");
	printf("++++++++++++++++++++++++++++++++++++++++++++++++++++++\n");
	fclose(fp);
	system("pause\n");
}
void search()/*查找学生学籍*/
{
	int a=0,b,n;
	FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","r"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	memset(stu,0,sizeof(stu));
	while(fscanf(fp,"%d",&stu[a].num)!=EOF)
	{
		fscanf(fp,"%s%s%d%s%s%s",stu[a].name,stu[a].sex,&stu[a].old,stu[a].address,stu[a].xb,stu[a].zy);
		a++;
	}
	fclose(fp);
	while(1)
	{
		    printf("_____________________________\n");
		    printf("__ 1:按照学号查找学生学籍:__\n");
			printf("__ 2:按照姓名查找学生学籍:__\n");
			printf("__ 3:返回主菜单            __\n");
			printf("_____________________________\n");
            printf("输入数据,请选择(1—3):\n");
			scanf("%d",&n);
			while(n<1||n>3)
			{
				printf("输入错误,请重新输入!!\n");
				scanf("%d",&n);
			}
			if(n==3)
				break;
			if(n==1)
			{
				int num,loop=0;
				printf("\n请输入学号:\n");
				scanf("%d",&num);
				for(b=0;b<a;b++)
				{
					if(stu[b].num==num)
					{
						loop=1;
						printf("\n 学号 姓名 性别 年龄 籍贯 系院 专业\n");
						printf("\n%d  %s  %s  %d  %s  %s  %s\n",stu[b].num,stu[b].name,stu[b].sex,stu[b].old,stu[b].address,stu[b].xb,stu[b].zy);
						break;
					}
				}
		        if(!loop)
					printf("\n不存在该学生!!\n");
			}
			else if(n==2)
			{
				int loop=0;
				char ch[50];
				printf("\n请输入姓名:\n");
				scanf("%s",ch);
				for(b=0;b<a;b++)
				{
					if(!strcmp(ch,stu[b].name))
					{
						loop=1;
						printf("\n 学号 姓名 性别 年龄 籍贯 系院 专业\n");
						printf("\n%d  %s  %s  %d  %s  %s  %s\n",stu[b].num,stu[b].name,stu[b].sex,stu[b].old,stu[b].address,stu[b].xb,stu[b].zy);
						break;
					}
				}
			    if(!loop)
					printf("\n不存在该学生!!\n");
			}
	       
	}
	system("pause\n");
}
void output()/*输出所有学生学籍*/
{
	int a=0,b,n;
	FILE *fp;
	if((fp=fopen("d:\\program\\student.txt","r"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	memset(stu,0,sizeof(stu));
	while(fscanf(fp,"%d",&stu[a].num)!=EOF)
	{
		fscanf(fp,"%s%s%d%s%s%s",stu[a].name,stu[a].sex,&stu[a].old,stu[a].address,stu[a].xb,stu[a].zy);
		a++;
	}
    fclose(fp);
    printf("    学号     姓名   性别   年龄   籍贯   系院   专业 \n");
	for(b=0;b<a;b++)
	     printf("%d  %s   %s     %d    %s   %s   %s\n",stu[b].num,stu[b].name,stu[b].sex,stu[b].old,stu[b].address,stu[b].xb,stu[b].zy);
	system("pause\n");
}
void newboot()/*用户登陆*/
{
	system("cls");
	int a,b,n;
	root=0;
	char ch1[50],ch2[50],ch_1[50],ch_2[50];
	FILE *fp;
	if((fp=fopen("d:\\program\\password.txt","r"))==NULL)
	{
		printf("\n 说明:你是第一次使用该系统,请配置系统!!!\n\n");
		if((fp=fopen("d:\\program\\password.txt","w"))==NULL)
		{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
		}
	    printf("请输入用户名:  ");scanf("%s",ch_1);
	    printf("请输入密码:  ");scanf("%s",ch_2);
	    fprintf(fp,"%s%c",ch_1,'\n');
	    fprintf(fp,"%s%c",ch_2,' ');
	    fclose(fp);
		printf("\n ok,配置成功!!\n");

	}
	fp=fopen("d:\\program\\password.txt","r");
	fscanf(fp,"%s",ch1);
	fscanf(fp,"%s",ch2);
	fclose(fp);
	printf("************欢迎进入***************\n");
	printf("1:以admin登陆      0:以来宾方式登陆\n");
	printf("请选择登陆方式(1-0):\n");
	scanf("%d",&n);
	while(n)
	{
		printf("请输入用户名:  ");scanf("%s",ch_1);
		printf("请输入密码:   ");scanf("%s",ch_2);
		if(!strcmp(ch_1,ch1)&&!strcmp(ch_2,ch2))
		{
			root=1;
			break;
		}
		else
		{
			printf("账号或密码错误!!!\n");
			printf("请选择登陆方式(1-0):\n");
	        scanf("%d",&n);
		}
	}
}
void password()/*修改密码*/
{
	int a,b;
	char ch_1[50],ch_2[50];
	FILE *fp;
	if((fp=fopen("d:\\program\\password.txt","w"))==NULL)
	{
		printf("\n打开文件失败!!!\n");
		getch();
		exit(1);
	}
	printf("请输入新的用户名:  ");scanf("%s",ch_1);
	printf("请输入新的密码:  ");scanf("%s",ch_2);
	fprintf(fp,"%s%c",ch_1,'\n');
	fprintf(fp,"%s%c",ch_2,' ');
	fclose(fp);
	printf("\n密码已修改!!!\n\n");
	system("pause\n");
}
int main()
{
	int n;
	system("color 7d"); 
	newboot ();
	while(1)
	{
		menu();
		printf("请输入一个数 字,选择功能:\n");
		scanf("%d",&n);
		while(n>8||n<0||(n==8&&root==0))
		{
			printf("输入错误!!请重新输入n\n");
			scanf("%d",&n);
		}
		if(n==7)
			break;
		switch(n)
		{
		     case 0 :newboot();break;
		     case 1 :newbuild();break;
			 case 2 :add();break;
			 case 3 :modify();break;
			 case 4 :del();break;
			 case 5 :search();break;
			 case 6 :output();break;
			 case 8 :password();break;
		}
	}
}

  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值