当前位置:首页 » 操作系统 » 语记源码

语记源码

发布时间: 2023-05-19 05:19:33

c语言编写的记事本源代码

#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<stdlib.h>
#include<ctype.h>
#define NULL 0
#define MAX 100

typedef struct lnode{

char date[MAX]; //存放数据
struct lnode * prior ; //前驱
struct lnode * next ; //后继
int number ; //记录一个节点的字符数!如果是头节点就记录他的节点个数
int quese ; //记录节点在链表中的位置

}lnodetype;

lnodetype * l ; //设置两个全局变量,分别是头节点指针和尾节点指针
lnodetype * end ;

//**********这个函数是用来初始化的**********//
int iniatelist (lnodetype ** l , lnodetype ** end)
{

(*l) = (lnodetype *)malloc (sizeof (lnodetype) ) ;
if ( (*l) == NULL )
{

printf ("没有只够的内存空间!程序即将退出!");
return 0 ;

}

(*l)->prior =(*l)->next = NULL ; //这是双链表
(*l)->number = (*l)->quese = 0;
(*end) = (*l) ;

printf ("程序初始化完毕!");
return 0;

}

//**********这个函数是用来建立节点,并且插入元素的**********//
int link(lnodetype ** l, lnodetype ** end)
{

lnodetype *s ;
s = (lnodetype *)malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){

printf ("内存空间不够,程序即将退出!") ;
return 0 ;

}

(*end)->next = s ;
s->prior = (*end) ;
(*end) = (*end)->next ;
(*l)->number++ ; //增加一个节点,头节点的number就加1
s->quese = (*l)->number ; //这个是记录节点在链表中的位置

printf ("%d行", s->quese ) ; //这个是节点在整个链表中的位置
gets(s->date) ;
s -> number = strlen(s->date) ;
return 0 ;

}

//**********这个是打印链表的函数**********//
int prin (lnodetype ** l, lnodetype ** end)
{

lnodetype * p ;
int i ;
int j = 0;
int couter = (*l)->number ;
p = (*l)->next ;

for (i=0; i < couter; i++){

printf ( "%d行" , i+1 ) ;
j = 0;
while ( ( p->date[j]>='a' && p->date[j]<='z') ||
(p->date[j]>='A' && p->date[j]<='z') ||
p->date[j]>='0' && p->date[j]<='9')
{

printf ( "%c" , p->date[j] ) ;
j++ ;

}
printf ("n") ;
p = p->next ;

}

return 0 ;

}

//*********这个查找和编辑相应行的函数**********//
int search (lnodetype ** l, lnodetype ** end )
{

int number ;
scanf ("%d" , &number) ;
int i ;
lnodetype * p ;
p = (*l)->next ;

for ( i=0; i<number-1; i++ )
p = p->next ;

printf ("%d行" , number ) ;
gets (p->date) ;
return 0 ;

}

//**********这个是在文本文件里搜索字符串的函数**********//
int searchstr(lnodetype ** l , lnodetype ** end)
{

char ptr[100] ;
int arrycouter ;
int mystrcmp( char *, char * , int ) ;

printf ( "ok!现在输入你查找的字符串!" ) ;
scanf ( "%s" , ptr ) ;
arrycouter = strlen (ptr) ;
lnodetype * s ;
s = (*l)->next ;
char * p ;

int i = 1 ;
int couter = 0 ;
int number = (*l)->number ;
p = (char *)s->date ;

while ( i && number ){

// i=1是,证明没有找到,向第二个节点继续寻找

while ( i && ( ( (*p >= 'a') && (*p <= 'z') ) || ( (*p >= 'A') && (*p <= 'Z') ) ) ){

i = mystrcmp ( p , ptr , arrycouter );

if ( i == 1 ){

printf ("字符串已经在第%d行,第%d个字符开始,",s->quese, couter+1 );
i = 0 ;
}
else
{
p++ ;
couter++;
i = 1 ;
}

}

s = s->next ;
p = (char *)s->date ;
number -- ;

}

if ( i == 1 )
printf ("字符串在本文档中不存在!");
return 0 ;

}

//**********(1)这个函数是用来实现退出不保存功能的**********//
int exitunsave(lnodetype ** l, lnodetype ** end)
{

lnodetype * s ;
while( (*l) != (*end) ){ //如果不保存的话,最好是把节点的空间都释放,节省空间

s = (*end) ;
(*end) = (*end)->prior ;
free( s ) ;

}

return 0 ;

}

