当前位置:文档之家› 真正实现C语言绘制数学函数图像

真正实现C语言绘制数学函数图像

真正实现C语言绘制数学函数图像
真正实现C语言绘制数学函数图像

用C语言画函数图像

横纵坐标单位长度比校正(3:5)

真正的余弦函数

#include

#include

int sishewuru(float a);

void main()

{

int n = 450;

float a[500], b[500];

int i,j;

a[0] = b[0] = 0;

for (i = 1; i < n; i++)

a[i] = a[i - 1] + 0.01;

b[i] = cos(a[i]);

}

int A[500],B[500];

for (i = 0; i < n; i++)

{

//printf("sin(%f)=%f\n", a[i], b[i]);

a[i] = 100 * a[i];

b[i] = 55 * b[i];

A[i] = sishewuru(a[i]);

B[i] = sishewuru(b[i])+60;

//printf("sin(%d)=%d\n", A[i], B[i]);

}

for ( i = 100; i >=0; i--)

{

for ( j = 0; j < n; j++)

{

if (i==B[j])

{

printf("*");

}

else

{

printf(" ");

}

}

printf("\n");

}

}

int sishewuru(float a)

{

int m;

if (a-floor(a)<0.5)

{

m = a;

return m;

}

else

{

m = a + 1;

return m;

}

}

1.调节输出框大小,字符显示大小

2.确定函数的定义域

3.确定定义域上的步长

4.计算函数值

5.确定函数值放大系数

6.确定定义域恰好落在显示的区间内

7.确定坐标的单位长度与字符实际长度之间的换算关系

8.确定打点的顺序与坐标的关系

定义域在),(ππ-的正弦函数图像

定义域在),(ππ-的正切函数图像

定义域在),(ππ22-的倒正切函数图像

#include

#include

int sishewuru(float a);

void main() {

float minx = -2*3.14,

maxx = 2*3.14,dx,

x[500],y[500],k;//确定定义区间

int lx = 500, i,j, Y[500];

dx = (maxx - minx) / 450;

x[0] = minx;

y[0] = 0.1 / sin(x[1]);

for (i = 1; i

{

x[i] = x[i - 1] + dx;

y[i] =0.1/sin(x[i]);

}

k = 0.6/ dx;//扩大系数

for (i = 0; i < lx; i++)

{

Y[i] = sishewuru(k*y[i]);

//printf("%d\n", Y[i]);

}

for (i = 0; i <130; i++)

{

for (j = 0; j < lx; j++) {

if (i == -Y[j]+65)

{

printf("*");

}

else

{

printf(" ");

}

}

printf("\n");

} } int sishewuru(float a ) {

int m;

if (a -floor(a )<0.5)

{

m = a ;

return m;

}

else

{

m = a + 1;

return m;

} }

定义域在),(ππ22-半径为π的圆

#include

#include

int sishewuru(float a);

void main()

{

float minx = -2*3.14,

maxx = 2*3.14,dx,

x[500],y[2*500],k,r=0.5*maxx;//确定定义区间int lx = 500, i,j, Y[2*500];

dx = (maxx - minx) / 450;

x[0] = minx;

y[0] = 0.1 / sin(x[1]);

for (i = 1; i

{

x[i] = x[i - 1] + dx;

y[i] =sqrt(r*r-x[i]*x[i]);//确定函数表达式

y[lx + i] = -1*y[i];

}

k = 0.6/ dx;//扩大系数

for (i = 0; i < 2*lx; i++)

{

Y[i] = sishewuru(k*y[i]);

//printf("%d\n", Y[i]);

}

for (i = 0; i <136; i++)

{

for (j = 0; j < lx; j++)

{

if (i == -Y[j] + 68 || i == -Y[j+lx] + 68)

{

printf("*");

}

else

{

printf(" ");

}

}

printf("\n");

}

}

int sishewuru(float a)

{

int m;

if (a-floor(a)<0.5)

{

m = a;

return m;

}

else

{

m = a + 1;

return m;

}

}

RSA加密算法_源代码__C语言实现

RSA算法 1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。 RSA的安全性依赖于大数难于分解这一特点。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 密钥对的产生。选择两个大素数,p 和q 。计算:n = p * q 然后随机选择加密密钥e,要求e 和( p - 1 ) * ( q - 1 )互质。最后,利用Euclid 算法计算解密密钥d, 满足e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) )其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q 不再需要,应该丢弃,不要让任何人知道。加密信息m(二进制表示)时,首先把m分成等长数据块m1 ,m2,..., mi ,块长s,其中2^s <= n, s 尽可能的大。对应的密文是:ci = mi^e ( mod n ) ( a ) 解密时作如下计算:mi = ci^d ( mod n ) ( b ) RSA 可用于数字签名,方案是用( a ) 式签名,( b )式验证。具体操作时考虑到安全性和m信息量较大等因素,一般是先作HASH 运算。RSA 的安全性。RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为没有证明破解RSA 就一定需要作大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大一些,因具体适用情况而定。 由于进行的都是大数计算,使得RSA最快的情况也比DES慢上100倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。 */ #include #include #include

高一数学函数总结大全

一次函数 一、定义与定义式: 自变量x和因变量y有如下关系: y=kx+b 则此时称y是x的一次函数。 特别地,当b=0时,y是x的正比例函数。 即:y=kx (k为常数,k≠0) 二、一次函数的性质: 1.y的变化值与对应的x的变化值成正比例,比值为k 即:y=kx+b (k为任意不为零的实数b取任何实数) 2.当x=0时,b为函数在y轴上的截距。 三、一次函数的图像及性质: 1.作法与图形:通过如下3个步骤 (1)列表; (2)描点; (3)连线,可以作出一次函数的图像——一条直线。因此,作一次函数的图像只需知道2点,并连成直线即可。(通常找函数图像与x轴和y轴的交点) 2.性质:(1)在一次函数上的任意一点P(x,y),都满足等式:y=kx+b。(2)一次函数与y轴交点的坐标总是(0,b),与x轴总是交于(-b/k,0)正比例函数的图像总是过原点。

3.k,b与函数图像所在象限: 当k>0时,直线必通过一、三象限,y随x的增大而增大; 当k<0时,直线必通过二、四象限,y随x的增大而减小。 当b>0时,直线必通过一、二象限; 当b=0时,直线通过原点 当b<0时,直线必通过三、四象限。 特别地,当b=O时,直线通过原点O(0,0)表示的是正比例函数的图像。 这时,当k>0时,直线只通过一、三象限;当k<0时,直线只通过二、四象限。 四、确定一次函数的表达式: 已知点A(x1,y1);B(x2,y2),请确定过点A、B的一次函数的表达式。 (1)设一次函数的表达式(也叫解析式)为y=kx+b。 (2)因为在一次函数上的任意一点P(x,y),都满足等式y=kx+b。所以可以列出2个方程:y1=kx1+b …… ①和y2=kx2+b …… ② (3)解这个二元一次方程,得到k,b的值。 (4)最后得到一次函数的表达式。 五、一次函数在生活中的应用: 1.当时间t一定,距离s是速度v的一次函数。s=vt。 2.当水池抽水速度f一定,水池中水量g是抽水时间t的一次函数。设水池中原有水量S。g=S-ft。

RC4加密算法C语言实现

RC4 加密算法 C 语言实现 代码文件名 RC4.cpp Encrypt.h (代码详见后文) 备注:将以上两个文件放在相同的路径(建议不要放在中文路径 下)编译执行!编译环境 Microsoft Visual C++ 6.0 C-Free 5.0 代码解释 RC4 加密算法是大名鼎鼎的RSA 三人组中的头号人物Ron Rivest 在1987 年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的S-box 长度可为任意,但一般为256字节。该算法的速度可以达到DES 加密的10倍左右。 RC4 算法的原理很简单,包括初始化算法和伪随机子密码生成算法两大部分。假设S-box 长度和密钥长度均为为n。先来看看算法的初始化部分(用类C伪代码表示): for (i=0; i

} 得到的子密码sub_k用以和明文进行xor运算,得到密文,解密过程也完全相同。 RC4加密算法在C++中的实现: RC4函数(加密/解密):其实RC4只有加密,将密文再加密一次,就是解密了。 GetKey函数:随机字符串产生器。 ByteToHex函数:把字节码转为十六进制码,一个字节两个十六进制。十六进制字符串非常适合在HTTP中传输。 HexToByte函数:把十六进制字符串,转为字节码。。 Encrypt函数:把字符串经RC4加密后,再把密文转为十六进制字符串返回,可直接用于传输。 Decrypt函数:直接密码十六进制字符串密文,再解密,返回字符串明文。 源代码 以下为Encrypt.h文件代码 #ifndef _ENCRYPT_RC4_ #defi ne _ENCRYPT_RC4_ #in clude #defi ne BOX_LEN 256 int GetKey(c onst un sig ned char* pass, int pass_le n, un sig ned char *out); int RC4(c onst un sig ned char* data, int data_le n, const un sig ned char* key, int key_le n, un sig ned char* out, i nt* out_le n); static void swap_byte( un sig ned char* a, un sig ned char* b); char* En crypt(co nst char* szSource, const char* szPassWord); // 加密,返回加密结果 char* Decrypt(co nst char* szSource, con st char* szPassWord); // 解密,返回解密结果 char* ByteToHex(c onst un sig ned char* vByte, const int vLe n); // 把字节码pbBuffer转为十六进制字符串,方便传输 unsigned char* HexToByte(const char* szHex); // 把十六进制字符串转为字节码pbBuffer,解码 #e ndif // #ifndef _ENCRYPT_RC4_

高中数学常见函数图像

高中数学常见函数图像1. 2.对数函数:

3.幂函数: 定义形如αx y=(x∈R)的函数称为幂函数,其中x是自变量,α是常数. 图像 性质过定点:所有的幂函数在(0,) +∞都有定义,并且图象都通过点(1,1).单调性:如果0 α>,则幂函数的图象过原点,并且在[0,) +∞上为增函数.如果0 α<,则幂函数的图象在(0,) +∞上为减函数,在第一象限内,图象无限接近x轴与y轴.

函数 sin y x = cos y x = tan y x = 图象 定义域 R R ,2x x k k ππ??≠+∈Z ???? 值域 []1,1- []1,1- R 最值 当 22 x k π π=+ () k ∈Z 时, max 1y =; 当22 x k π π=- ()k ∈Z 时,min 1y =-. 当()2x k k π =∈Z 时, max 1y =; 当2x k π π=+ ()k ∈Z 时,min 1y =-. 既无最大值也无最小值 周期性 2π 2π π 奇偶性 奇函数 偶函数 奇函数 单调性 在 2,222k k ππππ? ?-+???? ()k ∈Z 上是增函数;在 32,222k k π πππ??++???? ()k ∈Z 上是减函数. 在[]() 2,2k k k πππ-∈Z 上 是 增 函 数 ; 在 []2,2k k πππ+ ()k ∈Z 上是减函数. 在,2 2k k π ππ π? ? - + ?? ? ()k ∈Z 上是增函数. 对称性 对称中心 ()(),0k k π∈Z 对称轴 ()2 x k k π π=+ ∈Z 对称中心 (),02k k ππ??+∈Z ?? ? 对称轴()x k k π =∈Z 对称中心(),02k k π?? ∈Z ??? 无对称轴

(完整word版)电子系c语言程序设计加密解密

课程设计报告 课程设计名称: C语言程序设计 指导教师: 学生: 学号: 学院:电子信息工程学院 完成时间: 2011年9月27日 嘉应学院电子信息工程学院 1

C语言课程设计说明书 目录 1 需求分析 (1) 2总体设计 (2) 3详细设计 (3) 3.1 换位加密流程图 (3) 3.2 换位解密流程图 (4) 3.3 替代加密流程图 (5) 3.4 替代解密流程图 (6) 4调试与测试 (8) 5测试结果 (8) 6附录 (11) I

1 需求分析 问题描述(实验指导书中已经给出) ①数据的输入和输出;要求使用文件操作。文件(明文,仅限于英文字母)存放在某一已知文本文件中,加密后的文件(密文)存放在另一文件中。 ②换位加密和解密: 加密:根据密钥(即移位位数,用户从键盘输入)将对应字符进行移位操作,输出密文;解密:输入密文后再输入移位位数则可输出明文; ③凯撒加密和解密: 加密:根据密钥(即移位位数,用户从键盘输入)将对应字符进行移位操作,输出密文;解密:输入密文后再输入移位位数则可输出明文; ④统计单词的个数; ⑤退出。

2总体设计 (程序设计总流程图,可以画带流程线的流程图) 此处只需要写出一个流程图就可以了,就是总的那个流程图,请规范的画图。不需要分出2.1和2.2. 开始 welcome() caidan() transpen( ); transpde( ) caesaren( ) caesarde() mingwent miwentongji(byebye()

3详细设计 (各模块功能说明,如函数功能、入口及出口参数说明,函数调用关系描述等 这块大家问题最多了,这里不是写程序代码,而是写流程图里面各个主要函数的作用,函数之间关系的说明。 以第1题为例,此处应为: 3.1 换位加密流程图 流程图 (对流程图加以说明。可以把关键语句放在此处,加以注释说明) 建立mingwen.txt 和miwen.txt 文件 输入密钥n 输入明文到数组r k=strlen(r)j 计算数组r 长度 for i=0 to k 关闭并保存mingwen.txt 文件 打开mingwen.txt 文件 space(h,r) 将明文去空格并放到数组h 中 m=strlen(h) 计算数组h 长度 m%n==0 是 否 hang=m/n hang=m/n+1 j=0 for i=0 to hang for i=m to hang*n z=0 fputc(r[i],mingwen) 将明文存放到mingwen.txt 文件中 for j=0 to n h[i]='a'+j j++ for i=0 to hang zl[i][j]=h[z] z++ for j=o to n zl[i][j]=h[z] z++

用MatLab制作的几个数学函数图像

文字加注: x=-1.5:0.001:1.5; y=(x.^2-1).^3+1; plot(x,y) title('\fontsize{14}\fontname{宋体}函数图像:y=(x^2-1)^3+1') xlabel('\fontsize{14}x'),ylabel('\fontsize{14}y') text(-1,1.1,'\fontsize{8}点(1,1)处倒数为零,但无极值') x=-10:1:10; y=-(x-5).^2+2; [y_max,x_max]=max(y); num2str(y_max); num2str(x_max); plot(x,y) hold on plot(y_max,t_max,'r.') hold off 字符串的应用: a=2; w=3; t=0:0.01:10; y=exp(-a*t).*sin(w*t); [y_max,t_max]=max(y); t_text=['t=',num2str(t (t_max))]; y_text=['y=',num2str(y_max)]; max_text=char('maxinum',t_text,y_text); tit=['字符串的应用:y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; hold on plot(t,y,'b') plot(t(t_max),y_max,'r.')%最大值处以红点标示 text(t(t_max)+0.3,y_max+0.05,max_text) title(tit),xlabel('t'),ylabel('y') hold off 求近似极限,修补图形缺口: t=-2*pi:pi/10:2*pi; y=sin(t)./t; tt=t+(t==0)*eps;%逻辑数组参与运算,用“机械零”代替零元素 yy=sin(tt)./tt;%用数值可算的sin(eps)/eps近似替代sin(0)/0 subplot(1,2,1),plot(t,y),title('残缺图形 '),xlabel('t'),ylabel('y'),axis([-7,7,-0.5,1.2]) subplot(1,2,2),plot(tt,yy),title('正确图形 '),xlabel('tt'),ylabel('yy'),axis([-7,7,-0.5,1.2])

高中数学常见函数图像

高中数学常见函数图像 1.指数函数: 定义 函数 (0x y a a =>且1)a ≠叫做指数函数 图象 1a > 01a << 定义域 R 值域 (0,)+∞ 过定点 图象过定点(0,1),即当0x =时,1y =. 奇偶性 非奇非偶 单调性 在R 上是增函数 在R 上是减函数 2.对数函数: 定义 函数 log (0a y x a =>且1)a ≠叫做对数函数 图象 1a > 01a << 定义域 (0,)+∞ 值域 R 过定点 图象过定点(1,0),即当1x =时,0y =. 奇偶性 非奇非偶 单调性 在(0,)+∞上是增函数 在(0,)+∞上是减函数 x a y =x y (0,1) O 1 y =x a y =x y (0,1) O 1 y =x y O (1,0) 1 x =log a y x =x y O (1,0) 1 x =log a y x =

3.幂函数: 定义形如αx y=(x∈R)的函数称为幂函数,其中x是自变量,α是常数. 图像 性质过定点:所有的幂函数在(0,) +∞都有定义,并且图象都通过点(1,1).单调性:如果0 α>,则幂函数的图象过原点,并且在[0,) +∞上为增函数.如果0 α<,则幂函数的图象在(0,) +∞上为减函数,在第一象限内,图象无限接近x轴与y轴.

4. 函数 sin y x = cos y x = tan y x = 图象 定义域 R R ,2x x k k ππ??≠+∈Z ???? 值域 []1,1- []1,1- R 最值 当 22 x k π π=+ () k ∈Z 时, max 1y =; 当22 x k π π=- ()k ∈Z 时,min 1y =-. 当()2x k k π =∈Z 时, max 1y =; 当2x k ππ=+ ()k ∈Z 时,min 1y =-. 既无最大值也无最小值 周期性 2π 2π π 奇偶性 奇函数 偶函数 奇函数 单调性 在 2,222k k ππππ? ?-+???? ()k ∈Z 上是增函数;在 32,222k k π πππ? ?++??? ? ()k ∈Z 上是减函数. 在[]() 2,2k k k πππ-∈Z 上 是 增 函 数 ; 在 []2,2k k πππ+ ()k ∈Z 上是减函数. 在,2 2k k π ππ π? ? - + ?? ? ()k ∈Z 上是增函数. 对称性 对称中心 ()(),0k k π∈Z 对称轴 ()2 x k k π π=+ ∈Z 对称中心 (),02k k ππ??+∈Z ?? ? 对称轴()x k k π =∈Z 对称中心(),02k k π?? ∈Z ??? 无对称轴

C语言实现文件的des加解密实例

C语言实现文件的des加解密实例 c语言中的正则 ,d3.js画矢量图+可拖拽的实现思路 DOM2级事件处理程序跨浏览器兼容事件 ,exel导入/导出和csv文件导入、导出 ,Go http访问使用代理 golang进行socket通讯 ,hessian+hibernate 懒加载处理 ,HTML+CSS代码橙色导航菜单html5 撞球游戏 // get 网络请求 func Get(api string,params .Values)(rs[]byte ,err error){ var *. ,err=.Parse(api) if err!=nil{ fmt.Printf("解析错误:\r\n%v",err) return nil,err } //如果参数中有中文参数,这个方法会进行Encode //iOS KVO注册和监听方法 //C语言websocket编程 .RawQuery=params.Encode() resp,err:=http.Get(.String()) if err!=nil{ fmt.Println("err:",err) return nil,err } defer resp.Body.Close() return ioutil.ReadAll(resp.Body) } // post 网络请求 ,params 是.Values类型 func Post(api string, params .Values)(rs[]byte,err error){ resp,err:=http.PostForm(api, params) if err!=nil{ return nil ,err } defer resp.Body.Close() return ioutil.ReadAll(resp.Body) } //代码描述:基于GO的黄金数据接口调用代码实例 //关联数据:黄金数据 //css之before and after [代码] [C#]代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using https://www.doczj.com/doc/0f17523036.html,;

RSA加解密算法C语言的实现

#include #include #include #include #include #include #define MAX 100 #define LEN sizeof(struct slink) void sub(int a[MAX],int b[MAX] ,int c[MAX] ); struct slink { int bignum[MAX]; /*bignum[98]用来标记正负号,1正,0负bignum[99]来标记实际长度*/ struct slink *next; }; /*/--------------------------------------自己建立的大数运算库-------------------------------------*/ void print( int a[MAX] ) { int i; for(i=0;il2) return 1; if (l1=0;i--) { if (a1[i]>a2[i]) return 1 ; if (a1[i]

高中函数图像大全

指数函数 概念:一般地,函数y=a^x(a>0,且a≠1)叫做指数函数,其中x是自变量,函数的定义域是R。 注意:⒈指数函数对外形要求严格,前系数要为1,否则不能为指数函数。 ⒉指数函数的定义仅是形式定义。 指数函数的图像与性质: 规律:1. 当两个指数函数中的a互为倒数时,两个函数关于y轴对称,但这两个函数都不具有奇偶 性。 2.当a>1时,底数越大,图像上升的越快,在y轴的右侧,图像越靠近y轴; 当0<a<1时,底数越小,图像下降的越快,在y轴的左侧,图像越靠近y轴。 在y轴右边“底大图高”;在y轴左边“底大图低”。

3.四字口诀:“大增小减”。即:当a >1时,图像在R 上是增函数;当0<a <1时,图像在R 上是减函数。 4. 指数函数既不是奇函数也不是偶函数。 比较幂式大小的方法: 1. 当底数相同时,则利用指数函数的单调性进行比较; 2. 当底数中含有字母时要注意分类讨论; 3. 当底数不同,指数也不同时,则需要引入中间量进行比较; 4. 对多个数进行比较,可用0或1作为中间量进行比较 底数的平移: 在指数上加上一个数,图像会向左平移;减去一个数,图像会向右平移。 在f(X)后加上一个数,图像会向上平移;减去一个数,图像会向下平移。 对数函数 1.对数函数的概念 由于指数函数y=a x 在定义域(-∞,+∞)上是单调函数,所以它存在反函数, 我们把指数函数y=a x (a >0,a ≠1)的反函数称为对数函数,并记为y=log a x(a >0,a ≠1). 因为指数函数y=a x 的定义域为(-∞,+∞),值域为(0,+∞),所以对数函数y=log a x 的定义域为(0,+∞),值域为(-∞,+∞). 2.对数函数的图像与性质对数函数与指数函数互为反函数,因此它们的图像对称于直线y=x . 据此即可以画出对数函数的图像,并推知它的性质. 为了研究对数函数y=log a x(a >0,a ≠1)的性质,我们在同一直角坐标系中作出函数 y=log 2x ,y=log 10x ,y=log 10x,y=log 2 1x,y=log 10 1x 的草图

c语言课程设计-文件加密解密(含源代码)

C 语 言 课 程 设 计 实 验 报 告 实验名称:文件加密解密 院系:软件学院 学号: 日期:2012年9月3日—9月17日

一:设计题目 1:设计图形用户界面。 2:对文件进行加密并对加密文件进行保存。 3:对加密了的文件进行解密。 二:设计过程 设计过程中遇到的困难和解决方法: 1:不能很好地理解题意(通过老师的讲解)。 2:不知道如何设计加密解密程序(通过翻阅书籍和上网查找资料) 过程: 首先通过学习老师提供的资料了解大致的设计过程并懂得运用一些以前没有学习过的c语言。先利用文本文件设计出加密解密的主要过程并能运行。知道如何运用fopen将原文件打开并用fread将原文件内容读出来,然后进行加密设计并将加密的数据用fwrite写进指定的文件中并保存。然后读出加密的文件并解密并保存。最后在写出的程序中加入图形用户界面,运用window,box,gotoxy等进行设计。 三:源代码 #include /* 标准输入、输出函数 */ #include /* 标准库函数 */ #include //*字符串处理函数 */ #include /* 字符操作函数 */ #include #include #define key_down 80 #define key_up 72

#define key_esc 1 #define key_enter 28 #define SIZE 1 void box(int startx,int starty,int high,int width); int get_key(); char buf[20*20*4]; /*///////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////加密解密 */ void fun(char *list,char *sd) /*加密过程*/ { FILE *fp1,*fp2; char buf[1000]; /*文件临时存放处*/ register int ch; fp1=fopen("e:\list.txt","r"); /*用可读方式打开文件*/ fp2=fopen("e:\sd.txt","w"); /*用可写方式创建一个文件*/ if(fp1==NULL) { printf("cannot open file\n"); exit(1); } if(fp2==NULL) { printf("cannot build file\n"); exit(1); } ch=fgetc(fp1); /*读出打开文件的光标处的一个字符*/ while(!feof(fp1)) /*读出的字符不是最后的字符*/ { ch=ch<<1; /*加密方法*/ fputc(ch,fp2); /*加密的字符存放在指定的地方*/ ch=fgetc(fp1); } rewind(fp2); /*将光标移动到第一个字符前面*/ fread(buf,sizeof(buf),1,fp2); /*从文件的当前位置开始中读取buf中存放的数据*/ printf("%s",buf); /*fclose(fp1); fclose(fp2); */ }

高中数学常用函数图像及性质

1.指数函数 0(>=a a y x 且)1≠a 图像: 性质:恒过定点(0,1); 当0=x 时,1=y ; 当1>a 时,y 单调递增,当)0,(-∞∈x 时,)1,0(∈y ;当),0(+∞∈x 时,),1(+∞∈y . 当10<=a x y a 且)1≠a 对数运算法则: N M MN a a a log log log += N M N M a a a log log log -= M n M a n a log log =)(R n ∈ N N a a =log (对数恒等式) a N N b b a log log log = (换底公式) 图像 x ) 1>(=a y x

性质:恒过定点(1,0); 当1=x 时,0=y ; 当1>a 时,y 单调递增, 当)1,0(∈x 时,)0,(-∞∈y ;当),1(+∞∈x 时,),0(+∞∈y . 当10<a x ) 10(<

初中数学函数与图像汇总

【例1】小明外出散步,从家走了20分钟后到达了一个离家900米的报亭,看了10分钟的 报纸然后用了15分钟返回到家.则下列图象能表示小明离家距离y 与时间x 关系的是( ) 选择D 答案 【例2】打开某洗衣机开关(洗衣机内无水),在洗涤衣服时,洗衣机经历了进水、清洗、 排水、脱水四个连续过程,其中进水、清洗、排水时洗衣机中的水量y (升)与时间x (分钟)之间满足某种函数关系,其函数图象大致为( ) D 答案。 【练习一】 1.(2010黑龙江绥化)六月P 市连降大雨,某部队前往救援,乘车行进一段路程之后,由于道路受阻,汽车无法通行,部队短暂休整后决定步行前往. 则能反映部队离开驻地的距离s (千米)与时间t (小时)之间函数关系的大致图象是( ) 【答案】A 2.(2010广东深圳)升旗时,旗子的高度h (米)与时间t (分)的函数图像大致为( ) A . / B . C . D .

【答案】B 3.(2010 河南模拟)如图是某蓄水池的横断面示意图,分为深水池和浅水池,如果这个蓄水池以固定的流量注水,下面能大致表示水的最大深度h与时间t之间的关系的图像是 ( ) 4.(2010四川巴中)如图3所示,以恒定的速度向此容器注水,容器内水的高度(h)与注水时间(t)之间的函数关系可用下列图像大致描述的是() 5.(2010 湖北孝感)均匀地向如图所示的一个容器注水,最后把容器注满,在注水过程中,能大致反映水面高度h随时间t变化的图像是() 【答案】C 6.(2010内蒙呼和浩特)均匀的地向一个容器注水,最后把容器注满,在注水过程中,水面高度h随时间t的变化规律如图所示(图中OABC位一折线),则这个容器的形状为( ) 图 3 A B C D

使用C语言实现古典加密

实训一古典加密算法 一、实训目的 熟悉古典数据加密的工作原理,并且能够利用相关加密算法进行加解密。 二、实训环境 一台安装有Windows XP的计算机。 三、实训内容 用C编写程序实现对某一文件内容用恺撒加密法进行加密,然后用解密程序进行解密。 四、实训步骤 1、用C编写程序实现对某一文件内容用恺撒加密法进行加密。 2、用解密程序对密文进行解密。 五、实训效果检测 上交加密程序、解密程序、原文(.txt文档) 解:(1)使用的加密、解密程序代码如下: #include #include #include #include char encrypt(char ch,int n)/*加密函数,把字符向右循环移位n*/ { while(ch>='A'&&ch<='Z') { return ('A'+(ch-'A'+n)%26); } while(ch>='a'&&ch<='z') {

return ('a'+(ch-'a'+n)%26); } return ch; } void menu()/*菜单,1.加密,2.解密,3.暴力破解,密码只能是数字*/ { //clrscr(); printf("\n========================================================="); printf("\n1.Encrypt the file"); printf("\n2.Decrypt the file"); printf("\n3.Force decrypt file"); printf("\n4.Quit\n"); printf("=========================================================\n"); printf("Please select a item:"); return; } void main() { int i,n; char ch0,ch1; FILE *in,*out; char infile[20],outfile[20]; //textbackground(BLACK); //textcolor(LIGHTGREEN); //clrscr(); menu(); ch0=getch(); while(ch0!='4') { if(ch0=='1') { // clrscr(); printf("\nPlease input the infile:"); scanf("%s",infile);/*输入需要加密的文件名*/ if((in=fopen(infile,"r"))==NULL) { printf("Can not open the infile!\n"); printf("Press any key to exit!\n"); getch();

加密及解密算法(利用C语言)

利用VC++6.0 C语言进行设计加密: #include "stdio.h" #include"string.h" void main() { int i,k,h; char g[26]; printf("请输入字符窜\n"); gets(g); k=strlen(g); do{ for(i=0;i='a'&&g[i]<='z') g[i]-=32; for(i=0;i='A') g[i]+=3; else if(g[i]>'W'&&g[i]<='Z') g[i]-=23; } printf("%s\n",g); printf("0-退出任意键继续\n"); scanf("%d",&h); } while(h); } 2.进行解密算法 #include "stdio.h" #include"string.h" void main() { int i,k,h; char g[26]; printf("请输入字符窜\n");

gets(g); k=strlen(g); do{ for(i=0;i='d'&&g[i]<='z') g[i]-=3; else if(g[i]>'d'&&g[i]<='a') g[i]+=23; for(i=0;i='D'&&g[i]<='Z') g[i]-=3; else if(g[i]>'D'&&g[i]<='A') g[i]+=23; printf("%s\n",g); printf("0-退出任意键继续\n"); scanf("%d",&h); } while(h); }

中考数学专题:函数图像

O 4 8 8 16 t(s) S ( (A ) O 4 8 8 16 t(s) S ((B ) O 4 8 8 16 t(s) S ( (C ) O 4 8 8 16 t(s) S ((D ) 专题二:函数图像 1、(2013年潍坊市)用固定的速度向如图所示形状的杯子里注水,则能表示杯子里水面的高度和注水时间的关系的大致图象是( ). 2、(2013成都市)在平面直角坐标系中,下列函数的图像经过原点的是( ) A.y=-x+3 B.5y x = C.y=2x D.2 y 27x x =-+- 3、(2013?天津)如图,是一对变量满足的函数关系的图象,有下列3个不同的问题情境: ①小明骑车以400米/分的速度匀速骑了5分,在原地休息了4分,然后以500米/分的速度匀速骑回出发地,设时间为x 分,离出发地的距离为y 千米; ②有一个容积为6升的开口空桶,小亮以1.2升/分的速度匀速向这个空桶注水,注5分后停止,等4分后,再以2升/分的速度匀速倒空桶中的水,设时间为x 分,桶内的水量为y 升; ③矩形ABCD 中,AB=4,BC=3,动点P 从点A 出发,依次沿对角线AC 、 边CD 、边DA 运动至点A 停止,设点P 的运动路程为x ,当点P 与点A 不重合时,y=S △ABP ;当点P 与点A 重合时,y=0. 其中,符合图中所示函数关系的问题情境的个数为( ) A . 0 B . 1 C . 2 D . 3 4、(2013年临沂)如图,正方形ABCD 中,AB=8cm,对角线AC,BD 相交于 点O,点E,F 分别从B,C 两点同时出发,以1cm/s 的速度沿BC,CD 运动, 到点C,D 时停止运动,设运动时间为t(s),△OE 的面积为s(2 cm ),则 s(2cm )与t(s)的函数关系可用图像表示为( ) 5、(2013四川南充,9,3分) 如图1,点E 为矩形ABCD 边AD 上一点,点P ,点Q 同时从

C语言课程设计-文件加密解密

C语言程序设计课程设计

计算1313班C语言程序设计课程设计大纲 一、设计目的: 通过课程设计,学会把相关的理论知识和实际应用相结合,锻炼了独立实践的能力;学会了查阅与设计相关资料的能力。 二、设计内容: 设计题目: 学生使用C语言设计程序,产生如下界面,0-6对应不同功能,若不用汉字,可用拼音或英文表示。 ************************************************************************************** * * * 1--输入2--加密3--解密4--显示5—统计6—统计全部0--退出* * * *************************************************************************************** 请选择(0--6): 0.退出系统。 1.输入信息,并写入文本文件。 2.对给定的文件进行加密。 3.对给定的文件进行解密。 4.显示文本文件的内容。 5.统计某单词在文件中出现的次数。 *6. 统计在文件中各单词出现的次数(可选)。 三、设计思想: 主要思想为由总到分,由上到下的逐级分配任务的思想。通过主函数调用各个被调用的函数,再由被调用函数通过多个循环嵌套的使用实现各自的功能,最终达到程序的要求。 1.主函数中:先使用了switch选择结构来调用不同命令下所对应的被调用函

数,其中包括:输入函数shuru(),加密函数jiami(),解密函数jiemi(),显示函数show(),统计函数count1()、count2。在每个被调用函数中还多次调用了用来判断是否要继续的函数judge(),以达到循环的目的。在主函数中还多次使用清屏命令system(“cls”),以及刷新全部流的命令flushall()、fllush(stdin)使调用函数后,界面保持清洁,提高了程序的易读性。 2.输入函数中:while((c=getchar())!=EOF)的使用能提示使用者结束的命令,并且通过fputc(c,fp)把一个字符c写到由文件指针fp指定的磁盘文件上。 3.加密函数中:先定义两个指针,将输入的文件内容通过fputc(c+1,fp1);进行加密并保存到fp1所指定的文件上。保存成功后,使用remove(fname);语句删除掉原文件,并使用rename("jiami.txt",fname);语句将加密后的文件名改为已被删除的原文件名。 4.解密函数中:考虑到解密时的安全性问题,在进入解密系统时,需先输入进入解密系统的密码,因此在程序的主函数外先对解密系统密码进行初始值化,然后在进入解密系统时输入该密码就可进入。由于加密时是对每个文件内容都加上了20,所以解密时只需再减20即可。 5.显示函数中:while(!feof(fp))语句用来判断是否到了文件的末尾,可以用来保证文件的内容都被显示出来。 6.统计函数中:先定义一个字符串数组,将文件中的内容存到数组中,再使用tolower函数统一将数组所有字符转化为小写字母,将用户输入的字符也转化为小写字母,用strcmp来比较输入的字符是否与文件中的字符相等,若相等,则变量jishu加1,最后可以统计出所查单词在文件中的数目。l=strlen(word);语句表示用户输入字符的长度。 7.高级统计函数中:通过调用tol()自定义函数来判断文件中的字符是否是小写字母,若是的话,则将文件中的字符赋值给二维字符串数组cpy[][],而二维字符串数组则通过两个for循环嵌套来与自身进行比较,并且通过变量a的自增与自减来实现将重复被统计过的单词减去被多统计的次数,算出正确的单词个数。 四、实验小结: 1. 过多的嵌套级别可能会使程序难以理解,应避免使用超过3个级别的缩进。

相关主题
文本预览
相关文档 最新文档