📄 student.cpp
字号:
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"conio.h"
struct stud
{
char name[20];
char sex[20];
int a[7];
};
struct stud sr[100];
int i,j,tmp;
int length=0;
int boy=0;
int sum=0;
int girl=0;
char nv[20]="女",nan[20]="男";
char cl;
void hunyin()
{
printf("学生成绩管理系统\n");
printf("请选择: 1,输入,2,输出,3,排序,4,编辑修改,5,查询,6,删除.7,统计,8,退出\n");
}
void shuru()
{
do
{
printf("请输入第%d位同学的姓名:\n",i+1);
scanf("%s",sr[i].name);
getchar();
printf("请输入第%d位同学的性别,年龄,学号,C成绩,S成绩,H成绩:\n",i+1);
scanf("%s%d%d%d%d%d",sr[i].sex,&sr[i].a[0],&sr[i].a[1],&sr[i].a[2],&sr[i].a[3],&sr[i].a[4]);
sr[i].a[5]=sr[i].a[2]+sr[i].a[3]+sr[i].a[4];
sr[i].a[6]=(sr[i].a[5])/3;
i++;
length++;
printf("是否继续输入?y/n\n");
getchar();
}
while(getchar()!='n');
}
void shuchu()
{
printf("\t\t学生成绩表\n");
printf("姓名\t性别\t年龄\t学号\tC成绩\tHTMl\tSQL\t总分\t平均分\t\n");
for(i=0;i<length;i++)
{
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
}
}
void xm()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(strcmp(sr[i].name,sr[j].name)==-1)
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void xuehao()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[1]>sr[j].a[1])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void nl()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[0]<sr[j].a[0])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void ccj()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[2]<sr[j].a[2])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void scj()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[3]<sr[j].a[3])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void hcj()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[4]<sr[j].a[4])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void pjun()
{
struct stud tmp;
for(int i=0;i<length-1;i++)
for(j=i+1;j<length;j++)
if(sr[i].a[6]<sr[j].a[6])
{
tmp=sr[i];
sr[i]=sr[j];
sr[j]=tmp;
}
}
void paishuchu()
{
char c;
printf("欢迎来到排序模块\n");
printf("请选择排序方式:1.按姓名排序,2.按学号排序,3.按年龄排序,4.按c成绩排序,5.按s成绩排序,6.按h成绩排序,7.按平均分排序,8,回上级菜单\n");
scanf("%c",&c);
while(c!='8')
{
c=getchar();
switch(c)
{
case '1':system("cls");
printf("按姓名排序是:\n");
xm();
shuchu();
printf("按任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '2': printf("按学号排序是:\n");
xuehao();
shuchu();
printf("任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '3': printf("按年龄排序是:\n");
nl();
shuchu();
printf("任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '4': printf("按c成绩排序是:\n");
ccj();
shuchu();
printf("任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '5': printf("按s成绩排序是:\n");
scj();
shuchu();
printf("按任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '6': printf("按h成绩排序是:\n");
hcj();
shuchu();
printf("按任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '7': printf("按平均分排序是:\n");
pjun();
shuchu();
printf("按任意键返回排序模块\n");
getch();
system("cls");
paishuchu();
break;
case '8': system("cls");
hunyin();
break;
}
}
printf("\n");
}
void chaozhao()
{
int no;
printf("输入要查找的学生的学号:\n");
scanf("%d",&no);
for(int i=0;i<length;i++)
{
if(no==sr[i].a[1])
{
printf("\t\t学生成绩表\n");
printf("姓名\t性别\t年龄\t学号\tC成绩\tH成绩\tS成绩\t总分\t平均分\t\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
break;
}
if(i==(length-1))
{
printf("错误,按任意键返回\n");
getch();
return;
}
}
}
void xiougai()
{
int no,tp;
char cll;
printf("请输入你要编辑修改的学生的学号:\n");
scanf("%d",&no);
for(int i=0;i<length;i++)
{
if(no==sr[i].a[1])
{
printf("\t\t学生成绩表\n");
printf("姓名\t性别\t年龄\t学号\tC成绩\tH成绩\tS成绩\t总分\t平均分\t\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
tp=sr[i].a[6];
printf("请选择你要修改的部分:\n");
printf("1.姓名.2.性别.3.年龄.4.学号.5.c成绩.6.h成绩.7.S成绩\n");
getchar();
cll=getchar();
switch(cll)
{
case'1':printf("姓名修改成:");
scanf("%s",sr[i].name);break;
case'2':printf("性别修改成:");
scanf("%s",sr[i].sex);break;
if(strcmp(sr[i].sex,nv)==0)
girl++;
else if(strcmp(sr[i].sex,nan)==0)
boy++;
case'3':printf("年龄修改成:");
scanf("%d",&sr[i].a[0]);break;
case'4':printf("学号修改成:");
scanf("%d",&sr[i].a[1]);break;
case'5':printf("C成绩修改成:");
scanf("%d",&sr[i].a[2]);break;
case'6':printf("H成绩修改成:");
scanf("%d",&sr[i].a[3]);break;
case'7':printf("S成绩修改成:");
scanf("%d",&sr[i].a[4]);break;
}
sr[i].a[5]=sr[i].a[2]+sr[i].a[3]+sr[i].a[4];
sr[i].a[6]=(sr[i].a[5])/3;
}
if(i==-1)
{
printf("没找着,按任意键返回\n");
getch();
return;
}
}
shuchu();
printf("\n修改成功!");
getchar();
}
void shanchu()
{
int no,i;
printf("输入要删除学生的学号:");
scanf("%d",&no);
for(i=0;i<length;i++)
if(no==sr[i].a[1])
{
printf("删除:\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\n",sr[i].name,sr[i].sex,sr[i].a[0],sr[i].a[1],sr[i].a[2],sr[i].a[3],sr[i].a[4],sr[i].a[5],sr[i].a[6]);
if(strcmp(sr[i].sex,nv)==0)
girl--;
else if(strcmp(sr[i].sex,nan)==0)
boy--;
for(int j=i;j<length-1;j++)
sr[j]=sr[j+1];
length--;
printf("删除成功\n");
getch();
break;
}
shuchu();
}
void tongji()
{
for(int i=0;i<length;i++)
if(strcmp(sr[i].sex,nan)==0)
boy++;
printf("本班有%d个学生,其中男生%d个,女生%d个。\n",length,boy,length-boy);
}
void main()
{
hunyin();
while(cl!='8')
{
cl=getchar();
switch(cl)
{
case'1':
system("cls");
shuru();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'2':
system("cls");
shuchu();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'3':system("cls");
paishuchu();
break;
case'4':
system("cls");
xiougai();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'5':
system("cls");
chaozhao();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'6':
system("cls");
shanchu();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'7':
system("cls");
tongji();
printf("按任意键返回主界面\n");
getch();
system("cls");
hunyin();
break;
case'8':
hunyin();
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -