数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩

关注:69  答案:2  mip版

解决时间 2021-02-04 09:43

提问者孤城古巷

2021-02-03 10:32

要求用C语言 总体上就是实现学生的平均成绩 跟 两门课程的平均成绩 跪求答案!

最佳答案

二级知识专家烈酒℃灼言EL

2021-02-03 10:47

这是代码,还有文件

#include

#include

#include

#define LEN sizeof(struct student)

void destroy(struct student* phead);

void print(struct student *pstudent);

struct student

{

char number[11];

char name[10];

char sex[5];

int Cscore;

int Jscore;

int Escore;

struct student *next;

};

void main()

{

struct student *ptemp,*pstudent,*p,*padd,*pbad,*pp;

FILE *pf1,*pf2;

pf1 = fopen("stulist.txt", "r");

if(pf1 == NULL)

{

printf("failed to open file!");

return;

}

pstudent= NULL;

while(!feof(pf1))

{

ptemp = (struct student*)malloc(LEN);

fscanf(pf1,"%s%s%s%d%d%d",ptemp->number,

ptemp->name,

ptemp->sex,

&ptemp->Cscore,

&ptemp->Jscore,

&ptemp->Escore);

ptemp->next = NULL;

if(pstudent== NULL)

pstudent = ptemp;

else

{

ptemp->next = pstudent;

pstudent = ptemp;

}

}

fclose(pf1);

ptemp=pstudent;

while(ptemp!=NULL)

{

if((ptemp->Cscore+ptemp->Jscore+ptemp->Escore)/3>80)

printf("%s\t%s\t%d\n",ptemp->name,ptemp->number,(ptemp->Cscore+ptemp->Jscore+ptemp->Escore)/3);

ptemp=ptemp->next;

}

p=ptemp;

ptemp=pstudent;

pf2 = fopen("studentadd.txt", "r");

if(pf2 == NULL)

{

printf("failed to open file!");

return;

}

while(!feof(pf2))

{

padd = (struct student*)malloc(LEN);

fscanf(pf2, "%s%s%s%d%d%d",padd->number,

padd->name,

padd->sex,

&padd->Cscore,

&padd->Jscore,

&padd->Escore);

}

printf("\n");

while(strcmp(padd->number,ptemp->number)>0)

{

p=ptemp;

ptemp=ptemp->next;

}

if(strcmp(padd->number,ptemp->number)<=0)

{

p->next=padd;

padd->next=ptemp;

}

pbad=pstudent;

pp=pstudent;

while(pbad->Jscore>=70)

{

pp=pbad;

pbad=pbad->next;

}

if(pbad->Jscore<70)

pp->next=pbad->next;

print(pstudent);

destroy(pstudent);

}

void destroy(struct student* phead)

{

struct student *ptemp;

while(phead != NULL)

{

ptemp = phead;

phead = phead->next;

free(ptemp);

}

}

void print(struct student *pstudent)

{

while(pstudent!=NULL)

{

printf("%s\t%s\t%s\t%d\t%d\t%d",pstudent->number,

pstudent->name,

pstudent->sex,

pstudent->Cscore,

pstudent->Jscore,

pstudent->Escore);

printf("\n");

pstudent=pstudent->next;

}

}

文件 新建一个txt文档,命名stulist.txt

0764181057林婷婷女879078

0764181058刘俊伟男996556

0764181060卢京京女809096

再建一个文档,命名studentadd.txt,

0764181059戴国锋男819289

就可以运行

1. 创建一个复杂数据(结构体)类型,该类型的变量能够存放一个学生的信息,包括:学号、姓名、性别以及三门课程的成绩(C程序设计、计算机科学导论和大学英语),要求性别用中文“男/女”表示。

2. 新建链表存放以下三个学生的信息(链表的每一个节点存放一个学生的信息,各节点以学号递增的顺序排列):

0764181057林婷婷女879078

0764181058刘俊伟男996556

0764181060卢京京女809096

3. 列出平均分高于80分的学生姓名,学号和平均成绩,如:

林婷婷 0764181057 85.0

4. 向链表中插入一个学生,插入完成后链表保持学号递增顺序不变,该生信息为:

0764181059戴国锋男819289

5. 从链表中删除“计算机科学导论”课程成绩低于70分的学生。

6.编写一个遍历输出该链表全体数据的函数,并在新建、插入、删除等操作后调用以验证程序的正确性。

这是实现的功能

全部回答

1楼甜心萌物酱

2021-02-03 12:08

#include

struct student

{

int no;

char name[15];

int score[2];

}

main()

{

struct student stu[3];

int i,j,sum;

printf("请输入三个学生信息\n");

for(i=0;i<3;i++)

{

printf("学号:");

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

printf("姓名:");

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

for(j=0;j<2;j++)

{

printf("第%d门成绩\n",j+1);

scanf("%d",&stu[i].score[j]);

}

}

printf("********学生信息*********\n");

printf("学号\t姓名\t第一门成绩\t第二门成绩\n");

for(i=0;i<3;i++)

{

printf("%d\t%s\t",stu[i].no,stu[i].name);

for(j=0;j<2;j++)

printf("%d\t%d",stu[i].score[j]);

printf("\n");

}

sum=stu[0].score[0]+stu[2].score[0]+stu[3].score[0];

printf("第1门课平均成绩为:%d\n",sum/3);

sum=stu[0].score[1]+stu[1].score[1]+stu[2].score[1];

printf("第2门课平均成绩为:%d\n",sum/3);

}

