面向对象和面向过程思路异,C语言和Java语言编写代码的不同

前言

你是一所公司的程序员,公司新进了两批货需要销售,老板要你写一个关于这两批货物的销售程序

需求

老板:

        首先,这两批货名字分别叫 书空 和 边城,价格嘛,跟随着市场价格浮动而浮动,比如说现在书空的价格就是1233元每件,而边城嘛,就是2564元每件了,然后,我们的客户都是一些大客户,他们订购的单量是非常大的,所以我们要给他们优惠,优惠福利就是这样子的,只要订单量到达200件,那我们就对于超过200件商品的打八折。

当然了,老板可能确实会很亏嘛,但是不管怎么样,你都得写,那首先,作为公司里的前辈,一位使用C语言的程序员就跟你说,他已经有思路了,接下来只见他在键盘上噼里啪啦一顿点,他的程序就出来了

代码

#include<stdio.h>

int main(){
    int shukong_price = 1233; // 书空的价格
    int biancheng_price = 2564; 
    int shukong_count; // 书空的数量
    int biancheng_count = 0; 
    float shukong_perferential =  0; // 书空的优惠价格
    float biancheng_perferential =  0;
    double shukong_cost = shukong_price * shukong_count - shukong_perferential; // 书空的需要支付的钱
    double biancheng_cost = biancheng_price * biancheng_count - biancheng_perferential;
    double cost = biancheng_cost + shukong_cost; // 总共需要支付的钱

    printf("请输入要购买的书空的数量:\n");
    scanf("%d",&shukong_count);

    if (shukong_count > 200){
        // 计算是否能够优惠
        shukong_perferential =  shukong_price * (shukong_count - 200) * 0.8;
        printf("因为您订单量超过了200,您的优惠价格为:%f",shukong_perferential);
        printf("\n");
    }

    shukong_cost = shukong_price * shukong_count - shukong_perferential;
    printf("书空的总价格是:%lf",shukong_cost);
    printf("\n");
    
    printf("请输入要购买的边城的数量:\n");
    scanf("%d",&biancheng_count);

    if (biancheng_count > 200){
        biancheng_perferential =  biancheng_price * (biancheng_count - 200) * 0.8;
        printf("因为您订单量超过了200,您的优惠价格为:%f",biancheng_perferential);
        printf("\n");
    }

    biancheng_cost = biancheng_price * biancheng_count - biancheng_perferential;
    printf("边城的总价格是:%lf",biancheng_cost);
    printf("\n");

    cost = biancheng_cost + shukong_cost;
    printf("您需要支付%lf元",cost);

}

这是旁边的运营小姐姐走过来看到后,来了一句,可是这样堆在一起也太丑了吧,不利于代码的维护呀。

这时前辈说,说的对啊,反手就修改了代码

#include<stdio.h>

float perferential(int count,int price);

int main(){
    int shukong_price = 1233; // 书空的价格
    int biancheng_price = 2564; 
    int shukong_count; // 书空的数量
    int biancheng_count = 0; 
    float shukong_perferential; // 书空的优惠价格
    float biancheng_perferential;
    double shukong_cost = shukong_price * shukong_count - shukong_perferential; // 书空的需要支付的钱
    double biancheng_cost = biancheng_price * biancheng_count - biancheng_perferential;
    double cost = biancheng_cost + shukong_cost; // 总共需要支付的钱

    
    printf("请输入要购买的书空的数量:\n");
    scanf("%d",&shukong_count);

    shukong_perferential = perferential(shukong_count,shukong_price);

    shukong_cost = shukong_price * shukong_count - shukong_perferential;
    printf("书空的总价格是:%.2lf",shukong_cost);
    printf("\n");
    
    printf("请输入要购买的边城的数量:\n");
    scanf("%d",&biancheng_count);

    biancheng_perferential = perferential(biancheng_count,biancheng_price);

    biancheng_cost = biancheng_price * biancheng_count - biancheng_perferential;
    printf("边城的总价格是:%.2lf",biancheng_cost);
    printf("\n");

    cost = biancheng_cost + shukong_cost;
    printf("您需要支付%.2lf元",cost);

}

