老二同志
半吊子程序猿~~~吼吼
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication5
{
    class Program
    {
        static double dHeight;   //定义全局变量 dHeight和dWeight,分别表示身高和体重。
        static double dWeight;
        static void Main(string[] args)   //主函数,并调用各个函数。
        {
            PrintTile();
            if (login() == 0)     //判断login()函数的返回值,如果函数的返回值为0,则结束程序。
            {
                return;
            }
            if (Choose() == 0)    //判断Choose()函数返回值,如过函数的返回值为0,则结束程序。
            {
                return;
            }
            
            Height();
            Weight();
            while (Result()==0)   //定义一个循环,目的是让使用者继续对其他人进行体重检测。
            {
                
                if (Choose() == 0)
                {
                    break;
                  
                }
                Height();
                Weight();
            }
            
          
        }
        static void PrintTile()    //修改界面颜色函数
        {
            Console.ForegroundColor = ConsoleColor.Blue;    //修改界面文字的颜色成蓝色
            Console.WriteLine("****************************************************");
            Console.WriteLine("*                                                  *");
            Console.WriteLine("*     欢迎使用体重自我诊断系统,Power by 小神       *");
            Console.WriteLine("*                                                  *");
            Console.WriteLine("****************************************************");
        }
        static int login()        //登陆函数
        {
            for (int i = 0; i < 3; i++)
            {
                int xMark;       //定义整型的xMark,表示还有的机会次数。
                xMark = 2 - i;
                Console.WriteLine("请输入用户名和密码,按回车键结束。");
                Console.Write("user:");
                string aUser = Console.ReadLine();   //用字符串变量aUser存储获取的用户名
                Console.Write("password:");
                string bPassword = Console.ReadLine();  //用字符串变量bPassword存储获取的用户名
                if (aUser == "Admin" && bPassword == "123")    
                {
                    Console.WriteLine("登陆成功");
                    return 1;
                
                }
                else
                {
                    if (xMark >=1)
                    {
                        Console.WriteLine("请重新输入用户名和密码,您还有{0}次机会", xMark);
                    }
                    else if (xMark<1)
                    {
                        Console.WriteLine("您登陆的次数已超过系统上限,谢谢使用!");
                        return 0;
                    }
                    
                    
                }
­
              
            }
            return 1;
            
        }
        static int Choose()      //菜单函数
        {
            Console.WriteLine("是否开始诊断?");
            Console.WriteLine("y.开始诊断.");
            Console.WriteLine("n.退出程序.");
            while (true)      //定义一个循环
            {
                Console.Write("选择:");
­
                string aChoose = Console.ReadLine();   //定义字符串变量aChoose存储获取的用户输入。
                    if (aChoose == "y")    
                    {
                        return 1;                   //判断如果用户输入的是y,程序向下继续执行
                    }
                    else if (aChoose == "n")
                    {
                        return 0;                   //判断如果用户输入的是n,程序技术
                    }
                    else                           //如果用户输入的既不是y也不是n,提醒用户必须输入y或n
                    {
                        Console.WriteLine("请重新选择,必须在Y与N之间取其一。");
­
                    }
­
            }
            return 2;       //因为函数定义的是int,所以需要一个返回值
        }
        static double Height()      //身高判断函数
        {
            Console.WriteLine("请输入您的身高,注:单位是米,范围在0.5-3.0之间。");
            while (true)    //定义一个循环。
            {
                Console.Write("身高:");
                
                try      //定义一个异常出错捕捉结构
                {                           //必须执行的语句块
            
               dHeight = double.Parse(Console.ReadLine());    //从用户的输入中获取身高
              if (dHeight > 0.5 && dHeight < 3.0)         //如果用户输入的身高范围在规定之中,程序向下继续执行
              {
                  return 1;
              }
              else                        //如果用户输入的身高不在范围之中,提示重新输入
              {
                  Console.WriteLine("身高的范围必须在0.5-3.0之间,请重新输入。");
              }
            
                }
                catch      //因为获取的身高必须是double类型,当用户输入的非此类型,catch语句块中的语句便执行。
                {
                    Console.WriteLine("请重新输入您的身高");
                    Console.WriteLine("身高只能是数字,而且必须在0.5与3.0之间");
                }
                
            }
                    return 1.0;    //身高判断函数是double型,需要返回值。
        }
        static double Weight()  //体重判断函数
        {
            Console.WriteLine("请输入您的体重,注:单位是kg,范围在20-200之间。");
            while (true)    //定义一个循环
            {
                Console.Write("体重:");
                try   //定义一个异常出错捕捉结构
                {
                    dWeight = double.Parse(Console.ReadLine());   //从用户的输入中获取体重
                    if (dWeight > 20 && dWeight < 200)     //如果用户的输入在规定的范围之中 ,程序向下继续执行
                    {
                        return 1;
                    }
                    else    //如果用户的输入不在范围之中,提示用户重新输入。
                    {
                        Console.WriteLine("体重的范围必须在20-200之间,请重新输入。");
                    }
                }
                catch   //因为获取的体重必须是double类型,当用户输入的非此类型,catch语句块中的语句便执行。
                {
                    Console.WriteLine("请重新输入您的体重");
                    Console.WriteLine("体重只能是数字,而且必须在20与200之间");
                }
            }
            return 1.0;   //因为函数定义的是double类型,需要一个返回值。
        }
        static int Result()       //计算体重指标,并给出相应的结果。
        {
            double aIndex;      //定义体重指标aIndex双精度变量
            aIndex = dWeight/(dHeight*dHeight);   //计算体重指标
            if (aIndex < 18)                //下面的语句根据预先有的指标规则给出用户体重指标。
            {
                Console.WriteLine("您的体重偏瘦。");
            }
            else if (aIndex >= 18 && aIndex < 25)
            {
                Console.WriteLine("您的体重正常。");
            }
            else if (aIndex >= 25 && aIndex < 30)
            {
                Console.WriteLine("您的体重超重。");
            }
            else if (aIndex >= 30 && aIndex < 35)
            {
                Console.WriteLine("您的体重轻度肥胖。");
            }
            else
            {
                Console.WriteLine("您的体重重度肥胖");
            
            }
            return 0;    //判断完之后返回0
­
        }
    }
­
    }
