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

📄 hm.cpp

📁 学生管理系统程序
💻 CPP
字号:
/**
*程序名称:学生成绩管理系统
*C语言程序
*功能实现:数据的添加,显示,排序,查找
*/
#include<time.h> 
#include<stdio.h> 
#include<conio.h> 
#include<stdlib.h>
#include <string.h>
#define MAX 25
void input(); 
void sort();
void display();
void selectscore1();
void selectscore2();
int now_no=0;

struct student{
 int no;
 char name[25];
 float sort;
};
struct student stu[MAX],*p;

main()
{
 char as;
 start: printf("\t\t\t欢迎使用学生成绩管理系统\n\n");
   //一下为功能选择模块
 do{
  printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员信息\n\t\t\t\t3.成绩排序信息\n\t\t\t\t4.通过姓名查找分数线性搜索法\n\t\t\t\t5.通过姓名(学号)查找分数--对分搜索法\n\t\t\t\t6.退出\n");
  printf("\t\t\t\t选择功能选项:");
  as=getch();
  switch(as){
   case '1':
    system("cls");
    input();
    break;
   case '2':
    system("cls");    
    display();
    break;
   case '3':
    system("cls");    
    sort();
    break;
   case '4':
    system("cls");    
    selectscore1();
    break;
   case '5':
    system("cls");    
    selectscore2();
    break;
   case '6':
    system("exit");
    exit(0);
   default:
    system("cls");
    goto start; 
  }
 }while(1);
 //至此功能选择结束
}

void input()//原始数据录入模块
{
 int i=0;
 char ch;
 do{
  printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);
  printf("\n输入学生编号:");
  scanf("%d",&stu[i].no);
  fflush(stdin);
  printf("\n输入学员姓名:");
  fflush(stdin);
  gets(stu[i].name);
  printf("\n输入学员成绩:");
  fflush(stdin);
  scanf("%f",&stu[i].sort);
  if(stu[i].sort>99||stu[i].sort<60)
  {
  printf("\n输入学员成绩错误,请重新输入");
  printf("\n\n");
  now_no=i;
  }
  else
  {
	  printf("\n\n");
      i++;
      now_no=i;	  
  }
  printf("%d",now_no);
  printf("是否继续输入?(Y/N)");
  ch=getch();
  system("cls");
 }while(ch!='n');

 system("cls");
}

void sort()//排序数据函数
{
 struct student temp;
 char as;
 int i,j;
 for(i=1;i<now_no;i++){
  for(j=1;j<=now_no-i;j++){
   if(stu[j-1].sort>stu[j].sort){
    temp=stu[j];
    stu[j]=stu[j-1];
    stu[j-1]=temp;
   }
  }
 }
 do{
  printf("\t\t班级学员信息列表\n");
  printf("\t编号\t\t姓名\t\t成绩\n");
  for(i=0;i<now_no;i++){
	printf("\t%d\t\t%s\t\t%.2f\n",stu[i].no,stu[i].name,stu[i].sort);  
 }
   printf("\t\t按任意键返回主菜单.");
  as=getch();
  goto exit;
 }while(as!='n');
 exit: system("cls");
}

void display()//显示数据函数
{
 int i;
 char as;
 do{
  printf("\t\t班级学员信息列表\n");
  printf("\t编号\t\t姓名\t\t成绩\n");
  for(i=0;i<now_no;i++){
  printf("\t%d\t\t%s\t\t%.2f\n",stu[i].no,stu[i].name,stu[i].sort);
  }
  printf("\t\t按任意键返回主菜单.");
  as=getch();
  goto exit;
 }while(as!='n');
 exit: system("cls");
 
}

void selectscore1()//通过姓名查找分数线性搜索法
{
 
/* 
//通过姓名查找
char name[100];
 char ch;
 do{
  printf("\n\t\t输入要查找学生的姓名\n");
  printf("\n输入学员姓名:");
  fflush(stdin);
  gets(name);

 int i;
 for(i=0;i<now_no;i++)
 {
	if(strcmp(name,stu[i].name)==0)
	{
	printf("\t编号\t\t成绩\n");
    printf("\t%d\t\t%.2f\n",stu[i].no,stu[i].sort);
	break;
	}	 
 }*/

 //通过学号查找程序
 int num;
 char ch;
 do{
  printf("\n\t\t输入要查找学生的学号\n");
  printf("\n输入学员学号:");
  fflush(stdin);
  scanf("%d",&num);
  
 int i;
 for(i=0;i<now_no;i++)
 {
	if(num=stu[i].no)
	{
	printf("\t姓名\t\t成绩\n");
    printf("\t%s\t\t%.2f\n",stu[i].name,stu[i].sort);
	break;
	}	 
 }


  printf("是否继续输入?(Y/N)");
  ch=getch();
  system("cls");
 }while(ch!='n');
}

void selectscore2()//通过姓名(学号)查找分数--对分搜索法
{ 
 int num;
 char ch;
 do{
  printf("\n\t\t输入要查找学生的学号\n");
  printf("\n输入学员学号:");
  fflush(stdin);
  scanf("%d",&num);
  
  int low=1;
  int high=MAX;
  int mid;
  int i;
  i=1;
  while (low<=high)
  {
	mid=(low+high)/2;
    if(num==mid)
	{
    printf("\t姓名\t\t成绩\n");
    printf("\t%s\t\t%.2f\n",stu[i].name,stu[i].sort);
	i=0;
	}
	else if(num<mid)
	high=mid;
	else
	low=mid;
    if(i==0)
		break;
}
 printf("是否继续输入?(Y/N)");
  ch=getch();
  system("cls");
 }while(ch!='n');
}

⌨️ 快捷键说明

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