编写C语言程序:学生成绩管理系统输入学生信息1、输出所有学生信息(学号,姓名,年龄,成绩(C语言,数学

如题所述

#include <stdio.h>
#include <stdlib.h>
//定义学生信息
typedef struct
{
char name[20];
char no[12];
double math;
double computer;
double average;
double total;
}STUDENT;
//学生人数
#define STUNUM 4
void inputGrade(STUDENT *p,int len);
void outputGrade(STUDENT *p,int len);
void sort(STUDENT *p,int len);
int main(void)
{
int choice;
STUDENT stu[STUNUM];
do
{
printf("1.输入信息.\n");
printf("2.求平均分和总成绩\n");
printf("3.成绩排序.\n");
printf("4.查找.\n");
printf("5.成绩输出.\n");
printf("0.退出.\n");
printf("请输入你的选择(0-5):");

if(1!=scanf("%d",&choice))
{
fflush(stdin);
printf("请输入-5\n");
system("cls");
continue;
}

switch(choice)
{
case 1:
printf("请输入学生数据:\n");
inputGrade(stu,STUNUM);
break;
case 2:
printf("2\n");
break;
case 3:
printf("3\n");
break;
case 4:
printf("4\n");
break;
case 5:
printf("学生成绩:\n");
outputGrade(stu,STUNUM);
break;
case 0:
exit(0);
break;
default:
break;
}
system("pause");
system("cls");
} while (1);

system("pause");
return 0;
}

void inputGrade(STUDENT p[],int len)
{
int i;
for (i=0;i<len;i++)
{
scanf("%s%s%lf%lf",p[i].name,p[i].no,
&p[i].math,&p[i].computer);
p[i].total= p[i].math + p[i].computer;
p[i].average = p[i].total/2;
}
}

/*
函数名:outputGrade
函数功能:输出成绩
函数参数:p 成绩数组,len数组长度
函数返回值:无
*/
void outputGrade(STUDENT *p,int len)
{
int i;
for (i=0;i<len;i++)
{
printf("%s %s %g %g %g %g\n",p[i].name,p[i].no
,p[i].math,p[i].computer,p[i].total,p[i].average);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-03
与题目相似,仅供参考一下
#include<stdio.h>
#include <malloc.h>
#include <stdlib.h>

typedef struct LNode
{
int num;
char name[10];
float score;
struct LNode *next;
} LNode, *LinkList;

extern LNode * insert(LinkList L);
extern LNode * get(LinkList L);
extern LNode * delet(LinkList L);
extern void print(LinkList L);
LNode * insert(LinkList L)
{
LinkList p,s,q;
s=(LinkList )malloc(sizeof( LNode));
scanf("%d,%s,%f",&s->num,&s->name,&s->score);
while(s->num!=0)
{
p=L;
while(p&&p->num<s->num)
{
q=p;
p=p->next;
}
s->next=p;
q->next=s;
s=(LinkList )malloc(sizeof(LNode));
scanf("%d,%s,%f",&s->num,&s->name,&s->score);
}
return(L);
}
LNode * get(LinkList L)
{
LinkList p,p=l->next;
scanf("%d",&p->num);
if(!p->next)
{
printf("No such student\n");
return (L);
}
return(L);
}
LNode * delet(LinkList L)
{
LinkList p=L,q;
int num;
scanf("%d",&num);
while(p->next&&p->next->num!=num)
{
p=p->next;
}
if(!p->next)
{
printf("No such student\n");
return (L);
}
q=p->next;
p->next=q->next;
free(q);
return(L);
}

void print(LinkList L)
{
LinkList p=L->next;
while(p)
{
printf("学号 姓名 成绩\n");
printf("%d,%s,%f",&p->num,&p->name,&p->score);
p=p->next;
}
}

int main()
{
int sel;
LinkList L;
L=(LinkList)malloc(sizeof(struct LNode));
if(!L)
exit(0);
L->num=0; L->next=NULL;
do
{
printf("选项:1. 录入学生成绩 2.查询学生成绩 3. 删除学生成绩 4.显示班级成绩 0. 退出\n");
scanf("%d",&sel);
switch(sel)
{
case 1: insert(L);break;
case 2: delet(L);break;
case 3: get(L);break;
case 4: print(L);break;
case 0: break;
default: printf("错误选择,请重新选择0-4\n"); break;
}
}while (sel!=0);
return 0;
}
第2个回答  2012-06-10
这个用case来实现的吧