首页 > 编程语言 >2023--2024-1 20231407陈原计算机科学概论与C语言程序设计第十二周学习总结

2023--2024-1 20231407陈原计算机科学概论与C语言程序设计第十二周学习总结

时间:2023-12-17 19:56:45浏览次数:31  
标签:20231407 陈原 STU -- int printf input total name

这个课程属于哪里 计算机基础与程序设计
作业要求

https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12

 
作业目的 自学教材
作业正文 https://www.cnblogs.com/CCCY12345/p/17909622.html


结构体:一种构造类型。

内部成员由一种或多种基本类型或构造类型构成。

实验六:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996)

typedef struct Student //定义结构体
{
long studentnumber;
char name[20];
float MT;
float EN;
float PH;
float total;
float average;
} STU;
void average(STU* A, int n);
void total(STU* A, int n);
void sortbyscore(STU* A, int n);
void dictionaryorder(STU* A, int n);
int searchbyname(STU* A, int n);

int main()
{
printf("(1)Append record\n(2)Calculate total and average score of every student\n");
printf("(3)Sort in ascending order by total score of every student\n(4)Sort in dictionary order by name\n");
printf("(5)Search by name\n(6)Write to a file\n");
printf("(7)Read from a file\n(0)Exit\n");
int n, p, y = 1;
printf("Input instruction (only 1):"); // 输入指令,现在没有数据,只能先输入数据
scanf("%d", &p);
printf("Please input the number of students:"); //输入学生数,确定结构体数组大小
scanf("%d", &n);
STU A[n];
if (p == 1)
{
int i;
for (i = 0; i < n; i++)
{
printf("Please input student number of student %d:", i + 1); //输入学生数据
scanf("%ld", &A[i].studentnumber);
getchar();
printf("Please input the name of student %d:", i + 1);
fgets(A[i].name,sizeof(A[i].name),stdin);
printf("Please input the score of math:");
scanf("%f", &A[i].MT);
printf("Please input the score of English:");
scanf("%f", &A[i].EN);
printf("Please input the score of Physics:");
scanf("%f", &A[i].PH);
}
}
else
{
printf("No data!\n");
}
while (y = 1)
{
printf("Please input the number of instruction:");
scanf("%d", &p);
if (p == 2)
{
total(A, n);
average(A, n);
}
if (p == 3)
{
sortbyscore(A, n);
}
if (p == 4)
{
dictionaryorder(A, n);
}
if (p == 5)
{
total(A, n); //先计算总分平均分,再输出
average(A, n);
int a = searchbyname(A, n);
printf("Name:%s\n", A[a].name);
printf("Student number:%ld\n", A[a].studentnumber);
printf("Score of MT:%.2f\n", A[a].MT);
printf("Score of En:%.2f\n", A[a].EN);
printf("Score of PH:%.2f\n", A[a].PH);
printf("Total score:%.2f\n", A[a].total);
printf("Average score:%.2f\n", A[a].average);
}
if (p == 6)
{

}
if (p == 7)
{

}
if (p == 0)
{
break;
}
}
}

void average(STU* A, int n)
{
int i;
for (i = 0; i <= n - 1; i++)
{
A[i].average = A[i].total / 3;
}
}

void total(STU* A, int n)
{
int i;
for (i = 0; i <= n - 1; i++)
{
A[i].total = A[i].MT + A[i].EN + A[i].PH;
}
}

void sortbyscore(STU* A, int n)
{
int i, j;
STU change;
for (i = 0; i <= n - 1; i++)
{
for (j = i + 1; j <= n - 1; j++)
{
if (A[i].MT + A[i].EN + A[i].PH < A[j].MT + A[j].EN + A[j].PH) //比较总分
{
change = A[i];
A[i] = A[j];
A[j] = change;
}
}
}
}

