c_c# 人脸识别 顾客进店 - CSDN
c 订阅
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。 [1] 展开全文
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。 [1]
信息
中文名
C语言
创始人
Dennis MacAlistair Ritchie
发    源
BCPL语言
外文名
C Programming Language
类    别
程序设计语言
影响语言
C++、C#、D、Java、JavaScript、ObjectPHP等
创始时间
1972年
主要编译器
Visual C++、Clang、GCC、Turbo C等
c语言简介
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。 [2]  当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。 [3]  冯.诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯.诺依曼思想,这是计算机发展史上的里程碑。自1945 年至今大多采用其结构,因此冯.诺依曼被称为计算机之父。他的体系结构计算机由运算器、控制器、存储器、输入设备、输出设备五大部件构成。 C语言拥有一套完整的理论体系经过了漫长的发展历史,在编程语言中具有举足轻重的地位。 [4] 
收起全文
  • C语言基础

    2020-01-15 18:14:28
    一、C语言自我YY 1)、C语言是许多高级计算机语言的基础,学好C语言能更好的学习其他高级语言,为以后的学习打基础;往深学C语言的话那就是学到C在Linux里的应用,Linux十分强大。 2)、C语言是一种计算机程序设计语言...
  • 一门初级、从入门到精通的C语言C++语法教程,由毕业于清华大学的业内人士执课。从简单的HelloWorld入门程序,到深入的C语言C++核心概念,均为您娓娓道来,言之必详、听之必懂。让C语言C++编程变得简单,让C语言C++...
  • 尹成老师带你步入 C 语言的殿堂,讲课生动风趣、深入浅出,全套视频内容充实,整个教程以 C 语言为核心,完整精彩的演练了数据结构、算法、设计模式、数据库、大数据高并发检索、文件重定向、多线程同步、进程通讯、...
  • 考二级c的话c语言书籍的话推荐看谭浩强,但是你要用于工作上的话我推荐你看传智播客的C语言教程!精通C语言肯定得花上几个月时间。 很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言? 我是...

    C语言通过自学软件工程师要多久?
    许多同学问C语言怎么学?考二级c的话c语言书籍的话推荐看谭浩强,但是你要用于工作上的话我推荐你看传智播客的C语言教程!精通C语言肯定得花上几个月时间。
    很多人对学习C语言感到无从下手,经常问我同一个问题:究竟怎样学习C语言? 我是一个教师,已经开发了很多年的程序,和很多刚刚起步的人一样,学习的第一个计算机语言就是C语言。经过这些年的开发,我深深的体会到C语言对于一个程序设计人员多么的重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出优秀高效的程序,这简直就是天方夜谭。

    C语言软件工程师都学什么?
    零基础学c语言教程内容:
    按照日期来看就行了,零基础班主要讲一些基础,适合入门学习。
    1.C语言概述,学习方法,开发环境搭建,HelloWorld案例分析,常量与变量;
    2.数据类型,数据类型转换,数据输入与输出;
    3.C语言运算符,C语言操作符;
    4.C语言表达式,表达式优先级;
    5.C语言流程控制,分支,顺序,循环逻辑控制;
    6.函数概述与引用,简单递归,简单嵌套,C语言调用函数示例;
    7.数组,二维数组,高维数组,详细案例;
    8.指针,指针与地址,指针与数组;
    9.指针与字符串,指针与函数,多重指针;
    10.结构体,共用体,枚举,typedef;
    11.宏定义,预编译,文件包含,条件编译;
    12.内存分析,作用域,生存期,可见域;
    13.C语言调试,排错,分析技巧;
    14.简单链表;
    15.综合复习型测试

    零基础学C语言教程百度盘下载地址
    http://www.xuexiluxian.net/cyuyan-rumen.html

    展开全文
  • C语言编程从入门到精通 丰富的代码资源 详细的注释解释 全面的知识讲解 想学好C不得不看的经典源码
  • 在多线程访问读写同一个文件时,经常遇到异常:“文件正在由另一进程使用,因此该进程无法访问此文件”。 多线程访问统一资源的异常, 解决方案1,保证读写操作单线程执行,可以使用lock 解决方案2,使用System....

    在多线程访问读写同一个文件时,经常遇到异常:“文件正在由另一进程使用,因此该进程无法访问此文件”。

    多线程访问统一资源的异常,

    解决方案1,保证读写操作单线程执行,可以使用lock

    解决方案2,使用System.Threading.ReaderWriterLockSlim ,对读写操作锁定处理

    读写锁是以 ReaderWriterLockSlim 对象作为锁管理资源的,不同的 ReaderWriterLockSlim 对象中锁定同一个文件也会被视为不同的锁进行管理,这种差异可能会再次导致文件的并发写入问题,所以 ReaderWriterLockSlim 应尽量定义为只读的静态对象。

     

    ReaderWriterLockSlim 有几个关键的方法,本文仅讨论写入锁:

    调用 EnterWriteLock 方法 进入写入状态,在调用线程进入锁定状态之前一直处于阻塞状态,因此可能永远都不返回
    调用 TryEnterWriteLock 方法 进入写入状态,可指定阻塞的间隔时间,如果调用线程在此间隔期间并未进入写入模式,将返回false
    调用 ExitWriteLock 方法 退出写入状态,应使用 finally 块执行 ExitWriteLock 方法,从而确保调用方退出写入模式。

    一、不是用锁处理,多线程访问文件不定时抛出异常

    static void Main(string[] args)
    {
        //迭代运行写入日志记录,由于多个线程同时写入同一个文件将会导致错误
        Parallel.For(0, LogCount, e =>
        {
            WriteLog();
        });
        Console.Read();
    }
    static int LogCount = 100;
    static int FailedCount = 0;
    static int WriteCount = 0;
    static void WriteLog()
    {
        try
        {
            WriteCount++;
    
            LogHelper.LogHelper _log = new LogHelper.LogHelper("g:\\temp2\\one.txt", true);
            DateTime now = DateTime.Now;
            var logContent = string.Format("Tid: {0}{1} {2}=>{3}\r\n", Thread.CurrentThread.ManagedThreadId.ToString().PadRight(4), now.ToLongDateString(), now.ToLongTimeString(), WriteCount);
            _log.WriteLine(logContent);
        }
        catch (Exception ex)
        {
            FailedCount++;
            Console.WriteLine("累计出错数:" + FailedCount);
            Console.WriteLine(ex.Message);
        }
    }

    二、使用读写锁 同步写入文件处理

    //读写锁,当资源处于写入模式时,其他线程写入需要等待本次写入结束之后才能继续写入
    static ReaderWriterLockSlim LogWriteLock = new ReaderWriterLockSlim();
    static void WriteLog()
    {
        try
        {
            //设置读写锁为写入模式独占资源,其他写入请求需要等待本次写入结束之后才能继续写入
            //注意:长时间持有读线程锁或写线程锁会使其他线程发生饥饿 (starve)。 为了得到最好的性能,需要考虑重新构造应用程序以将写访问的持续时间减少到最小。
            //从性能方面考虑,请求进入写入模式应该紧跟文件操作之前,在此处进入写入模式仅是为了降低代码复杂度
            //因进入与退出写入模式应在同一个try finally语句块内,所以在请求进入写入模式之前不能触发异常,否则释放次数大于请求次数将会触发异常
            LogWriteLock.EnterWriteLock();
    
    
            WriteCount++;
            LogHelper.LogHelper _log = new LogHelper.LogHelper("g:\\temp2\\one.txt", true);
            DateTime now = DateTime.Now;
            var logContent = string.Format("Tid: {0}{1} {2}=>{3}\r\n", Thread.CurrentThread.ManagedThreadId.ToString().PadRight(4), now.ToLongDateString(), now.ToLongTimeString(), WriteCount);
            _log.WriteLine(logContent);
        }
        catch (Exception ex)
        {
            FailedCount++;
            Console.WriteLine("累计出错数:" + FailedCount);
            Console.WriteLine(ex.Message);
        }
        finally
        {
            //退出写入模式,释放资源占用
            //注意:一次请求对应一次释放
            //若释放次数大于请求次数将会触发异常[写入锁定未经保持即被释放]
            //若请求处理完成后未释放将会触发异常[此模式不下允许以递归方式获取写入锁定]
            LogWriteLock.ExitWriteLock();
        }
    }

    三、补充:初始化FileStream时使用包含文件共享属性(System.IO.FileShare)的构造函数比使用自定义线程锁更为安全高效

     1     class Program
     2     {
     3         static int LogCount = 100;
     4         static int WritedCount = 0;
     5         static int FailedCount = 0;
     6 
     7         static void Main(string[] args)
     8         {
     9             //迭代运行写入日志记录
    10             Parallel.For(0, LogCount, e =>
    11             {
    12                 WriteLog();
    13             });
    14 
    15             Console.WriteLine(string.Format("\r\nLog Count:{0}.\t\tWrited Count:{1}.\tFailed Count:{2}.", LogCount.ToString(), WritedCount.ToString(), FailedCount.ToString()));
    16             Console.Read();
    17         }
    18 
    19         static void WriteLog()
    20         {
    21             try
    22             {
    23                 var logFilePath = "log.txt";
    24                 var now = DateTime.Now;
    25                 var logContent = string.Format("Tid: {0}{1} {2}.{3}\r\n", Thread.CurrentThread.ManagedThreadId.ToString().PadRight(4), now.ToLongDateString(), now.ToLongTimeString(), now.Millisecond.ToString());
    26 
    27                 var logContentBytes = Encoding.Default.GetBytes(logContent);
    28                 //由于设置了文件共享模式为允许随后写入,所以即使多个线程同时写入文件,也会等待之前的线程写入结束之后再执行,而不会出现错误
    29                 using (FileStream logFile = new FileStream(logFilePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Write))
    30                 {
    31                     logFile.Seek(0, SeekOrigin.End);
    32                     logFile.Write(logContentBytes, 0, logContentBytes.Length);
    33                 }
    34 
    35                 WritedCount++;
    36             }
    37             catch (Exception ex)
    38             {
    39                 FailedCount++;
    40                 Console.WriteLine(ex.Message);
    41             }
    42         }
    43     }

     

    更多:

    C# 获取当前路径方法整理

    C#获取当前系统磁盘符、系统目录、桌面等

    C#获取磁盘列表与信息

     

    转载于:https://www.cnblogs.com/tianma3798/p/8252553.html

    展开全文
  • C#完整实现消消乐

    2020-06-03 17:44:35
    C#课程设计作业,花了两天时间,其中抠图找图都花了大半天(后悔以前没去学PS,后悔莫及,所以最后做出来自己都看不下去的粗糙,不过只能这样了) 第一天上午:构思整个的大体框架,要实现的功能 ...

    C#课程设计作业,花了两天时间,其中抠图找图都花了大半天(后悔以前没去学PS,后悔莫及,所以最后做出来自己都看不下去的粗糙,不过只能这样了)
    第一天上午:构思整个的大体框架,要实现的功能
    第一天下午:找图,抠图,找资源,地图的绘制
    第二天上午:被搜索联通块以及方块的消除难住了,后面参考了一些才解决主要核心的,包括判断相邻,执行交换,消除,执行下落,利用了3个Timer组件
    第二天下午:技能体系,充值体系,修修改改,勉强做出来了

    (一)课程作业:C#消消乐完整实现
    利用 C#winform 实现了消消乐游戏的制作 开发环境 VS2015,SQL sever 2008,
    实现功能:
    1.登录,注册窗口
    2.主界面消消乐的实现
    3.技能体系:3个技能
    4.充值体系
    5.背包功能的实现
    6.闯关功能的实现
    (二)主要窗体
    1.登录,注册
    在这里插入图片描述
    在这里插入图片描述
    2.主界面
    在这里插入图片描述
    3.充值界面,教学界面
    在这里插入图片描述
    在这里插入图片描述
    (三)各窗体核心代码
    1.登录,注册

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Media;
    
    namespace KillGame
    {
        public partial class Login : Form
        {
            public Login()
            {
                InitializeComponent();
                
            }
    
            private void button1_Click(object sender, EventArgs e)//登录
            {
                if(checkBox1 .Checked ==true)
                {
                    if (textBox1.Text.Trim() == "123456" && textBox2.Text.Trim() == "123456")
                    {
                        string sname = "老师";
                        startProgress(progressBar1);
                        this.Hide();
                        Game game = new KillGame.Game(sname);
                        game.Show();
    
                    }
                    else
                    {
                        MessageBox.Show("登录失败,超级用户账号密码都是123456,再试试");
                    }
                }
                else
                {
                    string id = textBox1.Text.Trim().ToString();
                    string pwd = textBox2.Text.Trim().ToString();
                    if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "")
                    {
                        MessageBox.Show("请输入账号或密码!");
                        return;
                    }
                    SqlConnection conn = new SqlConnection(@"Data Source=(local);Initial Catalog=MBook;Persist Security Info=True;User ID=sa;Password='zdllxf211215'");
                    string strselect = "select Name from TUser where id='" + textBox1.Text.Trim().ToString() + "'and pwd='" + textBox2.Text.Trim().ToString() + "'";
                    SqlCommand cmd = new SqlCommand(strselect, conn);
                    conn.Open();
                    string name = cmd.ExecuteScalar().ToString();
                    if (name != null)
                    {
                        startProgress(progressBar1);
                        this.Hide();
                        Game game = new KillGame.Game(name);
                        game.Show();
    
                    }
                    else
                    {
                        MessageBox.Show("登录失败!");
                    }
                }
               
              
            }
    
            private void button2_Click(object sender, EventArgs e)//取消
            {
                this.Close();
            }
    
            private void button3_Click(object sender, EventArgs e)//注册
            {
                Logon logon = new Logon();
                logon.Show();
            }
            public void SetCursor(Bitmap cursor, Point hotPoint)//自定义光标
            {
                int hotX = hotPoint.X;
                int hotY = hotPoint.Y;
                Bitmap myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);
                Graphics g = Graphics.FromImage(myNewCursor);
                g.Clear(Color.FromArgb(0, 0, 0, 0));
                g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width,
                cursor.Height);
                this.Cursor = new Cursor(myNewCursor.GetHicon());
                g.Dispose();
                myNewCursor.Dispose();
            }
            private void startProgress(ProgressBar pBar1)
            {
                pBar1.Visible = true;// 显示进度条控件.
                pBar1.Minimum = 1;// 设置进度条最小值.
                pBar1.Maximum = 15;// 设置进度条最大值.
                pBar1.Value = 1;// 设置进度条初始值
                pBar1.Step = 1;// 设置每次增加的步长
                               //创建Graphics对象
                Graphics g = pBar1.CreateGraphics();
                for (int x = 1; x <= 15; x++)
                {
                    //执行PerformStep()函数
                    pBar1.PerformStep();
                    string str = Math.Round((100 * x / 15.0), 2).ToString("#0.00 ") + "%";
                    Font font = new Font("Times New Roman", (float)10, FontStyle.Regular);
                    PointF pt = new PointF(pBar1.Width / 2 - 17, pBar1.Height / 2 - 7);
                    g.DrawString(str, font, Brushes.Black , pt);
                    //每次循环让程序休眠300毫秒
                    System.Threading.Thread.Sleep(300);
                }
                pBar1.Visible = false;
                //MessageBox.Show("success!");
            }
    
            private void Login_Load(object sender, EventArgs e)//窗体加载
            {
    
                SoundPlayer bm = new SoundPlayer("Music\\bj.wav");//背景音乐
                bm.PlayLooping();
                Bitmap a = (Bitmap)Bitmap.FromFile("Image\\mouse.png");
                SetCursor(a, new Point(0, 0));
    
            }
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace KillGame
    {
        public partial class Logon : Form
        {
            public Logon()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)//注册
            {
                if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "" || textBox3.Text.Trim() == "" || textBox4.Text.Trim()=="")
                {
                    MessageBox.Show("请输入完整信息!");
                    return;
                }
                if(textBox2 .Text .Trim ()==textBox3 .Text .Trim())
                {
                    SqlConnection conn = new SqlConnection(@"Data Source=(local);Initial Catalog=MBook;Persist Security Info=True;User ID=sa;Password='zdllxf211215'");
                    string strselect = "insert into TUser values('" + textBox1.Text.Trim() + "','" + textBox4.Text.Trim() + "','" + textBox2.Text.Trim() + "')";
                    SqlCommand cmd = new SqlCommand(strselect, conn);
                    conn.Open();
                    int a = cmd.ExecuteNonQuery();
                    if (a == 1)
                    {
                        MessageBox.Show("注册成功,快去征战吧,骚年!");
                    }
                    else
                    {
                        MessageBox.Show("注册失败!");
                    }
                }
                else
                {
                    MessageBox.Show("密码前后不一致,注册失败!");
                }
                
            }
            public void SetCursor(Bitmap cursor, Point hotPoint)//自定义光标
            {
                int hotX = hotPoint.X;
                int hotY = hotPoint.Y;
                Bitmap myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);
                Graphics g = Graphics.FromImage(myNewCursor);
                g.Clear(Color.FromArgb(0, 0, 0, 0));
                g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width,
                cursor.Height);
                this.Cursor = new Cursor(myNewCursor.GetHicon());
                g.Dispose();
                myNewCursor.Dispose();
            }
    
            private void button2_Click(object sender, EventArgs e)//取消
            {
                this.Close();
            }
    
            private void Logon_Load(object sender, EventArgs e)//加载
            {
                Bitmap a = (Bitmap)Bitmap.FromFile("Image\\mouse.png");
                SetCursor(a, new Point(0, 0));
            }
        }
    }
    
    

    2.主界面窗口

    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.Media;
    
    namespace KillGame
    {
        public partial class Game : Form
        {
            Star[,] getmap = new Star[15, 12];//地图信息
            Point topleft = new Point(60, 5);//坐标
            int gamestart = 0;//游戏开始
            int gamestop = 0;
            int ispic = 0;//记录是否选中方块
            int pickRow = 0;//记录选中的行
            int pickCol = 0;//记录选中的列
            int dropRow = 0;
            int dropCol = 0;
            int changeFlag = 0;//记录是否交换成功
            int size = 60;//方块的大小
            string news;//消息列表
            int height = 10;//地图大小
            int width = 10;
    
            int time = 60;//时间
            int money = 0;//金币
            int score = 0;//积分
            int gnum = 1;//关卡数
            int step = 60;
    
            int skill1num = 0;//技能1使用次数
            int skill2num = 0;//技能2使用次数
            int skill3num = 0;//技能3使用次数
    
            Star s1 = new Star(starcolor., 60, 0, new Point(0, 0));//用于临时交换的两个变量
            Star s2 = new Star(starcolor., 60, 0, new Point(0, 0));
            int x1 = 0;
            int x2 = 0;
            int y1 = 0;
            int y2 = 0;
    
            public Game()
            {
                InitializeComponent();
                SetStyle(ControlStyles.AllPaintingInWmPaint, true);
                SetStyle(ControlStyles.DoubleBuffer, true);
            }
            
            public Game (string name)//构造函数
            {
                InitializeComponent();
                Name = name;
            }
           
            public void SkillReload()//刷新技能
            {
    
            }
            public void GetMap()//随机生成地图
            {
                Random rnd = new Random(DateTime.Now.Second);
                for (int i=1;i<=height ;i++)
                    for(int j=1;j<=width ; j++)
                    {
                        getmap[i, j] = new KillGame.Star((starcolor)rnd.Next(1, 7), size, 0, new Point(topleft.X + (j - 1) * size, topleft.Y + (i - 1) * size));
                    }
            }
            public void ReGetMap(Graphics g)//绘制地图
            {
                for (int i = 1; i <= height ; i++)
                    for (int j = 1; j <= width ; j++)
                    {                    
                        getmap[i, j].Drawing(g);
                    }
    
            }
            public bool GetRowandClo(Point point,out int row,out int clo)//判断点击是否有效,并且输出点击的行列坐标
            {
                int srow = (point.Y - topleft.Y) / size + 1;
                int sclo = (point.X - topleft.X) / size + 1;
                if (srow <=10&&srow >=1&&sclo <=10&&sclo >= 1)
                {
                    row = srow;
                    clo = sclo;
                    return true;//点击有效,超出地图范围
                }
                else
                {
                    row = -1;
                    clo = -1;
                    return false;//点击无效,超出地图范围
                }
            }
            public void SwapStar(int x1,int y1,int x2,int y2)//交换星星,只是交换了两个星星的颜色
            {
                starcolor scolor = getmap[x1, y1].Color;
                getmap[x1, y1].Color = getmap[x2, y2].Color;
                getmap[x2, y2].Color = scolor;
            }
           
            public bool KillStar()
            {
    
                int a = 0;
                bool isclean = false;
                //初始化消除标记
                for (int i = 1; i <= height; i++)
                    for (int j = 1; j <= width; j++)
                    {
                        getmap[i, j].Killed  = 0;
                    }
    
                //遍历每个方格,每个都向右向下搜索
                for (int i = 1; i <= height; i++)
                    for (int j = 1; j <= width; j++)
                    {
                        if (getmap[i, j].Color != starcolor.)//如果有颜色则搜索
                        {
                            //纵向搜
                            int cnt = 1;//记录相连的同色方块个数   
                            int x = i + 1;
                            while (x <= height)
                            {
                                if (getmap[x, j].Color == getmap[i, j].Color)//如果颜色相同记录个数
                                { x++; cnt++; }
                                else break;
                            }
                            if (cnt >= 3)//如果大于等于3个,标记将消除
                            {
                                isclean = true;
                                for (int k = i; k < i + cnt; k++)
                                    getmap[k, j].Killed  = 1;
                                a += cnt;
                            }
                            //横向搜
                            cnt = 1;
                            int y = j + 1;
                            while (y <= width)
                            {
                                if (getmap[i, y].Color == getmap[i, j].Color)//如果颜色相同记录个数
                                { y++; cnt++; }
                                else break;
                            }
                            if (cnt >= 3)//如果大于等于3个,标记将消除
                            {
                                isclean = true;
                                for (int k = j; k < j + cnt; k++)
                                    getmap[i, k].Killed  = 1;
                                a  += cnt;
                            }
                        }
                    }
                //注意这里一定要先标记再同意消除,如果直接在上面消除,会导致十字不可消
                for (int i = 1; i <= height; i++)//将待消除的方块消除
                    for (int j = 1; j <= width; j++)
                    {
                        if (getmap[i, j].Killed  == 1)
                            getmap[i, j].Color = starcolor.;
                    }
                time += a  /= 3;//奖励时间
                time = Math.Min(time, 40);//时间不能超过最大的40
    
                score  += a  * 10;//奖励分数
                money += a ;//奖励金钱
    
                timelable .Text = time.ToString() + "s";//更新标签
                moneylable.Text = money.ToString();
               scorelable.Text = score .ToString();
               if(money >money )
                    Music("Music\\1.wav");
                if (score >=500+gnum * 250)//晋级成功
                {
                    timer1.Enabled = false;
                    time +=30;//奖励时间
                    time = Math.Min(time, 40);//时间不能超过最大的40
                    timelable.Text = time.ToString() + "s";//更新标签
                    money += gnum * 40;
                    moneylable.Text = money.ToString();//奖励金币
                    score = 0;//积分清零
                    scorelable.Text = score.ToString();
                    gnum++;
                    snumlable.Text = gnum.ToString();
                    textBox1.Text = "消息:恭喜您晋级成功," + Name + "阁下";
                    Music("Music\\12902.wav");
                    GetMap();
                    timer3.Enabled = true;
                    timer1.Enabled = true;
                    pictureBox4.Invalidate();
    
                    
    
                }
                return isclean;//返回是否可消
            }
            private void button4_Click(object sender, EventArgs e)//开始游戏
            {
                Bitmap a = (Bitmap)Bitmap.FromFile("Image\\mouse.png");
                SetCursor(a, new Point(0, 0));
                GetMap();
                gamestart = 1;
                gamestop = 0;
                time = 60;
                score = 0;
                money = 0;
                gnum = 1;
                snumlable.Text = gnum.ToString();
                namelable.Text = Name;
                textBox1.Text = "";
                textBox1.AppendText("消息:欢迎您来到KillGame!" + Name + "阁下!");
                pictureBox4.Invalidate();//重绘图片
                timer3.Enabled = true;
                timer1.Enabled = true;//开始计时
    
            }        
    
                    
    
    
            private void button1_Click(object sender, EventArgs e)//技能1购买
            {
    
                if (gamestart  == 1 &&gamestop  == 0)
                {
                    timer1.Enabled = false;
                    timelable.Text = "暂停";
                    if (MessageBox.Show("是否花费30金币购买火舞旋风?", "购买", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        if (money >= 30)
                        {
                            money -= 30;
                            skill1num += 1;
                            s1lable.Text = skill1num.ToString();
                        }
                        else
                        {
                            MessageBox.Show("金币不足,骚年,开启钞能力吧!点击左下角充值系统,你值得拥有!", "购买失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    moneylable .Text = money.ToString();
                    timer1.Enabled = true;
                }
            }
    
            private void button2_Click(object sender, EventArgs e)//技能2购买
            {
    
                if (gamestart == 1 && gamestop == 0)
                {
                    timer1.Enabled = false;
                    timelable.Text = "暂停";
                    if (MessageBox.Show("是否花费30金币购买万仞浮生?", "购买", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        if (money >= 30)
                        {
                            money -= 30;
                            skill2num += 1;
                            s2lable.Text = skill2num.ToString();
                        }
                        else
                        {
                            MessageBox.Show("金币不足,骚年,开启钞能力吧!点击左下角充值系统,你值得拥有!", "购买失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    moneylable.Text = money.ToString();
                    timer1.Enabled = true;
                }
            }
    
            private void button3_Click(object sender, EventArgs e)//技能3购买
            {
    
                if (gamestart == 1 && gamestop == 0)
                {
                    timer1.Enabled = false;
                    timelable.Text = "暂停";
                    if (MessageBox.Show("是否花费30金币购买时间掌控?", "购买", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
                    {
                        if (money >= 30)
                        {
                            money -= 30;
                            skill3num += 1;
                            s3lable.Text = skill3num.ToString();
                        }
                        else
                        {
                            MessageBox.Show("金币不足,骚年,开启钞能力吧!点击左下角充值系统,你值得拥有!", "购买失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    moneylable.Text = money.ToString();
                    timer1.Enabled = true;
                }
            }
    
            
            private void button5_Click(object sender, EventArgs e)//退出游戏
            {
                Application.Exit();
            }
    
            private void button6_Click(object sender, EventArgs e)//新手教学
            {
                About about = new About();
                about.Show();
            }
    
            private void pictureBox1_Click(object sender, EventArgs e)//技能1火舞旋风释放
            {
                if(gamestart ==1&&gamestop == 0)
                {
                    if(skill1num > 0)
                    {
                        skill1num--;
                        s1lable.Text = skill1num.ToString();
                        textBox1.Text = "消息:伟大的"+Name +"阁下,您使用了火舞旋风!";
                        Music("Music\\skill.wav");
                        Random myRand = new Random(DateTime.Now.Second);//随机选择一种颜色
                        int x = myRand.Next(1, 7);
    
                        for (int i = 1; i <= height; i++)//搜索所有方块,若是选择的颜色则消除
                            for (int j = 1; j <= width; j++)
                            {
                                if ((int)getmap[i, j].Color == x)
                                    getmap[i, j].Color = starcolor.;
                            }
                        timer3.Enabled = true;
                        pictureBox4.Invalidate();
                    }
                    else
                    {
                        timer1.Enabled = false;
                        timelable .Text = "暂停";
                        MessageBox.Show("骚年,你的魔法不足,不氪金怎么变强,试试你的钞能力吧", "使用失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        timer1.Enabled = true;
    
                    }
                }
            }
    
            private void pictureBox2_Click(object sender, EventArgs e)//技能2万仞浮生释放
            {
    
                if (gamestart == 1 && gamestop == 0)
                {
                    if (skill2num > 0)
                    {
                        timer1.Enabled = false;
                        skill2num--;
                        s2lable.Text = skill2num.ToString();
                        textBox1.Text = "消息:伟大的" + Name + "阁下,您使用了万物浮生!";
                        Music("Music\\skill.wav");
                        GetMap();  //重新刷新地图                                     
                        timer3.Enabled = true;
                        timer1.Enabled = true;
                        pictureBox4.Invalidate();
                    }
                    else
                    {
                        timer1.Enabled = false;
                        timelable.Text = "暂停";
                        MessageBox.Show("骚年,你的魔法不足,不氪金怎么变强,试试你的钞能力吧", "使用失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        timer1.Enabled = true;
    
                    }
                }
            }
    
            private void pictureBox3_Click(object sender, EventArgs e)//技能3时间掌控释放
            {
    
                if (gamestart == 1 && gamestop == 0)
                {
                    if (skill3num > 0)
                    {
                        skill3num--;
                        s3lable.Text = skill3num.ToString();
                        time += 10; //时间增加
                        timelable.Text = time.ToString() + "s"; //更新标签
                        textBox1.Text ="消息:伟大的" + Name + "阁下,您使用了时间掌控!";
                        Music("Music\\skill.wav");
                    }
                    else
                    {
                        timer1.Enabled = false;
                        timelable.Text = "暂停";
                        MessageBox.Show("骚年,你的魔法不足,不氪金怎么变强,试试你的钞能力吧", "使用失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        timer1.Enabled = true;
    
                    }
                }
            }
            private void Music(string path)
            {
                SoundPlayer player = new SoundPlayer();
                player.SoundLocation = path;
                player.Load();
                player.Play();
    
            }
    
            private void timer1_Tick(object sender, EventArgs e)//记录时间
            {
                if(time == 0)
                {
                    gamestart = 0;
                    timer1.Enabled = false;
                    MessageBox.Show("游戏结束!");
                }
                timelable.Text = time.ToString() + "s";
                time--;
    
            }
    
            private void pictureBox4_MouseDown(object sender, MouseEventArgs e)//鼠标点击
            {
                if (timer3.Enabled == false && gamestart == 1 && gamestop == 0)
                {
                    Music("Music\\click.wav");
                    if (ispic == 0)
                    {
                        int row, col;
                        bool value = GetRowandClo(new Point(e.X, e.Y), out row, out col);//第一次点击,得到点击位置的行列
                        if (value == true)
                        {
                            if (getmap[row, col].Color != starcolor.)
                            {
                                pickRow = row;
                                pickCol = col;
                                ispic = 1;
                                getmap[pickRow, pickCol].Selected();
    
                                //Music("Music\\12596.wav");
    
                            }
    
    
                        }
                    }
                    else
                    {
    
                        int row, col;
                        bool value = GetRowandClo(new Point(e.X, e.Y), out row, out col);//第二次点击,得到点击位置的行列
                        if (value == true)
                        {
                            if (getmap[row, col].Color != starcolor.)
                            {
                                if (row == pickRow && Math.Abs(col - pickCol) == 1 || col == pickCol && Math.Abs(row - pickRow) == 1)//判断是否相邻
                                {
                                    dropCol = col;
                                    dropRow = row;
                                    getmap[pickRow, pickCol].Select = 0;
                                    s1 = new Star(getmap[pickRow, pickCol].Color, getmap[pickRow, pickCol].Size, getmap[pickRow, pickCol].Select, getmap[pickRow, pickCol].Top);
                                    s2 = new Star(getmap[dropRow, dropCol].Color, getmap[dropRow, dropCol].Size, getmap[dropRow, dropCol].Select, getmap[dropRow, dropCol].Top);
                                    getmap[pickRow, pickCol].Color = starcolor.;
                                    getmap[dropRow, dropCol].Color = starcolor.;
                                    pictureBox4.Invalidate();
                                    x1 = s1.Top.X;
                                    y1 = s1.Top.Y;
                                    x2 = s2.Top.X;
                                    y2 = s2.Top.Y;
                                    changeFlag = 0;
                                    timer1.Enabled = false;
                                    timer2.Enabled = true;//执行交换
    
    
                                }
                                else//重新标记
                                {
                                    getmap[pickRow, pickCol].Select = 0;
                                    pickRow = row;
                                    pickCol = col;
                                    getmap[pickRow, pickCol].Selected();
                                    ispic = 1;
                                }
                            }
    
                        }
    
                    }
    
                }
                pictureBox4.Invalidate();
            }
            private void timer2_Tick(object sender, EventArgs e)//交换
            {
                pictureBox4.Invalidate();
                int tax = 0;
                if (x1 == x2)
                {
                    if(y1<y2)
                    {
                        s1.Top = new Point(s1.Top.X, s1.Top.Y + step);
                        s2.Top = new Point(s2.Top.X, s2.Top.Y - step);
                        if (s1.Top.Y >= y2)
                            tax = 1;
                        
                    }
                    else
                    {
                        s1.Top = new Point(s1.Top.X, s1.Top.Y - step);
                        s2.Top = new Point(s2.Top.X, s2.Top.Y + step);
                        if (s1.Top.Y <= y2)
                            tax = 1;
                    }
                }
                else if (y1 == y2)
                {
                    if(x1<x2)
                    {
                        s1.Top = new Point(s1.Top.X + step, s1.Top.Y);
                        s2.Top = new Point(s2.Top.X - step, s2.Top.Y);
                        if (s1.Top.X >= x2)
                            tax = 1;
                       
    
                    }
                    else
                    {
                        s1.Top = new Point(s1.Top.X - step, s1.Top.Y);
                        s2.Top = new Point(s2.Top.X + step, s2.Top.Y);
                        if (s1.Top.X <= x2)
                            tax = 1;
                    }
                }
                if(tax == 1)
                {
                    timer2.Enabled = false;//
                    timer1.Enabled = true;//计时器继续工作
                    getmap[pickRow, pickCol].Color = s2.Color;
                    getmap[dropRow, dropCol].Color = s1.Color;//交换颜色
                    pictureBox4.Invalidate();
                   if(changeFlag == 0)
                    {
                        if (!KillStar())//判断是否可以消除
                        {
                            //继续交换回来
                            s1 = new Star(getmap[pickRow, pickCol].Color, getmap[pickRow, pickCol].Size, getmap[pickRow, pickCol].Select, getmap[pickRow, pickCol].Top);
                            s2 = new Star(getmap[dropRow, dropCol].Color, getmap[dropRow, dropCol].Size, getmap[dropRow, dropCol].Select, getmap[dropRow, dropCol].Top);
                            getmap[pickRow, pickCol].Color = starcolor.;
                            getmap[dropRow, dropCol].Color = starcolor.;
                            pictureBox4.Invalidate();
                            timer1.Enabled = false;
                            timer2.Enabled = true;//重新交换
                            getmap[pickRow, pickCol].Select = 0;
                            ispic = 0;
                            changeFlag = 1;//这次是交换成功了
    
                        }
                        else
                        {
                            timer3.Enabled = true;//执行下落
                            pickRow = 0;
                            pickCol = 1;
                            ispic = 0;
                        }
                    }
                }
    
            }
    
            private void timer3_Tick(object sender, EventArgs e)//下落
            {
                for (int j=1; j<=width;j++)
                {
                    for (int i = height; i >= 2; i--)
                    {
                        if (getmap[i, j].Color == starcolor.)
                        {
                            for (int c = i; c >= 2; c--)
                                SwapStar(c, j, c - 1, j);
                            break;
                        }
                    }
                }
                Random myRand = new Random();
                for (int j = 1; j <= width; j++)
                {
                    if (getmap[1, j].Color == starcolor.)
                        getmap[1, j].Color = (starcolor)myRand.Next(1, 7);
                }
                pictureBox4.Invalidate();
                int tax = 0;
                for (int i = 1; i <= height; i++)
                {
                    for (int j = 1; j <= width; j++)
                    {
                        if(getmap [i,j].Color ==starcolor.)
                        {
                            tax = 1;
                            break;
                        }
                    }
                    if (tax == 1)
                        break;
                }
                if(tax == 0)
                {
                    if(!KillStar ())
                    {
                        timer3.Enabled = false;
                    }
                }
    
    
    
            }
    
            private void s3lable_Click(object sender, EventArgs e)
            {
    
            }
            public void SetCursor(Bitmap cursor, Point hotPoint)//自定义光标
            {
                int hotX = hotPoint.X;
                int hotY = hotPoint.Y;
                Bitmap myNewCursor = new Bitmap(cursor.Width * 2 - hotX, cursor.Height * 2 - hotY);
                Graphics g = Graphics.FromImage(myNewCursor);
                g.Clear(Color.FromArgb(0, 0, 0, 0));
                g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width,
                cursor.Height);
                this.Cursor = new Cursor(myNewCursor.GetHicon());
                g.Dispose();
                myNewCursor.Dispose();
            }
    
            private void pictureBox4_Paint(object sender, PaintEventArgs e)//绘制地图函数
            {
                if(gamestart == 1)
                {
                    ReGetMap(e.Graphics);
                    if(timer2 .Enabled ==true)
                    {
                        s1.Drawing(e.Graphics);
                        s2.Drawing(e.Graphics);
                    }
                }
            }
    
            private void Game_Load(object sender, EventArgs e)
            {
                Music("Music\\bj.wav");
                time = 0;
                score = 0;
                money = 0;
                gnum = 0;
                moneylable.Text = money.ToString();
                scorelable.Text = score.ToString();
                timelable.Text = time.ToString();
                snumlable.Text = gnum.ToString();
            }
    
            private void pictureBox5_Click(object sender, EventArgs e)//背包
            {
    
            }
    
            private void pictureBox6_Click(object sender, EventArgs e)//商城
            {
                Money m = new Money();
                //m.Show();
                if(m.ShowDialog()==DialogResult.OK)
                {
                    this.money += m.Num;
                    
                    moneylable.Text = money.ToString();
    
                }
               
            }
        }
    }
    
    

    3.充值,背包,教学界面

    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;
    
    namespace KillGame
    {
        public partial class Money : Form
        {
            public Money()
            {
                InitializeComponent();
            }
            private int num;
            public int Num
            {
                get { return num; }
                set { num = value; }
            }
    
    
            //private void label1_Click(object sender, EventArgs e)
            //{
            //    DialogResult reult=MessageBox.Show("是否要花费20元购买200枚金币?", "充值提醒", MessageBoxButtons.OKCancel);
            //    if(reult ==DialogResult.OK)
            //    {
            //        num = 200;
            //        MessageBox.Show("充值成功!");
            //    }
            //    else
            //    {
            //        this.Close();
            //    }
            //}
    
            private void button1_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                DialogResult reult = MessageBox.Show("是否要花费20元购买200枚金币?", "充值提醒", MessageBoxButtons.OKCancel);
                if (reult == DialogResult.OK)
                {
                    num = 200;
                    MessageBox.Show("充值成功!");
                }
                else
                {
                    this.Close();
                }
            }
        }
    }
    
    

    时间紧凑,略显粗糙,欢迎指出错误!

    展开全文
  • C# 读取DXF文件

    2005-06-07 14:14:00
    各为大哥那里有C# 读取DXF文件的资料。请告诉一下!急用谢了!

    各为大哥那里有C# 读取DXF文件的资料。请告诉一下!

    急用谢了!

    展开全文
  • C# WinForm开发系列

    2017-02-21 16:44:29
    这段时间用C#WinForm比较多,一般可查阅MSDN,还有就是博客园的C#氛围似乎还比较好~看到很多人分享了很多自己的学习经验~ 希望可以多学习别人的资料,转载过来,自己也方便查阅。 ...C# WinForm开发系列 - 文章...

    这段时间用C#WinForm比较多,一般可查阅MSDN,还有就是博客园的C#氛围似乎还比较好~看到很多人分享了很多自己的学习经验~

    希望可以多学习别人的资料,转载过来,自己也方便查阅。


    转载于博客园:http://www.cnblogs.com/peterzb/archive/2009/06/14/1502918.html

        该系列主要整理收集在使用C#开发WinForm应用文章及相关代码, 平时看到大家主要使用C#来开发Asp.Net应用,这方面的文章也特别多,而关于WinForm的文章相对少很多,而自己对WinForm一直比较感兴趣,这几年积累收藏了不少文章,现在整理一下分类推荐给大家,避免大家浪费大把的时间去找这方面的资料,因为找资料也是一件很累的事情,Google,Baidu一下,不断的点击,不断翻阅大量的博客文章,查找自己所需的.这个系列初步打算分入门介绍(开发环境搭建,.net基础概念), 基本控件使用(Label/Button/TextBox/ListBox/ListView/ProgressBar), DataGrid/DataGridView, TreeView, ComboBox, ADO.Net(DataTable/DataSet/SQL Server),GDI+(图表ZedGraph/OWC等使用,图像处理,控件自定义绘制),打印, 多线程(委托,事件,线程,异步处理,BackgroundWorker), XML/XSLT/XPATH,报表(RDLC,Excel,PDF,Word),File,Socket/WCF/Rometing/WebService, 打印, 剪贴板拖放操作, 正则表达式以及其它方面.文章及相关代码大部分搜集自网络,版权属于原作者!(我的弯路大家可以避免, 我的经验大家可以分享。)

     

    C# WinForm开发系列 - 开篇

     

    基础 - 常用控件

    C# WinForm开发系列 - CheckBox/Button/Label/ProgressBar

    C# WinForm开发系列 - TextBox

    C# WinForm开发系列 - ComboBox

    C# WinForm开发系列 - TreeView

    C# WinForm开发系列 - Color Pickers/DigitalClock/Calendar/LEDControl

    C# WinForm开发系列 - ListBox/ListView/Panel ( 2009-06-18 已完成 )

    C# WinForm开发系列 - ToolBar/OutlookBar/Tab/Wizard ( 2009-06-28 已完成 )

    C# WinForm开发系列 - Form/Window ( 2009-06-30 已完成 推荐 )

    C# WinForm开发系列 - WebBrowser ( 2009-07-12 已完成 )

    C# WinForm开发系列 - Controls ( 2009-07-12 已完成 )

    C# WinForm开发系列 - Open-Source Controls ( 2009-06-21 已完成 )

    控件 - Grid

    C# WinForm开发系列 - DataGrid

    [推荐]C# WinForm开发系列 - DataGridView

    C# WinForm开发系列 - DataGrid/DataGridView

    C# WinForm开发系列 - Grid Controls

    OutlookGrid:以Outlook样式分组和排列数据项

    高级 - 专题应用

    [推荐]C# WinForm开发系列 - Thread/Delegate/Event

    C# WinForm开发系列 - 图形图像处理

    C# WinForm开发系列 - GDI+

    C# WinForm开发系列 - OWC

    C# WinForm开发系列 - ZedGraph

    C# WinForm开发系列 - Chart Controls

    C#绘制立体三维饼状图(超酷)   [ 2009-06-18 添加 ]

    Web开发系列 - VML

    Web开发系列 - FusionCharts

    [转载] FusionCharts的研究

    Web开发系列 - EcSide

    Web开发系列 - Web Chart



         摘要: ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据.之所以使用ADO.NET名称,是因为Microsoft,希望 表明,这是在.NET编程环境中优先使用的数据访问接口. 它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式的支持,并支持 RICH XML.由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。   阅读全文

     

    C# WinForm开发系列 - File ( 2009-07-12 已完成 )

    C# WinForm开发系列 - Report(RDLC,Excel,PDF,Word,Crystal Report,SQL Reporting Services 2009-07-11 已完成 )

    C# WinForm开发系列 - Excel ( 2009-07-06 已完成 )

    C# WinForm开发系列 - Word ( 2009-07-06 已完成 )

    C# WinForm开发系列 - PDF ( 2009-07-05 已完成 )

    C# WinForm开发系列 - RDLC  ( 2009-07-08 已完成 )

    C# WinForm开发系列 - Reporting Services ( 2009-07-08 已完成 )

    C# WinForm开发系列 - Crystal Report ( 2009-07-11 已完成 )

    DB-->Excel/Word[DLL]

         摘要: 收集了一些打印方面文章, 包含WinForm, Asp.Net中使用, 有结合Excel/Word, 也有直接使用报表工具打印功能, Web打印采用css结合WebBrowse控件.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! )  阅读全文

     

    C# WinForm开发系列 - XML/XSLT/XPATH ( 2009-07-04 已完成 )

         摘要: XML在WinForm, Asp.Net, Java, AJAX开发等方面应用, 以及对XML文档基本操作,如XPath检索节点. 当前XML被广泛应用与配置保存, 简单数据存储, 跨平台数据传输, 其身影活跃于Web Services, AJAX开发技术应用中.  阅读全文

    xslt的简单使用[xml-->html]

    使用xml+asp.net打造简单的站点导航&管理站点友情链接

    C# WinForm开发系列 - Regular Expression ( 2009-07-04 已完成 )

        摘要:     正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式文章收集于此,以备不时之需。正则表达式能让更多的复杂的搜索和替换功能变成 简单的操作。基本说来,正则表达式是一种用来描述一定数量文本的模式。Regex代表Regular Express。主要有4个功能, 分别为查询匹配(Find, Match), 提取, 分割(Split)及替换删除(Replace).  阅读全文

    C# WinForm开发系列 - Socket/WCF/Rometing/Web Services  ( 2009-07-03 已完成 )

    [转载]C#实现的可复用Socket接收/发送共享缓冲区类

    [转载]异步Socket服务器与客户端(An Asynchronous Socket Server and Client)

    [转载]可扩展多线程异步Socket服务器框架EMTASS 2.0

    [转载]DrawMe - 使用WPF/WCF创建的网络白板聊天程序

    补充 - 其它专题

    C# WinForm开发系列 - Visual Studio

    C# WinForm开发系列 - Tools

    C# WinForm开发系列 - 疑难杂症

    C# WinForm开发系列 - 串口通信/GPS/GIS应用开发

    C# WinForm开发系列 - P/Invoke, WMI等

    C# WinForm开发系列 - 控件开发与使用

    C# WinForm开发系列 - 特殊应用

    C# WinForm开发系列 - 书籍介绍

    C# WinForm开发系列 - 多媒体/流媒体应用

     

    C# WinForm开发系列 - 系列文章

    C# WinForm开发系列 - 资源集锦

    C# WinForm开发系列 - 性能优化

    C# WinForm开发系列 - 安装部署

    C# WinForm开发系列 - 概述篇

    C# WinForm开发系列 - 总结篇


    资源 - .Net学习

    .net学习资料

    Windows Mobile入门

    Windows Mobile开发文章收藏

    Oracle开发与使用文章收藏

    博客园   CSDN论坛

    MSDN 中文网站

    天极网开发者网络

    C#开源资源大全

    Windows Forms .NET

    Windows Forms FAQ

    Others

    也用C#做个视频监控客户端来玩玩

    手机视频监控系统开发系列文章

    流媒体与视频监控开发相关博客文章系列收集

    视频监控相关文章

    移动开发资源集锦

    Symbian开发系列 - 入门篇

    作者:peterzb个人开发历程知识库 - 博客园
    出处:http://peterzb.cnblogs.com/
    文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 



    上述内容为原作者内容~


    展开全文
  • C# 命名空间的引用

    2019-11-11 20:23:37
    命名空间的引用
  • 大家应该都知道,C语言定义的变量的作用范围是从定义的位置起,到特定... 那么,进入正题了,C语言所谓的全局变量在多个.c文件中到底该怎样使用? 首先说一下全局变量的特性: 全局变量可以定义在一个.c文件中,...
  • 最近一个同学在看java的代码时问的一个关于C语言的问题,看着其实挺简单的,可是我也是好久没有碰C语言了当时就把我给难住了,后来又分析了一下,现在把它写出来 代码如下 #include main() { int a=4,b=2,c=3; int d=...
  • C语言 输入一个华氏温度F,要求输出摄氏度C。 公式为: C=5/9(F-32) 代码: #include <stdio.h> void main(){ float C,F; printf(“Input F:”); scanf("%f",&F);//输入华氏度 C=5.0/9.0*(F-32);//换算...
  • 文章目录【CC语言判断字符串是否是int型正整数前言一、代码二、结果 【CC语言判断字符串是否是int型正整数 前言 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此程序功能...
  • ARM汇编与C语言混合编程之汇编调用C函数 调用没有参数的函数 调用有参数的函数 总结 本文所用硬件平台为S3C2440开发板。通过一个点亮数码管的程序说明ARM汇编调用C函数的方法。 根据C语言中函数参数的个数,可以将...
  • 今天突然用printf("%s",str);//str 是一个string 的时候突然出现乱码,就查了一下为什么。任何时候只有自己敲代码的时候才能发现,, ...这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类
  • c语言求ax^2+bx+c=0方程的解。#include <stdio.h>#include <math.h>#define m 0.000001int main(){ float a,b,c,x,x2,n,q,p; scanf ("%f%f%f",&a,&b,&c); n=b*b-4*a*c;...
  • 最初学习C语言用的是Visual C++6.0,后来还用过一些IDE,复制粘贴都可以用鼠标对目标进行选择即可。但在Linux系统里,需要熟练掌握在Terminal里编写C语言程序,进行编译调试。本章主要介绍在Linux的终端下编写C程序...
  • 我只是一个平凡的C语言程序员,请你原谅我的笨,我愿给你我的心。我不会甜言蜜语,只会用C说爱你。     “浪迹过你的浪迹,珍惜着你的珍惜”         “月光是海的梦境,而你是我的远行”       “那些花...
  • 1.1 C语言的发展简史和特点  1.2 C语言程序的结构与书写规则  1.3 C语言的语句和关键字  1.4 Turbo C V2.0的基本操作  1.1 C语言的发展简史和特点  1.C语言的诞生与发展  (1)在C语言诞生以前,系统...
1 2 3 4 5 ... 20
收藏数 9,814,395
精华内容 3,925,758
关键字:

c