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

📄 text2.cpp

📁 实现学生成绩管理系统
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int INDEX[32];
struct STUDENT
 {
 int ID,Chinese,Math,English;
 char name[21];
 }students[32];

void page_title(char *menu_item)
 {
 printf("************************>>> 学 生 成 绩 管 理 系 统 <<<************************\n\n");
 printf("                                                              制作人:赵晨/戴杰\n- %s -\n\n",menu_item);
}

void return_confirm()
 {
  printf("\n按任意键返回……\n");
  getch();
 }

void student_new()
 {
 int n;
 page_title("录入学生基本信息");
 for(n=0;n<32;n++) 
  if(students[n].ID==0) break;
 printf("学号:");
 scanf("%d",&students[n].ID);
 printf("姓名:");
 scanf("%s",&students[n].name);
 return_confirm();
 }

int search_id()
 {
  int n,i;
  printf("请输入学生学号:");
  scanf("%d",&i);
     for(n=0;n<32;n++)
       if(students[n].ID==i&&students[n].ID!=0)
	   {
        printf("学号:%d\n",students[n].ID);
        printf("姓名:%s\n",students[n].name);
        return(n);
	   }
   printf("\n输入错误或学号不存在.\n");
   return(-1);
 }

void student_del()
 {
  int n;
  page_title("注销学生基本信息");
   if((n=search_id())!=-1) students[n].ID=0;
   printf("\n!该学生已注销.\n");
   return_confirm();
 }

void student_edit()
 {
 int n;
 page_title("编辑学生基本信息");
 if((n=search_id())!=-1)
  {
  printf("\n请重新输入新信息:\n学号:");
  scanf("%d",&students[n].ID);
  printf("姓名:");
  scanf("%s",&students[n].name);
  }
 return_confirm();
 }

void score_input()
 {
 int s,n,t;
 page_title("录入成绩");
 printf("\n请用数字键选择科目\n1-语文 2-数学 3-英语\n");
 scanf("%d",&s);
 for(n=0;n<32;n++)
  {
  if(students[n].ID!=0)
   {
   printf("学号:%d 姓名:%s 成绩:",students[n].ID,students[n].name);
   scanf("%d",&t);
   switch(s)
    {
    case 1 : students[n].Chinese=t;break;
    case 2 : students[n].Math=t;break;
    case 3 : students[n].English=t;break;
    }   
   }  
  }
 return_confirm();
 }

void score_edit()
 {
 int n;
 page_title("修改成绩");
 if((n=search_id())!=-1) 
  {
  printf("语文:%d 数学:%d 英语:%d\n",students[n].Chinese,students[n].Math,students[n].English);
  printf("\n请重新输入成绩:\n语文:");
  scanf("%d",&students[n].Chinese);
  printf("数学:");
  scanf("%d",&students[n].Math);
  printf("英语:");
  scanf("%d",&students[n].English);
  }
 return_confirm();
 }

void sort_it(char nn)
 {
 int n,m,p,x,t[32];
 for(n=0;n<32;n++)
  {
  switch(nn)
   {
   case '1' : t[n]=students[n].ID;break;
   case '2' : t[n]=students[n].Chinese;break;
   case '3' : t[n]=students[n].Math;break;
   case '4' : t[n]=students[n].English;break;
   case '5' : t[n]=students[n].Chinese+students[n].Math+students[n].English;break;
   }
  }
 for(n=0;n<32;n++)
  {
  x=0;
  p=-1;
  for(m=0;m<32;m++)
   {
   if(t[m]>x)
    {
    x=t[m];
    p=m;
    }
   }
  t[p]=-1;
  INDEX[n]=p;
  }
 }

void browser()
 {
 int n,x;
 char k;
 sort_it('1');
 page_title("浏览");
 printf("按数字键选择排序方式或按 0 返回\n");
 printf("1-学号\t 姓名\t2-语文\t3-数学\t4-英语\t5-总分\n");
 for(n=0;n<32;n++)
 {
  if(INDEX[n-1]!=-1&&students[n].ID!=0)
  {
   printf("%d\t %s\t ",students[n].ID,students[n].name);
   printf("%d\t ",students[n].Chinese);
   printf("%d\t %d\t ",students[n].Math,students[n].English);
   printf("%d\n",students[n].Chinese+students[n].Math+students[n].English);
  }
 }
 while(1)
 {
 k=getch();
 if(k<'6'&&k>'0')
 {
   sort_it(k);
   page_title("浏览");
   printf("按数字键选择排序方式或按 0 返回\n");
   printf("1-学号\t 姓名\t2-语文\t3-数学\t4-英语\t5-总分\n");
 for(n=0;n<32;n++)
  {
   if(INDEX[n-1]!=-1)
   {
   x=INDEX[n];
     if(students[x].ID!=0)
	 {printf("%d\t%s\t",students[x].ID,students[x].name);
      printf("%d\t",students[x].Chinese);
      printf("%d\t%d\t",students[x].Math,students[x].English);
      printf("%d\n",students[x].Chinese+students[x].Math+students[x].English);
	 }
   }
  }
 }
 else if(k=='0') break;
 else continue; 
 }
 }

void save()
{FILE *in;
 int i;
 char save[10];
 printf("请输入文件名:");
 scanf("%s",save);
      if((in=fopen(save,"wb"))==NULL)
	  {printf("cannot open file\n");
       return;
	  }
 for(i=0;i<32;i++)
	 if(fwrite(&students[i],sizeof(struct STUDENT),1,in)!=1)
		 printf("file write error\n");
	 fclose(in);
     return_confirm();
}

void load()
{FILE *out;
 int i;
 char load[10];
 printf("请输入文件名:");
 scanf("%s",load);
   if((out=fopen(load,"rb"))==NULL)
   {printf("cannot open infle\n");
     return;
   }
   printf("学号\t姓名\t语文\t数学\t英语\t总分\n");
      for(i=0;i<32;i++)
	  {
	    fread(&students[i],sizeof(struct STUDENT),1,out);
		  if(students[i].ID!=0)
		  {
		   printf("%d\t%s\t",students[i].ID,students[i].name);
           printf("%d\t",students[i].Chinese);
           printf("%d\t%d\t",students[i].Math,students[i].English);
           printf("%d\n",students[i].Chinese+students[i].Math+students[i].English);
		  }
	  }
	  fclose(out);
      return_confirm();
}

void main()
 {
 while(1)
 {
  page_title("选择菜单");
  printf("请用数字键选择操作\n\n");
  printf("1 录入学生基本信息\n2 修改学生基本信息\n");
  printf("3 注销学生基本信息\n4 录入成绩\n5 修改成绩\n");
  printf("6 保存数据\n7 载入数据\n8 浏览...\n0 退出\n");
 switch(getch())
  {
  case '1' : student_new();break;
  case '2' : student_edit();break;
  case '3' : student_del();break;
  case '4' : score_input();break;
  case '5' : score_edit();break;
  case '6' : save();break;
  case '7' : load();break;
  case '8' : browser();break;
  case '0' : exit(0);
  }
 }
 }

⌨️ 快捷键说明

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