N久前作的:希望对你有帮助:
给你一个学生成绩管理的系统,有成绩的录入,分数的排序,删除,修改等功能。
struct __stu{
int stuNum;
char name[20];
int ScoreMath;
};
__stu stu[50];
int numberSTU = 0;
void printinfo(void)
{
printf("1 成绩录入\n");
printf("2 成绩显示\n");
printf("3 成绩修改\n");
printf("4 成绩统计\n");
printf("5 成绩排序\n");
printf("6 显示菜单\n");
printf("7 退出\n");
}
void inputinfo(int n)
{
printf("第%d个学生的学号:",n);
scanf("%d",&stu[n-1].stuNum);
getchar();
printf("第%d个学生的姓名:",n);
gets(stu[n-1].name);
printf("第%d个学生数学成绩:",n);
scanf("%d",&stu[n-1].ScoreMath);
getchar();
}
void displayinfo(int n)
{
int i = 0;
printf("学号\t\t姓名\t\t分数\n");
for (i = 0; i < n; i++)
{
printf("%d\t\t%s\t\t%d\n",stu[i].stuNum,stu[i].name,stu[i].ScoreMath);
}
}
void countNum(int n)
{
int i = 0;
int tempNum = 0;
for (i =0 ; i < n; i++)
{
if(stu[i].ScoreMath < 60)
{
tempNum++;
}
}
printf("及格的人数为 :%d\n不及格的人数为 :%d\n",n-tempNum,tempNum);
}
void modify(int stuNumber)
{
int i = 0;
for (i = 0; i < numberSTU;i++)
{
if (stu[i].stuNum == stuNumber)
{
printf("你想修改的分数为:");
scanf("%d",&stu[i].ScoreMath);
getchar();
printf("修改成功\n");
return;
}
}
printf("学号错误,修改失败\n");
}
void soucemath_from_higt_to_low(int n)
{
int indexi;
int indexj;
__stu _temp;
for (indexi = 0; indexi < n;indexi++)
{
for (indexj = indexi+1; indexj < n; indexj++)
{
if (stu[indexi].ScoreMath < stu[indexj].ScoreMath)
{
_temp = stu[indexj];
stu[indexj] = stu[indexi];
stu[indexi] = _temp;
}
}
}
printf("数学分数从高到低排列:\n");
displayinfo(numberSTU);
}
int main(int argc, char* argv[])
{
char casechar = 0;
int studentNUm = 1;
printinfo();
while(1)
{
printf("输入指令:");
scanf("%c",&casechar);
getchar();
switch (casechar)
{
case '1':
numberSTU++;
inputinfo(numberSTU);
// printf("输入信息\n");
break;
case '2':
displayinfo(numberSTU);
//printf("显示成绩\n");
break;
case '3':
printf("输入你想修改的学生学号:");
scanf("%d",&studentNUm);
getchar();
modify(studentNUm);
break;
case '4':
countNum(numberSTU);
break;
case '5':
soucemath_from_higt_to_low(numberSTU);
break;
case '6':
printinfo();
break;
case '7':
return 0;
}
}
return 0;
}
温馨提示:内容为网友见解,仅供参考