C语言.建立一个“学生管理成绩系统”,处理10名学生的1门课程成绩,要求如下:
发布网友
发布时间:2022-05-14 16:00
我来回答
共3个回答
热心网友
时间:2023-10-23 15:22
我晕的,要不要我给你一个功能更全面的学生管理系统,也是我的大一实训题,上几个星期写的。。看好的,,希望你加分给我····
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
int inCount=0;
struct student
{
char name[20]; //姓名
int stud; //学号
char classes[20]; //班别
char genger[10]; //性别
float matics; //数学成绩
float english; //英语成绩
float poli; //*成绩
float science; //导论
float c; //C语言
float Total; //总分
}STU[200];
//-----------------------------------------------------------------------------
void meun(void); /*主菜单*/
void Input_Record(void); /*输入记录*/
void Show_Record(void); /*显示记录*/
void Sort_results(void); /*按成绩排序*/
void Find_Record(void); /*查找并显示记录*/
void Insert_Record(void); /*插入一条记录*/
void Delete_Record(void); /*删除一条记录*/
void Changes_Record(void); /*修改信息 */
void Sort_Meun(void); /*排序菜单*/
void Matics_Sort(void); /*按数学成绩排序*/
void English_Sort(void); /*按英语成绩排序*/
void Poli_Sort(void); /*按*成绩排序*/
void Science_Sort(void); /*按计算机导论成绩排序*/
void C_Sort(void); /*按C语言成绩排序*/
void Total_Sort(void); /*按总分成绩排序*/
void Find_Meun(void); /*查找菜单*/
void Stud_Find(void); /*按学号查找*/
void Classes_Find(void); /*按班别查找*/
int bubble(char Findclasses[],int i); /*字符查找*/
int Find_Stud(void); /*学号查找*/
//-----------------------------------------------------------------------------
main( )
{
int n;
printf("\n\n\n\n\n\n\n\n");
printf(" 欢迎使用学生成绩管理系统\n\n\n\n");
printf(" ---程序员:围剿\n");
getch( );
do
{
meun( );
scanf("%d",&n);
switch(n)
{
case 1 : Input_Record ( );break;
case 2 : Show_Record ( );break;
case 3 : Sort_results ( );break;
case 4 : Find_Record ( );break;
case 5 : Insert_Record ( );break;
case 6 : Delete_Record ( );break;
case 7 : Changes_Record ( );break;
case 8 : break;
default : system("cls");printf("\n\n\n\n\n\n 错误!\t请输入1~8\n");getch();
}
}while(n!=8);
system("cls");
printf("\n\n\n\n\n\n\n\n 谢谢使用\n");
getch();
system("cls");
}
//-----------------------------------------------------------------------------
void meun(void) /*主菜单*/
{
system("cls");
printf("\n\n\n");
printf(" 学生成绩管理系统 \n\n\n");
printf(" ***********************主菜单**************************\n\n");
printf(" * 1.输入信息 2.显示信息 *\n\n");
printf(" * 3.成绩排序 4.查找信息 *\n\n");
printf(" * 5.插入信息 6.删除信息 *\n\n");
printf(" * 7.修改信息 8.退出程序 *\n\n");
printf(" **********************************************************\n\n");
}
//-----------------------------------------------------------------------------
void Input_Record(void) /*输入记录*/
{
int t,Ture=1;
system("cls");
printf("\n\n\n\n 请注意!\n\n\n 此选项将会删除以前保存的所有信息再建立新的数据库。\n\n\n\n 继续请输入0。\n\n");
scanf("%d",&Ture);
if(!Ture)
{
system("cls");
printf("请问:你要输入多少位同学的信息?\n");
scanf("%d",&t);
while(inCount<t)
{
system("cls");
printf("第%d位同学的信息\n\n",inCount+1);
printf("姓名: ");
scanf("%s",STU[inCount].name);
printf("\n");
printf("学号(0~9): ");
scanf("%d",&STU[inCount].stud);
printf("\n");
printf("班别: ");
scanf("%s",STU[inCount].classes);
printf("\n");
printf("性别: ");
scanf("%s",STU[inCount].genger);
printf("\n");
printf("数学成绩(0~9): ");
scanf("%f",&STU[inCount].matics);
printf("\n");
printf("英语成绩(0~9): ");
scanf("%f",&STU[inCount].english);
printf("\n");
printf("*成绩(0~9): ");
scanf("%f",&STU[inCount].poli);
printf("\n");
printf("计算机导论成绩(0~9): ");
scanf("%f",&STU[inCount].science);
printf("\n");
printf("C语言成绩(0~9): ");
scanf("%f",&STU[inCount].c);
printf("\n");
STU[inCount].Total=STU[inCount].matics+STU[inCount].english+STU[inCount].poli+STU[inCount].science+STU[inCount].c;
inCount++;
}
system("cls");
printf("\n\n\n\n\n\n\n\n\n 已输入%d位同学的信息。\n",t);
getch();
}
}
//-----------------------------------------------------------------------------
void Show_Record(void) /*显示所有纪录*/
{
int inDigital=0;
system("cls");
printf("姓名 学号 班别 性别 数学成绩 英语成绩 *成绩\n\n 计算机导论成绩 C语言成绩 总分成绩\n\n");
printf("_______________________________________________________________________________\n");
for(;inDigital<inCount;inDigital++)
{
printf("%s %d %s %s %.1f %.1f %.1f\n %.1f %.1f %.1f\n\n",STU[inDigital].name,STU[inDigital].stud,STU[inDigital].classes,STU[inDigital].genger,STU[inDigital].matics,STU[inDigital].english,STU[inDigital].poli,STU[inDigital].science,STU[inDigital].c,STU[inDigital].Total);
printf("-------------------------------------------------------------------------------\n");
}
getch();
}
//-----------------------------------------------------------------------------
void Sort_results(void) /*按成绩排序*/
{
int inChoose;
do
{
Sort_Meun( );
scanf("%d",&inChoose);
switch(inChoose)
{
case 1 : Matics_Sort ( );break;
case 2 : English_Sort( );break;
case 3 : Poli_Sort ( );break;
case 4 : Science_Sort( );break;
case 5 : C_Sort ( );break;
case 6 : Total_Sort ( );break;
case 7 : break;
default : system("cls");printf("\n\n\n\n\n\n 错误!请输入1~7。\n");getch();
}
}while(inChoose!=7);
}
//-----------------------------------------------------------------------------
void Sort_Meun(void) /*排序菜单*/
{
system("cls");
printf("\n\n\n\n\n\n");
printf(" **********************排序菜单*********************\n\n");
printf(" * 1.数学成绩排序 2.英语成绩排序 *\n\n");
printf(" * 3.*成绩排序 4.导论成绩排序 *\n\n");
printf(" * 5.C语言成绩排序 6.总分成绩排序 *\n\n");
printf(" * 7.返回主菜单 *\n\n");
printf(" ***************************************************\n\n");
}
//-----------------------------------------------------------------------------
void Matics_Sort(void) /*数学成绩排序*/
{
int inDigital,n;
struct student temp;
system("cls");
for(inDigital=0;inDigital<inCount-1;inDigital++)
for(n=0;n<inCount-1-inDigital;n++)
if(STU[n].matics<STU[n+1].matics)
{
temp=STU[n+1];
STU[n+1]=STU[n];
STU[n]=temp;
}
printf("姓名 学号 班别 性别 数学成绩 英语成绩 *成绩 \n\n 计算机导论成绩 C语言成绩 总分成绩\n\n");
printf("_______________________________________________________________________________\n");
for(inDigital=0;inDigital<inCount;inDigital++)
{
printf("%s %d %s %s %.1f %.1f %.1f\n %.1f %.1f %.1f\n\n",STU[inDigital].name,STU[inDigital].stud,STU[inDigital].classes,STU[inDigital].genger,STU[inDigital].matics,STU[inDigital].english,STU[inDigital].poli,STU[inDigital].science,STU[inDigital].c,STU[inDigital].Total);
printf("-------------------------------------------------------------------------------\n");
}
getch();
}
//-----------------------------------------------------------------------------
void English_Sort(void) /*英语成绩排序*/
{
int inDigital,n;
struct student temp;
system("cls");
for(inDigital=0;inDigital<inCount-1;inDigital++)
for(n=0;n<inCount-1-inDigital;n++)
if(STU[n].english<STU[n+1].english)
{
temp=STU[n+1];
STU[n+1]=STU[n];
STU[n]=temp;
}
printf("姓名 学号 班别 性别 英语成绩 数学成绩 *成绩 \n\n 计算机导论成绩 C语言成绩 总分成绩\n\n");
printf("_______________________________________________________________________________\n");
for(inDigital=0;inDigital<inCount;inDigital++)
{
printf("%s %d %s %s %.1f %.1f %.1f\n %.1f %.1f %.1f\n\n",STU[inDigital].name,STU[inDigital].stud,STU[inDigital].classes,STU[inDigital].genger,STU[inDigital].english,STU[inDigital].matics,STU[inDigital].poli,STU[inDigital].science,STU[inDigital].c,STU[inDigital].Total);
printf("-------------------------------------------------------------------------------\n");
}
getch( );
}
//-----------------------------------------------------------------------------
void Poli_Sort(void) /**成绩排序*/
{
int inDigital,n;
struct student temp;
system("cls");
for(inDigital=0;inDigital<inCount-1;inDigital++)
for(n=0;n<inCount-1-inDigital;n++)
if(STU[n].poli<STU[n+1].poli)
{
temp=STU[n+1];
STU[n+1]=STU[n];
STU[n]=temp;
}
printf("姓名 学号 班别 性别 *成绩 数学成绩 英语成绩 \n\n 计算机导论成绩 C语言成绩 总分成绩\n\n");
printf("_______________________________________________________________________________\n");
for(inDigital=0;inDigital<inCount;inDigital++)
{
printf("%s %d %s %s %.1f %.1f %.1f\n %.1f %.1f %.1f\n\n",STU[inDigital].name,STU[inDigital].stud,STU[inDigital].classes,STU[inDigital].genger,STU[inDigital].poli,STU[inDigital].matics,STU[inDigital].english,STU[inDigital].science,STU[inDigital].c,STU[inDigital].Total);
printf("-------------------------------------------------------------------------------\n");
}
getch( );
} //=====(太长的,我发到你百度信息给你,请确认))
热心网友
时间:2023-10-23 15:23
用excel表格制作,很简单的,具体步骤这里说你也未必能会
就是随意打几个同学的名字编排好了然后全选
点击右键然后再用自动排列,
然后再用IF函数做5问
第六问还用自动筛选 选出分数高于平均分的
剩下就打印了。
觉得可以先给分。
热心网友
时间:2023-10-23 15:23
周末帮你做,你等一下