//**********(2)这个函数是用来实现退出但保存功能的**********//
int quitandsave( lnodetype ** l , lnodetype ** end )
{

FILE * fp ;
char ch ;
char filename[20] ;
lnodetype * p;
int i ;
int j ;
int couter = (*l)->number ;

p = (*l)->next ;

printf ("请输入文件名:") ;
scanf ("%s" , filename ) ;

if ( (fp = fopen( filename , "w" )) == NULL ){

printf ("文件不能打开!n");
return 0 ;

}

for ( i=0; i<couter; i++ ){ //有几个节点就进行多少次的存贮

ch = p->date[0] ;
j = 1 ;

while (ch != '\0'){

fputc (ch , fp) ;
ch = p->date[j] ;
j++ ;

}

p = p->next ;
fputc ( '#' , fp ) ; //注意在每个节点的后面加上结束的符号

}

fputc ( '@' , fp ) ; //整个文件关闭的标志
fclose ( fp ) ; //注意关闭文件,
return 0 ;

}
//**********由于库函数比较字符串提供的功能不满足要求,故自己写了一个**********/
int mystrcmp( char * p ,char * sour ,int number )
{

while ( number && (*p) == (*sour) &&
( ( (*p >= 'a') && (*p <= 'z') ) || ( (*p >= 'A') && (*p <= 'Z') ) )){

p++ ;
sour++ ;
number-- ;

}

if ( number == 0 )
return 1 ;
else
return 0 ;

}
//**********这个函数是用来实现统计字符串功能的**********//
int coutword(lnodetype ** l , lnodetype ** end)
{ //考虑到只统计一行的单词没有意义,故统计整个文本

int yes = 1 ; //这个是进入单词的标志
int no = 0 ; //在单词外面的时候的标志
int i , j ,inaword ,count = 0 ;
inaword = no ;
lnodetype * s = (*l)->next ;

for (j=0; j<(*l)->number; j++){

for ( i=0; (s->date[i]>='a' && s->date[i]<='z') ||
(s->date[i]>='A' && s->date[i]<='z') ||
(s->date[i]>='0' && s->date[i]<='9' ) ||
(s->date[i]==' '); i++ )
{

if ( s->date[i] == ' ' )
inaword = no ;
else
if ( inaword == no )
{
inaword = yes ;
count++ ; //计算单词
}

}

s = s->next ;
inaword = 0 ; //注意这里,把标志置为0了!

}

printf ( "n文本一共有 %d 行" , (*l)->number ) ;
printf ("n此文本一共有 %d 个单词!" , count ) ;

return count ;

}
//**********这个函数是用来实现计算文本行数功能的**********//
int linecouter(lnodetype ** l , lnodetype ** end )
{

int couter ;
couter = (*l)->number ;
return couter ;

}

//**********这个函数是整和一上所有功能的菜单函数**********//
int editmenu(lnodetype ** l , lnodetype ** end )
{

char choice ;
char * p = "cls" ;
int i = 1 ; //这两个变量是用来控制循环的
int j= 1 ;
system (p) ;
prin (&(*l) , &(*end)) ;

while (j){

printf ("*********************************** e: 编辑相应行 *************************************n") ;
printf ("*********************************** s: 搜索字符串 *************************************n") ;
printf ("*********************************** t: 统计单词个数 ***********************************n") ;
printf ("*********************************** q: 退出编辑 ***************************************n") ;

scanf("%c",&choice);
scanf("%c" , &choice) ; //????莫名其妙的问题,非要两个请求输入语句才肯停下来!
switch (choice)
{
case 'e' : {
i = 1 ;
while (i)
{
search( &(*l) , &(*end) );
system (p) ;
prin( &(*l) , &(*end) ) ;
printf ("n1 继续编辑 0 结束编辑n") ;
scanf ("%d" , &i) ;

}

}

break;
case 's' : {

i = 1 ;
while (i)
{
searchstr( &(*l) , &(*end) );
getchar();
getchar();
system (p) ;
prin( &(*l) , &(*end) ) ;
printf ("n1 继续搜索 0 结束搜索n") ;
scanf ("%d" , &i) ;

}

}
break;
case 't' : {

coutword ( &(*l) , &(*end) ) ;
getchar() ;

}break;

default : return 0 ;

}

system (p) ;
prin( &(*l) , &(*end) ) ;
printf ("n1 回到编辑菜单 0 结束编辑n") ;
scanf ("%d" , &j) ;
if (j == 1)
system (p) ;
else
return 0 ;

}

return 0 ;
}

