扣通信录 20201203 代码

125 阅读2分钟

入口文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace qq通讯录2020
{
    class Program
    {
        static void Main(string[] args)
        {
            // 实例化一个系统对象,Game对象
            Game g = new Game();

            // 让对象运行
            g.start();

            // 停顿
            Console.ReadKey();


        }
    }
}

功能类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace qq通讯录2020
{
    class Game
    {
        // 连接对象
        SqlConnection conn;

        // 程序启动的方法
        // 我们在这里控制程序的主流程
        public void start() {
            // 程序的初始化
            loading();
            
            // 用户登陆
            bool is_login = login();


            // 登陆验证:
            // 如果登陆成功,那就运行主要的功能
            // 如果登陆不成功,那就再给一次登陆机会

            // 计数器
            int chance = 3;
            while (is_login==false && chance >0)
            {
                chance--;
                Console.WriteLine("您还有{0}次机会",chance);
                
                // 重复做的事情是执行登陆的操做
                is_login = login();
            }

            Console.WriteLine("已经退出循环"+is_login);


            // 判断退出循环后,登陆是否成功
            if (is_login) {
                // 运行主要功能
                mainFunc();
            }
        }

        // 初始化方法
        public void loading() {
            // 定义连接字符串
            String connString = "Data Source=.;Initial Catalog=dbok;Persist Security Info=True;User ID=sa;Password=root123123";


            // 实例化连接对象
            conn = new SqlConnection(connString);
        }



        // 登陆的功能方法
        public bool login()
        { 
            // 接收用户输入的帐号与密码
            Console.WriteLine("请输入用户名:");
            String username = Console.ReadLine();
            Console.WriteLine("请输入密码:");
            String password = Console.ReadLine();

            // 连接数据库,查询帐号密码是否存在
            String sql = String.Format("select count(*) from userlogin where username =  '{0}' and password = '{1}'", username, password);
            Console.WriteLine(sql);
            
            // 执法者.查询得到首行首列的方法,可以获得一个返回值int
            SqlCommand cmd = new SqlCommand(sql,conn);


            // 打开连接对象
            try
            {
                // 可能会出错的代码
                conn.Open();

                // 让执法者干活
                int res = (int)cmd.ExecuteScalar();

                // 判断返回值,0?1?
                if (res == 0) {
                    return false;
                } else {
                    return true;
                }
            }
            catch (Exception e)
            {
                // 如果出错了,会执行的代码区块
                Console.WriteLine(e.Message);
            }
            finally { 
                // 不论出不出错,一定会执行的区块
                // 关闭连接对象
                conn.Close();
            }

            return true;
        }


        // 欢迎用户
        public void welcome() {
            Console.WriteLine("欢迎使用【QQ通讯录】,当前版本:v2.0");
        }

        public void showFuncMenu() {
            Console.WriteLine("1-查询所有名片");
            Console.WriteLine("2-新建名片");
            Console.WriteLine("3-搜索名片");
            Console.WriteLine("4-修改名片");
            Console.WriteLine("5-删除名片");
            Console.WriteLine("q-退出程序");
        
        }

        public String getUserChoice() { 
        
            // 提示
            Console.WriteLine("请输入功能编号:");
            // 接收
            return Console.ReadLine();
        }

        public void createNewCard() {
            Console.WriteLine("新建名片...");
        }

        public void showAllCard() {
            Console.WriteLine("显示所有名片...");
        }

        // 运行程序功能的方法
        public void runApp(String choice) {

            switch (choice)
            {
                case "1":
                    showAllCard();
                    break;
                case "2":
                    createNewCard();
                    break;

                default:
                    Console.WriteLine("非法输入,请重新再试");
                    break;

            }
        
        }

        // 主要的功能
        public void mainFunc()
        {
            // 欢迎一下用户
            welcome();

            // 功能循环
            while (true) {
                // 显示功能菜单
                showFuncMenu();
                // 接收用户输入
                String choice = getUserChoice();

                // 判断是否需要退出程序
                if (choice.Equals("q"))
                {
                    Console.WriteLine("用户选择了退出程序,感谢使用,再会");
                    break;
                }

                // 根据用户输入,触发对应的功能
                runApp(choice);
            
            }

        }
    }
}

运行效果