2021-12-06 自动化专业C语言上机作业参考答案19

此博客介绍了四个C语言程序,分别用于从文本文件中搜索特定商品信息(P314.C)、解析整数算式并计算结果(P320.C-P322.C),以及处理多文件间的混合运算(P324.C-P325.C)。通过阅读,读者将掌握文件操作、数据解析及基本算法应用。

上机练习19

p314.c

/*编写一程序P314.C实现以下功能
  有一存储很多商品数据(每件商品的属性先后
包括:品名、规格、单价(有小数位)、数量,数据的最长长度分别为20、10、6、5,在文件中以空格为分隔,每个商品的数
据占一行)的文本文件,从键盘输入某种商品的品名,要求在文件中查找有无相应品名商品(可能有多条记录或没有),若有则
在屏幕上显示出相应的商品的品名、规格、数量、单价(显示时,品名、规格、数量、单价之间使用逗号(,)作分隔,单价显
示时只显示2位小数),若无则显示没有相应品名的商品。
  单击此处下载程序运行时测试用的商品数据文件sp.txt并保存到程序P314.C所在的文件夹且文件名保持不变。
编程可用素材:
printf("Please input shang pin pin ming:");
printf("\ncha zhao qing kuang:\n");
printf("mei you shang pin :);

文本文件中一行: xuebi da 6.00 345
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
   
   
    FILE *fp;
    char name[21];
    char inputName[21];
    char size[11];
    float price;
    int number;
    int flag = 0;

    printf("Please input shang pin pin ming:");
    scanf("%s", inputName);
    // file open
    fp = fopen("sp.txt", "r");
    if (NULL == fp)
    {
   
   
        printf("file open error.\n");
        exit(1);
    }

    // find sp
    printf("\ncha zhao qing kuang:\n");
    while (fscanf(fp, "%s %s %f %d", name, size, &price, &number) == 4)
    {
   
   
        if (strcmp(inputName, name) == 0)
        {
   
   
            flag = 1;
            printf("%s,%s,%d,%.2f\n", name, size, number, price);
        }
    }
    if (flag == 0)
    {
   
   
        printf("mei you shang pin :%s", inputName);
    }

    // file close;
    fclose(fp);
    fp = NULL;

    return 0;
}

p320.c

/*
编写一程序P320.C实现以下功能
  在文本文件Comp.txt里有需要计算结果的整数算式,每个算式占一行且文件中只有一个算式,运算类型只有“加法(+)”或
者“减法(-)”且运算符前后至少有一个空格。计算该算式的结果并在屏幕上显示。
  单击此处下载程序运行时测试用的算式文件Comp.txt(加法示例,编程时还应考虑算式为减法的情况)并保存到程序P320.C所
在的文件夹且文件名保持不变。
编程可用素材:printf("%d + %d = %d\n"...、printf("%d - %d = %d\n"...。
*/
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   
   
    int num1, num2;
    int result;
    char ch;
    FILE *fp;
    // 开文件
    fp = fopen("Comp.txt", "r");
    if (NULL == fp)
    {
   
   
        printf("file open error! \n");
        exit(1);
    }
    // 读,算
    while (3 == fscanf(fp, "%d %c %d", &num1, &ch, &num2))
    {
   
   
        if ('+' == ch)
        {
   
   
            result = num1 + num2;
            printf("%d + %d = %d\n", num1, num2, result);
        }
        else if ('-' == ch)
        {
   
   
            result = num1 - num2;
            printf("%d - %d = %d\n", num1, num2, result);
        }
        else
        {
   
   
            printf("operator error!\n");
            fclose(fp);
            exit(2);
        }
    }
    // 关文件
    fclose(fp);
    fp = NULL;

    return 0;
}

p321.c

/*
编写一程序P321.C实现以下功能
  在文本文件Comp.txt里有需要计算结果的整数算式,每个算式占一行且文件中有多个(数量不确定)算式,
运算类型只有“加法(+)”或者“减法(-)”且运算符前后至少有一个空格。计算这些算式的结果并在屏幕上显示。
  单击此处下载程序运行时测试用的算式文件Comp.txt并保存到程序P321.C所在的文件夹且文件名保持不变。
编程可用素材:printf("Line %03d:  %5d + %-5d = %-6d\n"...、printf("Line %03d:  %5d - %-5d = %-6d\n"...。
*/
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
   
   
    int num1, num2;
    int result;
    char ch;
    FILE *fp;
    int i = 0;
    // 开文件
    fp = fopen("Comp.txt", "r");
    if (NULL == fp)
    {
   
   
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值