【校园微项目竞赛】没勇气参赛?大一拿不到奖?这篇文章将讲述我带领我们组拿下校第一的生猪系统!

简介: 【校园微项目竞赛】没勇气参赛?大一拿不到奖?这篇文章将讲述我带领我们组拿下校第一的生猪系统!

⭐️前言⭐️

hello,大家好呀,我是陈童学。相信许多大学都会为选拔优秀人才举办校园竞赛,以赛来促学。但是许多大一的小伙伴可能担忧自己的实力没勇气参赛,亦或者是参赛后拿不到奖。其实我们根本无需担忧,只管鼓起勇气冲一波。省赛国赛咋不敢,区区校赛咋还不敢?不仅要敢,还要争做最强!(下来请看我们拿下校第一的生猪系统

因源代码较多,需要的小伙伴请在文末加我微信哈!

下面为系统框架图

🍉一、产品概述

本系统是一款基于C/C++编写的养猪管理系统,旨在帮助养猪场主进行养殖管理、生产管理、财务管理和报表管理等工作。本系统适用于各类养猪场,包括规模较小的家庭养殖场和规模较大的商业养殖场。

🍉二、功能需求

这里只简单介绍我们系统的创新功能哈,基本的增、删、改、查就不介绍啦。

🍈1.信息录入

这里还是给大家介绍一下我们系统的录入把哈哈,因为我们录入的时候使用了个队列会优先使用空缺出来的编号。

先将储存生猪信息的文档中所有生猪信息提取存入到结构体数组中以及储存猪圈信息的文档中的猪圈信息提前存入到另一个结构体数组,然后可以选择单只生猪的信息录入,也可选择批次生猪信息录入,单只猪的录入输入该生猪的基本信息(自身编号、爸妈编号、猪圈编号、性别、重量、疫苗情况、健康状态、生日信息、信息状态、体温记录)然后再与之前的数据一并存回文档即可,批次猪的录入需要额外输入该批次猪的数量(不能超过单个猪圈的容量)以及其中公生猪数量和猪圈编号。值得注意的一点是,如果之前生猪的编号空出来后,会优先补齐前面的空出来的编号。


🍈2.筛选

利用switch语法,用户可以选择筛选优质猪,中等猪,劣质猪。


进行筛选后,将从文件里获取每头猪的信息,然后判断该猪是否符合成为该品质猪的条件。


最后,可以获得该类品质的总猪数量,及每个猪圈里该类品质猪的数量及id并进行输出。


🍈3.非近亲匹配查询

先将储存生猪信息的文档中所有生猪信息提取存入到结构体数组中,然后输入分别输入公生猪和母生猪的编号,如果两者为非近亲关系则会初步鉴定为可以交配生仔,若为近亲关系的话则不建议交配生仔且会给出与公生猪为非近亲关系的所有母生猪以及与母生猪为非近亲关系的公生猪,若不存在则输出暂无。


🍈 4.统计折线图

先设置图形库,然后设置背景颜色,然后根据读取的一维数组来进行折线图的绘制,先利用绘图函数绘制坐标轴,然后是折线,之后等待推出事件。


🍉三、代码实现

🍈1.结构体的定义

//存储生猪的基本信息
struct pig{
  int id,mid,fid;//小猪自身编号,猪妈妈编号与猪爸爸编号
  int pigsty;//猪圈编号
  char sex;//性别
  double weight;//重量
  int vaccine;//疫苗是否接种
  int health;//健康状态 
  char birthday[50]; //生日信息 
  int flag;//判断该信息是否有效 
  double temperature;//体温记录; 
}pigs[100005];
//储存登入时所需的账号密码
struct node
{
  char username[100];
  char password[100];
}account[5];

🍈2.函数的定义

int loginSystem();//登入系统
void Information_storage();//信息回存
void Information_entry();//录入生猪信息
void Deletion_of_information();//删除生猪信息
void Query_information();//查询生猪信息
void Modify_the_information();//修改生猪信息
void Basic_functionlity();//基本菜单栏
void Isrelative();//生猪非近亲匹配查询
void screen();//筛选菜单栏
void SLQP();//筛选劣质生猪
void SMQP();//筛选中等生猪
void SHQP();//筛选优质生猪
void Graphical_presentation();//数据可直观化(折线图) 

🍈3.相关功能函数

🍊1.信息录入

void Information_entry()
{
  int num=1,pd1,i,j;//判断用于记录用户的选择 
  int pigstys[100][21];
  fill(pigstys[0],pigstys[0]+100*21,0);
  char ch1[30];//用于将信息文档开头一行的文字读取掉 
  FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt", "r");
  FILE *fp2=fopen("C:\\Users\\Administrator\\Desktop\\猪圈信息记录.txt","r");
  for(i=0;i<11;i++)
    fscanf(fp,"%s",ch1);
  while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",&pigs[num].id,&pigs[num].mid,&pigs[num].fid,&pigs[num].pigsty,&pigs[num].sex,&pigs[num].weight,&pigs[num].vaccine,&pigs[num].health,pigs[num].birthday,&pigs[num].flag,&pigs[num].temperature)==11)
    num++;
  fclose(fp);
  for(i=1;i<100;i++)
  {
    int s1=0;//用来计数,记录每个猪圈的猪数量 
    for(j=0;j<=20;j++)
    {
      fscanf(fp2,"%d",&pigstys[i][j]);
      if(pigstys[i][j]!=0)
      {
        if(j!=0)
          s1++; 
      }
    }
    pigstys[i][0]=s1;
  }
  fclose(fp2);
  tiaochu1:
  //system("cls");
  int iid,mid,fid,pid,vac,hea;
  char sex,bir[50];
  double tem,wei; 
  printf("欢迎来到生猪信息录入系统!!\n单一生猪信息录入请输入1,同一批次生猪信息录入请输入2\n");
  queue<int>q;//用于记录已经失效的生猪的id 
  for(i=1;i<=num;i++)
    if(pigs[i].flag==0)
      q.push(i);
  scanf("%d",&pd1);
  if(pd1==1)
  {
    int biao;//记录编号 
    if(q.empty())//当队列q为空,编号顺序递增即可 
    {
      pigs[num].sex=sex;
      pigs[num].flag = 1; 
      pigs[num].id=num;
      biao= pigs[num].id;
      pigs[num].mid = mid;
      pigs[num].fid=fid;
      pigs[num].pigsty=pid;
      pigs[num].weight=wei;
      pigs[num].vaccine=vac;
      pigs[num].health=hea; 
      strcpy(pigs[num].birthday,bir);
      pigs[num].temperature=tem;
      num++;
    }
    else{
      int t;
      t = q.front();
      pigs[t].id=t;
      biao= pigs[t].id;
      pigs[t].sex=sex;
      pigs[t].flag = 1; 
      pigs[t].mid = mid;
      pigs[t].fid=fid;
      pigs[t].pigsty=pid;
      pigs[t].weight=wei;
      pigs[t].vaccine=vac;
      pigs[num].health=hea; 
      strcpy(pigs[t].birthday,bir);
      pigs[t].temperature=tem;
      q.pop();
    } 
    printf("请输入这只生猪的性别(公猪为M,母猪为W)");
    getchar();
    scanf("%c",&sex);
    tiaochu3:
    printf("请输入这只生猪的猪爸爸编号 ");
    scanf("%d",&fid);
    if(fid!=0)
    {
      if(pigs[fid].id==0||pigs[fid].flag==0)
      {
        printf("查无此编号,请重新输入猪爸爸编号!!");
        goto tiaochu3; 
      }
      if(pigs[fid].sex!='M')
      {
        printf("该编号的生猪性别为雌性,请重新输入猪爸爸编号!!");
        goto tiaochu3; 
      }
    }
    tiaochu4: 
    printf("请输入这只生猪的猪妈妈编号 ");
    scanf("%d",&mid);
    if(mid!=0)
    {
      if(pigs[mid].id==0||pigs[mid].flag==0)
      {
        printf("查无此编号,请重新输入猪妈妈编号!!");
        goto tiaochu4; 
      }
      if(pigs[mid].sex!='W')
      {
        printf("该编号的生猪性别为雄性,请重新输入猪妈妈编号!!");
        goto tiaochu4; 
      }
    }
    tiaochu7:
    printf("请输入这只生猪的猪圈编号 ");
    scanf("%d",&pid);
    if(pid>100||pid<1)
    {
      printf("该猪圈不存在,请重新输入有效猪圈编号(1到100):");
      goto tiaochu7; 
    }
    if(pigstys[pid][0]<20)
          pigstys[pid][0]++;
    else if(pigstys[pid][0]>=20)
    {
      printf("该猪圈已满,请重新输入其他猪圈编号:");
      goto tiaochu7; 
    }
    printf("请输入这只生猪的体重 ");
    scanf("%lf",&wei);
    printf("请输入这只生猪的疫苗状况(1表示已经接种疫苗  0表示还未接种疫苗)");
    scanf("%d",&vac);
    printf("请输入这只生猪的实时温度 ");
    scanf("%lf",&tem);
      //getchar();
    printf("请输入这只生猪的健康状态 (1表示健康,0表示非健康)");
    scanf("%d",&hea);
      //getchar();
    printf("请输入这只生猪的生日(文字表达) ");
    scanf("%s",bir);
    if(q.empty())//当队列q为空,编号顺序递增即可 
    {
      pigs[num].sex=sex;
      pigs[num].flag = 1; 
      pigs[num].id=num;
      pigs[num].mid = mid;
      pigs[num].fid=fid;
      pigs[num].pigsty=pid;
      pigs[num].weight=wei;
      pigs[num].vaccine=vac;
      pigs[num].health=hea; 
      strcpy(pigs[num].birthday,bir);
      pigs[num].temperature=tem;
      num++;
    }
    else{
      int t;
      t = q.front();
      pigs[t].id=t;
      pigs[t].sex=sex;
      pigs[t].flag = 1; 
      pigs[t].mid = mid;
      pigs[t].fid=fid;
      pigs[t].pigsty=pid;
      pigs[t].weight=wei;
      pigs[t].vaccine=vac;
      pigs[num].health=hea; 
      strcpy(pigs[t].birthday,bir);
      pigs[t].temperature=tem;
      q.pop();
    } 
    printf("生猪猪信息录入成功!!\n");
  }
  else if(pd1==2)
  {
    int s1,s2;//s1是指生猪的总数量,s2是指母猪的数量,s3是指公猪的数量
    tiaochu9: 
    printf("请输入这批生猪的总数量"); 
    scanf("%d",&s1);
    if(s1>20)
    {
      printf("!录入失败,录入单批次生猪数量的上限为20,请重新输入该批次录入的生猪的总量:");
      goto tiaochu9; 
    }
    tiaochu10:
    printf("请输入这批生猪的母猪数量"); 
    scanf("%d",&s2);
    if(s2>s1)
    {
      printf("!数据错误,同一批次内母猪数量不得大于生猪总数量!,请重新输入该批次的母猪的数量:");  
      goto tiaochu10; 
    }
    /*int iid,mid,fid,pid,vac;
    char sex,hea[50],bir[50];
    double tem,wei; */
    /*printf("请输入这批生猪的自身编号(第一只的即可) ");//猪爸爸编号 猪妈妈编号 猪圈编号 性别 体重 疫苗状况 健康状态 生日信息 实时体温)
    scanf("%d",&iid);*/
    tiaochu5:
    printf("请输入这批生猪的猪爸爸编号 ");
    scanf("%d",&fid);
    if(fid!=0)
    {
      if(pigs[fid].id==0||pigs[fid].flag==0)
      {
        printf("查无此编号,请重新输入猪爸爸编号!!");
        goto tiaochu5; 
      }
      if(pigs[fid].sex!='M')
      {
        printf("该编号的生猪性别为雌性,请重新输入猪爸爸编号!!");
        goto tiaochu5; 
      }
    }
    tiaochu6: 
    printf("请输入这批生猪的猪妈妈编号 ");
    scanf("%d",&mid);
    if(mid!=0)
    {
      if(pigs[mid].id==0||pigs[mid].flag==0)
      {
        printf("查无此编号,请重新输入猪妈妈编号!!");
        goto tiaochu6; 
      }
      if(pigs[mid].sex!='W')
      {
        printf("该编号的生猪性别为雄性,请重新输入猪妈妈编号!!");
        goto tiaochu6; 
      }
    }
    tiaochu8:
    printf("请输入这批生猪的猪圈编号 ");
    scanf("%d",&pid);
    if(pid>100||pid<1)
    {
      printf("该猪圈不存在,请重新输入有效猪圈编号(1到100):");
      goto tiaochu8; 
    }
    if(pigstys[pid][0]+s1>20)
    {
      printf("该猪圈容量不足!请重新输入猪圈编号:");
      goto tiaochu8; 
    }
    printf("请输入这批生猪的体重 ");
    scanf("%lf",&wei);
    printf("请输入这批生猪的疫苗状况(1表示已经接种疫苗  0表示还未接种疫苗) ");
    scanf("%d",&vac);
    printf("请输入这批生猪的健康状态(1表示健康,0表示非健康) ");
    scanf("%d",&hea);
    printf("请输入这批生猪的生日(文字表达) ");
    scanf("%s",bir);
    printf("请输入这批生猪的实时温度 ");
    scanf("%lf",&tem);
    for(int i=0;i<=s1;i++)
    {
      if(q.empty())
      {
        if(i<=s2)
          pigs[num].sex='W';
        else
          pigs[num].sex='M';
        pigs[num].id=num;
        pigs[num].mid = mid;
        pigs[num].fid=fid;
        pigs[num].pigsty=pid;
        pigs[num].weight=wei;
        pigs[num].vaccine=vac;
        pigs[num].health=hea; 
        strcpy(pigs[num].birthday,bir);
        pigs[num].temperature=tem;
        pigs[num].flag=1;
        num++;
      }
      else
      {
        int t;
        t=q.front();
        if(i<s2)
          pigs[t].sex='W';
        else
          pigs[t].sex='M';
        pigs[t].id=t;
        pigs[t].mid = mid;
        pigs[t].fid=fid;
        pigs[t].pigsty=pid;
        pigs[t].weight=wei;
        pigs[t].vaccine=vac;
        pigs[num].health=hea; 
        strcpy(pigs[t].birthday,bir);
        pigs[t].temperature=tem;
        pigs[t].flag=1;
        q.pop();
      }
    }
    printf("该批次生猪信息录入成功!\n");
  }
  else
  {
    printf("无效输入,请重新输入选择!\n"); 
    goto tiaochu1;
  }
  tiaochu2:
  //while(getchar()!='\n'); 
  printf("返回菜单请输入1,继续录入生猪信息请输入2\n");
  int pd2;
  scanf("%d",&pd2);
  if(pd2==1)
  {
    Information_storage();
    return;
  }
  else if(pd2==2)
  {
    goto tiaochu1;
    Sleep(1500);
    system("cls");
  }
  else
  {
    printf("无效输入!!请重新输入选择!");
    goto tiaochu2;
  }
}

🍊2.筛选

菜单栏:

void screen(){
    while (true){
        printf("请选择你要筛选的猪的品质:\n");
        printf("1:优质猪\t2:中等猪\n");
        printf("3:劣质猪\t4:退出\n");
        int choice;
        scanf("%d",&choice);
        switch (choice) {
            case 1:SHQP();//筛选优质猪
                break;
            case 2:SMQP();//筛选中等猪
                break;
            case 3:SLQP();//筛选劣质猪
                break;
            case 4:
                printf("退出成功\n");
        system("cls");
                return;
            default:
                printf("非法输入,请重新输入\n");
        }
    }
}

筛选劣质生猪:

//筛选劣质猪
void SLQP() {
    vector<int> pig_id[MAX];
    int pigstys[MAX]={0};
    int sum=0;
    FILE *fp= fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt","r");
    fgets(str, 200, fp);
    while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",
                         &file_id,&file_mid,&file_fid,&file_pigsty,&file_sex,
                         &file_weight,&file_vaccine,&file_health,file_birth,
                         &file_flag,&file_temperature)==11)
    {
        if(file_weight<100){
            sum++;
            pigstys[file_pigsty]++;
            pig_id[file_pigsty].push_back(file_id);
        }
    }
    fclose(fp);
    printf("劣质猪筛选成功\n");
    printf("劣质猪数量为:");
    printf("%d\n",sum);
    if (sum==0){
        printf("无劣质猪\n");
        return;
    }
    for(int i=1;i<=MAX;i++){
        if(pigstys[i]==0){
            continue;
        } else{
            printf("%d猪圈劣质猪数量为:%d\n",i,pigstys[i]);
            printf("此猪圈劣质猪id分别为:\n");
            vector<int>::iterator it = pig_id[i].begin();
            for(;it!=pig_id[i].end();it++){
                printf("%d ",*it);
            }
            printf("\n");
        }
    }
}