//**********实现第一个模块:新建空白文档**********//
int newtext( lnodetype ** l ,lnodetype ** end )
{

printf ( "新文本文件:n" ) ;
int i = 1 ;
char judstr[MAX] ;
lnodetype * temp ;
char jud ;
char * p = "cls" ;

while ( 1 ){

link( &(*l) , &(*end) ) ;
jud = (*end)->date[0] ;

if ( jud == '5' ){ //输入‘5’结束一切

temp = (*end) ;
(*end) = (*end)->prior ;
free (temp) ;

while (1){

printf ( "******************************* out :退出不保存 ****************************n") ;
printf ( "******************************* edit :编辑信息 *****************************n") ;
printf ( "******************************* quit :退出而不存盘 **************************n") ;
printf ( "******************************* qas :退出且存盘 ****************************n") ;
printf ( "******************************* con :继续输入! *****************************n") ;

gets(judstr) ;

if ( !strcmp(judstr , "out") )
{
exitunsave( &(*l) , &(*end) ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &(*l) , &(*end) ) ;
return 0 ;
}
else

if ( !strcmp(judstr , "edit") )
{

editmenu (l , end) ;
return 0;

}

system (p) ;

}
return 0 ;

}

}

return 0 ;

}

//**********这个是装入文件的函数**********//
int loadtaxt( char * filename )
{

FILE * fp ;
lnodetype * l ;
char ch ;
int i = 0 ;
char * p = "cls" ;
char judstr[MAX] ;
lnodetype * head ;
lnodetype * end ;

iniatelist ( &head , &end) ;
l = end = head ;

if ( (fp = fopen( filename, "r+")) == NULL ){

printf ("文件不能打开!n") ;
return 0 ;

}

ch = fgetc ( fp ) ;
while ( ch != '@' ){

lnodetype *s ;
s = (lnodetype *)malloc ( sizeof (lnodetype) ) ;
if ( s == NULL ){

printf ("内存空间不够,程序即将退出!") ;
return 0 ;

}

end->next = s ;
s->prior = end ;
end = end->next ;
l->number++ ;
s->quese = l->number ;
printf ("%d行", s->quese ) ;

while ( ch != '#'){

s->date[i] = ch ;
ch = fgetc (fp) ;
i++ ;

}
i = 0;
while ( (end->date[i]>='a' && end->date[i]<='z') ||
(end->date[i]>='A' && end->date[i]<='z') ||
(end->date[i]>='0' && end->date[i]<='9' ) ||
(end->date[i]==' ') )
{

printf ( "%c" , end->date[i] ) ;
i++ ;

}
end->date[i] = '\0' ; //注意在节点的最好加上这个,以让退出保存功能函数知道此节点已结束

printf ( "n" ) ;
i = 0;
ch = fgetc ( fp ) ;

}

fclose (fp) ;

printf ("n文件成功装入!n") ;
while (1){

printf ( "******************************* out :退出不保存 ****************************n") ;
printf ( "******************************* edit :编辑信息 *****************************n") ;
printf ( "******************************* qas :退出且存盘 ****************************n") ;
printf ( "******************************* con :继续输入! *****************************n") ;

scanf("%s",judstr);

if ( !strcmp(judstr , "out") )
{
exitunsave( &l , &end ) ;
return 0 ;
}
else
if ( !strcmp(judstr , "qas") )
{
quitandsave( &l , &end ) ;
return 0 ;
}
else

if ( !strcmp(judstr , "edit") )
{

editmenu (&l , &end) ;
return 0 ;

}

system (p) ;

}

return 0 ;

}

//**********主函数**********//

void main ( void )
{

//iniatelist (&l , &end) ;
//newtext(&l , &end) ;

char filename[MAX] ;
scanf ( "%s" , filename ) ;
loadtaxt( filename ) ;

}
很不容易做的程序!!!
通过编译

Ⅱ 易语言源码

哦 哦 ,那我给你个记事本的源码吧 如下
.版本 2
.支持库 iext2
.支持库 iext
.支持库 eAPI

.程序集 窗口程序集1
.程序集变量 文件路径, 文本型
.程序集变量 当前是否正在打字, 逻辑型

.子程序 _超级编辑框1_内容被改变, , , 更改超级编辑框的颜色
.局部变量 颜色, 字符格式

颜色.文本颜色 = 取颜色值 (取随机数 (0, 255), 取随机数 (0, 255), 取随机数 (0, 255))
超级编辑框1.置选择区字符格式 (颜色)
状态条1.置文本 (0, “行 ” + 到文本 (超级编辑框1.取行数 ()) + “ 文本长度 ” + 到文本 (超级编辑框1.取文本长度 ()))

.子程序 __启动窗口_创建完毕, , , 设置通用对话框

通用对话框1.过滤器 = “txt|*.txt”
通用对话框1.默认文件后缀 = “txt”
通用对话框1.标题 = “传说记事本保存对话框...”
_时间日期_被选择 ()
_炫银皮肤_被选择 ()
备忘录提醒 ()

.子程序 __启动窗口_位置被改变, , , 位置被改变后超级编辑框也跟着改变(按钮1也跟着改变)

.如果真 (_启动窗口.位置 = 3)
超级编辑框1.宽度 = 取屏幕宽度 () - 3
超级编辑框1.高度 = 取屏幕高度 () - 80 - 按钮1.高度 - 10
按钮1.顶边 = 取屏幕高度 () - 状态条1.高度 - 100
按钮1.宽度 = 取屏幕宽度 () - 5
按钮1.高度 = 状态条1.高度 + 10
.如果真结束
.如果真 (_启动窗口.位置 = 0)
超级编辑框1.宽度 = _启动窗口.宽度 - 10
超级编辑框1.高度 = _启动窗口.高度 - 55 - 按钮1.高度 - 10
按钮1.顶边 = 200
按钮1.宽度 = 560

.如果真结束

.子程序 _新建_被选择, , , New文件

.如果真 (超级编辑框1.内容 ≠ “”)
.如果真 (信息框 (“您还没保存!请问您要进行保存吗?”, 4, ) = #是钮)
通用对话框1.类型 = 1
通用对话框1.打开 ()
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束

.如果真结束

.子程序 _打开_被选择, , , Open文件

通用对话框1.类型 = 0
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 ≠ “”)
超级编辑框1.内容 = 到文本 (读入文件 (通用对话框1.文件名))
文件路径 = 通用对话框1.文件名

.如果真结束

.子程序 _保存_被选择, , , Save文件

.如果真 (文件路径 = “”)
通用对话框1.类型 = 1
通用对话框1.打开 ()
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束
.如果真 (文件路径 ≠ “”)
写到文件 (文件路径, 到字节集 (超级编辑框1.内容))
.如果真结束

.子程序 _保存到_被选择, , , Save As文件

通用对话框1.类型 = 1
通用对话框1.打开 ()
.如果真 (通用对话框1.文件名 ≠ “”)
写到文件 (通用对话框1.文件名, 到字节集 (超级编辑框1.内容))
.如果真结束

.子程序 _撤销_被选择, , , Undo 文本

超级编辑框1.撤消 ()

.子程序 _剪切_被选择, , , Cut 文本

超级编辑框1.剪切 ()

.子程序 _复制_被选择, , , Copy 文本

超级编辑框1.复制 ()

.子程序 _粘连_被选择, , , Paste文本

超级编辑框1.粘贴 ()

.子程序 _删除_被选择, , , Delete文本

超级编辑框1.删除 ()
超级编辑框1.内容 = 取文本左边 (超级编辑框1.内容, 取文本长度 (超级编辑框1.内容) - 1)

.子程序 _寻找_被选择, , , Find文本

载入 (Find窗口, , 真)

.子程序 _寻找下一个_被选择, , , 还没解决好

.子程序 _文本替换_被选择, , , 文本替换

载入 (文本替换窗口, , 真)

.子程序 _跳到_被选择, , , 还没解决好

载入 (跳到窗口, , 真)

.子程序 _全选_被选择, , , Select All文本

超级编辑框1.被选择字符数 = 取文本长度 (超级编辑框1.内容)

.子程序 _时间日期_被选择, , , Time-Date
.局部变量 小时, 文本型
.局部变量 分钟, 文本型
.局部变量 日期, 文本型
.局部变量 年份, 文本型
.局部变量 月份, 文本型
.局部变量 日份, 文本型

小时 = 到文本 (取小时 (取现行时间 ()))
分钟 = 到文本 (取分钟 (取现行时间 ()))
年份 = 到文本 (取年份 (取现行时间 ()))
月份 = 到文本 (取月份 (取现行时间 ()))
日份 = 到文本 (取日 (取现行时间 ()))
状态条1.置文本 (1, 小时 + “:” + 分钟 + “ ” + 年份 + “-” + 月份 + “-” + 日份)

.子程序 _传说记事本v13_被选择, , , About Notepad

