C#作业第一期,简单的源代码计算器
来源:互联网 发布:win7网络共享无法访问 编辑:程序博客网 时间:2024/04/30 11:39
首先看一下运行结果:
这是界面
选择Choose键可以打开文件如:
选择test2.txt,输出结果:
我们来看下test.txt文件里面有什么东西:
完美输出~
好吧为什么是个txt呢?其实要其他的话只需要修改一下代码就可以了。
好吧,代码出来了基本上都能看懂了,只需要修改上述代码中的 openFileDialog1.Filter = "*.txt|*.txt|所有文件(*.*)|*.*"; 即可,如: openFileDialog1.Filter = "*.cs|*.cs|所有文件(*.*)|*.*"; ,这样就可以打开cs文件了。
这是所调用的OpenFileDialog类,用于提示用户打开文件。
很明显,上面代码是控制button1也就是那个叫做Choose的按钮。
这是的整型数组,很明显用来存放统计结果的。那么是怎么将结果统计后存进去的呢?
这就是那个计算的函数,code是代码行数,space是空格数,explain1是注释行数
这里是读取文件的代码
由于本人是个渣渣,所以写了个很糟糕的算法,望各位不要狂喷。
这样就可以计算出的空行数,代码行数,注释行数。然后存入一个数组并返回该数组:
接下来在button1_Click函数那里调用该函数就可以了。。。
好吧,本人一直做的是c++所以提供的测试代码也只是c++的,c#我根本就不会!好吧,这东西是乱写出来的,不要在意细节~
什么,你问我窗口怎么设计的?这个就算了吧,超难看。。。
就是用winform画画画,总之这不重要,大家无视吧。(个人还是喜欢QT多一点~)
下面是源代码:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;using System.IO;namespace WindowsFormsApplication2{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { { //打开文件对话框 OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.Filter = "*.txt|*.txt|所有文件(*.*)|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { string Name = openFileDialog1.FileName; int[] n = count(Name); textBox3.Text = n[1].ToString(); //存放空行数 textBox4.Text = n[2].ToString(); //存放代码行 textBox2.Text = n[0].ToString(); //存放注释行 // richTextBox1.LoadFile(Name,RichTextBoxStreamType.PlainText); // statusBarPanel1.Text=Name; } catch (Exception) { } } } } public static int[] count(string str) { int code = 0; int space = 0; int explain1 = 0; try { FileStream fileread = new FileStream(str, FileMode.Open, FileAccess.Read, FileShare.Read); } catch (Exception) { Console.ReadLine(); throw; } StreamReader sr = new StreamReader(str); string line1=null; //int count; //string a1,a2; while ((line1 = sr.ReadLine()) != null) { // line1 = sr.ReadLine(); line1 = line1.Trim(); // a1 =a1.Trim(); //计算注释行 if (line1.StartsWith("//") || line1.StartsWith("///")) { explain1++; } else if (line1.StartsWith("/*") || line1.EndsWith("*/")) { explain1++; } //计算空行数 else if (line1 == "") { space++; } //计算代码行 else { code++; } } int[] i = { code,space, explain1 }; return i; } private void textBox3_TextChanged(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void textBox4_TextChanged(object sender, EventArgs e) { } private void label1_Click_1(object sender, EventArgs e) { } }}
0 0
- C#作业第一期,简单的源代码计算器
- 简单计算器C#源代码
- 《Java程序设计》第一次作业:简单的JAVA源代码之计算器
- 第一个作业(《C#程序设计》or《Java程序设计》):源代码计算器
- 郭静梅 第一次c#作业源代码计算器
- 栈的作业:简单计算器
- JAVA作业 简单的计算器
- JavaScript简单的计算器源代码
- 第一次作业 源代码计算器
- 第一次作业:源代码计算器
- 第一个C#程序(简单计算器)
- 《C#程序设计》or《Java程序设计》第一次作业:源代码计算器
- c#作业第二期第一弹(记事本程序)
- (原创)C#编写的windows计算器----源代码
- C#编写的windows计算器-源代码
- C#编写的windows计算器----源代码
- C#编写的windows计算器----源代码
- C#编写的windows计算器-源代码
- 第4周-项目1-体验常成员函数-平面坐标点类
- oc -字符串分割
- UIScrollView 实践经验
- 【J2EE浅析】——JDBC
- SQL应用与开发:(五)多个数据表的连接
- C#作业第一期,简单的源代码计算器
- CSS工作流
- 常用类"二"(Math,Random,System)
- UDP Socket编程 C/C++实现 (Windows Platform SDK)
- 第4周-项目2-对象作为数据成员-三角形类
- Android中如何使用View填充在多个TextView之间使之等间距
- mvc思想
- 未能加载文件或程序集"System.Data,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"或它的某一个依赖项。系统找
- nginx禁止访问某个后缀名的文件