筛选中等生猪:

//筛选中等猪
void SMQP() {
    vector<int> pig_id[MAX];
    int pigstys[MAX]={0};
    int sum=0;
    FILE *fp= fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt","r");
    fgets(str, 200, fp);
    while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",
                 &file_id,&file_mid,&file_fid,&file_pigsty,&file_sex,
                 &file_weight,&file_vaccine,&file_health,file_birth,
                 &file_flag,&file_temperature)==11)
    {
        if(file_weight>=100&&file_weight<150){
            sum++;
            pigstys[file_pigsty]++;
            pig_id[file_pigsty].push_back(file_id);
        }
    }
    fclose(fp);
    printf("中等猪筛选成功\n");
    printf("中等猪数量为:");
    printf("%d\n",sum);
    if (sum==0){
        printf("无中等猪\n");
        return;
    }
    for(int i=1;i<=MAX;i++){
        if(pigstys[i]==0){
            continue;
        } else{
            printf("%d猪圈中等猪数量为:%d\n",i,pigstys[i]);
            printf("此猪圈中等猪id分别为:\n");
            vector<int>::iterator it = pig_id[i].begin();
            for(;it!=pig_id[i].end();it++){
                printf("%d ",*it);
            }
            printf("\n");
        }
    }
}

筛选优质生猪:

