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

📄 sharon.cpp

📁 用C语言开发的学生管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include<stdio.h> 
#include <stdlib.h>
#include<string.h>

struct student
{
    int num;
	char name[30];
	char sex;
	float score;
};  //定义结构体,存放学生信息
int Input_record(student stu[],int s);//录入学生信息(学号,姓名,性别)
void query_by_number(student stu[],int s);//按学号查询学生信息
void modify_record(student stu[],int s);//修改学生信息
int delete_record(student stu[],int s);//删除学生信息
void query_by_name(student stu[],int s);//按姓名查找学生信息
void input_score(student stu[],int s);//输入学生成绩
void modify_score(student stu[],int s);//修改学生成绩
void delete_score(student stu[],int s);//删除学生成绩
void statistic(student stu[],int s);//对成绩进行统计
/*菜单*/ 
char menu() 
{ 
char c; 
do 
{ 
	system("cls"); /*运行前清屏*/
	printf("\t\t\t|1.Input student's records.  |\n");printf("\t\t\t|  输入学生信息.  \n");//选1,插入学生记录
	printf("\t\t\t|2.Modify student's records. |\n");printf("\t\t\t|  修改学生信息.  \n");//选2,修改学生记录 
	printf("\t\t\t|3.Delete student's records. |\n");printf("\t\t\t|  删除学生信息.  \n");//选3,删除学生记录 
	printf("\t\t\t|4.Query by student's record.|\n");printf("\t\t\t|  按学号进行查找.  \n");//选4,按学号进行查找 
	printf("\t\t\t|5.Query by student's name.  |\n");printf("\t\t\t|  按姓名进行查找.  \n");//选5,按姓名进行查找 
	printf("\t\t\t|6.Input student's scores.   |\n");printf("\t\t\t|  输入学生成绩.  \n");//选6,输入学生成绩 
	printf("\t\t\t|7.Modify student's scores.  |\n");printf("\t\t\t|  修改学生成绩.  \n");//选7,修改学生成绩 
	printf("\t\t\t|8.Delete student's scores.  |\n");printf("\t\t\t|  删除学生成绩.  \n");//选8,删除学生成绩 
	printf("\t\t\t|9.Statistic.                |\n");printf("\t\t\t|  成绩统计.  \n");//选9,进行成绩统计(求平均分,最高分,最低分,排名) 
	printf("\t\t\t|0.Quit.                     |\n");printf("\t\t\t|  退出.  \n");//选0,退出系统 
	printf("                         ╭╮╭╮\n");
	printf("                        ╭★┴┴★╮\n");
	printf("                        │︵  ︵│\n");
	printf("                        ╰○--○╯     制作:郭旭\n");
	printf("                          ╰○○╯ ");
	printf("Give your choice(0-9): ");
	fflush(stdin);
	c=getchar();
}while(c<'0'||c>'9');  
return c;//返回C的值到主函数 
} 

