c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!!

#include

#include

#include

struct st

{

char name[20];

int english;

int math;

int chinese;

int average;

st *next;

};

struct st *pend=NULL;//初始链表的尾指针

struct st *pendorder=NULL;//顺序链表的尾指针

struct st *pheadorder=NULL;//顺序链表的头指针

struct st *makeorder(struct st *phead);//按分数从大到小排序 生产链表

struct st *addtolist(struct st *add);// 将平均分最大的添到另一个链表

struct st *createlist();//输入学生信息时生成的初始链表

struct st * deletestu(char *name,st *phead);//删除一个学员的信息

struct st *addstu(st *name,st *phead);//向顺序链表添加一个元素,插入的地方按平均成绩

void printinfo(st *phead);//按平均成绩打印出每个学员的名字

int main()

{

int select;

char deletename[20];

struct st *addstud=NULL;

struct st *phead=NULL;

phead=createlist();//输入时创建链表

pheadorder=makeorder(phead);//将链表排序

printf("input operation:1----deletestudent,2-----addstudent,3----output all student\n");

scanf("%d",&select);

while(select>0)//选择操作1为删除2为添加3为打印,其他的输入会跳出循环

{

switch(select)

{

case 1:

printf("please input the of the student to be deleted:\n");

scanf("%s",deletename);

pheadorder=deletestu(deletename,pheadorder);

printf("input operation:1----deletestudent,2-----addstudent,3----output all student\n");

scanf("%d",&select);

break;

case 2:

printf("please input the information of the student to be added:\n");

addstud=new st;

scanf("%s%d%d%d",addstud->name,&(addstud->english),&(addstud->math),&(addstud->chinese));

addstud->average=((addstud->english)+(addstud->math)+(addstud->chinese))/3;

while((addstud->english)<=0)

{

delete addstud;

printf("please input the information of the student to be added:\n");

addstud=new st;

scanf("%s%d%d%d",addstud->name,&(addstud->english),&(addstud->math),&(addstud->chinese));

addstud->average=((addstud->english)+(addstud->math)+(addstud->chinese))/3;

}

pheadorder=addstu(addstud,pheadorder);

printf("input operation:1----deletestudent,2-----addstudent,3----output all student\n");

scanf("%d",&select);

break;

case 3:

printinfo(pheadorder);

printf("input operation:1----deletestudent,2-----addstudent,3----output all student\n");

scanf("%d",&select);

break;

default:

goto laber;

}

}

laber:system("pause");

return 1;

}

struct st *createlist()//输入时创建初始链表

{

struct st *pfirst=NULL;

struct st *plast=NULL;

struct st *p=new st;

printf("please input the information of the students:\n");

scanf("%s%d%d%d",p->name,&(p->english),&(p->math),&(p->chinese));

p->average=((p->english)+(p->math)+(p->chinese))/3;

while((p->english)>0)

{

if(pfirst==NULL)

pfirst=plast=p;

else

plast->next=p;

plast=p;

printf("please input again:\n");

p=new st;

scanf("%s%d%d%d",p->name,&(p->english),&(p->math),&(p->chinese));

p->average=((p->english)+(p->math)+(p->chinese))/3;

}

plast->next=NULL;

printf("list create successful\n");

delete p;

return pfirst;

}

struct st *deletestu(char *name,st *phead)//删除一个学员

{

int flag=0;

st *p=NULL;

if(strcmp(phead->name,name)==0)

{

phead=phead->next;

flag=1;

}

else

for(p=phead;p;p=p->next)

{

if(strcmp(p->next->name,name)==0)

{

p->next=p->next->next;

flag=1;

break;

}

}

if(!flag)

printf("the student you delete is not in the list\n");

else printf("delete successful\n");

return phead;

}

struct st *addstu(st *name,st *phead)//按平均分增加一个学员

{

name->next=NULL;

struct st *p=NULL;

if((name->average)>(phead->average))

{

name->next=phead;

phead=name;

return phead;

}

else

{

for(p=phead;p->next;p=p->next)

{

if((name->average)>(p->next->average))

{

name->next=p->next;

p->next=name;

return phead;

}

}

}

p=p->next;

p->next=name;

return phead;

}

void printinfo(st *phead)//打印信息

{

st *p;

for(p=phead;p;p=p->next)

printf("%s\n",p->name);

}

struct st *addtolist(struct st *phead,struct st *add)//生成顺序链表时每回都添加一个平均成绩最高的学员信息

{

add->next=NULL;

if(phead==NULL)

pendorder=phead=add;

else

pendorder->next=add;

pendorder=add;

return phead;

}

struct st *makeorder(struct st *phead)//将初始链表变成顺序链表

