【C语言】 “小小计算器”基本功能实现_小小计算器c语言-程序员宅基地

技术标签: 学习  算法  c语言  源码软件  

先放一张最终成果图

 以下为具体的基本功能实现要求,大伙可以自由跳转到需要的地方观看,源码放在了文末

目录

实验1、“小小计算器”基本功能实现(1) 

实验2、“小小计算器”基本功能实现(2)

​​​​​​​实验3、“小小计算器”基本功能实现(3) 

​​​​​​​实验4、小小计算器”基本功能实现(4)

​​​​​​​实验5、“小小计算器”基本功能实现(5)

​​​​​​​实验6、“小小计算器”基本功能实现(6)

​​​​​​​实验7、“小小计算器”基本功能实现(7)

​​​​​​​实验8、“小小计算器”基本功能实现(8)

​​​​​​​实验9、“小小计算器”基本功能实现(9)

​​​​​​​实验10、“小小计算器”基本功能实现(10)

​​​​​​​实验11、“小小计算器”基本功能实现(11)

​​​​​​​实验12、“小小计算器”基本功能实现(12)

​​​​​​​实验13、“小小计算器”输出结果链表存储(13)

以下为源码片段

以下为源码下载链接:



实验1、“小小计算器”基本功能实现(1) 

(1)实验目的

通过该实验,让学生理解程序和程序设计的含义,掌握C语言的基本概念以及一个C程序的组成要素,熟悉VC开发环境的基本操作,掌握VC环境下开发程序的操作流程,对printf函数的简单使用有个感性认识。

(2)实验内容

编写程序,在屏幕上输出以下内容:

     **************************

*        小小计算器       *

**************************

​​​​​​​实验2、“小小计算器”基本功能实现(2)

(1)实验目的

通过该实验,进一步让学生熟练掌握printf函数的功能,能实现显示不同类型的数据,让学生掌握基本数据类型、变量的命名和常量的定义的概念,能熟练掌握变量和常量使用。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

            *          小小计算器             *

            *          1 加法                 *

            *          2 减法                 *

            *          3 乘法                 *

            *          4 除法                 *

            *          5 取模运算             *

            *          6 计算圆面积           *

            ***********************************

② 定义几个变量,并赋初值,分别进行加法、加法、乘法、除法、取模运算;

③ 定义常量PI等于3.14, 计算给定半径的圆面积,将计算结果分别赋值给一个double类型和int类型的变量,掌握C中的数据类型转换,并将各个计算结果在屏幕上输出。

(3)验收/测试用例

假设程序中定义变量并赋初始值如下:

int a=8, b=2, c=0, r=2;

double t;

程序运行后,在屏幕上输入如下:

    a+b的结果是:10

    a-b的结果是:6

    a*b的结果是:16

    a/b的结果是:4

    圆面积整数结果是12

    圆面积是12.560 000

​​​​​​​实验3、“小小计算器”基本功能实现(3) 

(1)实验目的

通过该实验,进一步掌握printf和scanf函数的应用,加深对C中数据类型转换的理解。

(2)实验内容

在实验2的基础上,实现用scanf从键盘上输入数据,进行相应的运算,并将结果在屏幕上输出。要求实现加法、减法和取模运算时,输入数据类型为整数,并将运算结果的10进制、8进制和16进制形式输出;乘法、除法运算的输入数据均为float,计算结果分别以小数形式和指数形式输出;求圆面积输入的数据类型为double,正常输出结果,同时还要求在输出要求保留两位小数的结果。

在实验过程中,要求结合课本把scanf和printf的各种形式的格式控制都要练习到,从而掌握这两个函数的使用。

(3)验收/测试用例

  1. 加法

输入:   5, 15

输出:   加法结果的十进制形式是:20

         加法结果的八进制形式是:24

加法结果的十六进制形式是:14

  1. 减法

输入:   5, 15

输出:   减法结果的十进制形式是:-10

         减法结果的八进制形式是:3777777766

减法结果的十六进制形式是:fffffff6

  1. 取模

输入:   10, 7

输出:   取模结果的十进制形式是:3

         取模结果的八进制形式是:3

取模结果的十六进制形式是:3

  1. 乘法

