c语言修改学生信息函数 c语言修改学生成绩( 二 )


}
else
{
p1-next=p0;
p0-next=NULL;
puts("数据插入成功 。\n");
}
}
++len;
return
(head);
}
struct
Student
*sort(struct
Student
*head)
/*sort函数定义,此函数实现对链表中的数据按照平均分高低排序*/
{
struct
Student
*p1,*p2;
for(p1=head;p1-next!=NULL;p1=p1-next)
for(p2=p1-next;p2!=NULL;p2=p2-next)
{
if(p1-score.averagep2-score.average)
{
SWAP(p1-num,p2-num);
SWAP(p1-grade,p2-grade);
SWAP(p1-score.english,p2-score.english);
SWAP(p1-score.math,p2-score.math);
SWAP(p1-score.computer,p2-score.computer);
SWAP(p1-score.total,p2-score.total);
SWAP(p1-score.average,p2-score.average);
}
}
return
head;
}
/*接下一楼*/
用c语言实现对学生信息增删改,怎么做啊要更详细答案,联系我 , 这个很难做的 , 起码要给点悬赏分作为酬劳?。。。?
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
//数据结构的定义
typedef struct node{
int id;//学号
char name[10]; // 姓名
int grade;//成绩
struct node * next; //指向下一节点的指针
}node,*list;
//函数的声明 , 必须按照声明来定义函数
void showMenu(); //显示菜单
void start(); // 主控程序
void init(list h);// 初始化链表h
void printAnRecord(node * p);//输出p所指节点的值(id,name,grade)
void printList(list h);// 输出链表h的各节点的值
int del(list h,int n);//删除链表h中id为n的节点,成功删除返回1,若不存在则返回0
int insert(list h,int id,char * name,int grade);//在链表h中 , 插入节点(n,name,grade),若id重复返回0 , 否则返回1
node * searchByID(list h, int n);// 在链表h中查找id为n的节点,查找成功返回其指针,否则返回NULL
int update(list h,int n,int grade);// 将链表h中id为n的节点的成绩改为grade,若不存在该节点返回0,否则返回1
【c语言修改学生信息函数 c语言修改学生成绩】float average(list h); //返回链表h中各个节点成绩的平均值
int bulkInsert(list h);//在链表h中批量插入节点,以id=0结束,返回成功插入的节点数
void clearList(list h);//清空链表h(使其成为空链表)
void showMenu()
{//显示菜单
puts("0----BulkInsert ");
puts("1----Insert an Record");
puts("2----Delete an Record");
puts("3----Update an Record's grade");
puts("4--- Search an Record by stu_id");
puts("5----Print all Record");
puts("6----Average of grade");
puts("7----Clear list");
puts("9----Exit");
}
//主控程序
void start()
{
list h; //链表
int choice; //功能选择
int id,grade,flag=1,m;
char name[10];
showMenu();
init(h); //初始化链表h,即建立空链表
while(flag){//若未退出程序
puts("********Please input 1...9*********");
scanf("%d",choice);
switch(choice){//根据选择的功能号,执行不同的操作
case 0 :
puts("input Stu_ID, Name, Grade (end by 0)");
m=bulkInsert(h);
printf(" %dRecord insert successfully\n",m);
break;
case 1:
puts("input Stu_ID,Name, Grade:");
scanf("%d",id);
scanf("%s",name);
scanf("%d",grade);
if( insert(h,id,name,grade) )
puts("Insert an Record successfully!");
else
puts("Sorry, dublicate ID ");
break;
case 2:
puts("input Stu_ID to delet");
scanf("%d",id);
if( del(h,id) )
puts("Delete an Record successfully");
else
puts("Sorry, ID no exit ");

推荐阅读