{

if(phead!=NULL)

{

int max;

struct st *p=NULL;

struct st *index=NULL;

while(phead)

{

max=0;

for(p=phead;p;p=p->next)

{

if(p->average>max)

{

max=p->average;

index=p;

}

}

phead=deletestu(index->name,phead);

pheadorder=addtolist(pheadorder,index);

}

return pheadorder;

}

else printf("there is no list members to be ordered\n");

return pheadorder;

}

c语言编辑学生信息录入的程序,c语言编的学生信息管理系统小程序!!有不足的请指出,谢谢!!...相关推荐

  1. spring boot +Mysql双端融合的教学过程管理系统小程序源码66431

    摘  要 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,双端融合的教学过程管理系统小程序被用户普遍使 ...

  2. (附源码)springboot自习室管理系统 小程序 毕业设计221535

    Springboot自习室管理系统小程序 摘要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难 ...

  3. 计算机毕业设计springboot+vue基本微信小程序的家装公司管理系统小程序

    项目介绍  随着Internet的发展,人们的日常生活已经离不开网络.未来人们的生活与工作将变得越来越数字化.网络化和电子化.本文以实际运用为开发背景,运用软件工程原理和开发方法,它主要是采用java ...

  4. 注册登录页面代码用js判断是否填入信息_微信小程序快速开发:从注册账号到小程序上架

    写在前面 自从微信小程序功能发布后,我就一直关注着小程序的动向,然而限于学业繁忙,总是没有太多的时间去学习.大二逐渐学习了Vuejs,被其简洁的设计所吸引,后来看了看小程序的开发文档,发现这么的相似? ...

  5. mfc程序转化为qt_以“企鹅电竞小程序”改版为例,讲解如何将用户核心路径转化为设计语言...

    前言 用户路径是指用户达到目标时一系列的操作.我们可以将用户在产品中由开始到结束的整个过程划分成很多节点,用户从一个节点到另一个节点的过程可以被视为是一条路径.用户路径主要分为两种:一种是用户找寻信息 ...

  6. C语言时间管理小程序,写了一个时间管理的微信小程序

    原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...

  7. 基于微信小程序的大学生科技竞赛管理系统小程序

    文末联系获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:ecl ...

  8. 2023年最新最全uniCloud入门学习,零基础入门到实战项目 uni-admin打造uniapp网页后端 微信支付宝抖音小程序后端 unicloud数据后台快速打造uniapp小程序项目

    今天开始带着大家一起零基础学习uniCloud,在下面的课程中我们就简称uniCloud为cloud吧.我这里从零基础开始教大家,后面可以带大家简单的做一个实战项目.所以不用担心自己没有基础,跟着石头 ...

  9. 基于PHP+小程序(MINA框架)+Mysql数据库的评选投票小程序系统设计与实现

    项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序评选投票系统,前台用户使用小程序,后台管理使用基PHP+MySql的B/S架构:通过后台添加资讯.管理上传投票信息.用户管理等:用 ...

最新文章

  1. LabelMe图像数据集下载
  2. SQL Server加密存储过程的破解
  3. Java 字符串操作的总结1(转载)
  4. as_hash ruby_Ruby中带有示例的Hash.delete_if方法
  5. jmeter+WebDriver:启动浏览器进行web自动化
  6. 服务器邮件权限的开放,企业邮件服务器收发邮件权限
  7. GeoPoint与LocationData
  8. 怀旧服小号最多的服务器,魔兽世界怀旧服小号战场将成为GZS量产高督的基地?...
  9. ERROR: modinfo: could not find module rbd FATAL
  10. 帆软动态分页之单数据集行式报表(模板-引擎设设置启用及行数)
  11. CCS下载MSP430编译遇到的几个小问题
  12. 移动充电宝市场需求的调研报告
  13. Winmail + Foxmail搭建企业内部邮件系统
  14. Echarts绘制各种数据可视化图表案例(效果+代码)
  15. 第欧根尼:我崇尚简朴朴素克己的生活
  16. Go 每日一库之 gorilla/mux
  17. 知识管理的唯一出路:与业务融合,构建情景化知识管理体系
  18. 2023年某科技公司前端开发初级岗的面试笔试真题(含选择题答案、问答题解析、机试题源码)
  19. 使你的ActiveX控件执行时不弹出安全性提示
  20. 错误: 模块未指定(FileNotFoundException)

热门文章

  1. php之Deprecated 问题
  2. ASP.NET中定制自己的委托和事件参数类
  3. Linux 命令(51)—— ipcs 命令
  4. Linux系统redis安装配置
  5. 20181027_任务
  6. 为什么要用dubbo,dubbo是什么,为什么要和zk结合使用?
  7. [Bzoj4817] [Sdoi2017]树点涂色 (LCT神题)
  8. javascript图片隐写术,感觉可以用它来干点有想法的事情
  9. 课堂练习之购书最低价格
  10. 如何为新建网站选择好的域名