第19讲-项目2(改)

任务及代码

/*
*Copyright (c)2016,CSDN学院
*All rights reserved.
*作者:郑杰文
*文件名称:see.c
*完成日期:2016.08.29
*版本号:v1.0
问题描述:(原):输出多个能对齐的数据,(改)制作出多个员工信息并能选择显示某个员工或全体员工的具体信息。
程序输出:嗯。首先所有输出的信息全部对其,能够通过编号选择显示某个员工或全员的信息并输入错误后提示。
*/
#include <stdio.h>
//这个不解释了。调用标准输入输出代码的文件。
#include <string.h>
/*恩。。这个嘛。我没删除,本来是想用str来做字符串和字符串的if判断形式,但是我百度了这个代码看了这个案例以后还是没有完全
搞明白这个代码的用法,终于胡搅蛮缠几个小时候还是放弃了。。我好尴尬。不过当我学到这个代码的时候肯定印象会深刻不少!*/
int main()
//不解释了。
{
    int Name,iTname=1,iJname=2,iKname=3,iHname=4,iEver=5;
    //这一行是先把编号给定义和赋值,至于要问我问什么用这么长的名字,我只想说,练就一个好习惯。虽然有点麻烦。
    char  *cTomNname="Tom",*cJackName="Jack",*cKevenName="Keven",*cHarryName="Harry";
    /*这一行的变量命名有点长,凑合看一下,给变量保存字符串然后好像是用的指针,直接指向存储这几个名字的地址?(这一行我有点迷糊,是昨天写的代码,当时
    在试着用string做判断,所以就这样写了)不过我还不是很熟悉这个指针的用法,慢慢来吧。*/
    int iTomAge=36,iJackAge=28,iKevenAge=21,iHarryName=55;
    //命名整型变量保存常量,命名还是有点复杂。
    float fTomSalary=654.2231,fJackSalary=984.162,fKevenSalara=529.123,fHarrySalara=23167.5649;
    //虽然我不知道Salary是什么意思。。(尴尬中!!)但例子肯定是要整数小数各个类型都用上才能熟练嘛。这一行不解释了
    char cTomAddr[20]="New York",cJackAddr[20]="Hong Kong",cKevenAddr[20]="Cheng Du",cHarryAddr[20]="Bei Jing";
    /*把各个字符串保存到定义的char里。变量名后面的括号是字符串大小的意思,如(Tom是3个字符,但在程序中判断字符串结尾
    是要用/0来分割的。所以是4个字符串)然后我都是写的20因为都用不完,懒得一个个算是要用多少字符啦。哈哈。在这里需要
    注意的是字符串必须要用(")双引号括起来,不然会出错的,(')单引号是保存字符的,就是一个字符,一个以上的字符都叫
    字符串。需要注意*/
    printf("想要查询哪位员工的详细资料:\n1.Tom\t2.Jack\t3.Keven\t4.Harry\t5.显示所有员工资料\n请直接输入数字编号!\n");
    /*此行为基本输出。然后美化输出后的格式。看起来比较方便也比较好看,每个编号开始前我都加了\t,因为这本是老师作业要求
    的最重要部分,主要练习\t的熟练使用,(\t)我的理解是:tab的简写,在输出的时候空上8个空格,*/
    scanf("%d",&Name);
    //这一步是我最失望的一步,原本是直接输入字符串做判断,结果无奈我没有研究透string的用法,所以又使用了这个算法,
    //只能使用简单的数字进行判断。。哎。。
    if(Name==iTname)
    //做判断,如果用户输入的值完全等于之前定义的变量的值则执行以下代码。
    {
        printf("Name\tAge\tSalary\tAddr\n");
        //练习\t的使用,没什么其他的
        printf("%s\t%d\t%3.1f\t%s\n",cTomNname,iTomAge,fTomSalary,cTomAddr);
        /*这一行嘛基本上也没有啥,就是各种输出方式(%s、%d、%f)的用法和\t的熟练使用。不过(%3.1f)我还是没有完全搞明白
        小数点后面的数字代表显示多少位小数,那小数点前面的数字应该能限制小数点前的位数吧。不知道是不是因为用的float
        所以只能限制小数点后的位数。今后用多了应该能明白了吧。*/
        printf("\n以上是该员工的详细信息,请查阅!\n\n");
        //提示语句。只为了让界面稍微那么人性化一点。
        printf("请勿开除Keven,并为他涨工资,这个孩子正在努力学习C语言\n");
        //经典调侃语句,用法:当你写代码写嗨了自然能写出来,练习方式:放着嗨歌,写着代码,脑中有逻辑,耳中有嗨歌。
        //从而练就一种本领:一人写代码,自己嗨到不行,很少会出现发现问题->解决不了->开始烦躁->陷入死循环这样一个状态
     }


    if(Name==iJname)
    {
        printf("Name\tAge\tSalary\tAddr\n");
        printf("%s\t%d\t%3.1f\t%s\n",cJackName,iJackAge,fJackSalary,cJackAddr);
        printf("\n以上是该员工的详细信息,请查阅!\n\n");
        printf("请勿开除Keven,并为他涨工资,这个孩子正在努力学习C语言\n");
    }
    if(Name==iKevenAge)
    {
        printf("Name\tAge\tSalary\tAddr\n");
        printf("%s\t%d\t%3.1f\t%s\n",cKevenName,iKevenAge,fKevenSalara,cKevenAddr);
        printf("\n以上是该员工的详细信息,请查阅!\n\n");
        printf("请勿开除Keven,并为他涨工资,这个孩子正在努力学习C语言\n");
    }
    if(Name==iHarryName)
    {
        printf("Name\tAge\tSalary\tAddr\n");
        printf("%s\t%d\t%3.1f\t%s\n",cHarryName,iHarryName,fHarrySalara,cHarryAddr);
        printf("以上是该员工的详细信息,请查阅!\n\n");
        printf("请勿开除Keven,并为他涨工资,这个孩子正在努力学习C语言\n");
    }
    if(Name==iEver)
    {
        printf("Name\tAge\tSalary\tAddr\n");
        printf("%s\t%d\t%5.1f\t%5s\n",cTomNname,iTomAge,fTomSalary,cTomAddr);
        printf("%s\t%d\t%5.1f\t%5s\n",cJackName,iJackAge,fJackSalary,cJackAddr);
        printf("%s\t%d\t%5.1f\t%5s\n",cKevenName,iKevenAge,fKevenSalara,cKevenAddr);
        printf("%s\t%d\t%5.1f\t%5s\n",cHarryName,iHarryName,fHarrySalara,cHarryAddr);
        printf("\n以上是所有员工的详细信息,请查阅!\n\n");
        printf("请勿开除Keven,并为他涨工资,这个孩子正在努力学习C语言\n");
     }
     if(Name<1)
    //这个在我第一篇博客已经做过介绍了。很简单的判断方式,即输入错误后执行相应语句
    {
        printf("\t\t编号输入错误请重新输入!\n");
    }
    if(Name>5)
    {
        printf("\t\t编号输入错误请重新输入!\n");
    }


    return 0;

}


输出结果


项目总结

当我看到老师给的原题时我在想为什么要出这样一个题。。。然后几经周折(当然不是你们现在看到的这么简单),试了很多种方法,保存字符串啊,做判断啊,使用新方法做创新啊(虽然是失败了)。哎,其实这个项目我觉得很失败,最大的遗憾在于我不会用string做判断(是查看了用法但是不会。),倒腾了可能好几个小时吧。才勉强用回之前的算法继续进行项目,不过还是不满意。这个项目我对自己的要求是:熟练使用各个数据类型,熟练使用排版即(\t、\n),简单的if判定和养成命名变量的好习惯(驼峰式)。每天都在进步希望自己能够一直坚持下去,仅此发博文的方式更重要是要时刻提醒自己不能放弃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值