⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mis.cpp

📁 用C++做的小型学生管理系统
💻 CPP
字号:
#include "stdio.h"
#include "windows.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
#define MAX 100
struct student
{
	int id;
    char name[20];
	char sex[20];
    char cla[20];
};

void showmenu(student stu[],int num);
int insert(student stu[],int num);       //添加学员信息
int del(student stu[],int num);          //删除学员信息
void update(student stu[],int num);      //修改学员信息
void query(student stu[],int num);       //查询学员信息
void show(student stu[],int num);        //显示学员信息
int readfile(student stu[],int num);     //读取学员信息

void main()
{   
	student stu[MAX];
	int num=0;
	int i;
    char user[6]={"admin"};
	char code[7]={"abc123"};
	char acc[81];
	char pass[81];
	num=readfile(stu,num);
	while(1)
	{
		system("color 0b");
		printf("请输入用户名:");
		scanf("%s",acc);
		printf("请输入密码:");
	    for(i=0;;i++)
		{
			pass[i]=getch();
			
			if(pass[i]==13)
			{
				break;
			}
			printf("*");
		}
	    pass[i]='\0';
		if(strcmp(user,acc)==0 && strcmp(code,pass)==0)
		{
			showmenu(stu,num);
			break;
		}
		if(strcmp(user,acc)==0 && strcmp(code,pass)!=0)
		{
			printf("\n密码错误!\n");
		}
		if(strcmp(user,acc)!=0 && strcmp(code,pass)==0)
		{
			printf("用户不存在!\n");
			
		}
		if(strcmp(user,acc)!=0 && strcmp(code,pass)!=0)
		{
			printf("信息错误,系统中止!\n");
		}
	}
	
}

//函数名:showmenu
//功能:  显示主菜单
//作者:  谢杰
//形参:  student stu[],int num
//返回值:void

void showmenu(student stu[],int num)
{
	int select;     //用户一级菜单选择
	int choice;     //用户二级菜单选择
	
	while(1)
	{   
		system("color 0b");
		system("cls");
		printf("\n");
		printf("\t\t\t******************************\n");
		printf("\t\t\t*欢迎使用学员信息管理系统V1.0*\n");
		printf("\t\t\t*      1---管理学员信息      *\n");
		printf("\t\t\t*      2---退 出 系  统      *\n");
		printf("\t\t\t******************************\n");
		printf("请输入你的选择(1-2):");
		scanf("%d",&select);
		if(select==2)
		{  
			system("cls");
		    break;
		}
		switch(select)
		{
		    case 1: 
			while(1)
			{   
				system("color 0b");
				system("cls");
				printf("\n");
				printf("\t\t\t************************\n");
				printf("\t\t\t*   学员信息管理系统   *\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*************************\n");
				printf("请输入你的选择(1-6):");
				scanf("%d",&choice);
				if(choice==6)
				{
					break;
				}
				switch(choice)
				{
				case 1: printf("\t\t\t用户要进行添加学员信息的操作\n");
					num=insert(stu,num);
					break;
				case 2: printf("\t\t\t用户要进行删除学员信息的操作\n");
					num=del(stu,num);
					break;
				case 3: printf("\t\t\t用户要进行修改学员信息的操作\n");
					update(stu,num);
					break;
				case 4: printf("\t\t\t用户要进行查询学员信息的操作\n");
					query(stu,num);
					break;
				case 5: printf("\t\t\t用户要进行显示学员信息的操作\n");
					show(stu,num);
					break;
				default:printf("输入错误,请重新输入!\n");
					break;
				}
				system("pause");
			}
			printf("谢谢使用,欢迎再来!\n");
		}
	}
	printf("谢谢使用,欢迎再来!\n");
}


//函数名:insert
//功能:  添加学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:int 
int insert(student stu[],int num)
{
	int flag=0;   //不重复
	int i,id;
	FILE *fp;
	if((fp=fopen("stu.txt","a+"))==NULL)
	{
		printf("创建文件失败,请按任意键退出!\n");
	    getch();
		exit(1);
	}
	printf("请输入学员信息:\n");
	if(num>=MAX)
	{
		printf("\t\t\t学员已满,无法再添加!\n");
		return num;
	}
	while(1)
	{
		flag=0;
		printf("请输入学员编号:");
		scanf("%d",&id);
		for(i=0;i<num;i++)
		{
			if(id==stu[i].id)
			{   
				printf("编号重复,请重新输入!");
				flag=1;
				break;
			}
		}
		if(flag==0)
		{
			break;
		}
	}
	stu[num].id=id;
	printf("请输入学员姓名:");
	scanf("%s",stu[num].name);
	while(1)
	{
		printf("请输入学员性别:");
		scanf("%s",stu[num].sex);
	    if(strcmp(stu[num].sex,"男")==0 || strcmp(stu[num].sex,"女")==0)
		{
			break;
		}
		else
		{
			printf("输入错误,请重新输入!\n");
		}
	}
	printf("请输入学员班级:");
	scanf("%s",stu[num].cla);
	fprintf(fp,"%d\t%s\t%s\t%s\n",stu[num].id,stu[num].name,stu[num].sex,stu[num].cla);
    printf("\t\t\t\t学员信息录入成功!\n");
	fclose(fp);
	return num+1;
}


