用C语言设计一学生成绩管理系统,要求: 1、加入一个学生的成绩 2、删除一个学生的成绩 3、求各学生的总分

 我来答
群星骅坠
2010-10-07 · TA获得超过480个赞
知道小有建树答主
回答量:191
采纳率:0%
帮助的人:156万
展开全部
#include <stdio.h>

#include <stdlib.h>

#include <malloc.h>

#define MAXLEN 100

#define Null 0

typedef struct node {

int num; // 学号

char name[MAXLEN]; // 姓名

int score; // 分数

struct node *next; // 指针域
}list;

list *creat() // 新增成绩
{
list *head,*p,*r;

int i,n; // n 为学生人数

head=(list *)malloc(sizeof(list));

head->next=Null;

r=head;

printf("请输入学生人数.\n");

scanf("%d",&n);

for(i=1;i<=n;i++) {

p=(list *)malloc(sizeof(list));

printf("请输入学生学号:\n");

scanf("%d",&p->num);

printf("请输入学生姓名:\n");

scanf("%s",&p->name);

printf("请输入学生成绩:\n");

scanf("%d",&p->score);

p->next=Null;

r->next=p;

r=r->next;
}

return (head);

}

list *del (list *h) // 删除成绩
{
int k; // 要删除的学生学号

list *p,*q; // 为什么要两个指针呢?

q=h;

p=h->next;

printf("请输入待删除的学生学号:\n");

scanf("%d",&k);

while (p && p->num!=k) {

q=p;

p=p->next;
}

if(p) {

q->next=p->next;

free(p);
}

else

printf("没有此学生的记录,无法删除!\n");

return (h);

}

void output(list *h) // 输出成绩
{
list *p;

printf("学号\t姓名\t成绩\n");

p=h->next;

while (p!=NULL) {

printf("%d\t%s\t%d\n",p->num,p->name,p->score);

p=p->next;
}
}

void main()
{
list *p;

int k; // 控制循环的标志

while (1) {

printf(" ---------------------------------------\n");

printf(" | 学生成绩管理系统 |\n");

printf(" ---------------------------------------\n");

printf(" | 1. 登记成绩 |\n");

printf(" | 2. 删除成绩 |\n");

printf(" | 3. 输出所有学生成绩 |\n");

printf(" | 0. 退出系统 |\n");

printf(" ---------------------------------------\n");

printf("请输入你的选择:\n");

scanf("%d",&k);

switch(k) {

case 1: p=creat(); break;

case 2: p=del(p); break;

case 3: output(p); break;

case 0: exit(0);

default : printf("选择错误,重新开始!\n");
}

}
}
yq_306
2010-10-07 · 超过17用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:41.3万
展开全部
数组把学生的成绩定义成一个数组a[k] k值为学生个数 例如为10 a[10]
需加入放到最后new,删除最开始的
int i,j;
long sum;
for(i=0;i<9;i++)
{a[i]=a[i+1];}
a[9]=new;
for(j=0;j<10;j++)
{sum=sum+a[i];}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式