信息框 (“软件作者:古老的传说” + #换行符 + “QQ:1041750677” + #换行符 + “MSN:[email protected]” + #换行符 + “编写工具:易语言” + #换行符 + “软件版本:1.3” + #换行符, 0, )

.子程序 _密码保管_被选择, , , Password Protect

载入 (密码窗口, , 真)

.子程序 _备忘录_被选择, , , 载入备忘录窗口

载入 (备忘录窗口, , 真)

.子程序 备忘录提醒, , , 备忘录提醒
.局部变量 分割文本, 文本型, , "0"
.局部变量 今天日期, 文本型
.局部变量 分割今天日期, 文本型, , "0"

分割文本 = 分割文本 (读配置项 (取运行目录 () + “\备忘录.ini”, “备忘录”, “提示日期”, ), “日”, )
今天日期 = 到文本 (取日期 (取现行时间 ()))
分割今天日期 = 分割文本 (今天日期, “日”, )
.如果真 (取数组成员数 (分割文本) = 1 或 取数组成员数 (分割文本) > 1)
.如果真 (分割文本 [1] = 分割今天日期 [1])
状态条1.置文本 (2, “您今天有一份备忘录噢^_^”)
.如果真结束

.如果真结束

.子程序 _银白皮肤_被选择, , , 银白皮肤

更换新皮肤 (1)

.子程序 _浅白皮肤_被选择, , , 浅白皮肤

更换新皮肤 (10)

.子程序 _浅灰皮肤_被选择, , , 浅灰皮肤

更换新皮肤 (13)

.子程序 _浅蓝皮肤_被选择, , , 浅蓝皮肤

更换新皮肤 (19)

.子程序 _浅黑皮肤_被选择, , , 浅黑皮肤

更换新皮肤 (5)

.子程序 _炫银皮肤_被选择, , , 炫银皮肤

更换新皮肤 (2)

.子程序 _炫白皮肤_被选择, , , 炫白皮肤

更换新皮肤 (15)

.子程序 _炫蓝皮肤_被选择, , , 炫蓝皮肤

更换新皮肤 (18)

.子程序 _深黑皮肤_被选择, , , 深黑皮肤

更换新皮肤 (14)

.子程序 __启动窗口_可否被关闭, 逻辑型, , 透明显示最小化运行
.局部变量 变量1, 整数型

变量1 = 255
.计次循环首 (255, )
设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)
变量1 = 变量1 - 1
.如果真 (变量1 = 1)
置托盘图标 (#程序图标, “古老的传说记事本v1.2”)
_启动窗口.可视 = 假
.如果真结束

.计次循环尾 ()

返回 (假)

.子程序 __启动窗口_托盘事件, , , 透明显示_启动窗口
.参数 操作类型, 整数型
.局部变量 变量1, 整数型

.如果真 (操作类型 = 1)
_启动窗口.可视 = 真
.计次循环首 (255, 变量1)
设置窗口透明度 (_启动窗口.取窗口句柄 (), 变量1)
.计次循环尾 ()
.如果真结束
.如果真 (操作类型 = 3)
弹出菜单 (图标菜单, 取鼠标水平位置 (), 取鼠标垂直位置 ())

.如果真结束

.子程序 __启动窗口_将被销毁, , , 销毁任务栏图标

置托盘图标 ({ }, )

.子程序 _打开传说记事本_被选择, , , _启动窗口.可视=真

__启动窗口_托盘事件 (1)

.子程序 _销毁_被选择, , , 销毁软件

销毁 ()

.子程序 _超级编辑框1_按下某键, 逻辑型, , 正在打字中...
.参数 键代码, 整数型
.参数 功能键状态, 整数型

当前是否正在打字 = 真
按钮1.标题 = “正在打字中...”
时钟1.时钟周期 = 800
返回 (真)

.子程序 _超级编辑框1_放开某键, 逻辑型, , 暂停打字中...
.参数 键代码, 整数型
.参数 功能键状态, 整数型

当前是否正在打字 = 假
返回 (真)

.子程序 _时钟1_周期事件, , , 暂停打字中...

.如果真 (当前是否正在打字 = 假)
按钮1.标题 = “暂停打字中...”

.如果真结束

.子程序 _超级编辑框1_选择区被改变, , , 超级编辑框1.滚动

超级编辑框1.滚动 (1)

Ⅲ 一简单的易语言记忆上次操作的问题(附源码)

点击按钮是写入配置项,打开程序时再读取配置项,根据配置设置就可以

Ⅳ C语言源代码是什么

数字版“拼图”游戏C源代码:

#include<time.h>

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

#include<windows.h>

int i, j, r, k; //i、j、r用于循环, k存放随机数值


int m, n; // m、n是当前空位的下标, t标记排序是否成功

int a[4][4]; //存储4×4共16个数字的数组

void show(void); //输出数组表格

void csh(void); //初始化界面

int yes(void); //判断排序是否成功

void up(void); //数字向上移动到空位(空位则下移)

void down(void); //数字向下移

void left(void); //数字向左移

void rght(void); //数字向右移

void inkey(void); //按键操作

void gtxy(int x, int y) ; //控制光标移动的函数

int main(void)

{ while(1)

{csh( );

while(1)

{ inkey();

show();

if ( yes( ) )

{gtxy(6,12); printf("你成功了! 再来一局y/n?"); break;}

}

if(getch( )== ʹnʹ)break;

}

return 0;

}

void csh(void)

{r=0;

CONSOLE_CURSOR_INFO cursor_info={1,0}; //以下两行是隐藏光标的设置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);

for(i=0;i<4;i++) //给数组a依序赋值

for(j=0;j<4;j++)
{ if (i==3 && j==3) a[i][j]=0;
else a[i][j]=1+r++;
}

a[3][3]=a[1][1]; a[1][1]=0; //把a[3][3]与a[1][1]的值交换一下

m=1; n=1;

srand((unsigned)time(0)); //初始化随机数发生器

for(r=0;r<500;r++) //将数组各值打乱
{k=rand( )%(4); //取0-3随机数,分别代表上下左右四个方向
switch(k)
{ case 0: { up( );break; }
case 1: {down( );break; }
case 2: {left( );break; }
case 3: {rght( ); break; }
}
}

printf(" 数字拼图");

printf(" ┌──────┬──────┬──────┬──────┐");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" ├──────┼──────┼──────┼──────┤");

printf(" │ │ │ │ │");

printf(" └──────┴──────┴──────┴──────┘");
show( );
}