void dictionaryorder(STU* A, int n)
{
STU change;
int i, j;
for (i = 0; i <= n - 1; i++)
{
for (j = i + 1; j <= n - 1; j++)
{
int a = strcmp(A[i].name, A[i].name);
if (a > 0)
{
change = A[i];
A[i] = A[j];
A[j] = change;
}
}
}
}

int searchbyname(STU* A, int n) //返回符合条件的数组序号
{
int i, a;
char B[20];
getchar();
printf("Please input the name you want to search:");
fgets(B,sizeof(B),stdin);
for (i = 0; i <= n - 1; i++)
{
if (strcmp(A[i].name, B) == 0)
{
a = i;
}
}
return a;
}

标签:20231407,陈原,STU,--,int,printf,input,total,name
From: https://www.cnblogs.com/CCCY12345/p/17909622.html

相关文章

  • css样式穿透
    在AntDesign中,Table组件提供了一些属性和样式可以用来定制表格的外观,包括表头和每一行的背景色,以及每一列的样式。以下是一些常用的属性和样式:1.表头背景色和每一行的背景色:使用columns属性设置每一列的配置,其中可以包含title属性用于设置列标题。使用rowClassName......
  • 记一次 habse replication的Lag越来越大
    误操作导致habsereplication的Lag越来越大解决(没有继续同步,堆积越来越多):hdfsfsck/data/logs/ -openforwrite     检查哪些文件处于打开写的过程一直未关闭/data/logs/2019/11/27/16/data-log-20191127_16.1574841601929.log861bytes,replicated:replication=2......
  • 冲刺汇总
    冲刺一冲刺二冲刺三冲刺四冲刺五冲刺六冲刺七......
  • 实验六
    4.hpp#include<iostream>#include<stdexcept>template<typenameT>classVector{private:intsize;T*p;public:Vector<T>(ints);Vector<T>(ints,Tvalue);Vector<T>(Vector<T>&x);......
  • numpy、scipy、pandas、matplotlib的读书报告
    基本函数的用法numpynumpy是Python中用于进行科学计算的基础模块,它提供了高效的多维数组对象ndarray,以及相关的数学运算和线性代数函数。numpy的主要功能有:创建和操作多维数组,如使用np.array(),np.arange(),np.zeros(),np.ones(),np.reshape()等函数。对数组进行索引和切片,如使用......
  • day12
    day124.函数名的多种用法函数名其实绑定的也是一块内存地址只不过该地址里面存放的不是数据值而是一段代码函数名加括号就会找到该代码并执行1.可以当做变量名赋值 defindex():pass res=index res()2.可以当做函数的参数defindex(): print('fromindex')......
  • 渗透测试实验报告一
    1. 实验目的和要求实验目的:理解网络扫描、网络侦察的作用;通过搭建网络渗透测试平台,了解并熟悉常用搜索引擎、扫描工具的应用,通过信息收集为下一步渗透工作打下基础。系统环境:KaliLinux2、Windows网络环境:交换网络结构2.实验步骤 1:利用Google语法搜索site:mit.eduinti......
  • 链表面试题解析
    链表面试题解析1.删除链表中=val的所有节点/***Definitionforsingly-linkedlist.*publicclassListNode{*intval;*ListNodenext;*ListNode(){}*ListNode(intval){this.val=val;}*ListNode(intval,ListNodenext){......
  • 冲刺博客(一)
    Day1基本情况会议情况队名:第一组队组员人数:5日期:2023/12/10分工情况卢泽梳理程序主要需求和功能建立程序整体理解编写需求文档初步建立程序的通信架构葛洺君学习文件传输基本方式设计基础socket通信建立初始的socket连接李严圣融理解现有代......
  • day13
    day133.今日概要*作业讲解*多层语法糖问题*有参装饰器*装饰器修复技术*递归函数*算法之二分法4.作业讲解1.编写一个用户认证装饰器函数:registerlogintransferwithdraw基本要求 执行每个函数的时候必须先校验身份eg:jason123拔高练习(有点难......