AI Studio下C语言编程:一道简单的C语言作业题目

Posted 卓晴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AI Studio下C语言编程:一道简单的C语言作业题目相关的知识,希望对你有一定的参考价值。

简 介: 本文测试了在 AI Studio中进行C语言编程的过程。使用与 搭建AI Studio 中Python开发环境 同样的 “AIS” python文件,可以在Windows 与AI Studio之间进行C,Python文件传输、编写与运行。

关键词 AIStudio

问题来源
文章目录
题目要求
作业分析
程序要求
产生学生成
绩单CSV文件
C语言程序
程序代码
运行结果
总 结

 

§01 题来源


  是名大二的学生,这边有问题,有个简单编程作业想问下你,价钱好说 :

一、题目要求

1、成绩处理

▲ 图1.1 作业要求

▲ 图1.2 作业要求

2、结果要求

  c语言,文件没啥要求,有程序代码就行了。

  类似于这种:

▲ 图1.1.3 作业结果要求

3、提交时间

  明天就要交了,麻烦你了

 

§02 业分析


一、程序要求

1、编程语言

  编程语言是C语言。可以看到这是一个大学一年级 C语言课程的作业题目;

2、编程环境

  前面同学显示的变换环境为 VS。

  因此只要是基本的C语言,他都可以进行调试。

3、程序输入、输出

(1)程序输入

  程序中没有给出学生的成绩表格的要求。因此可以采用最简单的 CSV 格式来表示学生的成绩。

  • 每一行表示一个学生的信息。有两个字段:学号成绩;
  • 学号采用字符串:“202109nnn”,其中nnn从 101 ~ 299,表示由199 位同学;
  • 成绩采用浮点数: nn.m: 采用平均值为85,方差为30的正态分布;

(2)程序的输出

  可以看到只需要屏幕输出即可。

二、产生学生成绩单CSV文件

  使用AI Studio的终端环境,通过Python语言产生。由于这只是用于测试主程序,所以使用Python语言产生。

1、Python代码

#!/usr/local/bin/python
# -*- coding: gbk -*-
#============================================================
# SCORESVS.PY                  -- by Dr. ZhuoQing 2021-12-08
#
# Note:
#============================================================
from headm import *
from numpy import *
outfilename = 'score.txt'
student_number = 199
score_average = 85
score_variance = 35
score = random.normal(score_average,
                      score_variance,
                      student_number)
score = [s if s < 100 else 99 for s in score]
score = [s if s > 0 else 0 for s in score]
score = [floor(s*10)/10 for s in score]
with open(outfilename, 'w') as f:
    for i in range(student_number):
        student_id = '202109%03d'%(101+i)
        f.write('%s,%3.1f\\n'%(student_id, score[i]))
printf(score)
plt.hist(score)
plt.xlabel("分数段")
plt.ylabel("人数")
plt.title('成绩分布')
plt.grid(True)
plt.tight_layout()
plt.show()
#------------------------------------------------------------
#        END OF FILE : SCORESVS.PY
#============================================================

2、结果:

(1)成绩数值