void show(void)

{for(i=0;i<4;i++)

for(j=0;j<4;j++) //gtxy(7*j+9, 2*i+4)是光标到指定位置输出数字

{gtxy(7*j+9,2*i+4); if(a[i][j]==0)printf(" │");

else if(a[i][j]>9)printf(" %d │",a[i][j]);

else printf(" %d │",a[i][j]);

}

}

void inkey(void)

{ int key;

key=getch( );
switch(key)
{ case 72: { up( ); break;}
case 80: {down( ); break; }
case 75: {left( ); break; }
case 77: {rght( );break;}
}
}

void up(void)

{ if (m!=3) //移动时要考虑空位"0"是否已经在边界
{ a[m][n]=a[m+1][n]; m++; a[m][n]=0; }
}


void down(void)

{ if (m!=0)
{a[m][n]=a[m-1][n]; m--; a[m][n]=0; }
}

void left(void)

{ if (n!=3)
{ a[m][n]=a[m][n+1]; n++; a[m][n]=0;}
}
void rght(void)

{ if (n!=0)
{ a[m][n]=a[m][n-1]; n--; a[m][n]=0; }
}

int yes(void)

{ r=0;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{ if (a[i][j]!=1+r++) return (r==16)?1:0; }
}

void gtxy(int x, int y) //控制光标移动的函数

{ COORD coord;

coord.X = x;

coord.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

Ⅳ 求某个易语言记事本的源码(图)

易语亮前雀敬早言笔记悔激本源码 http://nao.uueasy.com/read-htm-tid-63.html

Ⅵ c语言:原码,反码 补码

1)原码表示
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。
例如,X1=
+1010110
X2=
一1001010
其原码记作:
[X1]原=[+1010110]原=01010110
[X2]原=[-1001010]原=11001010
在原码表示法中,对0有两种表示形式:
[+0]原=00000000
[-0]
原=10000000
2)补码表示
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]补=01010110

[X1]原=[X1]补=01010110
[X2]
原=
11001010
[X2]
补=10110101+1=10110110
机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
例如,[X1]=+1010110
[X2]=
一1001010
[X1]原=01010110
[X1]补=01010110

[X1]原=[X1]补=01010110
[X2]
原=
11001010
[X2]
补=10110101+1=10110110
(3)反码表示法
机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。
例如:X1=
+1010110
X2=
一1001010
[X1]原=01010110
[X1]反=[X1]原=01010110
[X2]原=11001010
[X2]反=10110101
反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。
例1.
已知[X]原=10011010,求[X]补。
分析如下:
由[X]原求[X]补的原则是:若机器数为正数,则[X]原=[X]补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]补=[X]原十1,即
[X]原=10011010
[X]反=11100101+1
[X]补=11100110
例2.
已知[X]补=11100110,求[X]原。
分析如下:
对于机器数为正数,则[X]原=[X]补
对于机器数为负数,则有[X]原=[[X]补]补
现给定的为负数,故有:
[X]补=11100110
[[X]补]反=10011001+1
[[X]补]补=10011010=[X]原+1
[[X]补]补=10011010=[X]原
总结一下,原码(为负时,正时都不变)全部取反即得到反码,反码加
"1"就得到补码了,就是这么简单。

Ⅶ 易语言编写键盘记录器 源码 说的详细点

.版本2

.程序集窗口程序集1

.子程序__启动窗口_创建完毕

SkinH_Attach()

编辑框1.禁止=真

停止按钮.禁止=真

信息框(“欢迎使用小天键盘记录系统,在关闭此记录系统后,会自动保存记录的内容到运行目录!”,#信息图标,“欢迎使用!”)

.子程序_停止按钮_被单击

开始按钮.禁止=假

编辑框1.禁止=真

时钟1.时钟周期=0

停止按钮.禁止=真

.子程序_开始按钮_被单击

开始按钮.禁止=真

编辑框1.禁止=假

时钟1.时钟周期=50

停止按钮.禁止=假

.子程序_时钟1_周期事件

编辑框1.加入文本(看看按键())

.子程序_按钮1_被单击

编辑框1.内容=“”

.子程序__启动窗口_可否被关闭,逻辑型

写到文件(取运行目录()+“记录内容.txt”,到字节集(编辑框1.内容))

销毁()

.子程序_按钮2_被单击

删除文件(取运行目录()+“记录内容.txt”)

Ⅷ 学易语言记不住源码格式怎么办 老是写了几次会了以后,过几天又忘记了,请各位英雄给友招了,感激不尽啊!

从头开始,当我学习易语言时候,才发现基本的语法,我就这么叫,叫法肯订是不对了,但也记不住叫什么了,网上找教程,有图文的,视频的,找来找去,发现有世恒教程,和世宝教程,这2个人都是视频的,唯一的差(ge4 ren2 dou1 shi4 shi4 pin2 de0 _wei2 yi1 de0 cha1)别是,世宝教程是免费的,世恒教程需要花钱买才可以看,网上找了下试看版第一集和第二集,又下载了世宝教程的第一季,综合的比较了下,2个人讲的还是有一些差别的,给我的感觉是,图文教程没有视频声音教程好,这谁都知道,看了几天,还是颤散发现世宝的教程我能看懂,(wo3 neng2 kan4 dong3 _)也能学懂,订下来跟着世宝的教程学习吧。
当看完前4段视频(an4 shi4 pin2),确实发现我的确学到了知识,确实通俗易懂,每天就这么学吧,当讲到例程的时候,自己暂停视频,启动易语言,跟着学,也不知道啥时候能学到数组了,
学完前6段视频时候,将以前的VB打开,VB我还没操作过呢,只是安装上看了下这个VB编程的平台和界面,因为我学了段世宝的教程,最最最最简单的操作还是会的,在VB上操作,还弄个最简单的,画个编辑框,画个按钮,还别说,用世宝学到的知识,我在VB上也操作成功了,易语言的格式是我想按下按钮就能在编辑框上输出文字,我在VB上也会了,哈哈,易语言(yi4 yu3 yan2)格式是双击按钮到编辑代码的界面输入(编辑框1.内容 = “我爱你中国”),点击启动按钮,此时点击操作框上的按钮,我爱你中国就在编辑框1上显示了,这个(编辑框1.内容 = “我爱你中国”)的意思是什么呢,最最简单也是最能理解,自己就应该这样想的,当我按下按钮的时候,在编辑框1的内容上输出 我爱你中国 。那么VB也是这样么,我在VB上是这么写的,(Text1.Text = "我爱你中国")其实VB上这句话的意思,和易语言的意思一样,可以这么(de0 yi4 si1 yi1 yang4 _ke3 yi3 zhe4 me0)理解,当点击 Command1 后,让Text1的Text变成我爱你中国,(bian cheng wo ai ni zhong guo _)Text1就等于易语言的编辑框1,Text就等于易语言的 内容,真是差不多,唯一的区别,就是代码界面VB是英文的,易语言是中文的,这里不想哪个编程是最强大的,这个不管,我就需要一个可以入门的可以看懂的编程语言平台就行了,门都没进去,何谈其他的了,当然如果谁的英文好,还是从VB开始学就行了,看来VB英文的编程和易语言,还是差不多的,估计易语言学的差不多,再转到VB上,可能也行吧,暂时这么理解的,每一个阶段想法都不一样,总之现在是这么想的,关闭VB,回到易语言教程,继续学习。 (本文章来自-IT信息网-网址-www.to3800.com)
还是回到世宝的教程上来,我对自己说个题外话,谢谢世宝,出这么好的教程,正适合我这什么都不懂的菜菜鸟,真的很不错,前6段视频,是讲解的最最基本的东西,想网更深处学习,都离不开前面6段所讲的,就像世宝老师说的那样,网上有很多现成的代码,自己看和自己写出来是完全不同的概埝,理解也完全的不同,自己总结了下前6段,包括,如果的是用,逗戚流程控茄指氏制方面的,计次鲟环首,判断鲟环首,鲟环判断首,且和或,到鲟环尾,跳出鲟环,上面这些是必须要非常熟练的掌握,我为什么这么说呢,前6段看完之后,只会用了,印象也(an kan wan hou _ hui yong le _yin xiang ye)不是那么深刻,当往下继续看的时候,发现程序里面是有以上的命令所组成,哪个不熟练,就吃力,还是停下来,不往下看了,继续回到原先开始阶段,重新看,认真学,因为印象不是那么的深刻,第2遍看完后可以往下继续跟着老师学习了,当讲到第一季12段视频的时候,数组这个我头大的东西出现了,当看完后,感觉回到按键精灵那时候,不知道再从哪里继续学相比较,看老师的数组教程眼前(yan qian)一亮,啊,我能看懂了,的确是一个收获啊,数组有的地方还是不太怎么太懂,也就是说,不是那么完全的明白,还是老规矩,暂停,回头继续学习,目前,教程只看到数组这里,写了这么多的感触吧。
总结,发现只要世宝老师的易语言第一季教程你能完全的吃透,学明白,那么其他的编程语言,是完全可以经过短暂的时间过渡到上面的,而不会像才开始那样,看英文完全不懂了,我在继续学呢,估计吧,数组我们完全的吃透原理之后,对我的知识又是一次质的提高,有人会说,数组这么简单怎么都不会呢,我本人就是太笨了,脑子反应慢,学东西太慢,没办法,不说了,先写到这里吧,希望我能早日知识再次提高吧!
过段时间再回来写我所想的,每(guo4 an4 shi2 jian1 zai4 hui2 lai2 xie3 wo3 suo3 xiang3 de0 _mei3)个阶段想的都不一样了
(本文章来自-IT信息网-网址-www.to3800.com)

Ⅸ c语言的源代码写在哪 记事本上吗

呵呵,自己喜欢写在哪就姿族培哪了,只是C语言代码的源程序是以.c为后缀名,如果你写在记事本上,然后改下后缀穗好名在编译器上也迹唯可以运行的。但是我们一般写代码都是在应用软件上写的,例如VC,这些软件如果有编辑器和编译器,你写完的时候保存的话会有默认后缀名的,例如你建立了一个C++文件就保存的文件为.cpp。

Ⅹ 源码是什么怎么使用

一、源码是什么:

源码就是指编写的最原始程序的代码。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的"语言"。音乐家用五线谱和音符,建筑师用图纸和笔,那程序员的工作的语言就是"源码"了。

人们平时使用软件时就是程序把"源码"翻译成我拆蚂败们可直观的形式表现出来供我们使用的。任何一个网站页面,换成源码就是一堆按一定格式书写的文字和符号旅颤,但我们的浏览器帮我们翻译成眼前的模样了。

二、源码怎么使用:

可以用记事本打开的好多行英文的,用编程语言写好的软件源程序经过编译成目标程序,才能运行。一般目标程序不能再修改了。电脑上安装的软件都是目标程序。源程序不可能直接运行的。提倡软件开源的人士认为应该提供源程序给用户,让用户自己修改,有利于软件行业的发展。

知识扩展:

源代码主要有以下2种作用:

1、生成目标代码,即计算机可以识别的代码。

2、对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都物绝忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。

热点内容
落叶片拍摄脚本 发布:2025-05-14 20:40:49 浏览:797
安卓为什么不能用cmwap 发布:2025-05-14 20:40:43 浏览:656
jquery获取上传文件 发布:2025-05-14 20:27:57 浏览:43
云web服务器搭建 发布:2025-05-14 20:25:36 浏览:525
汽修汽配源码 发布:2025-05-14 20:08:53 浏览:742
蜜蜂编程官网 发布:2025-05-14 19:59:28 浏览:57
优酷怎么给视频加密 发布:2025-05-14 19:31:34 浏览:635
梦三国2副本脚本 发布:2025-05-14 19:29:58 浏览:860
phpxmlhttp 发布:2025-05-14 19:29:58 浏览:434
Pua脚本 发布:2025-05-14 19:24:56 浏览:449