float perferential(int count,int price){
    // 判断是否达到优惠数量,如果达到了就返回优惠的价格
    float perferential_cost;
    if (count > 200){
        perferential_cost =  price * (count - 200) * 0.8;
        printf("因为您订单量超过了200,您的优惠价格为:%.2f",perferential_cost);
        printf("\n");
    } else {
        printf("如果您订单量达到200,200以上的商品可享受八折优惠哦!");
    }
    return perferential_cost;
}

这时候运营小姐姐一看,那看起来还真的是不错呢,你一想,不行,我也得写一个

import java.util.Scanner;

public class test{

    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        goods shukong = new goods("书空"); // 初始化 书空 商品
        shukong.price = 1233; // 设定 书空 单价
        goods biancheng = new goods("边城");
        biancheng.price = 2564;

        System.out.print(shukong.name + "的购买数量是:");
        shukong.set_count(scan.nextInt()); // 用户输入购买数量
        shukong.set_perferential(perferential(shukong.get_count(),shukong.price)); // 计算优惠价格 
        System.out.println("书空的价格是:" + String.format("%.2f",shukong.get_cost())); // 打印输出价格

        System.out.print(biancheng.name + "的购买数量是:");
        biancheng.set_count(scan.nextInt());
        biancheng.set_perferential(perferential(biancheng.get_count(),biancheng.price));
        System.out.println("边城的价格是:" + String.format("%.2f",biancheng.get_cost()));

        System.out.println("您总共需要支付的价格是:" + String.format("%.2f",(shukong.get_cost() + biancheng.get_cost())));
        scan.close();
    }
    static float perferential(int count,int price){
    // 判断是否达到优惠数量,如果达到了就返回优惠的价格
        float perferential_cost = 0;
        if (count > 200){
            perferential_cost =  price * (count - 200) * 0.8f;
            System.out.println("因为您订单量超过了200,您的优惠价格为:"+ perferential_cost);
            
        } else {
            System.out.println("如果您订单量达到200,200以上的商品可享受八折优惠哦!");
        }
        return perferential_cost;
    }
}

class goods{
    // 商品类
    String name = new String(); // 名字
    int price; // 价格
    private int count; // 数量
    private float perferential; // 优惠价格
    double cost = price * count - perferential; // 需要支付的钱

    goods(String name){
        // 构造函数,初始化商品名
        this.name = name;
    }

    void set_count(int count){
        // 设定商品数量
        this.count = count;
    }
    int get_count(){ 
        // 返回商品数量
        return count;
    }

    void set_perferential(float perferential){
        // 设定优惠价格
        this.perferential = perferential;
    }
    float get_perferential(){
        // 返回优惠价格
        return perferential;
    }

    double get_cost(){
        // 返回需要支付的钱
        cost = this.price * get_count() - get_perferential();
        return cost;
    }
}

你的代码写出来了,但运营小姐姐看到了之后,表示,代码行数太多了,而且好多花里胡哨的方法,看起来真麻烦,不如前辈的,看起来很符合运行软件时候的逻辑。

第一回 完 

结语

首先呢,这篇文章,或者说叫这一系列文章是为了做一个C和Java之间的思路对比的,但我可能并不能做得很好,因为C语言学习时间是比较短的,也没有经历过系统性的学习,这一次写也是通过翻阅了大量的资料,凭借着记忆勉强完成,所以说代码水平可能并不能反映前辈的代码水平,哈哈,虽然说两个人都是我了,但不管怎么样,还是能看出一个思路的不同的,不过两个语言其实都可以用对方的思路去实现自己想要的功能的喔。

其次,以下是给俱乐部的成员看的了,大家就按着已经写出来的代码照着抄写一遍,一遍两遍的抄写,这样子就能加快理解的进度了,如果不懂其实可以去百度啦

最后,下一回老板就发布了新的需求,而新的需求的出现也让事情朝着意外的方向发展了

PS.怎么感觉写成了小说....

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值