高级语言程序设计课程第四次个人作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C
这个作业要求在哪里:https://edu.cnblogs.com/campus/fzu/2024C/homework/13293
学号:102300108
姓名:陈茜蕾

6.16编程练习

第1题

第5题

问题:逻辑混乱

解决:重新理了逻辑,一开始用目标字母加或减数字的方式打印,后面改用A加数字的方式打印。

第7题

第8题

第9题

第10题

问题:没注意到第一次给用户提示和第二次不一样

解决:后面调整了

第12题

第13题

问题:do while 的while后面忘记加逗号

解决:后面补上

第15题

问题1:不知道scanf应该怎么把\n也一起存进字符串中

解决:查找资料后知道getchar可以一个个读入字符

问题2:没有仔细检查数组边界导致越界

解决:重新修改了

第16题

第18题

7.12编程练习

第1题

问题:把==写成=

解决:已修正

第2题

问题:死循环(没每次读取字符导致)

解决:在循环末尾补上getchar

第4题

问题:替换后的!也被替换成!!(原因:先判断.再判断!)

解决:先判断感叹号再判断句号

第5题

问题:和第四题一样的问题,忘记加break了

解决:加上break

第6题

第7题

问题:hour用int类型,后面用double类型进行计算,导致截断

解决:hour改成double类型

第8题

#include <stdio.h>
#define OVERTIME 40
#define FIRST 8.75
#define SECOND 9.33
#define THIRD 10.00
#define FOURTH 11.20
#define TAX1 0.15
#define TAX2 0.20
#define TAX3 0.25
#pragma warning (disable:4996)
int main()
{
    double hour = 0;
    int choice = 0;
    double wage = 0;
    double tax = 0;
    printf("Input your working hours per week:");
    scanf("%lf", &hour);
    //加班的时长*1.5
    if (hour > OVERTIME) {
        hour = OVERTIME + (hour - OVERTIME) * 1.5;
    }
    while (1)
    {
        printf("*****************************************************************\n");
        printf("Enter the number corresponding to the desired pay rate or action:\n");
        printf("1) $8.75/hr\t\t\t\t2) $9.33/hr\n");
        printf("3) $10.00/hr\t\t\t\t4) $11.20/hr\n");
        printf("5) quit\n");
        printf("*****************************************************************\n");
        
        scanf("%d", &choice);
        if (choice == 5) {
            break;
        }
        
        switch (choice)
        {
        case 1:
            wage = FIRST * hour;
            break;
        case 2:
            wage = SECOND * hour;
            break;
        case 3:
            wage = THIRD * hour;
            break;
        case 4:
            wage = FOURTH * hour;
            break;
        default:
            printf("Input false!Please input again in 1~5.\n");
            continue;
        }
        
        if (wage < 300) {
            tax = wage * TAX1;
        }
        else {
            tax += 300 * TAX1;
            if (wage < 450) {
                tax += (wage - 300) * TAX2;
            }
            else {
                tax += (450 - 300) * TAX2;
                tax += (wage - 450) * TAX3;
            }
        }
        printf("工资总额:%.2f ", wage);
        printf("税金:%.2f ", tax);
        printf("净收入:%.2f\n\n", wage-tax);
    }
    return 0;
}

第9题

第10题

问题:函数中的tax没有初始化

解决:加上初始化

#include <stdio.h>
#pragma warning (disable:4996)
//计算需要缴的税
double calculateTax(double income, int money) {
	double tax = 0;
	if (income < money) {
		tax = income * 0.15;
	}
	else {
		tax = (income - money) * 0.28 + money * 0.15;
	}
	return tax;
}
int main() {
	int choice = 0;
	printf("请选择您的情况:\n1:单身\t\t2:户主\n3:已婚,共有\t4:已婚,离异\n");
	scanf("%d", &choice);
	printf("请输入您的收入:");
	double income = 0;
	double tax = 0;
	scanf("%lf", &income);
	switch (choice) {
	case 1:
		tax = calculateTax(income, 17850);
		break;
	case 2:
		tax = calculateTax(income, 23900);
		break;
	case 3:
		tax = calculateTax(income, 29750);
		break;
	case 4:
		tax = calculateTax(income, 14875);
		break;
	}
	printf("需缴税:%.2lf", tax);
}

第11题

#include <stdio.h>
#pragma warning (disable:4996)
int main() {
	const double artichoke = 2.05;//洋蓟售价
	const double beet = 1.15;//甜菜
	const double carrot = 1.09;//胡萝卜
	double aWeight = 0;
	double bWeight = 0;
	double cWeight = 0;
	char choice;
	printf("a洋蓟 b甜菜 c胡萝卜 q退出系统\n");
	while (1) {
		scanf("%c", &choice);
		if (choice == 'q') {
			break;
		}
		switch (choice) {
		case 'a':
			printf("请输入要选购的洋蓟磅数:");
			scanf("%lf", &aWeight);
			break;
		case 'b':
			printf("请输入要选购的甜菜磅数:");
			scanf("%lf", &bWeight);
			break;
		case 'c':
			printf("请输入要选购的胡萝卜磅数:");
			scanf("%lf", &cWeight);
			break;
		}
	}

	double totalWeight = aWeight + bWeight + cWeight;
	double totalPrice = artichoke * aWeight + beet * bWeight + carrot * cWeight;
	double discount = 0;
	double extraFee = 0;
	if (totalPrice > 100) {
		discount = 5;
		totalPrice *= 0.95;//5%打折优惠
	}
	//计算运费和包装费
	if (totalWeight <= 5) {
		extraFee = 6.5;
	}
	else {
		extraFee = 14;
		//如果有续重计算续重
		if (totalWeight>20) {
			extraFee += (totalWeight - 20) * 0.5;
		}
	}
	printf("洋蓟售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", artichoke, aWeight, artichoke * aWeight);
	printf("甜菜售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", beet, bWeight, beet * bWeight);
	printf("胡萝卜售价:%.2lf 重量:%.2lf磅 订购费用%.2lf\n", carrot, cWeight, carrot * cWeight);
	printf("订单总费用:%.2lf\n", totalPrice);
	if (discount) {
		printf("折扣:%.2lf\n", discount);
	}
	printf("运费和包装费:%.2lf\n", extraFee);
	printf("所有费用:%.2lf\n", totalPrice + extraFee);
}

总结和思考

1:一些编程小问题还在犯,如没有初始化等

2:有时候逻辑混乱,还没想好就开始编程

posted @ 2024-10-23 22:12  AYNUYOAH  阅读(12)  评论(0编辑  收藏  举报