c语言编的学生信息管理系统小程序  参考吧

#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. 职工信息管理程序设计c语言,C语言程序设计职工信息管理系统.docx

    C语言程序设计职工信息管理系统.docx 1 数信学院数信学院 课程设计报告课程设计报告 课程名称课程名称C C 语言程序设计语言程序设计_ _ 题目名称题目名称职工信息管理系统职工信息管理系统 学生 ...

  2. 用C语言,职工信息管理系统

    用C语言,职工信息管理系统具体要求 1.基本信息:如工号.姓名.性别.年龄.学历.住址.电话号码.工资等. 2.各职工信息用结构体来实现,建议使用链表来实现建立.删除.插入等操作. 3.需建立输出文件 ...

  3. 【c语言】职工信息管理系统 包含读取写入txt文件,职工信息的增删改查

    一.需求分析 1.职工信息管理系统的目标是为方便管理层对职工的信息管理,要如何设计一个操作简便且又能很好的管理职工信息的系统就要涉及到各种逻辑问题. 2.管理系统将可以对职工信息进行操作,对职工信息进 ...

  4. 职工信息管理系统c语言报告,职工信息管理系统(c语言实现)

    功能实现: (1)系统以菜单方式工作 (2)职工信息录入功能(职工信息用文件保存)--输入 (3)职工信息浏览功能--输出 (4)职工信息查询功能--算法 查询方式:按姓名查询/按职工号查询 (5)职 ...

  5. python信息管理系统统计功能_用Python实现职工信息管理系统

    想要实现一个职工管理系统 首先我们看一下想要实现什么功能 最基础的增删改查肯定要实现的 然后增加一下数据显示.数据排序.数据统计功能 下面直接上代码 增加职工数据 # 接收用户收入 id = inpu ...

  6. C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统

    C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统 程序之美 用C语言,职工信息管理系统具体要求 1.基本信息:如工号.姓名.性别.年龄.学历.住址.电话号码.工资等. 2.各职工信息用结构 ...

  7. 员工信息管理系统语言论文c,C语言课程设计 职工信息管理系统.doc

    C语言课程设计 职工信息管理系统.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  8. c语言用链表写管理系统程序,c语言课程设计职工信息管理系统单链表实现程序源代码-20210401015126.docx-原创力文档...

    文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08] C语言课程设计职工信息管理系统单链表实现程序源代 ...

  9. 商品管理系统c语言功能模板,C语言课程报告图书馆管理系统可做模板套用.doc

    课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : 学 生 姓 名 : 学 号 : 任 课 教 师 : 学 期 :2010-2011学年第二学期 课程报告任务书 题 目 图书信息管理系 ...

  10. c语言课程设计 职工信息管理系统,C语言课程设计-职工信息管理系统程序设计.doc...

    C语言课程设计-职工信息管理系统程序设计 C语言课程设计报告 设计题目:职工信息管理系统程序设计 课程设计评语2 目 录3 1.课程论文题目4 2.程序设计思路4 3.功能模块图5 4.数据结构设计5 ...

最新文章

  1. MySQL数据库查询中的特殊命令
  2. c语言位段sizeof,C语言位段的介绍
  3. 【瞎扯】我的OI之路
  4. 【收藏】部署Kubernetes(k8s)时,为什么要关闭swap、selinux、防火墙?
  5. MYSQL存储引擎笔记
  6. 如何生成高性能的短链接?
  7. 《深入实践Spring Boot》一3.3 使用Thymeleaf模板
  8. RoI Pooling 系列方法介绍(文末附源码)
  9. centos查看磁盘转速_Linux 磁盘管理
  10. 记第一次在程序中埋彩蛋
  11. 求书:推荐阅读倡议书
  12. 网页浏览器主要通过ftp协议同网页服务器,FTP协议的工具、网页浏览器和命令
  13. matlab炮灰模型,非诚勿扰的数学分析
  14. php中的接口 interface 和实现 implement
  15. linux ntp时间立即同步命令_linux时间同步,ntpd、ntpdate
  16. 根据我的经验如何进行数据科学,人工智能或大数据工作
  17. 基于Java+MySQL 实现(Web)日程管理系统【100010222】
  18. C++入门基础(万字总结)(建议收藏!!!)
  19. GameFramework篇:StarForce全解读(前言)
  20. 春节红包活动如何应对10亿级流量?

热门文章

  1. TDengine与OpenTSDB对比测试
  2. 容器编排技术 -- Kubernetes 给容器和Pod分配内存资源
  3. idea中git分支、合并与使用
  4. golang mysql遇到的一些问题记录和解决
  5. tmux 上滚_实践中的tmux:回滚缓冲区
  6. webhooks_在本地开发时如何测试Webhooks
  7. -bash-退出_为什么这么多开发人员在找到工作之前就退出了。 请-不要。
  8. 技术债务_如何处理技术债务并节省理智
  9. lamp php7.0,LAMP(Ubuntu16+PHP7.0)安装Wordpress
  10. mysql 重置表索引_MySQL如何进行索引重建操作?