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

📄 676786complete.cpp

📁 C编写的学籍管理系统 基于命令行提示 添加 删除 修改 查询
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 100
struct Student
{
	int num;
	char name[10];
	char sex[6];
	int age;
	int scholarship;
}stud[SIZE];
int total=-1;
//------------------------
void show(void)
{FILE *fp2;
 int i;
 if((fp2=fopen("file_dbf.txt","rb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}
 printf("\n学号	   姓名	           性别       年龄       奖学金\n");
	printf("-------------------------------------------------------\n");
	for(i=0;i<=total;i++)
	{
		fread(&stud[i],sizeof(struct Student),1,fp2);
		printf("%-10d %-15s %-10s %-10d %-10d\n",stud[i].num,stud[i].name,
			stud[i].sex,stud[i].age,stud[i].scholarship);
	}
	printf("-------------------------------------------------------\n");
	fclose(fp2);
}
//------------------------
void add(void)
{FILE *fp3;
 int i;
 int flag=1;
 
fp3=fopen("file_dbf.txt","rb+");
	
	for(i=0;i<=total;i++)
	{
		fread(&stud[i],sizeof(struct Student),1,fp3);}
 

	total=total+1;
printf("输入第%d个学生的数据:\n",total+1);
while(flag)
{printf("学号:");
scanf("%d",&stud[total].num);
for(i=0;i<total;i++)
{if(stud[total].num==stud[i].num)
{printf("学号重复 请重新输入学号\n");
break;}}
if(i==total)
{flag=0;}
}
printf("姓名:");
scanf("%s",stud[total].name);
printf("性别:");
scanf("%s",stud[total].sex);
printf("年龄:");
scanf("%d",&stud[total].age);
printf("奖学金:");
scanf("%d",&stud[total].scholarship);
if((fp3=fopen("file_dbf.txt","wb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}
for(i=0;i<=total;i++)
		if(fwrite(&stud[i],sizeof(struct 

Student),1,fp3)!=1)     
		{printf("file write error\n");              

                           
		return;                  
		}
		fclose(fp3);
	
		
}
//-----------------------------
void dele(void)
{
  FILE *fp4;
  if((fp4=fopen("file_dbf.txt","rb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}
  for(int q=0;q<=total;q++)
	{
		fread(&stud[q],sizeof(struct Student),1,fp4);}
    fclose(fp4);
  int y,flag,i;
  
  printf("输入欲删除的学生的学号__\n");
  scanf("%d",&y);
 for(flag=1,i=0;flag&&i<=total;i++)
      {if(stud[i].num==y)
		{for(int e=i;e<=total-1;e++)
      {stud[e].num=stud[e+1].num;
       stud[e].age=stud[e+1].age;
       stud[e].scholarship=stud[e+1].scholarship;
       strcpy(stud[e].name,stud[e+1].name);
       strcpy(stud[e].sex,stud[e+1].sex);}
		flag=0;
                         }
		
      }
  
  if(!flag)
  total=total-1;
  else
	  printf("无此学号!");

  if((fp4=fopen("file_dbf.txt","wb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}
for(i=0;i<=total;i++)
		fwrite(&stud[i],sizeof(struct Student),1,fp4);
		fclose(fp4);
   }

//----------------------------
void search(void)
{ FILE *fp6;
	int t;
 printf("输入要查询的学生学号:");
 scanf("%d",&t);
 if((fp6=fopen("file_dbf.txt","rb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}

for(int i=0;i<=total;i++)
	{
		fread(&stud[i],sizeof(struct Student),1,fp6);}
fclose(fp6);
for(int e=0,flag=1;flag&&e<=total;e++)
{if (stud[e].num==t)
  
{printf(" %d    %s     %s     %d    %d\n",stud[e].num,stud[e].name,
		stud[e].sex,stud[e].age,stud[e].scholarship);
flag=0;}
}
if(flag)
{printf("无此学号!\n");}

}

//---------------------
void modify(void)
{	FILE *fp5;
	int t;
 printf("输入要修改的学生学号:");
 scanf("%d",&t);
 if((fp5=fopen("file_dbf.txt","rb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}

for(int i=0;i<=total;i++)
	{
		fread(&stud[i],sizeof(struct Student),1,fp5);}
fclose(fp5);
for(int e=0,flag=1;flag&&e<=total;e++)
{if (stud[e].num==t)
	{printf("修改后的学号:");
	 int q;
	 scanf("%d",&q);
	 stud[e].num=q;
	 printf("修改后的姓名:");
	 char w;
	 scanf("%s",&w);
	 strcpy(stud[e].name,&w);
	 printf("修改后的性别:");
	 char z;
	 scanf("%s",&z);
	 strcpy(stud[e].sex,&z);
	 printf("修改后的年龄:");
	 int r;
	 scanf("%d",&r);
	 stud[e].age=r;
	  printf("修改后的奖学金:");
	 int o;
	 scanf("%d",&o);
	 stud[e].scholarship=o;
	if((fp5=fopen("file_dbf.txt","wb+"))==NULL)
	{
		printf("The file can not open\n");
		return;
	}

for(i=0;i<=total;i++)
		fwrite(&stud[i],sizeof(struct Student),1,fp5);
flag=0;		
fclose(fp5);}
}
if(flag)
{printf("无此学号!\n");}
}

//-----------------------
	void main()
{	
    FILE *fp;

	int u=0;
fp=fopen("file_dbf.txt","rb+");
while(fread(&stud[u],sizeof(struct Student),1,fp)!=0)
{total=u;
 u=u+1;
}

    //---------------------------
	int t=0;
	printf("            --------◎◎◎学 籍 管 理 数 据 库◎◎◎--------\n");
    while(t==0||t==1||t==2||t==3||t==4||t==5)
    {printf("\n输入您的操作选项:______");
    printf("\n输入1为增加学生数据,输入2为显示整个数据库,输入3为删除,输入4为查询,输入5为修改,输入0为退出\n");
    scanf("%d",&t);
    if(t==0)
	{printf("\n谢谢您的使用\n");
	 return;}
    if(t==1)
	{add();}
    if(t==3)
	{dele();}
	if(t==2)
	{show();}
	if(t==4)
	{search();}
	if(t==5)
	{modify();}
	}
}

⌨️ 快捷键说明

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