我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

修改学生信息c语言函数头,C语言数学函数头文件

用C语言编写学生信息管理程序(给出五个主要函数就OK啦!)

/*接上一楼*/

成都创新互联公司服务项目包括龙凤网站建设、龙凤网站制作、龙凤网页制作以及龙凤网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,龙凤网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到龙凤省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

struct

Student

*create()

/*create函数定义,此函数实现创建单向动态链表*/

{

struct

Student

*head=NULL,*p1,*p2;

/*head,链表的头指针;*p1,*p2,中间指针变量*/

puts("\n现在请输入学院名:");

scanf("%s",college);

puts("\n年级:");

scanf("%s",grade);

puts("\n专业和班级:");

scanf("%s",classname);

puts("\n下面请按提示依次输入数据:\n(如果要结束输入,请输入学号0)");

p1=p2=(struct

Student

*)malloc(LEN);

puts("输入第一个学生的学号:");

scanf("%ld",p1-num);

puts("输入此学生成绩:\n英语:");

scanf("%f",p1-score.english);

puts("数学:");

scanf("%f",p1-score.math);

puts("计算机:");

scanf("%f",p1-score.computer);

total_and_aver(p1);/*计算总分和平均分*/

p1-grade=mark_grade(p1);

for(;p1-num!=0;)

{

len++;

if(len==1)

head=p1;

else

p2-next=p1;

p2=p1;

p1=(struct

Student

*)malloc(LEN);

puts("输入下一个学生的学号:");

scanf("%ld",p1-num);

puts("输入此学生成绩:\n英语:");

scanf("%f",p1-score.english);

puts("数学:");

scanf("%f",p1-score.math);

puts("计算机:");

scanf("%f",p1-score.computer);

total_and_aver(p1);/*计算总分和平均分*/

p1-grade=mark_grade(p1);

}

p2-next=NULL;

return

(head);

}

struct

Student

*del(struct

Student

*head,long

del_num)

/*del函数定义,此函数实现从现有链表中删除一个结点*/

{

struct

Student

*p1,*p2;

if(head==NULL)

puts("空表,没有任何数据记录。\n");

else

{

for(p1=head;!(del_num==p1-num||p1-next==NULL);p2=p1,p1=p1-next);

if(del_num==p1-num)

{

if(p1==head)head=p1-next;

else

p2-next=p1-next;

printf("学号为%ld学生的数据删除成功。\n",del_num);

--len;

}

else

printf("未找到学号为%ld学生的记录。\n",del_num);

}

return

(head);

}

struct

Student

*insert(struct

Student

*head,struct

Student

*new_student)

/*insert函数定义,此函数实现向现有链表中插入一个结点或覆盖相同学号的数据*/

{

struct

Student

*p0=new_student,*p1=head,*p2;

char

control;

if(head==NULL)

{

head=p0;

p0-next=NULL;

puts("数据插入成功。\n");

}

else

{

for(;((*p0).num(*p1).num)(p1-next!=NULL);p2=p1,p1=p1-next);

if((*p0).num==(*p1).num)

{

printf("已经存在一个学号为%ld的学生的数据,要覆盖原有数据吗?\n输入

Y

=覆盖原有数据\n输入其它=保留原有数据\n",p0-num);

FFLUSH;

scanf("%c",control);

FFLUSH;

switch

(control)

{

case

'Y':

case

'y':if(p1==head){head=p0;p0-next=p1-next;}

else

{p2-next=p0;p0-next=p1-next;}

puts("数据已经更新\n");break;

default:break;

}

len--;

}

else

if((*p0).num(*p1).num)

{

if(p1==head)head=p0;

else

p2-next=p0;

p0-next=p1;

puts("数据插入成功。\n");

}

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语言编写学生信息管理程序(给出五个主要函数就OK啦!)

#includestdio.h

#define M 2/*容量*/

struct _674

{

long num;

char name[20];

char add[20];

long tel;

}A[M],B[1];

void input()

{

int i=1;

char a='y';

while(a=='y')

{

if(i=M)

{

printf("请输入你要输入的学生学号\n");

scanf("%d",A[i].num);

for(int j=1;ji;j++)

if(A[j].num==A[i].num)

{

printf("你输入的学号已存在\n");continue;

}

printf("请输入你要输入的学生姓名\n");

scanf("%s",A[i].name);

printf("请输入你要输入的学生地址\n");

scanf("%s",A[i].add);

printf("请输入你要输入的学生电话\n");

scanf("%d",A[i].tel);

i++;

printf("退出请任意输入,继续请输入y\n");

getchar();

scanf("%c",a);

}

else

{

printf("你的空间已满\n");break;

}

}

}

void output()

{

for(int i=1;i=M;i++)

printf("学号:%d姓名:%s地址:%s电话:%d\n",A[i].num,A[i].name,A[i].add,A[i].tel);

}

void seek()

{

int a,f=0;

printf("请输入你要查找学生的学号\n");

scanf("%d",a);

for(int i=1;i=M;i++)

if(a==A[i].num)

{

printf("学号:%d姓名:%s地址:%s电话:%d\n",A[i].num,A[i].name,A[i].add,A[i].tel),f=0;break;

}

else

f=1;

if(f==1)

printf("查无此人\n");

}

void del()

{

int a;

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

scanf("%d",a);

for(int i=1;i=M;i++)

if(a==A[i].num)

{

for(;iM;i++)

A[i]=A[i+1];

}

}

void insert()

{

printf("请输入你要输入你要插入的学生学号\n");

scanf("%d",B[1].num);

for(int j=1;j=M;j++)

if(B[1].num==A[j].num)

{

printf("你要插入的学号已存在\n");break;

}

printf("请输入你要插入的学生姓名\n");

scanf("%s",B[1].name);

printf("请输入你要插入的学生地址\n");

scanf("%s",B[1].add);

printf("请输入你要插入的学生电话\n");

scanf("%d",B[1].tel);

}

void main()

{

input();

output();

seek();

del();

insert();

}

不好意思

自己也是刚学的

有不足之处还请谅解

很多地方还需要根据你的需要适当修改

最后希望我们能相互讨论学习共同进步

用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

float average(list h); //返回链表h中各个节点成绩的平均值

int bulkInsert(list h);//在链表h中批量插入节点,以id=0结束,返回成功插入的节点数

void clearList(list h);//清空链表h(使其成为空链表)

void showMenu()

{ //显示菜单

puts(" 0----Bulk Insert ");

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(" %d Record 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 ");

break;

case 3:

puts("input Stu_ID and grade to update");

scanf("%d",id);

scanf("%d",grade);

if ( update(h,id,grade) )

puts("Update an Record successfully ");

else

puts("Sorry, ID no exit ");

break;

case 4:

puts("input Stu_ID to search");

scanf("%d",id);

node *p;

if( p=searchByID(h,id) )

printAnRecord(p);

else

puts("Sorry, ID no exit ");

break;

case 5:

printList(h);

break;

case 6:

printf("The average grade is %6.2f \n ", average(h) );

break;

case 7:

clearList(h);

break;

case 9:

flag=0; //退出循环

break;

default:

puts(" Error ! Must Input (1...9) ");

}

}

}

void main()

{

//编程时要一个一个函数的调试完成后,最后再调用主控程序

start();

}


文章题目:修改学生信息c语言函数头,C语言数学函数头文件
文章源于:http://shouzuofang.com/article/dsijggc.html

其他资讯