[99.0, 13.5, 99.0, 45.7, 99.0, 88.5, 99.0, 99.0, 93.1, 99.0, 66.9, 99.0, 99.0, 35.2, 95.3, 95.5, 92.9, 0.0, 74.8, 99.0, 99.0, 88.6, 76.4, 99.0, 99.0, 89.9, 99.0, 78.5, 40.2, 99.0, 77.2, 40.4, 99.0, 69.4, 50.1, 74.2, 99.0, 99.0, 98.2, 82.3, 99.0, 32.1, 99.0, 92.5, 99.0, 55.0, 99.0, 75.5, 74.2, 24.4, 71.7, 0.0, 47.3, 34.7, 96.2, 99.0, 93.6, 52.3, 99.0, 87.9, 87.7, 96.3, 29.1, 99.0, 99.0, 56.4, 58.3, 99.0, 51.6, 27.0, 54.7, 99.0, 36.6, 97.0, 34.4, 29.4, 83.5, 27.9, 99.0, 99.0, 99.0, 55.2, 96.0, 45.7, 97.8, 3.8, 22.6, 89.0, 90.8, 99.0, 99.0, 99.0, 92.9, 99.0, 64.6, 99.0, 75.3, 60.8, 93.2, 40.2, 99.0, 89.2, 56.4, 93.7, 80.1, 87.9, 85.0, 99.0, 72.6, 69.6, 49.7, 80.8, 55.9, 48.3, 67.3, 22.7, 41.6, 45.4, 99.0, 99.0, 72.3, 99.0, 72.5, 49.5, 82.5, 99.0, 92.2, 49.3, 79.1, 99.0, 44.9, 99.0, 99.0, 88.0, 47.4, 99.0, 57.1, 50.6, 99.0, 49.3, 68.7, 99.0, 99.0, 58.3, 99.0, 53.7, 93.5, 48.4, 99.0, 44.3, 15.9, 70.0, 71.2, 99.0, 65.5, 55.9, 99.0, 92.4, 99.0, 87.7, 99.9, 99.0, 81.8, 82.1, 68.2, 99.0, 71.7, 97.2, 66.8, 67.7, 98.1, 99.0, 99.0, 83.2, 99.0, 57.9, 65.2, 99.0, 99.0, 78.3, 99.0, 29.9, 69.4, 47.4, 94.3, 52.4, 67.8, 99.0, 62.4, 99.0, 81.3, 25.1, 85.7, 99.0, 99.0, 99.0, 99.0, 80.5, 75.7]

(2)成绩分布

▲ 图2.2.1 成绩分布

(3)打开score.txt中的内容

▲ 图2.2.2 成绩CSV格式

 

§03 C语言程序


  面编写作业所需要的C语言程序。

一、程序代码

1、C文件

/*
**==============================================================================
** SCORESTA.C:             -- by Dr. ZhuoQing, 2021-12-08
**
**==============================================================================
*/

//------------------------------------------------------------------------------
#define SCORESTA_GLOBALS        1              // Define the global variables
#include "SCORESTA.H"
#include "stdio.h"
#include "string.h"

//------------------------------------------------------------------------------
#define LINE_LENGTH             0x1000
#define MAX_STUDENT             0x1000
#define STUDENT_ID_LENGTH       0x20

//------------------------------------------------------------------------------
char g_szStudentID[MAX_STUDENT][STUDENT_ID_LENGTH];
float g_fStudentScore[MAX_STUDENT];
int g_nStudentNumber;


int SegmentInfor(float fBegin, float fEnd)  // Show every segment student infor
    int nNumber = 0;
    int i;
    
    for(i = 0; i < g_nStudentNumber; i ++) 
        if(g_fStudentScore[i] >= fBegin && g_fStudentScore[i] < fEnd) 
            nNumber ++;
        
    

    if(fBegin >= 60) 
        printf("%d - %d 分数的人数为:%d。他们的学号、成绩为:\\n", (int)fBegin, (int)fEnd, nNumber);
     else 
        printf("不及格的人数为:%d。他们的学号、成绩为:\\n", nNumber);
        
    


    nNumber = 0;
    for(i = 0; i < g_nStudentNumber; i ++) 
        if(g_fStudentScore[i] >= fBegin && g_fStudentScore[i] < fEnd) 
            nNumber ++;
            printf("%02d. %s, %3.1f\\n", nNumber, g_szStudentID[i], g_fStudentScore[i]);
        
        
    
    
    printf("\\n");
    
    return 0;



//------------------------------------------------------------------------------
int main(void) 
    FILE * pInputFile;
    char szLine[LINE_LENGTH];
    int nStudentNumber;
    
        
    //--------------------------------------------------------------------------
    // Open the score file.
    //
    pInputFile = fopen(SCORE_FILE_NAME, 一道简单的C语言题。有关double的溢出

求助一道C语言设计题目

一道编程题:求逆序对的个数

Visual Studio2010编译C语言,怎么设置

航类C语言解谜赛《苍穹一粟》题解

一道C语言题目,跪求!!