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

📄 学生成绩管理系统.cpp

📁 本程序在vc环境下编写
💻 CPP
字号:
#include "stdio.h"
#include"stdlib.h"
#include"string.h"
#include"process.h"
#define N 3
#include"top.c"
void main_1();
struct students{
	int n;
	char name[20];
	float cj[3];
}st[3];
int i=0; //计数器;
void init(struct students st[],int num){
	int j,c,xz,m;
	FILE *fp1,*fp2;//fp1中存i值;fp2为读入文件;
	printf("按1从文件导入数据,按2重新输入数据;");
	scanf("%d",&xz);
	if(xz==1){
		fp1=fopen("d:\\c\\i.txt","r");
			if(fp1==NULL){
				printf("文件中尚无记录!");
				exit(1);
			}
		fscanf(fp1,"%d",&i);//读出i的值;
		fp2=fopen("d:\\c\\SSMS.txt","r");
			if(fp2==NULL){
				printf("文件不存在,请检查(d:\c\学生成绩管理.txt)是否存在。");
				exit(1);
			}
		printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
		for(m=0;m<i;m++){
		fscanf(fp2,"%d%s%d%d%d",&st[m].n,st[m].name,&st[m].cj[0],&st[m].cj[1],&st[m].cj[2]);
		printf("%3d\t%3s\t%3d\t%3d\t%3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
		}	
		printf("文件导入成功!按ENTER返回主界面。");getchar();getchar();
		system("cls");
		main_1();
	}	
	else{
		do{
				st[i].n=i;
				printf("请输入编号%d的姓名:",st[i].n+1);
				fflush(stdin);
				gets(st[i].name);
				for(j=0;j<num;j++){
					printf("第%d门成绩:",j+1);
					scanf("%f",&st[i].cj[j]);
					if(st[i].cj[j]<0||st[i].cj[j]>100) {
						fflush(stdin);printf("输入失败,成绩范围在0-100之间!\n");j--;
					}
				}
				i++;
			printf("还要输入吗?(y/n)");fflush(stdin);
			c=getchar();
		}while(c=='y'||c=='Y');
		system("cls");
		main_1();
	}
}
void paixu(){
  	int m,j,n,c;
	struct students p;
	do{	
		if(i==0) {
			printf("尚未找到成绩,请按回车回主页面添加;");	fflush(stdin);
			getchar();system("cls");main_1();
		}
		else{
			printf("请选择按哪一门成绩进行排序(1-3):");
			scanf("%d",&n);
			printf("您选择了按第%d门成绩排序:",n);
			for(m=0;m<i-1;m++){
				for(j=m+1;j<i;j++)
					if(st[m].cj[n-1]<st[j].cj[n-1]){
						p=st[m];
						st[m]=st[j];
						st[j]=p;
					}
			}
			printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
			for(m=0;m<i;m++)
				printf("\t\n%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
		}
		printf("还要输入吗?(y/n)");fflush(stdin);
		c=getchar();
	}while(c=='y'||c=='Y');
	fflush(stdin);
	getchar();
	system("cls");
	main_1();
}
void chaxun(){
	int n,xh,m,c,flag=0;
	char name[20];
	do{	
		if(i==0) {
			printf("尚未找到成绩,请按回车回主页面添加;");	fflush(stdin);
			getchar();system("cls");main_1();
		}
		else{
			printf("请选择按什么方式进行查询\n按1以学号查询,按2以姓名查询:");
			scanf("%d",&n);
			if(n==1){
				printf("您选择了按学号查询:\n");				
					printf("请输入您要查询的学号:");
					scanf("%d",&xh);
					for(m=0;m<i;m++)
						if(xh==st[m].n) 
							flag=1;
					if(flag==1){
						printf("\t\n编号\t姓名\t语文\t数学\t英语\n");
						printf("%d\t%s\t%d\t%d\t%d\n",st[xh].n,st[xh].name,st[xh].cj[0],st[xh].cj[1],st[xh].cj[2]);
					}else 
						printf("暂无该学员数据。\n");
			}
			else{
				printf("您选择了按姓名查询:\n");
					printf("请输入您要查询的姓名:");
					scanf("%s",name);
					for(m=0,flag=0;m<i;m++){
						if(strstr(st[m].name,name)!=NULL)
							printf("%d\t%s\t%d\t%d\t%d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2]);
						else 
							flag++;
					}if(flag==m)
						printf("暂无该学员数据。\n");
			}
		}
		printf("还想查询吗?(y/n)");
		fflush(stdin);
		c=getchar();
	}while(c=='y'||c=='Y');
	system("cls");
	main_1();
}
void xiugai(){
	int m,k,j;
	char c;
	do{
		if(i==0) {
			printf("尚未找到成绩,请按回车回主页面添加;");	fflush(stdin);
			getchar();system("cls");main_1();
		}
		else{
			printf("\n编号\t姓名\t语文\t数学\t英语\n");
			for(k=0;k<i;k++)
				printf("%d\t%s\t%d\t%d\t%d\n",st[k].n,st[k].name,st[k].cj[0],st[k].cj[1],st[k].cj[2]);
			printf("请输入您想要修改的信息编号:");
loop:   	scanf("%d",&m);
			if(m>i){
				printf("没有该数据\n请重新输入:");
				goto loop;
			}
			else
				j=m-1;
				printf("姓名:");
				scanf("%s",st[j].name);
				printf("语文:");
				scanf("%d",&st[j].cj[0]);
				printf("数学:");	
				scanf("%d",&st[j].cj[1]);
				printf("英语:");
				scanf("%d",&st[j].cj[2]);
				printf("数据已保存\n");
		}	
		printf("还想修改吗?(y/n)");
			fflush(stdin);
			c=getchar();
	}while(c=='y'||c=='Y');
	system("cls");
	main_1();
}
void shuchu(){
	FILE *fp1,*fp2;
	int m;
	fp1=fopen("d:\\c\\SSMS.txt","w");
	fp2=fopen("d:\\c\\i.txt","w");
	fprintf(fp2,"%d",i);
	for(m=0;m<i;m++){
	fprintf(fp1,"%d\t",st[m].n);
	fprintf(fp1,"%s\t",st[m].name);
	fprintf(fp1,"%d\t",st[m].cj[0]);
	fprintf(fp1,"%d\t",st[m].cj[1]);
	fprintf(fp1,"%d\n",st[m].cj[2]);
	}
	fclose(fp1);
	fclose(fp2);
	printf("成功储存,按ENTER回主界面!");
	fflush(stdin);
	getchar();
	system("cls");
	main_1();
}

void tongji(){
	int sum[N],avg[N],m;
	char c,name[20];
	FILE *fp;
	printf("\n编号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");	
	for(m=0;m<i;m++){
		sum[m]=st[m].cj[0]+st[m].cj[1]+st[m].cj[2];
		avg[m]=sum[m]/3;
		printf("%d\t%3s\t%3d\t%3d\t%3d\t %3d\t %3d\n",st[m].n,st[m].name,st[m].cj[0],st[m].cj[1],st[m].cj[2],avg[m],sum[m]);	
	}printf("是否输出列表信息(y/n)");
	fflush(stdin);c=getchar();
	if(c=='y'||c=='Y'){
		printf("请填写报表名字:");
		scanf("%s",name);
		fp=fopen(name,"w");
		fprintf(fp,"\t学生成绩报表 SSMS3.0\n");
		fprintf(fp,"\n编号\t姓名\t语文\t数学\t英语\t平均分\t总分\n");	
		for(m=0;m<i;m++){
			fprintf(fp,"%d\t",st[m].n);
			fprintf(fp,"%s\t",st[m].name);
			fprintf(fp,"%d\t",st[m].cj[0]);
			fprintf(fp,"%d\t",st[m].cj[1]);
			fprintf(fp,"%d\t",st[m].cj[2]);
			fprintf(fp,"%d\t",avg[m]);
			fprintf(fp,"%d\n",sum[m]);
		}fclose(fp);
		printf("文件成功保存!");
		fflush(stdin);getchar();
		system("cls");
		main_1();
	}else{
		system("cls");
		main_1();
	}
}

void main_1(){
	int n,count=0;
	top();//头文件;
	printf("请选择:");
	for(;;){
		scanf("%d",&n);
		if(n==1)
			{system("cls");tian_jia();init(st,3);}
		else if(n==2)
			{system("cls");cha_xun();chaxun();}
		else if(n==3)
			{system("cls");pai_xu();paixu();}
		else if(n==4)
			{system("cls");xiu_gai();xiugai();}
		else if(n==5)
			{system("cls");shu_chu();shuchu();}
		else if(n==6)
			{system("cls");tong_ji();tongji();}
		else if(n==7)
			{system("cls");about();printf("按ENTER返回主界面!");fflush(stdin);getchar();system("cls");main_1();}
		else if(n==8){
			exit(0);
			break;
		}
		else{
			fflush(stdin);
			printf("您选择出错!\n请重新选择:");
		}
	}
}

void main(){
	main_1();
}

⌨️ 快捷键说明

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