精华内容
下载资源
问答
  • C语言程序设计学习日志(一)

    千次阅读 2017-12-17 17:08:27
    程序设计也是我感兴趣的一件事情,今天开始写博客,其中的内容是一些稍微有点意思的练习题目(都是简单的那种)和一些知识点的理解,更多的是为了整理思路和记录知识。 题目内容: 逆序的三位数:程序...

    程序设计也是我感兴趣的一件事情,今天开始写博客,其中的内容是一些稍微有点意思的练习题目(都是简单的那种)和一些知识点的理解,更多的是为了整理思路和记录知识。


    题目内容:

    逆序的三位数:程序每次读入一个正三位数,然后输出逆序的数字。

    注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

    提示:用%10可以得到个位数,用/100可以得到百位数…。将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果。

    注意:除了题目要求的输出,不能输出任何其他内容,比如输入时的提示,输出时的说明等等都不能。这道题目要求输出逆序的数字,程序就只能输出这个数字,除此之外任何内容都不能输出。

    输入格式:
    每个测试是一个3位的正整数。
    如:123

    输出样例:
    321

    分析:

    用%10可以得到个位数,用/100可以得到百位数,除以10再%10就得到了其十位数,小结:(所以也就两种情况,直接用除获得最高位,或者用求余得其最低位,其他位皆是转换成这两种情况再对应操作的)。将这样得到的三个数字合起来:百位*100+十位*10+个位,就得到了结果。

    代码如下:

    #include<stdio.h>
    int main()
    {
    int a,bai,shi,ge;
    scanf("%d",&a);
    bai=a/100;
    shi=a/10%10;
    ge=a%10;
    a=ge*100+shi*10+bai;
    printf("%d",a);
    return 0;
    }

    而下面这道题就是在第一道题目上的一个拓展延伸:

    题目内容:

    你的程序要读入一个整数,范围是[-100000,100000]。然后,用汉语拼音将这个整数的每一位输出出来。
    如输入1234,则输出:yi er san si
    注意,每个字的拼音之间有一个空格,但是最后的字后面没有空格。当遇到负数时,在输出的开头加上“fu”,
    如-2341输出为:fu er san si yi

    输入格式:
    一个整数,范围是[-100000,100000]。

    输出格式:
    表示这个整数的每一位数字的汉语拼音,每一位数字的拼音之间以空格分隔,末尾没有空格。

    输入样例:
    -30

    输出样例:
    fu san ling

    分析:先用计数器定位输入的数是多少位,开始循环:打印出最高位,接着拆掉最高位,同时计数器跟着少一位以此对应拆完之后的新数值,继续打印新的最高位以及拆掉新的最高位……这样一直循环操作直到最后一位打印出来。

    • 判断操作结束是根据计数器的值,这就保证了从一而终。
    • 默认每一位都打印空格,当计数器对应到最后一位的时候才不打印空格。

    代码如下:

    #include<stdio.h>
    int main() {
        int x, t,j=1;
        scanf_s("%d", &x);//输入变量
        if (x < 0) {//若为负数,则打印fu ,并且转换成其绝对值再来处理
            printf("fu ");
            x*=-1;
        }
            t = x;//t是用来拆分打印
            while (t > 9) {//定位x的位数
                t = t / 10;
                j *= 10;
            }
            //定位完毕,开始拆分、打印的循环操作
            while (j > 0) {//拆最高位,每拆一次就打印一次
                t = x / j;
            switch (t) {
            case 0:printf("ling");break;
            case 1:printf("yi");break;
            case 2:printf("er");break;
            case 3:printf("san");break;
            case 4:printf("si");break;
            case 5:printf("wu");break;
            case 6:printf("liu");break;
            case 7:printf("qi");break;
            case 8:printf("ba");break;
            case 9:printf("jiu");break;
            }
            if(j>1)//若不为最后一位数就打印一次空格
            printf(" ");
            //拆掉最高位
            x = x%j;
            j /= 10;//每拆去一个最高位就缩小10倍对应新的最高位
        }
        return 0;
    }
    展开全文
  • C语言日志分级设计

    千次阅读 2018-09-24 14:19:30
    C语言是一门面向过程的编程语言,其程序设计流程就是根据上层的业务需求编写一系列函数,中间辅以if、for、while、switch等流程控制语句来实现各种数据的处理。从程序可靠运行方面考虑,我们希望程序的执行过程...

    前言

    C语言是一门面向过程的编程语言,其程序的设计流程就是根据上层的业务需求编写一系列函数,中间辅以if、for、while、switch等流程控制语句来实现各种数据的处理。从程序可靠运行方面考虑,我们希望程序的执行过程可以被程序员可控了解,这在程序开发过程中以及程序的后期维护都至关重要。能实现这种功能的最好方法就是在程序运行的关键节点添加日志打印追踪了。一个良好的日志打印输出设计可以使程序员无论是在程序开发还是后期的维护都能够快速定位到程序运行出错的问题,提升程序员处理bug的能力。一般在开法测试阶段,我们希望能够尽可能输出程序运行的关键信息,以帮助修复完善软件开发初级时的bug,但是后期软件发布后,我们又希望只保留尽可能少的关键打印输出,以提高程序运行效率。对于这种矛盾的需求我们可以使用分级的日志打印输出来实现。

    日志分级概念

    参考一些诸如Java等高级语言的分级日志设计,我们根据对程序运行信息的类型把控,可以把日志分为5个级别DEBUG、INFO、WARN、ERROR、FATAL ERROR。

    DEBUG:主要用于程序开发测试阶段的打印输出,用于验证程序的设计逻辑是否满足上层应用的设计需求,在经过测试检验后的发布程序可以把它关掉。

    INFO:这个级别的打印输出是用来告诉测试人员或者开发人员一些特殊的信息,比如一些关键数据的操作。

    WRAN:这是一种警告的打印输出,它一般是用来输出诸如用户输入错误的数据之类的警告打印,这个级别的打印输出在程序发布后也建议保留,以方面后期程序的维护追踪。

    ERROR:运行出错的打印,优秀的程序设计都具有很好的容错性能,在程序运行出错的时候能够自己修正回来,举个例子,在网络编程中遇到数据请求错误,我们可以启用重连机制的方法去试图解决程序运行出错的问题。这个级别的打印在发布的软件不可关闭,否则无法从发布软件中获取一些反馈信息来指导我们新的程序优化设计。

    FATAL ERROR:程序运行遇到这种级别的问题,很难修复,一般伴随着程序的闪退或重启,此时FATAL ERROR的打印则非常关键了,可以帮助我们定位到程序跑飞的原因,FATAL ERROR级别的打印在任何时刻都不可以关闭。

    日志分级设计

    在C语言中,分级日志的输出控制实现可以借助强大的宏来做;日志输出分级的配置则可以利用程序的运行参数来指定或者使用配置文件等其他手段来实现;对输出内容的格式规范控制则一般在每行开头加上实时时间、程序运行的文件、函数、行数等信息,以实现快速查询定位;日志内容输出的位置可以是串口打印或者log信息文件,推荐使用log文件保存。

    C语言中常用的 #、##和__VA_ARGS__  等宏简介

    1.#

    假如希望在字符串中包含宏参数,ANSI C允许这样作,在类函数宏的替换部分,#符号用作一个预处理运算符,它可以把语言符号转化程字符串。例如,如果x是一个宏参量,那么#x可以把参数名转化成相应的字符串。该过程称为字符串化(stringizing)。

    //x的平方可以这样实现
     #incldue <stdio.h>
     #define PSQR(x) printf("the square of" #x "is %d.\n",(x)*(x))
    

    2.##

     ##运算符可以用于类函数宏的替换部分。另外,##还可以用于类对象宏的替换部分。这个运算符把两个语言符号组合成单个语言符号。例如:

    #include <stdio.h>
    #define XNAME(n) x##n
    #define PXN(n) printf("x"#n" = %d\n",x##n)
    #define WriteLog2(level,format, arg...) \
    log_mesg_printf2( __FILE__,__FUNCTION__, __LINE__, level, format, ##arg)// 当arg...是空参数时,##运算符把它前面的,号“吃”掉了,以解决编译问题。
    
    int main(void)
     {
         int XNAME(1)=12;//int x1=12;
         PXN(1);//printf("x1 = %d\n", x1);
         return 0;
     }
    

    3.可变参数宏 ...和_ _VA_ARGS_ _

     __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代表的字符串。比如:

    #define PR(...) printf(__VA_ARGS__)
     int main()
     {
         int wt=1,sp=2;
         PR("hello\n");
         PR("weight = %d, shipping = %d",wt,sp);
         return 0;
     }
    

    实现样例

    样例很简单,通过利用日志分级的思想和可变参数宏来实现功能,整个样例代码必要的时候可以通过编译选项来控制是否需要编译日志输出,以缩小代码;此外在调测阶段,则可以利用配置参数来实现不同等级的日志打印输出。

    /****************************************************************
    ***Author: lishuangliang		                      ***
    ***Email: lishuangliang@outlook.com			      ***
    ***Date: 2018-09-24					      ***	
    ***Festivsl: Mid-autumn			          ***								
    *****************************************************************/
    #include <string.h>  
    #include <errno.h>  
    #include <stdio.h>  
    #include <stdint.h>  
    #include <stddef.h>  
    #include <stdlib.h>  
    #include <sys/stat.h>  
    #include <sys/types.h> 
    #include <stdarg.h>
    #include <stdbool.h>
    #include <sys/un.h>
    #include <sys/param.h>
    #include <time.h> 
    
    //通过宏来控制是否打开日志输出
    #ifdef DISABLE_DEBUG
    #define real_debug_level 0
    #else
    #define real_debug_level debug_level
    #endif
    
    
    //定义日志输出级别
    #define 	FATALEER    (1<<0)
    #define 	ERROR       (1<<1)
    #define 	WRAN        (1<<2)
    #define 	INFO      (1<<3)
    #define 	DEBUG    (1<<4) 
    
    #define WriteLog(level,mesg) log_mesg_printf(__FILE__, __LINE__, __func__, level, mesg)
    #define WriteLog2(level,format, arg...) log_mesg_printf2( __FILE__,__FUNCTION__, __LINE__, level, format, ##arg)
    
    int debug_level = 0;
    
    struct dbg {
        int level;
        const char *mesg;
    };
    
    static struct dbg debug_level_table[] = {
        {FATALEER, "Config The Log Level as FATALEER"},
        {ERROR, "Config The Log Level as ERROR"},
        {WRAN, "Config The Log Level as WRAN"},
        {INFO, "Config The Log Level as INFO"},
        {DEBUG, "Config The Log Level as DEBUG"}
    };
    
    void print_debug_usage(void)
    {
        struct dbg *p;
    
        fprintf(stderr,
                "  To calculate the debug level, logically 'or'\n"
                "  some of the following values together to get a debug level:\n");
        for (p = debug_level_table;
             p <
             debug_level_table +
             (sizeof (debug_level_table) / sizeof (struct dbg)); p++) {
            fprintf(stderr, "\t%d:\t%s\n", p->level, p->mesg);
        }
        fprintf(stderr, "\n");
    }
    
    void parse_debug(char *foo)
    {
        int i;
        struct dbg *p;
    
        if (!foo)
            return;
        fprintf(stderr, "Before parse_debug, debug_level is: %d\n",
                debug_level);
    
        i = atoi(foo);
        if(i == -1) 
    	{
    		/* error */
    		fprintf(stderr, "Invalid level specified.\n");
    		exit(0);
        }    
        for (p = debug_level_table;p < debug_level_table +(sizeof (debug_level_table) / sizeof (struct dbg)); p++)
    	{
            if (i > 0) {
                if (i & p->level) {                
                    fprintf(stderr, "Enabling %s debug level.\n",p->mesg);
                    debug_level |= p->level;
                }
            } 
        }
        fprintf(stderr, "After parse_debug, debug_level is: %d\n",
                debug_level);
    }
    
    char *get_commonlog_time(void)
    {
    	char *p;
    	char sys_time[64];	
    	time_t tnow = time(NULL);	
    	struct tm *ptm = localtime(&tnow);
    	
    	memset(sys_time, 0 ,sizeof(sys_time));
    	sprintf(sys_time, "%04d-%02d-%02d %02d:%02d:%02d",ptm->tm_year+1900 ,ptm->tm_mon+1 ,ptm->tm_mday ,ptm->tm_hour ,ptm->tm_min ,ptm->tm_sec);
    	//return (char *)sys_time;
    	p = sys_time;
    	return p;
    }
    
    void log_mesg_printf(const char *file, int line, const char *func,int level, const char *mesg)
    {
        if(real_debug_level & level)
    	{
    		int errno_save = errno;
    		fprintf(stderr, "%s%s:%d (%s) - ", get_commonlog_time(), file, line, func);
    		errno = errno_save;
    		perror(mesg);
    		errno = errno_save;
    	}	  
    }
    
    void log_mesg_printf2(const char *file,const char *func,const int line, int level, char *fmt,...)
    {
    	if(real_debug_level & level)
    	{
    		char msg_buf[20*1024];
    		va_list ap;
    		va_start(ap,fmt);
    		sprintf(msg_buf,"[%s  %s:%s:%d] ",get_commonlog_time(),file,func,line);
    		vsprintf(msg_buf+strlen(msg_buf),fmt,ap);
    		fprintf(stderr,"%s\n",msg_buf);		
    		va_end(ap);
    	}
    }
    
    int main(int argc, char* argv[])
    {
    	
    #ifdef DISABLE_DEBUG
    	print_debug_usage();
    	parse_debug(argv[1]);//解析日志打印输出级别
    #endif
    	//不使用可变参数解析样例
    	WriteLog(DEBUG,"I want to DEBUG");
    	WriteLog(INFO,"I want to INFO");
    	WriteLog(WRAN,"I want to WARN");
    	WriteLog(ERROR,"I want to ERROR");
    	WriteLog(FATALEER,"I want to FATALEER");
    	//使用可变参数解析样例
    	WriteLog2(DEBUG,"I want to %s which level is %d","DEBUG",DEBUG);
    	WriteLog2(INFO,"I want to %s which level is %d","INFO",INFO);
    	WriteLog2(WRAN,"I want to %s which level is %d","WRAN",WRAN);
    	WriteLog2(ERROR,"I want to %s which level is %d","ERROR",ERROR);
    	WriteLog2(FATALEER,"I want to %s which level is %d","FATALEER",FATALEER);
    	
    	return 0;
    }

    linux下样例运行的效果

     总结

    日志分级源代码已经托管码云,编译运行没有任何warning,点击此下载。日志功能设计的好坏影响整个程序工程的开发效率和后期的运维,分级日志设计则能够很好解决此问题。通过分级日志的分析,可以快速定位问题、优化维护程序。中秋佳节,总结整理,转载说明出处。

    参考文献

    https://www.cnblogs.com/yulinfeng/archive/2017/10/18/7689388.html

    https://blog.csdn.net/bat67/article/details/77542165

    https://yq.aliyun.com/articles/399064

    展开全文
  • Problem Description You have a computer literacy course in your university. In the computer system, the login/logout records of all PCs in a day are stored in a file. Although students may use two or...
  • 本人参考资料:Mooc 浙江大学 翁恺以及高等教育出版社《C语言程序设计》 程序设计基本概念 程序是用特殊的编程语言写出来表达如何解决问题的,不是用编程语言来和计算机交谈,而是描述要求计算机如何做事的过程或...

    萌新第一次写博客,作者本人是一个普通的计算机类大学生,在这不得不感概,大学的学习纯靠上课是不够的。在浏览了众多大佬的文章后,才发现自身对自己的职业规划和专业技能不甚了了。自此,打算开始写博客,学C以及Java。在此,编程软件推荐Dev C++,点此下载
    本人参考资料:Mooc 浙江大学 翁恺以及高等教育出版社《C语言程序设计》

    程序设计基本概念

    程序是用特殊的编程语言写出来表达如何解决问题的,不是用编程语言来和计算机交谈,而是描述要求计算机如何做事的过程或方法。

    程序设计一般包含以下几个部分:
    (1)确定数据结构 (2)确定算法 (3)编码 (4)调试 (5)整理并写出文档资料

    程序的执行:
    解释:借助一个程序,那个程序能试图理解你的程序,然后按照你的要求执行。
    编译:借助一个程序,就像一个翻译,把你的程序翻译成计算机能懂的语言——机器语言——写的程序,然后这个机器语言写的程序就可以执行了。
    语言并无编译/解释之分,只是两种常用的执行方式而已。解释语言有特殊的计算能力如:Python 编译语言有确定的运算性能如:C语言
    C源程序后缀为.C的文件经过编译后生成一个后缀为.OBJ的二进制文件(称为目标文件),然后经“连接程序”(Link)的软件将.OBJ文件与C语言提供的库函数连接起来生成一个后缀为.EXE的可执行文件。

    结构化程序由三种基本结构组成
    (1)顺序结构

    Created with Raphaël 2.2.0开始语句1语句2结束

    (2)选择结构

    Created with Raphaël 2.2.0开始判断表达式语句1结束语句2yesno

    (3)循环结构,分为当型循环和直到型循环
    当型循环

    Created with Raphaël 2.2.0开始判断表达式循环体结束yesno

    直到型循环

    Created with Raphaël 2.2.0开始循环体判断表达式结束yesno

    算法是指为解决某个特定问题而采取的确定且有限的步骤。算法具有以下五个特性:
    (1)有穷性 (2)确定性 (3)可行性 (4)有零个或多个输入 (5)有一个或多个输出

    第一个程序

    #include<stdio.h>								/*命令行*/
    
    int main()										/*函数名*/
    {												/*函数体*/
    	printf("2000+20+7+12=%d\n",2000+20+7+12);	
    	
    	return 0;
    }
    

    建议敲代码时勿开中文输入法,可能会引发错误,比方说程序不认中文的分号“;”。

    程序中的四则运算:

    四则运算 C符号 意义
    + +
    - -
    × *
    ÷ /
    % 取余
    () () 括号
    展开全文
  • C程序设计的初步知识 #include<stdio.h> int main() { const int AMOUNT = 100; int price = 0; printf("请输入金额(元);"); scanf("%d", &price); int change = AMOUNT - price; printf("找零%...

    C程序设计的初步知识

    #include<stdio.h>
    
    int main()
    {
    	const int AMOUNT = 100;
    	int price = 0;
    	printf("请输入金额(元);");
    	scanf("%d", &price);
    	int change = AMOUNT - price;
    	printf("找零%d元。\n", change);
    	return 0;
    }
    

    标识符、常量和变量

    C语言中,按一定规则命名的符号称为标识符
    标识符的命名规则:标识符可以由字母、数字和下划线组成,并且第一个字符必须为字母或下划线。
    例如:area、PI、long
    标识符可分为以下三类:
    (1)关键字(有专门的用途,不能再用作变量名或函数名),如int、double
    (2)预定义标识符,如printf、define
    (3)用户标识符(由用户根据需要定义的标识符,应做到“见名知义”),如work、green

    程序运行过程中,其值不能改变的量称为常量,在C语言中,有整型常量、实型常量、字符常量、和字符串常量等类型。
    整型常量和实型常量又称为数值型常量,有正值和负值之分。

    符号常量:用一个符号名来代表一个常量。这个符号名必须在程序中特别’指定‘且符合标识符命名规则。

    变量:在程序运行中其值可以改变的量。程序中用到的变量必须有变量名且符合标识符命名规则。所有变量必须先定义后使用。

    整型数据

    整型常量:在C语言程序中,整型常量可以用十进制、八进制、十六进制等形式表示。(八进制数开头必须是数字”0“,如010、011。十六进制数用数字0和字母x(或大写字母X)开头,如0x10、0Xde)
    只有十进制数可以是负数,而八进制和十六进制数只能是整数。
    整型常量又分为短整型、基本整型、长整型、无符号型

    整型变量也分为基本型、短整型、长整型和无符号型。
    基本型的整型变量用类型名关键字int进行定义,例如:

    int k;	/*定义k为整型变量*/
    

    可在定义变量的同时给变量赋初值,也称变量初始化。

    整型数据分为基本型(int)、短整型(short int)、长整型(int或long int)、无符号型(unsigned)。(若不指定变量为无符号型,则变量隐含为有符号型(signed))

    无符号常量不能表示成小于0的负数,对于一个有符号数,其中最高位(最左边的一位)为符号位。

    实型数据

    实型常量又称为实数或浮点数。有两种表现形式
    (1)小数形式,如:0.1、.123、123. (小数形式表示的实型常量必须要有小数点)
    (2)指数形式,如数学中的指数形式。2.3026可表示为2.3026e0、23.023E-1 (字母e或E之前必须要有数字,且e或E后面的指数必须为整数)

    实型变量分为单精度型(float)和双精度型(double)

    算术表达式

    程序中的四则运算:

    四则运算 C符号 意义
    + +
    - -
    × *
    ÷ /
    % 取余
    () () 括号

    求余运算符的运算对象只能是整形
    运算符的优先级如下:
    在这里插入图片描述
    双目运算符两边运算数的类型一致,则所得结果与运算数的类型一致。若类型不一致则系统自动进行类型转换

    只有单目运算符”+“和”-“的结合性是从右到左,其余为从左到右

    强制类型转换表达式:
    (类型名)(表达式)

    赋值表达式

    变量名=表达式,如:x = y;
    应读作”把右边变量的值赋予左边变量“而不是”x等于y

    复合赋值符:+=、-=、*=、%=、如n += m等价于n = n + m

    在赋值运算中,只有赋值号右侧表达式的类型与左侧变量的类型完全一致时,赋值操作才能进行。

    自加运算符”++“和自减运算符”- -“可以为前缀形式也可以为后缀形式,结合方向自右向左。

    i++先取i值再进行增1运算,++i先进行增1运算再取i值

    展开全文
  • C语言学习日志1!

    千次阅读 2005-03-30 23:06:00
    人家都说谭浩强的那本C语言程序设计写得不错,前几天去图书馆借了一本,回家想好好看看,看了前几章,确实写得不错,用它书中头一页的内容简介的话说是:“本书内容新颖,体系合理,逻辑性强,文字流畅,通俗易懂,...
  • 日志打印在大型的项目中是必不可少的,程序崩溃等等的分析之来源,今天花了一天写了个日志打印功能,分享出来看看大家有没有什么建议 一、思路 其实是参考着项目前人已经写好的一个日志打印功能自己照虎画猫写出来的...
  • 向对象发送一个请求,但是并不知道该请求的具体接收者是谁,具体的处理过程是如何的,只知道在程序运行中指定具体的请求接收者即可,对于这样将请求封装成对象的我们称之为命令模式。所以命令模式将请求封装成对象,...
  • 基于c语言设计的社区视频监控系统

    热门讨论 2010-04-10 12:25:28
    在加强社区内部的管理中,拥有可以对社区内部进行监控的系统可以节省下来很大一部分人力,并且比...系统主界面如图1.1所示,本视频监控系统主要实现了云台控制、快照和录像、录像回放、定时自动监控、监控管理及日志
  • 是一个解析IP数据包的源代码程序 以命令行式运行 如 ip3 logfile.txt ,其中ip3是程序名,而logfile.txt则代表记录结果的日志文件 同时别忘了在工程里的setting项中的linking中导入ws2_32.log
  • 向对象发送一个请求,但是并不知道该请求的具体接收者是谁,具体的处理过程是如何的,只知道在程序运行中指定具体的请求接收者即可,对于这样将请求封装成对象的我们称之为命令模式。所以命令模式将请求封装成对象,...
  • JAVA和C语言的区别

    2020-12-21 17:35:47
    JAVA和C语言的区别 (2010-02-02 00:00:00) 转载▼ 标签: java和c ... 分类:日志 ... JAVA和C语言都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态...它是在对多种程序设计语言...
  • 学习C语言程序设计,我们可以选择很多种开发环境,例如TC、VC或Eclipse等等,如果希望在学习C语言的同时,一同熟悉一下Atmel Studio开发环境,那么本篇日志就可以帮到你。本篇日志介绍了只把Atmel Studio当作C语言...
  • Linux程序设计第四章

    2013-10-15 10:05:43
    前几天因为一些事耽搁了,今天学习第四章。 本章将学习: 1.向程序传递参数 ...X/open 规范定义了命令行选项的标准用法.,同时定义了在C语言程序中提供命令行开关的编程标准接口:getopt 函数. #include int
  • 运用链表实现需求,学生通讯录基本信息主要包括:学号、姓名、性别、所属院系、专业、通讯地址、电话、QQ号、Email...本程序操作界面良好,进行了足够的防御性设计,具有较强的健壮性。供学习C语言的学生在课设时参考。
  • “要求编制程序, 监控本机网卡, 捕获一段时间内网络上的 IP 数据包, 将其写入日志文件中, 或用图形表示出来”</p><p>大二课程设计,要求不严格,功能可以不全面,只需要使用已有的库函数实现即可</p><p>Win10环境,...
  • Linux程序设计 第4版.haozip01

    热门讨论 2012-11-05 00:24:09
    Linux程序设计 分卷文件共有以下2个: Linux程序设计 第4版.haozip01.zip Linux程序设计 第4版.haozip02.zip 基本信息 原书名: Beginning Linux Programming 原出版社: Wrox 作者: (英)Neil Matthew Richard ...
  • Linux程序设计 第4版.haozip02

    热门讨论 2012-11-05 00:29:32
    Linux程序设计 分卷文件共有以下2个: Linux程序设计 第4版.haozip01.zip Linux程序设计 第4版.haozip02.zip 基本信息 原书名: Beginning Linux Programming 原出版社: Wrox 作者: (英)Neil Matthew Richard ...
  • 日志系统的设计模式

    千次阅读 2016-02-16 09:44:08
    从事服务器程序开发的工程师们,几乎不可避免地需要使用到日志系统(Logging System)。 如果从头开发一个服务器程序,我们有若干开源的日志系统可供选择,例如:Java语言中,Log4j是个不错的选择;Python语言中,...
  • 按照自己定下来的学习计划,现在应该开始学习《Linux程序设计了。 这一周的速度不算快,学完了前五章,173页的内容而已,我对于Shell Scripts的看法改改观了很多,并且对于C语言的认识真真正正的提升了不少。 ...
  • c语言的栈和队列的知识编写出具有定时功能停车场的程序。 1.车辆出栈 2.出去的车进来 3.等候队列进来。 停车场的初步设计分为:停车栈,让路栈,等候车栈,等候车栈是链式存储 。 二.今日任务完成情况 今日...
  • 学习日志

    2018-07-09 22:49:57
    数据类型,运算符,简单的程序设计今日任务完成情况本日任务已经已经按计划完成1.学习了不同的数据类型的不同作用和长度2.学习了使用sizeof以及strlen来求字符长度3.学习了c语言中/、%、&lt;&lt;、&gt;&...
  • 程序设计文档、程序使用说明书。</p><p>(三)</p><p>代码要求</p><p>(1)代码风格良好,易维护:各个功能采用模块化设计(如使用函数等);代码结构清晰,有规范的空格、空行、缩进结构;必要的地方有简洁合理的注释等...
  • 这段时间一直都在忙Fight Travel的UI,原本UI不是我来做的,结果我们组应该要做UI的那个人打酱油去了,所以现在就由我来做...素材方面下了挺大功夫的,要不是大一的时候参加第三届“周立功”C语言程序设计大赛做的那个
  • Shell既是一种命令语言,又是一种程序设计语言。在Linux系统中我们经常使用到Shell脚本进行功能实现,本章使用Shell脚本对日志关键字进行监控并且在监控异常时进行邮件的自动告警。 一、安装邮件服务器 下载地址...
  • 2015-1-26 工作日志

    2015-01-26 22:10:31
    3、完善程序设计杂志订阅管理系统 效率太低,写程序的速度太慢,其实主要还是 自己对C语言文件和链表这一部分的内容 掌握的不好,写的程序很多都需要重新再写 应该认真学习书本,将自己掌握不好的部分反复练习...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

c语言程序设计日志

c语言 订阅