输入:   2000.5,6

输出:   乘法结果的小数形式是:12003.000000

         乘法结果的指数形式是:1.200300e+004

  1. 除法

输入:   120,6

输出:   除法结果的小数形式是:20.000000

         除法结果的指数形式是:2.000000e+001

  1. 求圆面积

输入:   2

输出:   该圆面积是12.560000

该圆面积保留两位小数的结果是12.56

​​​​​​​实验4、小小计算器”基本功能实现(4)

(1)实验目的

通过该实验,掌握C中的if控制语句的使用,熟练应用取模运算。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

            *          小小计算器             *

            *          1 加法                 *

            *          2 减法                 *

            *          3 乘法                 *

            *          4 除法                 *

            *          5 判断数字的位数       *

            *          6 计算圆面积           *

            ***********************************

② 除法运算时,如果输入的第二个数(除数)为0,给出提示,显示计算结果。

③ 输入一个正整数,要求在三位以内(含三位),求出这个数是几位数,并输出每一位数字。

(3)验收/测试用例

  1. 除法

输入:   120,6

输出:   除法结果是:20.000000

输入:   120,0

输出:   除数为0,无法进行除法运算

  1. 判断数字的位数

输入:   -120

输出:   要求输入的数为正整数

输入:   1000

输出:   要求输入的数为3位以内的正整数

输入:   123

输出:   该数为3位数,百位是1,十位是2,个位是3         

输入:   78

输出:   该数为2位数,十位是7,个位是8        

​​​​​​​实验5、“小小计算器”基本功能实现(5)

(1)实验目的

通过该实验,掌握C中if语句和switch多分枝语句,特别是对switch语句中的break和default的理解。

(2)实验内容

① 在“小小计算器”基本功能实现(4) 的基础上,用switch多分枝语句进行计算器操作选择,根据菜单提示,输入一个数字,进行对应的操作。

② 扩充计算器功能,添加判断输入的年是否是闰年

*          7 判断闰年           *

③ 扩充计算器功能,添加成绩转换功能

*          8 成绩转换           *

   从键盘上输入一个百分制的成绩,输出对应的等级成绩。

   100 — 90   ——> 优秀

   80  — 89   ——> 良

   70  — 79   ——> 中

   60  — 69   ——> 及格

   0   — 59   ——> 不及格

(3)验收/测试用例

  1. 判断闰年

输入:2000

输出:2000年是闰年

输入:2013

输出:2000年是平年

  1. 成绩转换

输入:-10或101

输出:成绩输入错误

输入:88

输出:良

​​​​​​​实验6、“小小计算器”基本功能实现(6)

(1)实验目的

通过该实验,使学生掌握C中的循环语句的使用。

(2)实验内容

编程实现以下功能:

①  在屏幕上输出

            ***********************************

                     小小计算器            

                     1 加法                

                     2 减法                

                     3 乘法                

                     4 除法                

                     5 判断数字的位数     

                     6 计算圆面积                

                     7 判断闰年                             

                     8 成绩转换                              

                     9 计算从1到输入数之间的奇数和 (for)         

                     10 计算从1到输入数之间的偶数和 (while)         

                     11 输出从1到输入数之间所有3的倍数 (do-while)         

                     12 求即被3整除又被5整除的数         

                     13 求水仙花数

14 退出

            ***********************************

② 利用循环语句,将实验5“小小计算器”基本功能实现(5)改造只有选择退出操作,程序才结束,否则执行一个操作后,提示用户进行下一个操作的输入;

③ 增加功能:

<1>“ 9 计算从1到输入数之间的奇数和 (for)”

从键盘上输入一个正整数,输出1到该数之间所有奇数和。要求用for循环语句实现。

<2> “10 计算从1到输入数之间的偶数和 (while)”

从键盘上输入一个正整数,输出1到该数之间所有偶数和。要求用while语句实现。

<3> “11 输出从1到输入数之间所有3的倍数 (do-while)”

从键盘上输入一个正整数,输出1到该数之间所有3的倍数。要求用do-while实现。

<4> “12 求即被3整除又被5整除的数”

从键盘上输入两个数,输出两个数之间第一个即被3整除又被5整除的数。

    <5> “13 求水仙花数”

    输出所有水仙花数。水仙花数是一个3位数,各位数字的立方之和等于他本身,例如:153= 13+53+33。

​​​​​​​实验7、“小小计算器”基本功能实现(7)

(1)实验目的

通过该实验,让学生理解掌握C语言中函数的概念,能够编写带参数的函数,掌握函数参数的概念,能够掌握传递数值传递地址两种参数形式的区别。

(2)实验内容

在实验6的基础上,将小小计算器中的各个操作抽取成函数,在switch语句中,根据输入的操作,调用对应的函数。

扩充小小计算器的功能

  <1> “14 求最大值”

   编写一个带两个参数的函数,该函数返回这两个参数的最大值。输入两个整数,输出他们的最大值。

 <2> “15 求最大最小值”

   编写一个带两个参数的函数,该函数能求出这两个数的最大值和最小值,使得第一个参数存放最大值,第二个参数存放最小值。要求练习传递地址的参数

​​​​​​​实验8、“小小计算器”基本功能实现(8)

(1)实验目的

通过该实验,使学生理解掌握C语言中数组的概念,能够灵活应用数组。

(2)实验内容

在实验7 “小小计算器”基本功能实现(7)的基础上,扩充以下功能:

<1> “16 冒泡排序”

   从键盘上输入10个数,进行冒泡排序,输出排序结果。

<2> “17 矩阵转置”

从键盘输入一个3X4的整数矩阵,进行转置操作,并将转置结果在屏幕上输出;

<3> “18 求对角线和”

   从键盘输入一个3*3整数矩阵,求主对角线元素和;

​​​​​​​实验9、“小小计算器”基本功能实现(9)

(1)实验目的

通过该实验,使学生理解掌握C语言中字符串的概念,能够灵活应用数组。

(2)实验内容

在实验8 “小小计算器”基本功能实现(8)的基础上,扩充以下功能:

<1> “19 统计单词个数”

从键盘输入一行字符,单词之间用空格分隔开,统计其中有多少个单词, 并输出结果。

​​​​​​​实验10、“小小计算器”基本功能实现(10)

(1)实验目的

通过该实验,使学生理解C中指针的概念。

(2)实验内容

在实验8的基础上,将功能“16 冒泡排序”的排序结果用指针形式来输出。扩充功能:

<1> “20 静态创建链表”

静态创建一个包含有4个节点的单链表,输出这个链表的所有数据。节点包含两个域:数据域(int型),指针域。

<2> “21 动态创建链表”

动态创建一个链表,依次从键盘上输入正整数,将输入的整数插入到该链表中,直到输入一个负数为止。最后将该链表中的数据在屏幕上输出。

​​​​​​​实验11、“小小计算器”基本功能实现(11)

(1)实验目的

通过该实验,使学生掌握C中结构体。

(2)实验内容

扩充小小计算器功能:

<1> “22 学生成绩排序”

  定义学生结构体数组,长度为10,依次输入这十个学生的学号、姓名、成绩,利用冒泡排序,对这10个学生排序,从小到大输出这10个学生的信息,然后输出10个学生的总成绩和平时成绩

​​​​​​​实验12、“小小计算器”基本功能实现(12)

(1)实验目的

通过该实验,使学生掌握C语言对文件的操作。

(2)实验内容

扩充小小计算器功能:

<1> “23 学生成绩普涨10分”

  d盘根目录下存在一个文本文件my.txt,里面存放了10个学生的成绩,一行一个成绩,从文件中读取学生的成绩,每个成绩都加10分后,保存到原文件中。

提示:

  1. 注意d:\my.txt在fopen中如何表示;—> “d:\\my.txt”
  2. 文件打开方式 —> r+
  3. 从文件中读取数据,直到文件结束,如何判断文件结束—> feof()
  4. 将增加10后的数据保存到原文件时,要保证从文件头开始,如何使文件指针回到文件头—> rewind()
  5. 在写数据时,一定要避免在最后一个数据写完后,再写一个回车,否则下次在操作时可能出错。

​​​​​​​实验13、“小小计算器”输出结果链表存储(13)

(1)实验目的