//函数名:del
//功能:  删除学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:int
int del(student stu[],int num)
{
	int i;
	int j;
    int id;
	char ok;
	FILE *fp;
	if((fp=fopen("stu.txt","w+"))==NULL)
	{
		printf("不能操作文件,请按任意键退出!\n");
	    getch();
		exit(1);
	}
	printf("请输入要删除的学员编号:");
	scanf("%d",&id);
	for(i=0;i<num;i++)
	{
		if(id==stu[i].id)
		{
			printf("此人已找到,信息如下:\n");
			printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
			printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
			printf("是否确认删除:'Y'-确定,'N'-取消");
			scanf(" %c",&ok);
			if(ok=='N'||ok=='n')
			{
				printf("用户取消,删除中止!");
			}
			else if(ok=='Y'||ok=='y')
			{
				for(j=0;j<num;j++)
				{
					stu[j]=stu[j+1];
				}
				printf("删除成功!\n");
				num--;
		        for(j=0;j<num;j++)
				{
			       fprintf(fp,"%d\t%s\t%s\t%s\n",stu[j].id,stu[j].name,stu[j].sex,stu[j].cla);
				}
		        fclose(fp);
		        return num;
			}
		
	       else
		   {
			   printf("输入有误,删除中止!\n");
		   }
		   
		}
		else
		{
			printf("查无此人!\n");
		}
	} 
	fclose(fp);
    return num;
}


//函数名:update
//功能:  修改学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:void
void update(student stu[],int num)
{   
	int result=-1;
	int i;
	int id;
	printf("请输入学员编号:");
	scanf("%d",&id);
	for(i=0;i<num;i++)
	{   
	    if(id==stu[i].id)
		{
			result=0;
			break;
		}

    }
	if(result==-1)
	{
		 printf("查无此人,无法修改!");
	}
	else
	{
		printf("此人已找到,信息如下:\n");
		printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
		printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
		printf("请输入修改后的姓名:");
		scanf("%s",stu[i].name);
		printf("请输入修改后的性别:");
		scanf("%s",stu[i].sex);	
		printf("请输入修改后的班级:");
		scanf("%s",stu[i].cla);	
		FILE *fp;
		if((fp=fopen("stu.txt","w+"))==NULL)
		{
			printf("不能操作文件,请按任意键退出!\n");
			getch();
			exit(1);
		}
		for(i=0;i<num;i++)
		{
			fprintf(fp,"%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
		}
		fclose(fp);
		printf("修改成功");
	}
}


//函数名:query
//功能:  查询学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:void
void query(student stu[],int num)
{   
	int result=-1; 
	int id;
	int i;
    printf("请输入要查询的学员编号:");
	scanf("%d",&id);
	for(i=0;i<num;i++)
	{
	    if(id==stu[i].id)
		{
			result=0;
			break;
		}
	}
	if(result==-1)
	{
	    printf("无学员信息!\n");
	}
	else
    {   
		printf("此人已找到,信息如下:\n");
		printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
		printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
	}
}


//函数名:show
//功能:  显示学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:void
void show(student stu[],int num)
{
	int i;
	if(num==0)
	{
		printf("无学员信息!\n");
		return;
	}
    printf("\t\t\t\t编号\t姓名\t性别\t班级\n");
	for(i=0;i<num;i++)
	{
		printf("\t\t\t\t%d\t%s\t%s\t%s\n",stu[i].id,stu[i].name,stu[i].sex,stu[i].cla);
	}
}


//函数名:readfile
//功能:  读取学员信息
//作者:  谢杰
//形参:  student stu[],int num
//返回值:int
int readfile(student stu[],int num)
{
	FILE *fp;
	if((fp=fopen("stu.txt","w+"))==NULL)
	{
		printf("不能操作文件,请按任意键退出!");
		getch();
		exit(1);
	}
	fclose(fp);
	if((fp=fopen("stu.txt","r+"))==NULL)
	{
		printf("不能操作文件,请按任意键退出!");
		getch();
		exit(1);
	}
	while(!feof(fp))
	{
		fscanf(fp,"%d\t%s\t%s\t%s\n",&stu[num].id,stu[num].name,stu[num].sex,stu[num].cla);
		if(stu[num].id<0)
		{
            continue;
		}
	    num++;
	}
	fclose(fp);
	return num;
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -