西安邮电大学课程设计:学生管理系统 带登录界面和点名系统

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h> 
void admin();
void main1();
struct student
{
	char name[20];
	char num[20];
	char kind[20];
	int score;
}stu[199],t,stu_s[199];
void first()
{	
	FILE *fp;
	if ((fp=fopen("library.txt","r"))==NULL)
	{
      fp=fopen("library.txt","w");
      fclose(fp);
    }
}


void getstu(int a)
{
	
	system("CLS");
 FILE *fp;

fp=fopen("library.txt","r");

int n=0,b=0,i=0;

for (n=0;!feof(fp);n++)
{
	fscanf(fp,"%s%s%s%d",stu[n].name,stu[n].num,stu[n].kind,&stu[n].score);

}
n-=2;
printf("%-10s%-10s%-10s 次数\n",stu[0].name,stu[0].num,stu[0].kind,stu[0].score);
for (b=1;b<=n;b++)
printf("%-10s%-10s%-10s %d\n",stu[b].name,stu[b].num,stu[b].kind,stu[b].score);
printf("一共有%d个人\n",n);
fclose(fp);
printf("返回上一级请按Esc,删除请按D,修改请按E\n");
		i=getch();
		if(i!=27)
		{
			if(i=='D'||i=='D'){
				printf("请输入要删除学生的学号");
			scanf("%s",t.num);
			if(strcmp(t.num,"学号")==0)printf("删除错误");
			else
			for(i=0;i<=n+2;i++)
			{
				if(strcmp(t.num,stu[i].num)==0)
				{
					if(!strcmp(stu[i].kind,"电科1801"))printf("这个无法删除");
					else
					{
					fp=fopen("library.txt","w");
	
		for (int m=0;m<n+1;m++)
			if(m!=i)
			fprintf(fp,"%-10s%-16s%-15s%d\n",stu[m].name,stu[m].num,stu[m].kind,stu[m].score);
		fclose(fp);
				}}
			}}
			if(i=='e'||i=='E'){
				printf("请输入要修改的学生的学号");
			scanf("%s",t.num);
			if(strcmp(t.num,"学号")==0)printf("删除错误");
			else
			for(i=0;i<=n+2;i++)
			{
				if(strcmp(t.num,stu[i].num)==0)
				{
					if(!strcmp(stu[i].kind,"电科1801"))printf("这个无法删除");
					else
					{
					fp=fopen("library.txt","w");
					printf("请输入要修改完成的(姓名 学号 班级):\n");
		scanf("%s%s%s",stu[n].name,stu[n].num,stu[n].kind);
		
					for (int m=0;m<n+1;m++)
				fprintf(fp,"%-10s%-16s%-15s%d\n",stu[m].name,stu[m].num,stu[m].kind,stu[m].score);
		fclose(fp);
				}
				}
			}
			}

	printf("任意键退出");
		getch();
		}
					

}
void plus()
{
 system("CLS");
 FILE *fp;

fp=fopen("library.txt","r");

int n=0,b=0,i=0;

for (n=0;!feof(fp);n++)
fscanf(fp,"%s%s%s%d",stu[n].name,stu[n].num,stu[n].kind,&stu[n].score);
fclose(fp);
fp=fopen("library.txt","a");
printf("请输入(姓名 学号 班级):\n");
		scanf("%s%s%s",stu[n].name,stu[n].num,stu[n].kind);
		stu[n].score=0;
		fprintf(fp,"%-10s%-16s%-15s 0\n",stu[n].name,stu[n].num,stu[n].kind);
		fclose(fp);
	    printf("写入完成\n");
printf("返回上一级请按Esc\n");
		for (;i!=13&&i!=27;)
        i=getch();
	admin();
}	
void star(int a)
{   int n=0,b=0,k,m,i=0;

	system("CLS");
	FILE *fp;
	fp=fopen("library.txt","r");
	for (n=0;!feof(fp);n++)
fscanf(fp,"%s%s%s%d",stu[n].name,stu[n].num,stu[n].kind,&stu[n].score);
fclose(fp);
    n--;
	b=rand()%n+1;
	printf("恭喜名为%s学号是%s班级是%s的同学\n你被点了%d次\n",stu[b].name,stu[b].num,stu[b].kind,stu[b].score);
	stu[b].score++;
	 for(i=n-1;i>0;i--)
  {
    m=0;
    
	for( k=i;k>0;k--)
    if(stu[m].score>stu[k].score)m=k;
  
  t=stu[i];
  stu[i]=stu[m];
  stu[m]=t;
	 }
	fp=fopen("library.txt","w");
	
		for ( m=0;m<n;m++)
			fprintf(fp,"%-10s%-16s%-15s %d\n",stu[m].name,stu[m].num,stu[m].kind,stu[m].score);
		fclose(fp);
printf("返回上一级请按Esc或回车\n");
		for (;i!=13&&i!=27;)
        i=getch();
if(a==1)
admin();
else
main1();



}
void star_plus(int a)
{   int n=0,b=0,k,m,i=0,s=0;
	char kind[20];
	system("CLS");
	printf("请输入\n");
	scanf("%s",kind);
	FILE *fp;
	fp=fopen("library.txt","r");
	for (n=0;!feof(fp);n++)
	fscanf(fp,"%s%s%s%d",stu[n].name,stu[n].num,stu[n].kind,&stu[n].score);
	 for(i=n-1;i>0;i--)
  {
    m=0;
	for( k=i;k>0;k--)
    if(stu[m].score>stu[k].score)m=k;
  
  t=stu[i];
  stu[i]=stu[m];
  stu[m]=t;
	 }
	 
	for( k=n;k>=0;k--)
	if(strcmp(stu[k].kind,kind)==0)
	{
	
		s++;
		stu_s[s]=stu[k];

	}
	
	if(s==0){
		printf("没有这个班\n");
		goto sss;
	}
	
fclose(fp);
	printf("%-10s%-10s%-10s 次数\n",stu[0].name,stu[0].num,stu[0].kind,stu[0].score);
    for(i=1;i<=s;i++)
		printf("%-10s%-10s%-10s %d\n",stu_s[i].name,stu_s[i].num,stu_s[i].kind,stu_s[i].score);
	b=rand()%s+1;
	printf("恭喜名为%s学号是%s班级是%s的同学\n你被点了%d次\n",stu_s[b].name,stu_s[b].num,stu_s[b].kind,stu_s[b].score);
	stu[b].score++;
	
    
	
	fp=fopen("library.txt","w");
	
		for ( m=0;m<n;m++)
			fprintf(fp,"%-10s%-16s%-15s %d\n",stu[m].name,stu[m].num,stu[m].kind,stu[m].score);
		fclose(fp);
sss:
printf("返回上一级请按Esc或回车\n");
		for (;i!=13&&i!=27;)
        i=getch();
if(a==1)
admin();
else
main1();



}
void regist()
{
FILE *fp;
	int zhanghao;
	char password[20],password1[20],passwords[20];
	char hit=0;
	if ((fp=fopen("land.txt","r"))==NULL)
	{
      fp=fopen("land.txt","w");
      fclose(fp);
    }
    system("cls");
	fp=fopen("land.txt","a");
	while(1)
	{
	   printf("\n请按以下格式输入账户:\n手机号 密码\n");
	   printf(":");
	   scanf("%d %s",&zhanghao,password);
       printf("再次输入密码:\n");
	   scanf("%s",password1);
	   if(strcmp(password,password1)==0)
	   {
		   int n=strlen(password),i;
		   for(i=0;i<n+1;i++)
		   {
				
			   if(password[i]=='\0')
			   {
					passwords[i]='\0';
					break;
			   }
			   passwords[i]=password[i]*2+1 ;
		   }
	       fprintf(fp,"%d %s\n",zhanghao,passwords);
		   break;
       }
       else
	   {
	       printf("两次输入密码不一致,继续创建按回车,退出按ESC");
	       hit=getch();
		   if(hit=27)
		   system("cls");
		   main1();
		         }
   }
   fclose(fp);
   printf("创建成功,按任意键返回");
   getch();
   system("cls");
   main1();
}
int match(int m,char a[20])
{
	FILE*fp;
	int n=0,i=0;
	int zhanghao;
	char password[20],passwords[20];

	if ((fp=fopen("land.txt","r"))==NULL)
	  {
         system ("cls");
		 printf("\n 还未存在用户!请新建账户");
		 getch();
	 	system("cls");
		main1();
	
      }


        for(;!feof(fp);)
      {
        fscanf(fp,"%d%s",&zhanghao,password);
        if(m==zhanghao)
        {
			

//解密
			 int n=strlen(password),i;
		   for(i=0;i<n+1;i++)
		   {
				
			   if(password[i]=='\0')
			   {
					passwords[i]='\0';
					break;
			   }
			   passwords[i]=(password[i]-1)/2 ;
		   }
//
        	if(strcmp(a,passwords)==0)
			return 1;
			else
			{
			return -1;
		   }
	    }
	  }
	  return 0;
 }