通过该实验,使学生掌握C中链表。

(2)实验内容

扩充小小计算器功能:

<1> “24 学生成绩链表”

  创建一个链表,按照实验12读取10个学生成绩后,将10个学生的总成绩存入链表,并依次完成链表初始化、遍历、节点查找、插入、删除、清空

以下为源码片段

/*若编译出现错误:
[Error] 'for' loop initial declarations are only allowed in C99 or C11 mode 
请更换C99标准进再行编译*/

#include <stdio.h>
#define PI 3.14		//定义常量PI 

void function_1(void);
void function_2(void);
void function_3(void);
void function_4(void);
void function_5(void);
void function_6(void);
void function_7(void);
void function_8(void);
void function_9(void);
void function_10(void);
void function_11(void);
void function_12(void);
void function_13(void);
int function_14(int a, int b);
void function_15(int *a,int *b);
void function_16(void);
void function_17(void);
void function_18(void);
void function_19(void);

int main(){
	printf("***************************************************************\n\
*          小小计算器                                         *\n\
*          1 加法                                             *\n\
*          2 减法                                             *\n\
*          3 乘法                                             *\n\
*          4 除法                                             *\n\
*          5 判断数字的位数                                   *\n\
*          6 计算圆面积                                       *\n\
*          7 判断闰年                                         *\n\
*          8 成绩转换                                         *\n\
*          9 计算从1到输入数之间的奇数和 (for)              *\n\
*          10 计算从1到输入数之间的偶数和 (while)           *\n\
*          11 输出从1到输入数之间所有3的倍数 (do-while)     *\n\
*          12 求即被3整除又被5整除的数                        *\n\
***************************************************************\n\
*          13 求水仙花数                                      *\n\
*          14 求最大值                                        *\n\
*          15 求最大最小值                                    *\n\
*          16 冒泡排序                                        *\n\
*          17 矩阵转置                                        *\n\
*          18 求对角线和                                      *\n\
*          19 统计单词个数                                    *\n\
*          20 静态创建链表                                    *\n\
*          21 动态创建链表                                    *\n\
*          22 学生成绩排序                                    *\n\
*          23 学生成绩普涨10分                                *\n\
*          24 学生成绩链表                                    *\n\
*          25 退出                                            *\n\
***************************************************************");
	label:printf("\n请选择您要进行的运算:"); 
	
	/*int num1, num2, answer; //实验3定义的变量 
	float num3, num4, answer2;
	double R, S;
	
	int value, temp, bits, one_p, two_p, three_p;  //实验4定义的变量 
	int year, score;  //实验5定义的变量 
	long long int num5, answer3, o;   //实验6定义的变量*/
	int max, num1, num2;
	int choose;//getchar只能接收单个字符,不适合此时超越9个的switch选择 
	scanf("%d", &choose);
	switch(choose){
		case 1:
			function_1();
			break;
		case 2:
			function_2();
			break;
		case 3:
			function_3();
			break;
		case 4:
			function_4();
			break;
		case 5:
			function_5();
			break;
		case 6:
			function_6();
			break;
		case 7:
			function_7();
		    break;
		case 8:
			function_8();
			break;
		case 9:
			function_9(); 
			break;
		case 10:
			function_10(); 
			break;
		case 11:
			function_11();
			break;
		case 12:
			function_12();
			break;
		case 13:
			function_13();
			break;
		case 14:
			scanf("%d %d", &num1, &num2);
			max = function_14(num1, num2);
			printf("最大值为:%d",max);
			break;
		case 15:
			scanf("%d %d", &num1, &num2);
			function_15(&num1, &num2);
			printf("最大值为:%d  最小值为:%d ", num1, num2);
			break;
		case 16:
			function_16();
			break;
		case 17:
			function_17();
			break;
		case 18:
			function_18();
			break;
		case 19:
			function_19();
			break;
		case 20:
			//**********所有的源码文件请在文末自取,此处源码并不完整**************
		case 21:
			
		case 22:
			
		case 23:
			
		case 24:
			
		case 25:
			return 0;
		default:
			printf("不存在此结果,请重新输入!!");
			
	}
	goto label;
}