我要举报

如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!

→点此我要举报以上信息!←

推荐资讯

大家都在看

求两门成绩平均c语言,数据结构课的作业 要求用链表实现学生的学号 姓名 两门课的成绩 同时求出课程的平均成绩...相关推荐

  1. 第十四周 【项目2-用文件保存的学生名单】若干名学生的学号 姓名和C++课、高数和英语成绩

    运行代码: /* *Copyright (c)2014,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:d.cpp *作 者:张旺华 *完成日期:2015年6月3 ...

  2. (C语言)有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数)

    有10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩,平均分数) #define _C ...

  3. c语言输出编号姓名成绩,c语言 学生信息包括,学号,姓名,五门功课的成绩.输入输出。总分排序...

    c语言 学生信息包括,学号,姓名,五门功课的成绩.输入输出.总分排序 來源:互聯網  2010-06-16 18:12:05  評論 分類: 電腦/網絡 >> 程序設計 >> ...

  4. 用C语言实现一个学生成绩管理系统 实现学生信息管理。包括:录入、查询、排序等功能。 要求: 用数据文件保存学生基本信息(学号 姓名 课程1 课程2 课程3…) ,利用菜单可以循环实现各个功能。

    用C语言实现一个学生成绩管理系统 题目: 学生成绩管理系统 功能: 实现学生信息管理.包括:录入.查询.排序等功能. 要求: 用数据文件保存学生基本信息(学号 姓名 课程1 课程2 课程3-) ,利用 ...

  5. c语言咋样编程学号,C语言 用结构体类型数组编程实现输入5个学生的学号姓名平时成绩期中成绩和期末成绩然后输出每位...

    满意答案 zhyx520325 推荐于 2020.12.09 采纳率:41%    等级:10 已帮助:1973人 #include #include //C语言 用结构体类型数组编程实现输入5个学生 ...

  6. 从学生表中查询每门课都是80分以上的学生的学号与姓名。

    如果你想查询每门课都是80分以上的学生的学号与姓名,你可以使用以下的 SQL 查询语句: SELECT student_id, name FROM students WHERE NOT EXISTS ...

  7. 数据库练习题:学生表(学号,姓名,性别,系部,年龄)选课表(学号,课程号,成绩)课程表(课程号,课程名,学分)...

    数据库中有如下三个表: 学生表(学号,姓名,性别,系部,年龄)选课表(学号,课程号,成绩)课程表(课程号,课程名,学分) (1).写出创建以上三个表的sq语句 (2).从选课表中查询所有选课信息,即学 ...

  8. 用数据结构c语言写成绩排序,C语言数据结构 快速排序实例详解

    C语言数据结构 快速排序实例详解 一.快速排序简介 快速排序采用分治的思想,第一趟先将一串数字分为两部分,第一部分的数值都比第二部分要小,然后按照这种方法,依次对两边的数据进行排序. 二.代码实现 # ...

  9. c语言链表成绩管理系统排序,【C项目】 文件,结构体,链表,排序, 学生信息管理系统...

    1.密码登录: 2.通过键盘输入学生信息,包括学生学号.姓名.成绩: 3.将输入的信息保存到指定文件中: 4.从文件中读取学生信息: 5.显示全部学生信息: 6.按学生总分进行降序排序: 7.删除学生 ...

最新文章

  1. Spring使用总结
  2. 学术写作利器——LaTeX入门笔记整理(不定期更新,附加使用心得)
  3. 【Linux系统编程】Linux进程调度
  4. kong 启动报错 could not retrieve server_version: timeout
  5. rspec 测试页面元素_如何使用RSpec对Go应用进行黑盒测试
  6. 2017.4.2 loli测试
  7. 【leveldb】资料
  8. OSPF基本概念单与区域配置
  9. ionic3 打包错误解决:Could not resolve all files for configuration ':classpath'.
  10. SpringCloud下的springboot工程,访问jsp页面报404问题
  11. Java实现各种加密验证算法(MD5、SHA256、base64、pdkdf2、pdkdf2_sha256)
  12. PC批量转换网易ncm音乐
  13. 软件质量管理体系 type:pdf_普宁iso14001环境管理体系AAA信用等级认证
  14. krc2lrc(krc酷狗歌词转lrc)工具更新- 1.2 增加添加/拖放目录功能
  15. 中青杯数学建模竞赛是什么级别的比赛_2018年中青杯全国大学生数学建模竞赛...
  16. 关于win7系统重装完鼠标不能用的解决办法
  17. 面试记录-蚂蚁金服-算法工程师(共四面)通过
  18. worldpress小工具自定义html,教程 | 用 worldpress 搭建自己的博客 – 小白教程
  19. 来自MyBatis不一样收获结果的探索之旅-v3.5.9
  20. chatGPT能生成图片吗-chatGPT如何用

热门文章

  1. c# hid usb 卡死_C# 访问USB(HID)设备
  2. java 输出文件到mac路径_javamac的文件路径怎么写
  3. 查看 mac 下文件路径
  4. 2022-3-30 Leetcode253.会议室II
  5. Java+SSM仓库管理系统(含源码+论文+答辩PPT等)
  6. 2022-2-23 Leetcode 47.全排列 II
  7. Jetty9 NO JSP Support for /, did not find org.apache.jasper.servlet.JspServlet
  8. [C语言]求两个数的最小公倍数
  9. 清华学长告诉你认识 Python GUI编程框架
  10. 有人做脑电的情绪分类吗