/*主函数*/ 
void main() 
{
	int n=0;//用来统计录入的学生信息的个数
	student stu[70];
	char e;
	while(1)
	{	
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("		·························\n");
		printf("		* ============================================== *\n");
		printf("		* ============================================== *\n");
		printf("		* ======·················====== *\n");
		printf("		* ======· 学   员   管   理   系   统  ·====== *\n");
		printf("		* ======·················====== *\n");
		printf("		* ============================================== *\n");
		printf("		* ============================================== *\n");
		printf("		* ============================================== *\n");
		printf("		* ==============  制作:QAI0709 '怪杰'一组 ===== *\n");
		printf("		* ============================================== *\n");
		printf("		·························\n");
		printf("                                          ENTER (Y/N)?     ");
		e=getchar();
		if(e=='y'||e=='Y')
			break;
	}
while(1)
{switch(menu())//根据返回的menu()函数的值来进行switch..case判断,调用不同的函数 
{ 
case '1': 
  printf("Please input records.\n"); 
  n=Input_record(stu,n);//调用了Input_record()函数 
  break; 
case '2': 
  printf("Modify records.\n"); 
  modify_record(stu,n);//调用了modify_record()函数 
  //goto menu;
  break; 
case '3': 
  printf("Delete records.\n"); 
  n=delete_record(stu,n);//调用delete_record()函数 
  break; 
case '4': 
  printf("Query by student's number'\n"); 
  query_by_number(stu,n);//调用query_by_number()函数,查找某个学生的信息 
  break; 
case '5': 
  printf("Query by student's name.\n"); 
  query_by_name(stu,n);//调用query_by_name()函数,查找某个学生的信息 
  break; 
case '6': 
  printf("Input score.\n"); 
  input_score(stu,n);//调用input_score()函数,输入成绩
  break; 
case '7': 
  printf("Modify score.\n"); 
  modify_score(stu,n);//调用modify_score()函数,修改成绩 
  break; 
case '8': 
  printf("Delete score.\n"); 
  delete_score(stu,n);//调用delete_score()函数,删除成绩 
  break; 
case '9': 
  printf("Statistic.\n"); 
  statistic(stu,n);//调用statistic()函数,对成绩进行统计 
  break; 
case '0': 
	{
		system("cls");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\n");
		printf("\t    =======================================================\n");
		printf("\t    =======================================================\n");
		printf("\t    =======================================================\n");
		printf("\t    =======================================================\n");
		printf("\t    =====Have a good luck!您已经选择退出学生管理系统!======\n"); 
		printf("\t    =======================================================\n");
		printf("\t    =======================================================\n");
		printf("\t    ======================================EXIT=============\n");
		printf("\t    ======================================EXIT=============\n");
		printf("\t    =======================================================\n");
		printf("\n");
		printf("\t\t\t\t╭~~~ ※╮\n");
		printf("\t\t\t\t{ ⌒  ⌒ } \n");
		printf("\t\t\t\t (  00  )  \n");
		printf("\t\t\t\t<~)    (~>  谢谢使用'怪杰'学生管理系统\n");
	}
  exit(0);//退出系统 
}}
}
int Input_record(student stu[],int s)
{
	int i=0,c,d;
	int k,j,g,w;
	char a;
		do
		{	system("cls");
			printf("\n");
			printf("\n");
		printf("                         ╭╮╭╮\n");
		printf("                        ╭★┴┴★╮\n");
		printf("                        │︵  ︵│\n");
		printf("                        ╰○--○╯     制作:丁乐  刘海文\n");
		printf("                          ╰○○╯ \n");
			printf("\t\t ************************************************\n");
			printf("\t\t *******'怪杰'一组*******************************\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ********·················******\n");
			printf("\t\t ********·您正在使用的是学生信息录入系统·******\n"); 
			printf("\t\t ********·················******\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ************************************************\n");
		do
		{
			k=0;
			printf("\n\t\t请输入学号(01~99):");
			scanf("%d",&stu[i+s].num);
			fflush(stdin);
			w=stu[i+s].num;
			if(!(w>0&&w<100))                    //判断学号在 01~99之间
			{	
				printf("\n\t\t学号输入有错误,请重新输入(01~99)\a:  ");
				k=2;
			}
			for(c=0;c<i+s;c++)                    //判断学号是否有重复
			{
				if(w==stu[c].num)
				{
					printf("\n\t\t学号重复,请重新输入(01~99)\a:  ");
					k=1;
				}
			}
		}
		while(k==1||k==2);
		do                                    //输入姓名并判断姓名不能为空
		{
			g=0;
			printf("\t\t请输入学员姓名:");
			fflush(stdin);//缓存清空
			gets(stu[i+s].name);
			if(strcmp(stu[i+s].name," ")==0||strcmp(stu[i+s].name,"")==0)
			{
				printf("\t\t你没有输入学员的姓名,请重新输入!\a\n\n");
				g=1;
			}
		}
		while(g==1);
	do                                       //输入性别并判断性别输入的是否有错误
	{
		
		j=0;
		printf("\t\t请输入学员性别(男:M;女:F):");
		fflush(stdin);//缓存清空
		scanf(" %c",&stu[i+s].sex);
		if(stu[i+s].sex!='m'&&stu[i+s].sex!='M'&&stu[i+s].sex!='f'&&stu[i+s].sex!='F')
		{
			printf("\t\t您输入的性别有错误! 请重新输入(男:M;女:F):\a\n\n");
			j=1;
		}
	}
	while(j==1);
	do                                       //输入是否继续输入并判断输入的是否有错误
		{
		
			w=0;
			printf("\t        要继续输入学员信息吗?(y\\n)");
			fflush(stdin);//缓存清空
			scanf(" %c",&a);
			if(a!='y'&&a!='Y'&&a!='n'&&a!='N')
			{
				printf("\t\t请输入(y\\n):\a\n\n");
				w=1;
			}
		}
	while(w==1);
	if(a=='n'||a=='N')
		break;
	i++;
	}
	while(a=='y'||a=='Y');
	system("cls");
		printf("\t\t\t  |  学号  |  姓名  |  性别  |\n");                //这段在连接后可以不要
		for(d=0;d<i+s;d++)
			printf("\t\t\t     %d     %s      %c  \n",stu[d].num,stu[d].name,stu[d].sex);
		return s+i+1;
}
void query_by_number(student stu[],int s)
{	
	int num,i;
	char c;
	do
	{	system("cls");
		int k=0;
		printf("                         ╭╮╭╮\n");
		printf("                        ╭★┴┴★╮\n");
		printf("                        │︵  ︵│\n");
		printf("                        ╰○--○╯     制作:王培志  金亮\n");
		printf("                          ╰○○╯ \n");
			printf("\t\t ************************************************\n");
			printf("\t\t *******'怪杰'一组*******************************\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ********·················******\n");
			printf("\t\t ********·您正在使用的是学生信息查询系统·******\n"); 
			printf("\t\t ********·················******\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ************************************************\n");
			printf("\t\t ************************************************\n");
		printf("\t\t\t  请输入您要查找的学生学号: ");
		scanf("%d",&num);
		for(i=0;i<s;i++)
			if(stu[i].num==num) //找到了要查找的学号
			{
				printf("\t\t\t       找到该学生信息如下\n");
				printf("\t\t\t  |  学号  |  姓名  |  性别  |\n");
				printf("\t\t\t     %d     %s      %c  ",stu[i].num,stu[i].name,stu[i].sex);
				k=1;//设置标记,如果找到该学号的学生,则将标记设为1
			}
		if(k==0)//如果标记为0,则说明没有找到该学生
				printf("\t\t\t    没有找到您要查找的学生信息.\n");
	
		printf("\n\t\t=====================================================\n");
		printf("\n\t\t        是否继续查找学生信息?Y/N");
		fflush(stdin);
		c=getchar();
	}while(c!='n');

}
void modify_record(student stu[],int s)
{
	int num,i;
	char c[10],d[10],v,p;
	do
	{	int k=0;
		system("cls");
		printf("                         ╭╮╭╮\n");
		printf("                        ╭★┴┴★╮\n");
		printf("                        │︵  ︵│\n");
		printf("                        ╰○--○╯     制作:丁乐  刘海文\n");
		printf("                          ╰○○╯ \n");
		printf("\t\t ************************************************\n");
		printf("\t\t *******'怪杰'一组*******************************\n");
		printf("\t\t ********·················******\n");
		printf("\t\t ********·您正在使用的是学生信息修改系统·******\n"); 
		printf("\t\t ********·················******\n");
		printf("\t\t ************************************************\n");
		printf("\t\t ************************************************\n");
		printf("\t\t\t  请输入您要修改信息的学生学号: ");
		scanf("%d",&num);
		for(i=0;i<s;i++)
		if(stu[i].num==num)
		{   
				k=1;//设置标记
				printf("\t\t\t       找到该学生信息如下\n");

⌨️ 快捷键说明

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