void function_1(){
	int num1, num2, answer;
	scanf("%d %d", &num1, &num2);
	answer=num1+num2;
	printf("加法结果的十进制形式是:%d\n",answer);
	printf("加法结果的八进制形式是:%o\n",answer);
	printf("加法结果的十六进制形式是:%x",answer);
}
void function_2(){
	int num1, num2, answer;
	scanf("%d %d", &num1, &num2);
	answer=num1-num2;
	printf("减法结果的十进制形式是:%d\n",answer);
	printf("减法结果的八进制形式是:%o\n",answer);
	printf("减法结果的十六进制形式是:%x",answer);
}
void function_3(){
	float num3, num4, answer2;
	scanf("%f %f", &num3, &num4);
	answer2=num3*num4;
	printf("乘法结果的小数形式是:%f\n",answer2);
	printf("乘法结果的指数形式是:%e",answer2);
}
void function_4(){
	float num3, num4, answer2;
	scanf("%f %f", &num3, &num4);
	if(num4==0){
		printf("除数不能为0!!");
	}
	else{
		answer2=num3/num4;
		printf("除法结果的小数形式是:%f\n",answer2);
		printf("除法结果的指数形式是:%e",answer2);	
	}
	
	
}
void function_5(){
	int answer, value, temp, bits, one_p, two_p, three_p;
	scanf("%d", &value);
	
	if(value<0){				//比较输入值是否符合标准 
		printf("要求输入的数为正整数");
	}
	if(value>999){
		printf("要要求输入的数为3位以内的正整数");
	}else{
		
		temp=value;					//计算位数(bits) 
		bits=0;
		for(int i=1;i<=3;i++){
			answer=temp%10;
			if(answer!=0){
				bits++;
			}
			temp/=10;
		}
		
		switch(bits){				//计算并显示每一位的值 
			case 1:
				one_p=value%10;
				printf("该数为1位数,个位是%d", one_p);
				break;
			case 2:
				one_p=value%10;
				value/=10;
				two_p=value%10;
				printf("该数为2位数,十位是%d,个位是%d", two_p, one_p);
				break;
			case 3:
				one_p=value%10;
				value/=10;
				two_p=value%10;
				value/=10;
				three_p=value%10;
				printf("该数为3位数,百位是%d, 十位是%d,个位是%d", three_p, two_p, one_p);
				break;
		}
	}
}
void function_6(){
	long long int num5, answer3, o;
	double R, S;
	scanf("%lf", &R);
	S=R*R*PI;
	printf("该圆面积是:%f\n", S);
	printf("该圆面积保留两位小数的结果是:%.2f", S);
}
void function_7(){
	int year;
    scanf("%d",&year);
    if((year%400==0) || (year%4==0&&year%100!=0)){
        printf("%d年是闰年", year);
	}else{
		printf("%d年是平年", year);
  	}	
}
void function_8(){
	int score;
	scanf("%d", &score);
	if(score<=100 && score>=90){
		printf("优秀");
	}
	else if(score<=89 && score>=80){
		 printf("良");
	}
	else if(score<=79 && score>=70){
		 printf("中");
	}
	else if(score<=69 && score>=60){
		 printf("及格");
	}
	else{
		 printf("不及格");
	}
}
void function_9(){
	long long int num5, answer3, o;
	answer3=0;
	scanf("%d", &num5);
	for(o=1; o<=num5; o++){
		if(o % 2 != 0){
			answer3+=o;
		}
	}
	printf("%d", answer3);
}
void function_10(){
	long long int num5, answer3, o;
	answer3=0;
	o=1;
	scanf("%d", &num5);
	while(o<=num5){
		if(o % 2 == 0){
			answer3+=o;
		}
		o++;
	}
	printf("%lld", answer3);
}
void function_11(){
	long long int num5, answer3, o; 
	answer3=0;
	o=1;
	scanf("%d", &num5);
	do{
		if(o % 3== 0){
			answer3+=o;
		}
		o++;
	}while(o<=num5);
	printf("%lld", answer3);	
}
void function_12(){
	long long int num5, o;
	scanf("%d%d", &o, &num5);
	do{
		if(o % 3 == 0 && o % 5 == 0){
			printf("%lld ", o);
			break;
		}
		o++;
	}while(o<=num5);
	
}
void function_13(){
	int o, one_p, two_p, three_p;
	for( o=100; o<1000; o++ )
   	{
		three_p = o / 100;
        two_p = (o-three_p*100) / 10;
        one_p = o % 10;
        if(o == three_p*three_p*three_p + two_p*two_p*two_p + one_p*one_p*one_p){
			printf("%d  ", o);
  		}
   	}
}
int function_14(int num1, int num2){
	if(num1>num2){
		return num1;
	}
	return num2;
}
void function_15(int *num1, int *num2){
	if(*num1 < *num2){
		int temp = *num1;
		*num1 = *num2;
		*num2 = temp;
	}
}
void function_16(){
	int num[10]={};
	for(int i=0; i<10; i++){			//输入十个数据 
		scanf("%d", &num[i]);
	}
	
	for(int i=9; i>0; i--){				//冒泡排序 
		for(int j=0; j<i; j++){
			if(num[j]>num[j+1]){
				int temp = num[j];
				num[j]=num[j+1];
				num[j+1]=temp;
			}
		}
	}
	
	for(int i=0; i<10; i++){			//输出排序后的十个数据 
		printf("%d ", num[i]);
	}
}
void function_17(){
	int num[4][3]={};
	for(int i=0; i<3; i++){			//输入 
		for(int j=0; j<4; j++){
			scanf("%d", &num[j][i]);
		}
	}
	for(int i=0; i<4; i++){			//输出
		printf("\n");		 
		for(int j=0; j<3; j++){
			printf("%d ", num[i][j]);
		}
	}
}
void function_18(){
	int num[3][3]={};
	for(int i=0; i<3; i++){			//输入 
		for(int j=0; j<3; j++){
			scanf("%d", &num[i][j]);
		}
	}
	printf("%d", num[0][0]+num[1][1]+num[2][2]);
}
void function_19(){
	char str[999],c;
	int num=0, word=0;
	
	fflush(stdin);				//清空缓存区,避免scanf遗留的'\n'作为gets的输入值 
	gets(str);
	for(int i=0; str[i]!='\0'; i++)
	{
		if(str[i]==' ')           
			word=0;
		else if(word==0)    
		{
			word=1;
			num++;
		}
	}
	printf("单词总数为:%d. ",num);
}