//筛选优质猪
void SHQP() {
    vector<int> pig_id[MAX];
    int pigstys[MAX]={0};
    int sum=0;
    FILE *fp= fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt","r");
    fgets(str, 200, fp);
    while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",
                 &file_id,&file_mid,&file_fid,&file_pigsty,&file_sex,
                 &file_weight,&file_vaccine,&file_health,file_birth,
                 &file_flag,&file_temperature)==11)
    {
        if(file_weight>=150){
            sum++;
            pigstys[file_pigsty]++;
            pig_id[file_pigsty].push_back(file_id);
        }
    }
    fclose(fp);
    printf("优质猪筛选成功\n");
    printf("优质猪数量为:");
    printf("%d\n",sum);
    if (sum==0){
        printf("无优质猪\n");
        return;
    }
    for(int i=1;i<=MAX;i++){
        if(pigstys[i]==0){
            continue;
        } else{
            printf("%d猪圈优质猪数量为:%d\n",i,pigstys[i]);
            printf("此猪圈优质猪id分别为:\n");
            vector<int>::iterator it = pig_id[i].begin();
            for(;it!=pig_id[i].end();it++){
                printf("%d ",*it);
            }
            printf("\n");
        }
    }
}

🍊3.非近期匹配查询

//非近亲匹配 
void Isrelative()
{
  while(1)
  {
    printf("******************************************\n");
    printf("\t欢迎来到生猪非近亲匹配查询界面\n");
    printf("******************************************\n");
    int num=1,i,j;
    FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt", "r+");
    char ch1[50];
    for(i=0;i<11;i++)
    fscanf(fp,"%s",ch1);
    while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",&pigs[num].id,&pigs[num].mid,&pigs[num].fid,&pigs[num].pigsty,&pigs[num].sex,&pigs[num].weight,&pigs[num].vaccine,&pigs[num].health,pigs[num].birthday,&pigs[num].flag,&pigs[num].temperature)==11)
      num++;
    fclose(fp);
    int b1,b2;
    int judge1=0,judge2=0;
    printf("请输入【公生猪】的编号:");
  again1:
    scanf("%d",&b1);
    if(b1<=0)
    {
      printf("输入有误,请重新输入:");
      goto again1;
    }
    else
    {
      for(int j=1;j<num;j++)
      {
        if(pigs[j].id==b1&&pigs[b1].sex=='M')
        {
          judge1=1;
          printf("编号为【%d】的【公生猪】存在!!!\n",b1);
          break;
        }
      }
      if(!judge1)
      {
        printf("不存在编号为【%d】的【公生猪】!!!!\n请重新输入:",b1);
        goto again1;
      }
    }
    if(judge1)
    {
      printf("请输入【母生猪】的编号:");
    again2:
      scanf("%d",&b2);
      if(b1<=0)
      {
          printf("输入有误,请重新输入:");
          goto again2;
      }
      else
      {
        for(int j=1;j<num;j++)
        {
          if(pigs[j].id==b2&&pigs[b2].sex=='W')
          {
            judge2=1;
            printf("编号为【%d】的【母生猪】存在!!!\n",b2);
            break;
          }
        }
        if(!judge2)
        {
          printf("不存在编号为【%d】的【母生猪】!!!!\n请重新输入:",b2);
          goto again2;
        }
      }
    }
    int judge3=0,judge4=0;
    if(judge1&&judge1)
    {
      if(pigs[b1].mid==pigs[b2].mid||pigs[b2].fid==pigs[b2].fid)
      {
        printf("叮咚!!!编号为【%d】公生猪和【%d】的母生猪为【近亲】关系,不建议交配生仔!\n\n",b1,b2);
        printf("与编号为【%d】的公生猪为【非近亲】关系的有以下编号的母生猪:\n");
        for(int j=1;j<num;j++)
        {
          if( pigs[b1].mid!=pigs[j].id && pigs[b1].fid!=pigs[j].id && pigs[b1].mid!=pigs[j].mid && pigs[b1].fid!=pigs[j].fid&&pigs[j].sex=='W')
          {
            judge3=1;
            printf("【%d】~",pigs[j].id);
          }       
        }
        printf("\n");
        if(!judge3)
          printf("暂无与编号为【%d】的公生猪为【非近亲】关系的母生猪哦!!!\n",b1);
        for(int j=1;j<num;j++)
        {
          if( pigs[b2].mid!=pigs[j].id && pigs[b2].fid!=pigs[j].id && pigs[b2].mid!=pigs[j].mid && pigs[b2].fid!=pigs[j].fid&&pigs[j].sex=='M')
          {
            judge4=1;
            printf("【%d】~",pigs[j].id);
          }       
        }
        printf("\n");
        if(!judge4)
          printf("暂无与编号为【%d】的母生猪为【非近亲】关系的公生猪哦!!!\n",b2);  
      }
      else
        printf("叮咚!!!编号为【%d】公生猪和【%d】的母生猪为【非近亲】关系,初步鉴定可以交配生仔\n",b1,b2);
    }
    int choice;
    printf("是否还要进行非近亲匹配查询操作(1.是/2.否):");
  again3:
    scanf("%d",&choice);
    if(choice==1)
    {
      system("cls");
      continue;
    }   
    else if(choice==2){ 
      system("cls");
      break;
    } 
    else
    {
      printf("输入有误,请重新输入:");
      goto again3;
    }
  }
}