void log()
{
int zhanghao;
	char password[20];
	int i=2;
	char hit=0;
	system("cls");
	
	   printf("\n请输入账号:\n");
       scanf("%d",&zhanghao);
	 printf("\n请输入密码:\n");
	 scanf("%s",password);
     i=match(zhanghao,password);
     if(i==1)
	 {
       printf("登陆成功!按任意键继续");
	   getch();
	   admin();
	 }
	 else
	 {
	 	if(i==-1)
		 {
		 printf("密码错误!");
		 getch();
         log();
		 }
		 if(i==0)
		 printf("不存在此用户");
		 getch();
		 system("cls");
		 main1();
	 }
}

void main1()
{
	system("CLS");
printf("******************欢迎使用点名系统****************\n");
printf("**************************************************");

printf("\n\n 1.用户注册\n\n");

printf("\n\n 2.用户登录\n\n");

printf("\n\n 3.直接点名\n\n");

printf("\n\n 4.按班级点名\n\n");

printf("\n\n 请输入序号选择,回车确定\n");

printf("*************************************************\n");
printf("******************西安邮电大学*****************\n");
printf("*******************电科1801********************\n");
int i=getch();
if(i==49)
regist();
if(i==50)
log();
if(i==51)
star(2);
if(i==52)
star_plus(2);
else

main1();
}

void admin()
{
system("CLS");
printf("**************************************************");

printf("\n\n 1.学生查询\n\n");

printf("\n\n 2.学生增加\n\n");

printf("\n\n 3.直接点名\n\n");

printf("\n\n 4.按班级点名\n\n");

printf("\n\n 请输入序号选择,回车确定\n");

printf("*************************************************\n");
printf("******************西安邮电大学*****************\n");
printf("*******************电科1801********************\n");
int i=getch();
if(i==49)
getstu(1);
if(i==50)
plus();
if(i==51)
star(1);
if(i==52)
star_plus(2);
else
admin();
}
void main()
{
	srand( (unsigned)time( NULL ) ); 
	first();
	main1();
	admin();


}


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xlwreally

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值