//**********所有的源码文件请在文末自取,此处源码并不完整**************

******所有的源码文件请在文末自取,此处源码并不完整*********

以下为源码下载链接:

C语言基础练习小小计算器源码总和-其它文档类资源-CSDN文库  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39816200/article/details/128456452

智能推荐

(附源码)springboot基于微信小程序的校园体育运动场地及器材租凭系统设计与实现 毕业设计131052-程序员宅基地

文章浏览阅读242次。校园体育运动场地及器材租凭系统 的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。校园体育运动场地及器材租凭系统的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与校园体育运动场地及器材租凭系统的实际需求相结合,讨论了基于校园体育运动场地及器材租凭系统的使用。

高性能计算(HPC)-一文全面理解高性能计算_hpc领域-程序员宅基地

文章浏览阅读1.5k次,点赞31次,收藏24次。AI的疯狂发展以及视频、图像、音频、3D数据的迫切需要,导致传统的CPU不能满足这样大算力的计算。由于这些数据的运算多是一些简单的运算,因此需要设计出多个算术运算单元的芯片来应对这种少控制多计算的场景。这是并行计算、高性能计算诞生的重要动力。为了适配这样的场景,设计出了以GPU为核心的并行处理芯片、包括DSP、VPU、DPU、NPU等。本文主要介绍基于这些芯片以及网络、系统引入的高性能计算,比较全面的介绍高性能计算,希望对高性能计算的理解起到一个宏观的作用。:一个全栈工程师的升级之路!_hpc领域

俄亥俄大学计算机科学专业,美国计算机科学专业最新排名!-程序员宅基地

文章浏览阅读145次。1 Carnegie Mellon University 卡内基梅隆大学1 Massachusetts Institute of Technology 麻省理工学院1 Stanford University 斯坦福大学1 University of California -Berkeley 加州大学伯克利分校5 Cornell University 康奈尔大学5 University of Ill..._俄亥俄大学计算机科学专业