🍊4.数据直观化

void Graphical_presentation()
{
  int num=1,i,j;//判断用于记录用户的选择 
  char ch1[30];//用于将信息文档开头一行的文字读取掉 
  FILE *fp=fopen("C:\\Users\\Administrator\\Desktop\\生猪信息储存.txt", "r");
  for(i=0;i<11;i++)
    fscanf(fp,"%s",ch1);
  while(fscanf(fp,"%d %d %d %d %c %lf %d %d %s %d %lf",&pigs[num].id,&pigs[num].mid,&pigs[num].fid,&pigs[num].pigsty,&pigs[num].sex,&pigs[num].weight,&pigs[num].vaccine,&pigs[num].health,pigs[num].birthday,&pigs[num].flag,&pigs[num].temperature)==11)
    num++;
  fclose(fp);
  int gd = DETECT, gm;
    initgraph(&gd, &gm, "n");
    // 设置背景颜色
    setbkcolor(WHITE);
    // 定义数据数组
    double data[num+1];
    int w=0;
  for(i=1;i<num;i++)
    data[i-1]=pigs[i].weight;
    // 绘制坐标轴
    setcolor(BLACK);
    line(50, 50, 50, SCREEN_HEIGHT - 50);
    line(50, SCREEN_HEIGHT - 50, SCREEN_WIDTH - 50, SCREEN_HEIGHT - 50);
    // 绘制折线
    setcolor(BLUE);
    setlinestyle(SOLID_LINE, 0, 3);
    int x = 50, y = SCREEN_HEIGHT - 50;
    for (int i = 0; i < 10; i++) {
        int value = data[i] * 5; // 将数据乘以5,调整y轴的比例
        int next_x = x + 50;
        int next_y = SCREEN_HEIGHT - 50 - value;
        line(x, y, next_x, next_y);
        x = next_x;
        y = next_y;
    }
    // 等待退出事件
    getch();
    closegraph();
    return;
}

