网站建设资讯

NEWS

网站建设资讯

c语言学生成绩管理函数 c语言学生成绩管理系统函数

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

/*接上一楼*/

成都创新互联公司2013年成立,是专业互联网技术服务公司,拥有项目网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元建阳做网站,已为上家服务,为建阳各地企业和个人服务,联系电话:18980820575

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语言编写查询学生成绩管理程序。

#includestdio.h

#includestdlib.h

#includestring.hstruct record

{

char xuehao[10];//学号

char name[20]; //姓名

char sex[3];//性别

int ke1;//数学

int ke2 ;//语文

int ke3;//英语

int pin;

}stu[50];

int k=1,n,m;void readfile();

void seek();

void insert();

void del();

void save();

void menu();

void seek()

{int i,j,item,flag;brchar s1[20];brprintf("------------------\n");brprintf("1.按学号查询\n");brprintf("2.退出本菜单\n");brprintf("------------------\n");brwhile(1)br{ printf("请选择子菜单编号:");brscanf("%d",item);brflag=0;brswitch(item)br{brcase 1:brprintf("请输入要查询的学生的学号:\n");brscanf("%s",s1);brfor(i=0;in;i++)brif(strcmp(stu[i].xuehao,s1)==0)br{ flag=1;brprintf("该学生学号,姓名,性别,数学,语文,英语 分别为:\n");brprintf(" %s %s %s %d %d %d",stu[i].xuehao,stu[i].name,brstu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3);br}

if(flag==0)

printf("该学号不存在!\n"); break;

case 2:return;

default:printf("请在1-2之间选择\n");

}

}

}

void insert()

{ int i=n,j,flag;

printf("请输入待增加的学生数:\n");

scanf("%d",m);

do

{ flag=1;

while(flag)

{ flag=0;

printf("请输入第 %d 个学生的学号:\n",i+1);

scanf("%s",stu[i].xuehao);

for(j=0;ji;j++)

if(strcmp(stu[i].xuehao,stu[j].xuehao)==0)

{ printf("已有该学号,请检查后重新录入!\n");

flag=1;

break;

}

}

printf("请输入第 %d 个学生的姓名:",i+1);

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

printf("\n请输入第 %d 个学生的性别:",i+1);

scanf("%s",stu[i].sex);

printf("\n请输入第 %d 个学生的数学成绩:",i+1);

scanf("%d",stu[i].ke1);

printf("\n请输入第 %d 个学生的语文成绩:",i+1);

scanf("%d",stu[i].ke2);

printf("\n请输入第 %d 个学生的英语成绩:",i+1);

scanf("%d",stu[i].ke3);if(flag==0)

{ i=i;

i++;

}

}while(in+m);

n+=m;

printf("录入完毕!\n\n");

}void del()

{ int i,j,flag=0;

char s1[20];

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

scanf("%s",s1);

for(i=0;in;i++)

if(strcmp(stu[i].xuehao,s1)==0)

{ flag=1;

for(j=i;jn-1;j++)

stu[j]=stu[j+1];

}

if(flag==0)

printf("该学号不存在!\n");

if(flag==1)

{ printf("删除成功,显示结果请选择菜单6\n");

n--;

}

}

void readfile()

{

char buf[80],*p="student.dat";

FILE *fp;

int i=0;

if ((fp=fopen("student.dat","r"))==NULL)

{ printf("Open file %s error! Strike any key to exit!",p);

system("pause");

exit(0);

}

while(fscanf(fp,"%s%s%s%d%d%d",stu[i].xuehao,stu[i].name,

stu[i].sex,stu[i].ke1,stu[i].ke2,stu[i].ke3)==6)

{ i++;

i=i;

}

fclose(fp);

n=i;

printf("录入完毕!\n");

}void save()

{ int i,j,k,flag=0;

FILE *fp;

fp=fopen("student.dat","w");

for(i=0;im;i++)

{

fprintf(fp,"%s%s%d%d%d",stu[i].xuehao,stu[i].name,stu[i].sex,stu[i].ke1,

stu[i].ke2,stu[i].ke3);

fclose(fp);

printf("已储存");

}

}

void paixu()

{

int i,j,k,t;

for(i=0;im;i++)

{

stu[i].pin=(stu[i].ke1+stu[i].ke2+stu[i].ke3)/3;

}

for(i=0;i=m-2;i++)

{

k=i;

for(j=i+1;j=m-1;j++)

if(stu[j].pinstu[k].pin)

k=j;

if(k!=i)

{

t=stu[k].pin;

stu[k].pin=stu[i].pin;

stu[i].pin=t;

}

}

for(i=0;im;i++)

{printf("第 %d 个学生的姓名%s:",i+1,stu[i].name);br printf("\n第 %d 个学生的性别:%s",i+1,stu[i].sex);br printf("\n第 %d 个学生的数学成绩:%d",i+1,stu[i].ke1);br printf("\n第 %d 个学生的语文成绩:%d",i+1,stu[i].ke2);br printf("\n第 %d 个学生的英语成绩:%d",i+1,stu[i].ke3);br printf("\n第 %d 个学生的平均成绩:%d",i+1,stu[i].pin);br }

}

void menu()

{ int nub;

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

printf("*****系统功能菜单*****\n");

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

printf("1.输入学生信息\n");

printf("2.查询学生信息\n");

printf("3.按学号删除信息\n");

printf("4.读入学生信息\n");

printf("5.保存信息(要把修改保存到文件,退出程序前必须执行本项)\n");

printf("6.查询学生平均成绩信息\n");

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

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

printf("请选择菜单编号:");

scanf("%d",nub);

switch(nub)

{

case 1:insert();break;

case 2:seek();break;

case 3:del();break;

case 4:readfile();break;

case 5:save();break;

case 6:paixu();break;

case 0:k=0;break;

default:printf("请在0-6之间选择\n");

}}

void main()

{

while(k)

menu();

}

//平均数是排序后,输出的,如果你不想直接输入,那就不要对每个学生进行选择排序了

用C语言设计一个学生成绩管理系统

#include stdio.h

#include string.h

#include stdlib.h

#define MAX 1000

/*定义学生成绩信息结构*/

struct stu

{

char id[8];

char name[8];

扩展资料:

short:修饰int,短整型数据,可省略被修饰的int。(KR时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(KR时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(KR时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

复杂类型关键字

struct:结构体声明。(KR时期引入)

union:联合体声明。(KR时期引入)

enum:枚举声明。(C89标准新增)

typedef:声明类型别名。(KR时期引入)

sizeof:得到特定类型或特定类型变量的大小。(KR时期引入)

inline:内联函数用于取代宏定义,会在任何调用它的地方展开。(C99标准新增)

参考资料来源:百度百科-c语言


本文题目:c语言学生成绩管理函数 c语言学生成绩管理系统函数
URL链接:http://cdweb.net/article/dopocip.html