永发信息网

求一个超简单的C语言编译的学生成绩管理程序

答案:1  悬赏:10  手机版
解决时间 2021-03-04 02:33
  • 提问者网友:骑士
  • 2021-03-03 13:33
求一个超简单的C语言编译的学生成绩管理程序
最佳答案
  • 五星知识达人网友:玩家
  • 2021-03-03 13:58
#include"stdio.h"
#include "stdlib.h"
#include "string.h"

typedef struct
{
char num[15];
char name[8];
int score[4]; //数组成员0、1、2为三门成绩,3为平均成绩
}messege;

typedef struct
{
messege student[100];
int len;
}lis;
lis list;

void menu();
void input_mune(char num);
void input();
void sort_menu();
void sort(char order);

void browse();
void exchange(); //结构体message成员变量互换函数
void del_menu();
void del();

main()
{
list.len=0;
menu();
}

void menu()
{
char num='6';
while (num!='0')
{
system("cls"); //清屏
printf("\n\n");
printf(" 学生成绩管理 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 1.添加记录 \n"); //添加记录不排序
printf("\n");
printf(" 2.排序记录 \n");
printf("\n");
printf(" 3.浏览记录 \n");
printf("\n");
printf(" 4.插入记录 \n");
printf("\n");
printf(" 5.删除指定记录 \n");
printf("\n");
printf(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&num);

if((num=='1')||(num=='4'))
input_mune(num);
else
if(num=='2')
sort_menu();
else
if(num=='3')
browse();
else
if(num=='5')
del_menu();
}
}

void input_mune(char num)
{
char n='2';
while (n!='0')
{
system("cls");
printf("\n\n");
printf(" 添加记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 1.添加记录 \n");
printf("\n");
printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);
if(n=='1')
{
if(list.len>=100)
printf(" 学生信息表已满,无法添加\n");
else
{
input();
if(num=='4')
sort('1');
}
printf(" 输入任意键回车添加信息,返回主界面请输入0: ");
scanf("%s",&n);
}
}
}

void input()
{
int i;
printf(" 输入学生学号: ");
scanf("%s",&list.student[list.len].num);
printf("\n");
printf(" 输入学生姓名: ");
scanf("%s",&list.student[list.len].name);
printf("\n");
for(i=0;i<3;i++)
{
printf(" 输入成绩%d: ",i+1);
scanf("%d",&list.student[list.len].score[i]);
}
list.student[list.len].score[3]=(list.student[list.len].score[0]+list.student[list.len].score[1]+list.student[list.len].score[2])/3;
printf(" 你输入的信息为:\n");
printf(" 学号:%s",list.student[list.len].num);
printf(" 姓名:%s",list.student[list.len].name);
printf(" 成绩:%d %d %d",list.student[list.len].score[0],list.student[list.len].score[1],list.student[list.len].score[2]);
printf(" 平均成绩:%d\n",list.student[list.len].score[3]);
list.len=list.len+1;
}
void sort_menu()
{
char n='3';
while(n!='0')
{
system("cls");
printf("\n\n");
printf(" 排序 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
if(list.len==0)
{
printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 记录为空,无法排序");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);
}
else
if(list.len==1)
{
printf(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 只有一条记录,无需排序");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);
}
else
{
printf(" 1.升序 \n");
printf("\n");
printf(" 2.降序 \n");
printf("\n");
printf(" 0.退出 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);
if((n=='1')||(n=='2'))
{
sort(n);
printf(" 排序完成,输入任意键回车添加信息,返回主界面请输入0: ");
scanf("%s",&n);
}
}
}
}

void sort(char order)
{
int i,j;
if(order=='1')
for(i=0;i {
for(j=i+1;j {
if(list.student[i].score[3]>list.student[j].score[3])
{
exchange(i,j);
}
}
}
else
{
if(order=='2')
for(i=0;i {
for(j=i+1;j {
if(list.student[i].score[3] {
exchange(i,j);
}
}
}
}
}

void exchange(int i,int j)
{
messege temp;
temp.score[0]=list.student[i].score[0];
temp.score[1]=list.student[i].score[1];
temp.score[2]=list.student[i].score[2];
temp.score[3]=list.student[i].score[3];
strcpy(temp.num,list.student[i].num);
strcpy(temp.name,list.student[i].name);
list.student[i].score[0]=list.student[j].score[0];
list.student[i].score[1]=list.student[j].score[1];
list.student[i].score[2]=list.student[j].score[2];
list.student[i].score[3]=list.student[j].score[3];
strcpy(list.student[i].num,list.student[j].num);
strcpy(list.student[i].name,list.student[j].name);
list.student[j].score[0]=temp.score[0];
list.student[j].score[1]=temp.score[1];
list.student[j].score[2]=temp.score[2];
list.student[j].score[3]=temp.score[3];
strcpy(list.student[j].num,temp.num);
strcpy(list.student[j].name,temp.name);
}

void browse()
{
int i;
char n='1';

while(n!='0')
{
system("cls");
printf("\n\n");
printf(" 浏览记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 学号 姓名 成绩1 成绩2 成绩3 平均成绩 \n");
for(i=0;i {
printf(" %-15s",list.student[i].num);
printf("%-8s",list.student[i].name);
printf("%5d",list.student[i].score[0]);
printf(" %5d",list.student[i].score[1]);
printf(" %5d",list.student[i].score[2]);
printf(" %8d\n",list.student[i].score[3]);
}
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 输入任意键回车刷新,返回主界面请输入0: ");
scanf("%s",&n);
}
}

void del_menu()
{
char n='2';
while (n!='0')
{
system("cls");
printf("\n\n");
printf(" 删除记录 \n");
printf("\n\n");
printf(" **************************************************** \n");
printf("\n");
printf(" 1.删除记录 \n");
printf("\n");
printf(" 0.返回主界面 \n");
printf("\n");
printf(" **************************************************** \n");
printf("\n\n");
printf(" 请输入操作序号: ");
scanf("%s",&n);
if(n=='1')
{
del();
printf(" 输入任意键回车删除记录,返回主界面请输入0: ");
scanf("%s",&n);
}
}
}

void del()
{
int i,j;
char name[8];
printf(" 请输入学生姓名: ");
scanf("%s",name);
for(i=0;i {
if(strcmp(name,list.student[i].name)==0)
{
for(j=i;j {
list.student[j].score[0]=list.student[j+1].score[0];
list.student[j].score[1]=list.student[j+1].score[1];
list.student[j].score[2]=list.student[j+1].score[2];
list.student[j].score[3]=list.student[j+1].score[3];
strcpy(list.student[j].num,list.student[j+1].num);
strcpy(list.student[j].name,list.student[j+1].name);
}
list.len=list.len-1;
}
}
}

顺便问下2013好不好用?我用的是2012的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