🍉四、文末福利

该生猪系统如果有小伙伴感兴趣的可以加我下方微信哈!

如果本文对你有用的话,恳请给个三连,感谢支持!

相关文章
|
机器学习/深度学习 算法 C++
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
2019第十届蓝桥杯大赛青少年创意编程省赛C++组试题解析
408 0
|
6月前
|
人工智能 测试技术 C++
第十五届蓝桥杯模拟赛B组(第二期)C++
第十五届蓝桥杯模拟赛B组(第二期)C++
141 0
第十五届蓝桥杯模拟赛B组(第二期)C++
|
6月前
|
设计模式 算法 网络协议
励志!一年时间,从小白到进入阿里核心部门,“他”的逆袭之路
注明:这是一个励志老哥给我分享的个人经历,发本文的目的是为了让大家可以参考他的学习经历,提高自己的能力!当然人外有人天外有天,大神也别打我!再次说明,我只是为了能够帮助迷茫的兄弟们!接下来以他的第一视角为大家讲述他的经历。
|
12月前
|
存储 监控 前端开发
PMP备考之路 - 汪博士第十章(项目沟通管理)
PMP备考之路 - 汪博士第十章(项目沟通管理)
95 0
|
算法 C语言
【CSDN编程竞赛·第四期】个人参赛经历和个人建议
大家好,我前不久参加了官方举办的CSDN编程比赛,官方举办了四期,第一期的时候没看到,错过了,后面的每一期我都参加了,总的感觉来说,还可以。下面我具体说说第四期相关经验吧。
|
人工智能 iOS开发 Windows
(待补充)小蒟蒻的刷题成长之路-------中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)
(待补充)小蒟蒻的刷题成长之路-------中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛(同步赛)
134 0
|
存储 测试技术 BI
|
算法 网络协议 Java
|
前端开发 程序员
【晒出你的第83行代码】前端专家专门找出来珍藏的反面代码教材,请大家来拍砖!
在五四青年节之际,社区发起了来晒晒属于你的“第83行”的活动,活动中邀请业界的大牛、大神们来晒代码或者Review代码!本轮我们晒晒前端专家巴洛克上校专门找出来珍藏的反面代码教材。
1694 0
|
人工智能 程序员 知识图谱
选计算机专业对了吗?7位支付宝技术人为你答疑解惑(内附面试心经) | 技术日报(20期)
《软件技术职业选择之道》电子书重磅来袭,本书集结七位蚂蚁一线的技术专家和管理者,介绍了他们本方向的技术发展趋势以及职业选择的建议,更有面经福利来袭哦~
390 0