當前位置:首頁 » 操作系統 » 語記源碼

語記源碼

發布時間: 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 16:57:10 瀏覽:177
方舟怎麼用自己的存檔進入別人的伺服器 發布:2025-05-14 16:46:25 瀏覽:876
微博視頻高清上傳設置 發布:2025-05-14 16:38:41 瀏覽:548
資料庫圖書管理設計 發布:2025-05-14 16:33:52 瀏覽:378
php開發的網頁 發布:2025-05-14 16:22:03 瀏覽:477
伺服器內存跑滿了怎麼回事 發布:2025-05-14 16:21:16 瀏覽:224
微信qq音樂緩存 發布:2025-05-14 16:16:16 瀏覽:469
c語言回收內存 發布:2025-05-14 16:16:08 瀏覽:144
2021國產安卓頂級旗艦買哪個 發布:2025-05-14 16:15:36 瀏覽:300
linux自學視頻 發布:2025-05-14 16:14:49 瀏覽:256