­
­
­
­
该项目的要求见:
体重诊断法功能需求
1.要求实现平台:windows2000以上系统,.NetFromeWord2.0,编译环境为Visaul Studio2005

2.开发方式:采用控制台方式开发。

3.代码要求:所有代码写在一个.cs文件,同一个命名空间以及一个类(class)里面,在类里面可以写函数的调用,要求变量命名规范,代码功能注释清楚,以及错误处理,达到程序只提示不报错。

4.功能要求:
1)用户登陆,提示用户输入用户名密码,用户名为:Admin(注意大小写),密码:123
给用户三次输入失败的机会,每输入失败,提示重新输入,并提示还有几次机会。用户名密码正确则进入系统。

2) 登陆成功后,提示用户是否开始自我诊断,选择菜单进入诊断功能或关闭程序。如果输入的不是这两种选择,提示用户输入错误,然后继续等待输入。

3)进入诊断功能后,提示用户输入身高,单位为米(M),可以输入小数点。对用户输入的字符做检测,要求只能是数字,身高只能在0.5米和3.0米之间。如果输入不符合要求,继续提示输入身高。身高输入后,提示用户输入体重,单位为公斤(KG),可以输入小数点。对体重的输入做检查,要求只能输入数字,体重只能在20公斤和200公斤之间。如果输入不符合要求,继续提示输入体重。





4)体重输入完毕后,计算体重指标,计算公式为
体重指标=体重(公斤)除身高(米)的平方   kg/m2

5) 判断计算出来的体重指标,显示相应的用户信息
体重偏瘦:体重指标<18
体重正常:体重指标=18     25之间
体重超重:体重指标=25     30之间
重度肥胖:体重指标=30     35之间
重度肥胖:体重指标=35以上

6) 显示完诊断信息后,提示用户,是否开始自我诊断,见功能需求 1)。
­
重新修改了次代码,修改了几处BUG,并重新修改了全部命名,最后添加了很多注释,提高代码的可读性,附上程序调试截图(图片挂了,找不到存档了!).
posted on 2008-11-26 11:21  老二同志  阅读(341)  评论(0)    收藏  举报