Visual Studio 2019 C# 断点调试 凯撒密码,单码密码实现
1、断点调试
快捷键
- F9:对选中的行设置断点
- F5:进入调试状态(不加断点时运行完程序不会直接退出)
- F11:逐语句调试,即进入下一个语句。
- F10:逐过程调试,即进入下一个过程(执行完整个函数)
- SHITF+F11为跳出调试,即执行当前执行点所在函数的剩下所有行。
- Ctrl+F5:进入运行状态(不调试)
调试过程:- 可以看到和修改实时值。
- 可以拖动选择下一条执行的语句。
- 可以实时编辑和修改代码
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# 断点调试 凯撒密码,单码密码实现相关推荐
- Visual Studio 2019 编辑和调试的快捷键总结(精简版)
写在开头 作为一名使用Visual Studio写C++代码的程序员,了解一些快捷键可以极大的提升工作效率.以下精简了一些使用频率最高的快捷键,方便记忆. 编辑 1 Ctrl+C, Ctrl+V 不解 ...
- Visual Studio 2019下用 C# 实现 Hill2 二阶希尔密码 的加密、解密 GUI界面
1.什么是Hill2 什么是Hill密码 希尔密码(Hill)使用每个字母在字母表中的顺序作为其对应的数字,即 A=0,B=1,C=2 等,然后将明文转化为 n 维向量,跟一个 n × n 的矩阵相乘 ...
- [翻译] 使用 Visual Studio 2019 来提高每个开发人员的工作效率
原文: Making every developer more productive with Visual Studio 2019 今天,在 Microsoft Connect(); 2018 的主 ...
- 【网络通信 -- 直播】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 ...
- 中国电信:5G 手机可实现不换卡号;新西兰否认禁用华为;Visual Studio 2019 正式发布!| 极客头条...
「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有料的新闻资讯,让所有技术人,时刻紧跟业界潮流. 快讯速知 中 ...
- Visual Studio 2019 发行说明
原文:https://docs.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes 单击按钮即可下载最新版 Visual Stud ...
- Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!
Visual Studio 2019 v16.10有什么新功能? 我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布.此版本使我们的主题 ...
- Visual Studio 2019完美版 v16.0.3
安装教程 1.本站下载好安装包,打开安装包,点击继续 2.同意许可条款,点击继续 3.等待提取下载文件 4.等待程序加载,选择您所需要的开发环境 5.选择您需要的单独组件 6.选择语言包 7.选择您的 ...
- Visual Studio 2019 16.1 第二个预览版发布
开发四年只会写业务代码,分布式高并发都不会还做程序员? Visual Studio 2019 16.1 Preview 已发布,可从 VisualStudio.com 下载最新预览版,如果已安装过 ...
最新文章
- 释疑の删除多余的ALV布局以及选择条件变式
- java guava json文件_Json解析文件位置的问题
- WOJ 18 动态无向图
- 操作系统之内存管理:4、基本地址变换机构(段氏、页式、段页式)
- Redis官网——如何利用Redis做服务器集群的分布式锁
- c++ eos智能合约开发_hyperledger fabric 开发第一个智能合约
- qt 进度条最小_QT:圆形进度条设计
- 《深入理解并行编程》中文版
- ThreadLocal,静态变量,实例变量,局部变量的线程安全
- 【代码优化】反射机制的慎用
- 学习参考《高性能MySQL(第3版)》中文PDF+英文PDF
- BlackBerry手机应用上网的通道列表
- html如何插入一张图片,html如何插入图片
- 如何快速批量建网站?
- 项目管理过程组与知识领域关系
- 支付宝周期扣款(支付后签约)业务功能总结(php+golang)
- javascript关于累加和的发散思维
- python是否被高估了?
- 产品说明书应该如何制作?
- win11 安装make (gnu make)
热门文章
- linux 下的两种软件安装方式 —— 源码(编译、安装),编译好的二进制(直接安装)
- windows 批处理脚本(batch scripting)
- 康德的道德观与哲学观
- sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
- 深度学习基础(五)—— rectifier function and softplus
- 协议(protocol)与网络协议
- vfp中treeview右键菜单_用卓语言程序把Sublime Text 3添加到和删除出右键菜单
- c语言以空格分割字符串_如何统计字符串中单词的个数?
- 自学python后自己接单-自学Python 后端一年半,如何写简历包装自己得到面试机会?...
- python程序-30分钟学会用Python编写简单程序