socket编程:socket()函数详解-程序员宅基地

文章浏览阅读1.9w次,点赞19次,收藏88次。文章目录1. 什么是socket?1.1 意义1.2 本质1.3 应用1.4 结论2. socket() 函数参数介绍2.1 参数1:int af2.2 参数2:int type2.3 参数3:int protocol3. socket()函数返回值介绍1. 什么是socket?套接字函数创建一个绑定到特定传输服务提供者的套接字。将底层复杂的协议体系,执行流程,进行了封装,封装完的结果,就是一个SOCKET了,也就是说,SOCKET是我们调用协议进行通信的操作接口。1.1 意义将复杂的协议过程与我_socket()

基于python+opencv的DCT(离散余弦变换)实验-程序员宅基地

文章浏览阅读2.5w次,点赞24次,收藏84次。离散余弦变换是图像处理中非常常用的算法,可以用于jpg图像压缩等领域。数学原理我就不扯了,网上一大堆。但介于网上实在没有关于python+opencv来实现DCT的好文章(至少木盏没有搜到过)。于是稍微写一个博文做一个总结,给后人便利。要用到的模块是opencv,安装方法看另一篇文章《opencv快速安装》python==3.6.5opencv==3.1.0scipy==1.1.0...

【前后端】django前后端交互_前后端数据是交互用的什么软件-程序员宅基地

文章浏览阅读567次,点赞4次,收藏11次。随着开发语言及人工智能工具的普及,使得越来越多的人会主动学习使用一些开发语言,本文主要介绍django前后端交互的基础内容。以上就是今天要讲的内容,这些步骤提供了一种简单的方式来实现 Django 应用的前后端交互。在实际项目中,你可能需要处理更复杂的逻辑和数据,并且可以使用 Django REST Framework 等工具来简化 RESTful API 的开发。_前后端数据是交互用的什么软件

随便推点

分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)-程序员宅基地

文章浏览阅读1.6k次。分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(11月28日-12月4日)本周Silverlight学习资源更新Silverlight HttpUtil 封装Post调用nivana999Silverlight中Grid.ColumnDefinitions属性设置错误xjbestSilverli

工业互联网平台选型星级评估申请要求-程序员宅基地

文章浏览阅读116次,点赞5次,收藏3次。工业互联网

iPhone网页显示不全(被遮挡)怎么办?-程序员宅基地

文章浏览阅读1.2w次。iPhone网页显示不全(被遮挡)怎么办?今天再次遇到了这样一个历史遗留问题:我们在用iPhone浏览部分网页时,有时候会出现部分选项被界面遮挡的情况,如:

在eclipse中使用vim-程序员宅基地

文章浏览阅读52次。转自:http://blog.csdn.net/eplaylity/article/details/6168283 1. vrapper(开源) 直接从eclipse安装即可,地址:http://vrapper.sourceforge.net/update-site/stable/ 2. viplugin(收费) 下载后,拷贝到eclipse相应目录即可,地址 http://www.vip..._在eclipse中配置vim编辑

使用JDK命令排查故障实战案例详解_jdk巡检的检查项-程序员宅基地

文章浏览阅读2.2k次,点赞8次,收藏12次。文章目录服务器CPU使用率达到99%程序发生了死锁java应用大量消耗内存 学习了JDK命令,就是为了排查故障的,今天通过几个分类来了解在程序遇到故障的时候,如果使用JDK命令排查问题服务器CPU使用率达到99% 这里我们先写一个demo,写一个死循环..._jdk巡检的检查项

Geoserver的一些关键设置(持续更新)_- found system environment variablegeoserver_data_-程序员宅基地

文章浏览阅读2.3k次。关于geoserver的data_dir目录使用geoserver时特别注意,所有的数据都保存在 data_dir中,data_dir目录存储了workspace、data store、featuretype、layergroup等设置在使用 tomcat部署时,如果一不小心undeploy了,程序丢了,如果data_dir也在程序目录里面,那就.....所以,在环境变量中添加GEOSE..._- found system environment variablegeoserver_data_dir set to /geoserver_tile