1、断点调试

快捷键

  • F9:对选中的行设置断点
  • F5:进入调试状态(不加断点时运行完程序不会直接退出)
  • F11:逐语句调试,即进入下一个语句。
  • F10:逐过程调试,即进入下一个过程(执行完整个函数)
  • SHITF+F11为跳出调试,即执行当前执行点所在函数的剩下所有行。
  • Ctrl+F5:进入运行状态(不调试)

    调试过程:

    1. 可以看到和修改实时值。
    2. 可以拖动选择下一条执行的语句。
    3. 可以实时编辑和修改代码

using System;namespace Calculator
{class Program{static void swap(ref int a, ref int b)//引用{int t = a;  //断点F9a = b;      //逐语句F11b = t;      Console.WriteLine("swap {0}", a);//SHITF+F11执行当前执行点所在函数的剩下所有行。Console.WriteLine("swap {0}", t);Console.WriteLine("swap {0}", b);}static void Main(string[] args){int a = 5, b = 10;Console.WriteLine("{0} {1}",  a, b);//1. 查看和修改变量Console.WriteLine("abcd");          //2.跳过语句swap(ref a, ref b);               //3.实时修改// Console.WriteLine("{0} {1}", a, b);swap(ref a, ref b);  //逐过程F10 (执行完整个函数)Console.WriteLine("{0} {1}", a, b);}}}

2、凯撒密码、单码密码实现

凯撒密码:

using System;namespace kaisa
{class Program{public static string daxie(string str){                           //大写化字母以及检查函数string strs = "";for (int i = 0; i < str.Length; i++){if (str[i] >= 'a' && str[i] <= 'z'){char x;x = (char)(str[i] - 32);strs = strs + x;}else if (str[i] >= 'A' && str[i] <= 'Z'){strs = strs + str[i];}else{return "!";break;}}return strs;}public static void jiami(string plaintexts, int keys){//Console.WriteLine(keys);string strs="";for (int p = 0; p < plaintexts.Length; p++){          //输出密文//Console.WriteLine((plaintexts[p] - 'A' + keys) % 26 + 'A'+'\n');char ch = (char)((plaintexts[p] - 'A' + keys) % 26 + 'A');strs = strs+ch;}Console.WriteLine("得到密文:");Console.WriteLine(strs + "\n");}public static void jiemi(string plaintexts, int keys){string strs = "";for(int p = 0; p < plaintexts.Length; p++){char ch = (char)((plaintexts[p] - 'A' - keys + 26) % 26 + 'A');strs = strs + ch;}Console.WriteLine("得到明文:");Console.WriteLine(strs + "\n");}static int Main(string[] args){String choice;Console.WriteLine("凯撒加密/解密");while (true){string plaintext;string ciphertext;int key;Console.WriteLine("输入数字选择模式:");Console.WriteLine("0.加密模式" + "\n");Console.WriteLine("1.解密模式+\n");Console.WriteLine("2.退出程序");choice = Console.ReadLine();switch (choice){case "0":                                      //加密Console.WriteLine("\n请输入明文(连续字母串):");plaintext = Console.ReadLine();while (true){if (daxie(plaintext) == "!"){Console.WriteLine("输入错误,请重新输入明文:");plaintext = Console.ReadLine();}else{plaintext = daxie(plaintext);break;}}Console.WriteLine("\n请输入密钥(0-25数字):");key = Convert.ToInt32(Console.ReadLine());while (true){if (key<0 || key>25){Console.WriteLine("\n输入错误,请重新输入密钥:");key = Convert.ToInt32(Console.ReadLine());}else{break;}}jiami(plaintext, key);break;case "1":                                      //解密Console.WriteLine("\n请输入密文(连续字母串):");ciphertext = Console.ReadLine();while (true){if (daxie(ciphertext) == "!"){Console.WriteLine("\n输入错误,请重新输入明文:");ciphertext = Console.ReadLine();}else{ciphertext = daxie(ciphertext);break;}}Console.WriteLine("\n请输入密钥(0-25数字):");key = Convert.ToInt32(Console.ReadLine());while (true){if (key < 0 || key > 25){Console.WriteLine("\n输入错误,请重新输入密钥:");key = Convert.ToInt32(Console.ReadLine());}else{break;}}jiemi(ciphertext, key);break;case "2":                                      //退出程序Console.WriteLine("\n程序退出!!!");return 0;break;default:Console.WriteLine("输入错误,请重新选择!!!\n");break;}}}}
}

单码密码(单表代换):

using System;namespace 单码
{class Program{public static string quchong(string str){                          //密钥去重函数string strs = "";int[] vis = new int[26];for (int i = 0; i < str.Length; i++){if (vis[str[i] - 'A'] == 0){strs = strs + str[i];}vis[str[i] - 'A']++;}return strs;}public static string daxie(string str){                           //大写化字母以及检查函数string strs = "";for (int i = 0; i < str.Length; i++){if (str[i] >= 'a' && str[i] <= 'z'){char x;x = (char)(str[i] - 32);strs = strs + x;}else if (str[i] >= 'A' && str[i] <= 'Z'){strs = strs + str[i];}else{return "!";break;}}return strs;}public static void jiami(string plaintexts, string keys){         //加密函数string miyao;miyao = quchong(keys);int[] vis = new int[26];for (int i = 0; i < miyao.Length; i++){vis[miyao[i] - 'A']++;}string canzhaos = miyao;string tmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (int i = 0; i < 26; i++){if (vis[i] == 0){canzhaos = canzhaos + tmp[i];}}//Console.WriteLine(canzhaos);string ans = "";for (int p = 0; p < plaintexts.Length; p++){ans = ans + canzhaos[(int)(plaintexts[p] - 'A')];}Console.WriteLine("得到密文:");Console.WriteLine(ans + "\n");}public static void jiemi(string ciphertext, string keys){         //加密函数string miyao;miyao = quchong(keys);int[] vis = new int[26];for (int i = 0; i < miyao.Length; i++){vis[miyao[i] - 'A']++;}string canzhaos = miyao;string tmp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";for (int i = 0; i < 26; i++){if (vis[i] == 0){canzhaos = canzhaos + tmp[i];}}char[] duizhao = new char[26];for (int i = 0; i < canzhaos.Length; i++){duizhao[canzhaos[i] - 'A'] = tmp[i];}string duizhaos = "";for (int i = 0; i < 26; i++){duizhaos = duizhaos + duizhao[i];}//Console.WriteLine(canzhaos);string ans = "";for (int p = 0; p < ciphertext.Length; p++){ans = ans + duizhaos[(int)(ciphertext[p] - 'A')];}Console.WriteLine("得到明文:");Console.WriteLine(ans + "\n");}static int Main(string[] args){String choice;Console.WriteLine("单码加密/解密");while (true){string plaintext;string ciphertext;string key;Console.WriteLine("输入数字选择模式:");Console.WriteLine("0.加密模式" + "\n");Console.WriteLine("1.解密模式+\n");Console.WriteLine("2.退出程序");choice = Console.ReadLine();switch (choice){case "0":                                      //加密Console.WriteLine("\n请输入明文(连续字母串):");plaintext = Console.ReadLine();while (true){if (daxie(plaintext) == "!"){Console.WriteLine("输入错误,请重新输入明文:");plaintext = Console.ReadLine();}else{plaintext = daxie(plaintext);break;}}Console.WriteLine("\n请输入密钥(连续字母串):");key = Console.ReadLine();while (true){if (daxie(key) == "!"){Console.WriteLine("\n输入错误,请重新输入密钥:");key = Console.ReadLine();}else{key = daxie(key);break;}}jiami(plaintext, key);break;case "1":                                      //解密Console.WriteLine("\n请输入密文(连续字母串):");ciphertext = Console.ReadLine();while (true){if (daxie(ciphertext) == "!"){Console.WriteLine("\n输入错误,请重新输入明文:");ciphertext = Console.ReadLine();}else{ciphertext = daxie(ciphertext);break;}}Console.WriteLine("\n请输入密钥(连续字母串):");key = Console.ReadLine();while (true){if (daxie(key) == "!"){Console.WriteLine("\n输入错误,请重新输入密钥:");key = Console.ReadLine();}else{key = daxie(key);break;}}jiemi(ciphertext, key);break;case "2":                                      //退出程序Console.WriteLine("\n程序退出!!!");return 0;break;default:Console.WriteLine("输入错误,请重新选择!!!\n");break;}}}}}

Visual Studio 2019 C# 断点调试 凯撒密码,单码密码实现相关推荐

  1. Visual Studio 2019 编辑和调试的快捷键总结(精简版)

    写在开头 作为一名使用Visual Studio写C++代码的程序员,了解一些快捷键可以极大的提升工作效率.以下精简了一些使用频率最高的快捷键,方便记忆. 编辑 1 Ctrl+C, Ctrl+V 不解 ...

  2. Visual Studio 2019下用 C# 实现 Hill2 二阶希尔密码 的加密、解密 GUI界面

    1.什么是Hill2 什么是Hill密码 希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即 A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘 ...

  3. [翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率

    原文: Making every developer more productive with Visual Studio 2019 今天,在 Microsoft Connect(); 2018 的主 ...

  4. 【网络通信 -- 直播】OBS -- 基于 Visual Studio 2019 + Qt 5.15.2 编译调试 OBS studio 源码

    [网络通信 -- 直播]OBS -- 基于 Visual Studio 2019 + Qt 5.15.2 编译调试 OBS studio 源码 [1]OBS 代码获取 github : git clo ...

  5. 中国电信:5G 手机可实现不换卡号;新西兰否认禁用华为;Visual Studio 2019 正式发布!| 极客头条...

    「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 中 ...

  6. Visual Studio 2019 发行说明

    原文:https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes 单击按钮即可下载最新版 Visual Stud ...

  7. Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!

    Visual Studio 2019 v16.10有什么新功能? 我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布.此版本使我们的主题 ...

  8. Visual Studio 2019完美版 v16.0.3

    安装教程 1.本站下载好安装包,打开安装包,点击继续 2.同意许可条款,点击继续 3.等待提取下载文件 4.等待程序加载,选择您所需要的开发环境 5.选择您需要的单独组件 6.选择语言包 7.选择您的 ...

  9. Visual Studio 2019 16.1 第二个预览版发布

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Visual Studio 2019 16.1 Preview 已发布,可从 VisualStudio.com 下载最新预览版,如果已安装过 ...

最新文章

  1. 释疑の删除多余的ALV布局以及选择条件变式
  2. java guava json文件_Json解析文件位置的问题
  3. WOJ 18 动态无向图
  4. 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)
  5. Redis官网——如何利用Redis做服务器集群的分布式锁
  6. c++ eos智能合约开发_hyperledger fabric 开发第一个智能合约
  7. qt 进度条最小_QT:圆形进度条设计
  8. 《深入理解并行编程》中文版
  9. ThreadLocal,静态变量,实例变量,局部变量的线程安全
  10. 【代码优化】反射机制的慎用
  11. 学习参考《高性能MySQL(第3版)》中文PDF+英文PDF
  12. BlackBerry手机应用上网的通道列表
  13. html如何插入一张图片,html如何插入图片
  14. 如何快速批量建网站?
  15. 项目管理过程组与知识领域关系
  16. 支付宝周期扣款(支付后签约)业务功能总结(php+golang)
  17. javascript关于累加和的发散思维
  18. python是否被高估了?
  19. 产品说明书应该如何制作?
  20. win11 安装make (gnu make)

热门文章

  1. linux 下的两种软件安装方式 —— 源码(编译、安装),编译好的二进制(直接安装)
  2. windows 批处理脚本(batch scripting)
  3. 康德的道德观与哲学观
  4. sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
  5. 深度学习基础(五)—— rectifier function and softplus
  6. 协议(protocol)与网络协议
  7. vfp中treeview右键菜单_用卓语言程序把Sublime Text 3添加到和删除出右键菜单
  8. c语言以空格分割字符串_如何统计字符串中单词的个数?
  9. 自学python后自己接单-自学Python 后端一年半,如何写简历包装自己得到面试机会?...
  10. python程序-30分钟学会用Python编写简单程序