<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
	<title>KX收藏站</title>
	<link>https://kxiang.wodemo.net/</link>
        <item>
        <title><![CDATA[C语言求交集、并集、差集]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/490546]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Thu, 13 Sep 2018 07:06:17 -0700]]></pubDate>
        <description><![CDATA[(作者:KX)(code:c)#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
struct Num
{
	int num;
	struct Num *next;
};
void insertList(struct Num *head,int num);
void printList(struct Num *head);
int isInList(struct Num *head,int num);
struct Num *getJiao(struct Num *head1,struct Num *head2);
struct Num *getBing(struct Num *head1,struct Num *head2);
struct Num *getCha(struct Num *head1,struct Num *head2);
void freeList(struct Num *head);
int main()
{
	struct Num *headA,*headB,*headJiao,*headBing,*headCha;
	int num,i,n;
	headA=(struct Num *)malloc(sizeof(struct Num));
	headA-&gt;next=NULL;
	headB=(struct Num *)malloc(sizeof(struct Num));
	headB-&gt;next=NULL;
	printf(&quot;输入集合A的元素个数:&quot;); 
   	scanf(&quot;%d&quot;,&amp;num);
   	printf(&quot;输入集合A的各个元素，按空格隔开:\n&quot;);
   	for(i=0;i&lt;num;i++)
 	{
 		scanf(&quot;%d&quot;,&amp;n);
	   	insertList(headA,n);	
   	} 
	printf(&quot;输入集合B的元素个数:&quot;); 
	scanf(&quot;%d&quot;,&amp;num);
   	printf(&quot;输入集合B的各个元素，按空格隔开:\n&quot;);
   	for(i=0;i&lt;num;i++)
 	{
 		scanf(&quot;%d&quot;,&amp;n);
	   	insertList(headB,n);	
   	} 
   	printf(&quot;   A = &quot;);
   	printList(headA);
   	printf(&quot;   B = &quot;);
   	printList(headB);
	headJiao=getJiao(headA,headB);
	printf(&quot;A∩B = &quot;);
	printList(headJiao);
	headBing=getBing(headA,headB);
	printf(&quot;A∪B = &quot;);
	printList(headBing);
	headCha=getCha(headA,headB);
	printf(&quot;A－B = &quot;);
	printList(headCha);
	freeList(headA);
	freeList(headB);
	freeList(headJiao);
	freeList(headBing);
	freeList(headCha);
    return 0;
}
void insertList(struct Num *head,int num)
{
	struct Num *pnew;
	pnew=(struct Num *)malloc(sizeof(struct Num));
	pnew-&gt;next=head-&gt;next;
	pnew-&gt;num=num;
	head-&gt;next=pnew;
}
void printList(struct Num *head)
{
	struct Num *pcur=head-&gt;next;
	if(!pcur)
	{
		printf(&quot;Φ&quot;);
	}
	else
	{
		printf(&quot;{&quot;);
		while(pcur)
		{ 
			printf(&quot;%d&quot;,pcur-&gt;num);
			pcur=pcur-&gt;next;
			if(pcur)
				printf(&quot;,&quot;);
		}
		printf(&quot;}&quot;);		
	} 
	printf(&quot;\n&quot;);
}
int isInList(struct Num *head,int num)
{
	struct Num *pcur=head-&gt;next;
	int result=0;
	while(pcur)
	{
		if(pcur-&gt;num==num)
		{
			result=1;
			break;
		}
		pcur=pcur-&gt;next;
	}
	return result;
}
struct Num *getJiao(struct Num *head1,struct Num *head2)
{
	struct Num *head=(struct Num *)malloc(sizeof(struct Num));
	struct Num *pcur;
   	head-&gt;next=NULL;
   	pcur=head1-&gt;next;
   	while(pcur)
   	{
		if(isInList(head2,pcur-&gt;num) &amp;&amp; !isInList(head,pcur-&gt;num))
		{
			insertList(head,pcur-&gt;num);
		}
		pcur=pcur-&gt;next;
 	}
 	return head;
}
struct Num *getBing(struct Num *head1,struct Num *head2)
{
	struct Num *head=(struct Num *)malloc(sizeof(struct Num));
	struct Num *pcur;
   	head-&gt;next=NULL;
   	pcur=head1-&gt;next;
   	while(pcur)
   	{
		insertList(head,pcur-&gt;num);
		pcur=pcur-&gt;next;
 	}
 	pcur=head2-&gt;next;
 	while(pcur)
 	{
		if(!isInList(head,pcur-&gt;num))
		{
			insertList(head,pcur-&gt;num);
		} 	
		pcur=pcur-&gt;next;
 	}
 	return head;
}
struct Num *getCha(struct Num *head1,struct Num *head2)
{
	struct Num *head=(struct Num *)malloc(sizeof(struct Num));
	struct Num *pcur;
   	head-&gt;next=NULL;
   	pcur=head1-&gt;next;
 	while(pcur)
 	{
		if(!isInList(head2,pcur-&gt;num))
		{
			insertList(head,pcur-&gt;num);
		} 	
		pcur=pcur-&gt;next;
 	}
 	return head;
}
void freeList(struct Num *head)
{
	struct Num *pcur1,*pcur2;
	pcur1=head;
	while(pcur1)
	{
		pcur2=pcur1-&gt;next;
		free(pcur1);
		pcur1=pcur2;
	}
}
(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[《钢铁是怎样炼成的》.txt]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/486191]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Tue, 17 Jul 2018 08:13:56 -0700]]></pubDate>
        <description><![CDATA[File Size: 0.59 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/486191">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言中国象棋]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/485223]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sat, 07 Jul 2018 07:31:24 -0700]]></pubDate>
        <description><![CDATA[(作者:KX)
(code:C)/***********************************
	源码：中国象棋 
	作者：王卫祥&amp;KX&amp;2017211836
	版本：18060601
	代码使用请保留版权 
***********************************/


#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
#define X(x) 6*x+18//棋盘棋子坐标转化为窗口绝对坐标
#define Y(y) 3*y//棋盘棋子坐标转化为窗口绝对坐标
#define Group ((stepCount+1)%2) //当前走方子0红方,1蓝方
#define BoardColor 7,15//棋盘样式
#define ChessColor0 9,15//红方棋子样式
#define ChessColor1 12,15//蓝方棋子样式
#define TipColor 4,15//提醒文字样式
#define Alive (chess[Group][0].x&lt;9) //走子方将军是否几经死亡 
typedef struct
{
	int x,y;
} Coord;
typedef struct
{
    int x,y;//棋子的坐标
    int piece;//棋子类型
    /**
    类型： 0将帅 1仕士 2象相 3馬马 4車车 5炮 6卒兵
    **/
} Chess;
void menu();//主菜单
void start();//初始化游戏数据并开始游戏
void setChess();//开始新游戏时初始化所有棋子的坐标类型
void printBoard();//打印棋盘
void printChess();//打印棋子
int gotoxy(int x, int y); //定位光标位置
void control();//游戏时玩家控制
int areaType(int x,int y,int *group,int *no);//判断(x,y)处的类型
void selectTarget();//选中（移动）目标
int canMove(int x,int y);//判断是否可以移动到
void setColor(unsigned short foreColor,unsigned short backGroundColor);//改变打印的颜色
void completeBoard(int x,int y);//补全棋盘
void moveChess(int targetGroup,int targetNo);//将以选中棋子移动到光标处，若该处有棋子将子吃掉
void retract();//悔棋
void printRound();//打印回合数、轮到哪方走子、哪方死棋
void clearSelected();//清除选中棋子信息 
void saveGame();//保存游戏
void readGame();//读取游戏
void exitGame();//结束游戏


int stepCount;//存储走的步数（走一步算一步）
Chess chess[2][16];//存放棋子的信息
int x[2],y[2];//存放当前光标位置

int selectedChess=-1;//当前选中的棋子
char piece[2][7][3]={
	{&quot;将&quot;,&quot;仕&quot;,&quot;象&quot;,&quot;馬&quot;,&quot;車&quot;,&quot;炮&quot;,&quot;卒&quot;},
	{&quot;帅&quot;,&quot;士&quot;,&quot;相&quot;,&quot;马&quot;,&quot;车&quot;,&quot;炮&quot;,&quot;兵&quot;}
};//存放棋子名称
int main(int argc, char *argv[])
{
	system(&quot;title 中国象棋&quot;);
	system(&quot;mode con cols=69 lines=30&quot;);
	system(&quot;color F0&quot;);
	while(1)
	{
		menu();
	}
	return 0;
}

void menu()
{
	char command;
	printBoard();
	setColor(0,15);
	gotoxy(2,3);
	printf(&quot;1.开始新的游戏\n&quot;);
	gotoxy(2,4);
	printf(&quot;2.继续上次游戏\n&quot;);
	gotoxy(2,5);
	printf(&quot;0.退出游戏\n&quot;);
	command=getch();
	switch(command)
	{
		case '1':setChess();start();break;
		case '2':readGame();start();break;
		case '0':exitGame();break;
	}
}
void start()
{
	x[0]=x[1]=4;
	y[0]=2;
	y[1]=7;
	gotoxy(X(x[Group]),Y(y[Group]));
	printBoard();
	setColor(0,15);
	gotoxy(2,18);
	printf(&quot;1.悔棋&quot;);
	gotoxy(2,19);
	printf(&quot;2.开始新的游戏&quot;);
	gotoxy(2,20);
	printf(&quot;3.退出游戏&quot;);
	printChess();
	while(1)
	{
		printRound();
		control();
		selectTarget();
	}

}

void printBoard()
{
	setColor(BoardColor);
	gotoxy(0,0);
	printf(&quot;┏━━━━━━━┓┏━━┳━━┳━━┳━━┳━━┳━━┳━━┳━━┓\n&quot;);
    printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃╲　┃　╱┃　　┃　　┃　　┃\n&quot;);
    printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　╲┃╱　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　╱┃╲　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃╱　┃　╲┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━┻━━┻━━┻━━┻━━┻━━┻━━┻━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　　楚　　　河　　　　　　　　　　　　　　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　　　　　　　　　　　　　　汉　　　界　　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━┳━━┳━━┳━━┳━━┳━━┳━━┳━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃╲　┃　╱┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　╲┃╱　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃　　　　　　　　┣━━╋━━╋━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
	printf(&quot;┃　　　　　　　　┃　　┃　　┃　　┃　╱┃╲　┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┃ＫＸ制作　　　　┃　　┃　　┃　　┃╱　┃　╲┃　　┃　　┃　　┃\n&quot;);
	printf(&quot;┗━━━━━━━┛┗━━┻━━┻━━┻━━┻━━┻━━┻━━┻━━┛\n&quot;);
	return;
}

void setChess()
{
	int i,j;
	chess[0][0].piece=0;chess[0][0].x=4;chess[0][0].y=0;
	chess[0][1].piece=1;chess[0][1].x=3;chess[0][1].y=0;
	chess[0][2].piece=1;chess[0][2].x=5;chess[0][2].y=0;
	chess[0][3].piece=2;chess[0][3].x=2;chess[0][3].y=0;
	chess[0][4].piece=2;chess[0][4].x=6;chess[0][4].y=0;
	chess[0][5].piece=3;chess[0][5].x=1;chess[0][5].y=0;
	chess[0][6].piece=3;chess[0][6].x=7;chess[0][6].y=0;
	chess[0][7].piece=4;chess[0][7].x=0;chess[0][7].y=0;
	chess[0][8].piece=4;chess[0][8].x=8;chess[0][8].y=0;
	chess[0][9].piece=5;chess[0][9].x=1;chess[0][9].y=2;
	chess[0][10].piece=5;chess[0][10].x=7;chess[0][10].y=2;
	chess[0][11].piece=6;chess[0][11].x=0;chess[0][11].y=3;
	chess[0][12].piece=6;chess[0][12].x=2;chess[0][12].y=3;
	chess[0][13].piece=6;chess[0][13].x=4;chess[0][13].y=3;
	chess[0][14].piece=6;chess[0][14].x=6;chess[0][14].y=3;
	chess[0][15].piece=6;chess[0][15].x=8;chess[0][15].y=3;
	chess[1][0].piece=0;chess[1][0].x=4;chess[1][0].y=9;
	chess[1][1].piece=1;chess[1][1].x=3;chess[1][1].y=9;
	chess[1][2].piece=1;chess[1][2].x=5;chess[1][2].y=9;
	chess[1][3].piece=2;chess[1][3].x=2;chess[1][3].y=9;
	chess[1][4].piece=2;chess[1][4].x=6;chess[1][4].y=9;
	chess[1][5].piece=3;chess[1][5].x=1;chess[1][5].y=9;
	chess[1][6].piece=3;chess[1][6].x=7;chess[1][6].y=9;
	chess[1][7].piece=4;chess[1][7].x=0;chess[1][7].y=9;
	chess[1][8].piece=4;chess[1][8].x=8;chess[1][8].y=9;
	chess[1][9].piece=5;chess[1][9].x=1;chess[1][9].y=7;
	chess[1][10].piece=5;chess[1][10].x=7;chess[1][10].y=7;
	chess[1][11].piece=6;chess[1][11].x=0;chess[1][11].y=6;
	chess[1][12].piece=6;chess[1][12].x=2;chess[1][12].y=6;
	chess[1][13].piece=6;chess[1][13].x=4;chess[1][13].y=6;
	chess[1][14].piece=6;chess[1][14].x=6;chess[1][14].y=6;
	chess[1][15].piece=6;chess[1][15].x=8;chess[1][15].y=6;
	stepCount=0;
}

void printChess()
{
	int i,j;
	for(i=0;i&lt;2;i++)
	{
		if(i==0)
		{
			setColor(ChessColor0);
		}
		else
		{
			setColor(ChessColor1);
		}
		for(j=0;j&lt;16;j++)
		{
			if(chess[i][j].x&lt;=8)
			{
				gotoxy(X(chess[i][j].x),Y(chess[i][j].y));
				printf(&quot;%s&quot;,piece[i][chess[i][j].piece]);
			}

		}
	}
	gotoxy(X(x[Group]),Y(y[Group]));
}

int gotoxy(int x, int y) //定位光标位置
{
    HANDLE handle; //定义句柄变量handle
    COORD coord; //定义结构体coord (坐标系coord)
    coord.X = x; //横坐标x
    coord.Y = y; //纵坐标y
    handle = GetStdHandle(STD_OUTPUT_HANDLE); //获取控制台输出句柄(值为-11)
    SetConsoleCursorPosition(handle, coord); //移动光标
}
void setColor(unsigned short foreColor,unsigned short backGroundColor)
{
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取当前窗口句柄
	SetConsoleTextAttribute(handle,foreColor+backGroundColor*0x10);//设置颜色
}
int areaType(int tx,int ty,int *group,int *no)
{
	int i,j,isFined=0;
	for(i=0;i&lt;2 &amp;&amp; isFined==0;i++)
	{
		for(j=0;j&lt;16 &amp;&amp; isFined==0;j++)
		{
			if(chess[i][j].x==tx &amp;&amp; chess[i][j].y==ty)
			{
				isFined=1;
				i--;
				j--;
			}
		}
	}
	if(group!=0)
	{
		*group=i;
	}
	if(i==2 &amp;&amp; j==16)
	{
		j=-1;
	}
	if(no!=0)
	{
		*no=j;
	}
	return i;
}

void control()
{
	char command;
	int oldX,oldY;
	while(1)
	{
		command=getch();
		switch(command)
		{
			case'a':
			case 75:if(x[Group]&gt;0) x[Group]--;break;
			case'w':
			case 72:if(y[Group]&gt;0) y[Group]--;break;
			case'd':
			case 77:if(x[Group]&lt;8) x[Group]++;break;
			case's':
			case 80:if(y[Group]&lt;9) y[Group]++;break;
			case ' ':
			case '\r':if(Alive)return;break;
			case '1':retract();break;
			case '2':setChess();start();break;
			case '3':exitGame();
		}
		gotoxy(X(x[Group]),Y(y[Group]));
	}
}

void selectTarget()
{
	int targetGroup,targetNo;
  	areaType(x[Group],y[Group],&amp;targetGroup,&amp;targetNo);
	if(targetGroup==Group)//选中了自己的棋子
	{
		if(selectedChess!=-1)//之前已经选中了一个棋子
		{
			clearSelected();
		}
		selectedChess=targetNo;
		setColor(15,Group==0?9:12);
		printf(&quot;%s&quot;,piece[Group][chess[Group][selectedChess].piece]);

	}
	else
	{
		moveChess(targetGroup,targetNo);
	}
}

void moveChess(int targetGroup,int targetNo)//移动棋子
{
	if(canMove(x[Group],y[Group]))
	{
		completeBoard(chess[Group][selectedChess].x,chess[Group][selectedChess].y);
		gotoxy(X(x[Group]),Y(y[Group]));
		Group==0?setColor(ChessColor0):setColor(ChessColor1);
		printf(&quot;%s&quot;,piece[Group][chess[Group][selectedChess].piece]);
		if(targetGroup!=2)//吃子
		{
			chess[targetGroup][targetNo].x=9;
		}
		FILE *record=fopen(&quot;data/chess/record.txt&quot;,&quot;r+&quot;);
		if(record==NULL)
		{
			system(&quot;cd &gt;data\\chess\\record.txt&quot;);
			FILE *record=fopen(&quot;data/chess/record.txt&quot;,&quot;r+&quot;);
		}
		fseek(record,16*stepCount,0);
		fprintf(record,&quot;%2d %2d %2d %2d %2d\n&quot;,selectedChess,chess[Group][selectedChess].x,chess[Group][selectedChess].y,targetNo,x[Group]);
		chess[Group][selectedChess].x=x[Group];
		chess[Group][selectedChess].y=y[Group];
		selectedChess=-1;
		fclose(record);
		stepCount++;
		saveGame();
	}
}

int canMove(int x,int y)
{
	int can=0,i,j,chessGroup;
	chessGroup=areaType(x,y,0,0);
	if(selectedChess!=-1 &amp;&amp; chessGroup!=Group)
	{
		if(chess[Group][selectedChess].piece==0)//帅
		{
			if((x==chess[Group][selectedChess].x &amp;&amp; (y==chess[Group][selectedChess].y+1 || y==chess[Group][selectedChess].y-1) &amp;&amp; ((y&gt;=7 &amp;&amp; y&lt;=9) || (y&gt;=0 &amp;&amp; y&lt;=2)))
			|| (y==chess[Group][selectedChess].y &amp;&amp; (x==chess[Group][selectedChess].x+1 || x==chess[Group][selectedChess].x-1) &amp;&amp; x&gt;=3 &amp;&amp; x&lt;=5))
			{
				can=1;
			}
			else if(x==chess[Group==0?1:0][0].x &amp;&amp; x==chess[Group][0].x
			&amp;&amp; y==chess[Group==0?1:0][0].y
   			&amp;&amp; middleChess(x,x,y,chess[Group][0].y)==0)
			{
				can=1;
   			}
		}
		else if(chess[Group][selectedChess].piece==1)//士
		{
			if(chess[Group][selectedChess].x==4)
			{
				if(x==3 || x==5)
				{
					if((Group==0 &amp;&amp; (y==0 || y==2))
					|| (Group==1 &amp;&amp; (y==9 || y==7)))
					{
						can=1;
					}
				}
			}
			else
			{
				if(x==4)
				{
					if((Group==0 &amp;&amp; y==1) || (Group==1 &amp;&amp; y==8))
					{
						can=1;
					}
				}
			}
		}
		else if(chess[Group][selectedChess].piece==2)//象
		{
			if((chess[Group][selectedChess].x==x+2 || chess[Group][selectedChess].x==x-2)
			&amp;&amp; (chess[Group][selectedChess].y==y+2 || chess[Group][selectedChess].y==y-2))
			{
				if((Group==0 &amp;&amp; y&lt;=4) || (Group==1 &amp;&amp; y&gt;=5))
				{
					if(areaType((chess[Group][selectedChess].x+x)/2,(chess[Group][selectedChess].y+y)/2,0,0)==2)
					{
						can=1;
					}
				}

			}
		}
		else if(chess[Group][selectedChess].piece==3)//马
		{
			if((chess[Group][selectedChess].x==x+1 || chess[Group][selectedChess].x==x-1)
			&amp;&amp; (chess[Group][selectedChess].y==y+2 || chess[Group][selectedChess].y==y-2))
			{
				if(areaType(chess[Group][selectedChess].x,(chess[Group][selectedChess].y+y)/2,0,0)==2)
				{
					can=1;
				}
			}
			else if((chess[Group][selectedChess].x==x+2 || chess[Group][selectedChess].x==x-2)
			&amp;&amp; (chess[Group][selectedChess].y==y+1 || chess[Group][selectedChess].y==y-1))
			{
				if(areaType((chess[Group][selectedChess].x+x)/2,chess[Group][selectedChess].y,0,0)==2)
				{
					can=1;
				}
			}
		}
		else if(chess[Group][selectedChess].piece==4)//车
		{
			if(middleChess(chess[Group][selectedChess].x,x,chess[Group][selectedChess].y,y)==0)
			{
				can=1;
			}
		}
		else if(chess[Group][selectedChess].piece==5)//炮
		{
			j=middleChess(chess[Group][selectedChess].x,x,chess[Group][selectedChess].y,y);
			if((j==1 &amp;&amp; areaType(x,y,0,0)!=2) || (j==0 &amp;&amp; areaType(x,y,0,0)==2))
			{
				can=1;
			}
		}
		else if(chess[Group][selectedChess].piece==6)//卒
		{
			if(Group==0)
			{
				if((x==chess[Group][selectedChess].x &amp;&amp; y==chess[Group][selectedChess].y+1)
				|| (y&gt;=5 &amp;&amp; y==chess[Group][selectedChess].y &amp;&amp; (x==chess[Group][selectedChess].x-1 || x==chess[Group][selectedChess].x+1)))
				{
					can=1;
				}
			}
			else if(Group==1)
			{
				if((x==chess[Group][selectedChess].x &amp;&amp; y==chess[Group][selectedChess].y-1)
				|| (y&lt;=4 &amp;&amp; y==chess[Group][selectedChess].y &amp;&amp; (x==chess[Group][selectedChess].x-1 || x==chess[Group][selectedChess].x+1)))
				{
					can=1;
				}
			}
		}
	}

	return can;
}

int middleChess(int x1,int x2,int y1,int y2)
{
	int t=-1,num=0,i,j;
	if(x1!=x2 &amp;&amp; y1!=y2)
	{
		return -1;
	}
	if(x1!=x2 &amp;&amp; y1==y2)
	{
		t=y1;
		y1=x1;
		y2=x2;
		x1=x2=t;
	}
	if(y1&lt;y2)
	{
		j=1;
	}
	else
	{
		j=-1;
	}
	for(i=y1+j;i!=y2;)
	{
		if((t==-1 &amp;&amp; areaType(x1,i,0,0)!=2) ||(t!=-1 &amp;&amp; areaType(i,x1,0,0)!=2))
		{
			num++;
		}
		i+=j;
	}
	return num;
}
void retract()
{
	if(stepCount&gt;0)
	{
		int movedChessNo,originX,originY,eatChessNo,eatX;
		FILE *record=fopen(&quot;data/chess/record.txt&quot;,&quot;r&quot;);
		if(record==NULL)
		{
			system(&quot;cd &gt;data\\chess\\record.txt&quot;);
		}
		else
		{
			if(selectedChess!=-1)//之前已经选中了一个棋子
			{
				clearSelected();
			}
			stepCount--;
			fseek(record,stepCount*16,0);
			fscanf(record,&quot;%d%d%d%d%d&quot;,&amp;movedChessNo,&amp;originX,&amp;originY,&amp;eatChessNo,&amp;eatX);
			completeBoard(chess[Group][movedChessNo].x,chess[Group][movedChessNo].y);
			gotoxy(X(originX),Y(originY));
			Group==0?setColor(ChessColor0):setColor(ChessColor1);
			printf(&quot;%s&quot;,piece[Group][chess[Group][movedChessNo].piece]);
			chess[Group][movedChessNo].x=originX;
			chess[Group][movedChessNo].y=originY;
			if(eatChessNo!=-1)
			{
				chess[Group==0?1:0][eatChessNo].x=eatX;
				gotoxy(X(chess[Group==0?1:0][eatChessNo].x),Y(chess[Group==0?1:0][eatChessNo].y));
				Group==0?setColor(ChessColor1):setColor(ChessColor0);
				printf(&quot;%s&quot;,piece[Group==0?1:0][chess[Group==0?1:0][eatChessNo].piece]);
			}
			x[Group]=originX;
			y[Group]=originY;
			fclose(record);
		}
		printRound();
	}
}

void completeBoard(int x,int y)
{
	gotoxy(X(x),Y(y));
	setColor(BoardColor);
	if(x==0)
	{
		if(y==0)
		{
			printf(&quot;┏&quot;);
		}
		else if(y==9)
		{
			printf(&quot;┗&quot;);
		}
		else
		{
			printf(&quot;┣&quot;);
		}
	}
	else if(x==8)
	{
		if(y==0)
		{
			printf(&quot;┓&quot;);
		}
		else if(y==9)
		{
			printf(&quot;┛&quot;);
		}
		else
		{
			printf(&quot;┫&quot;);
		}
	}
	else
	{
		if(y==0 || y==5)
		{
			printf(&quot;┳&quot;);
		}
		else if(y==9 || y==4)
		{
			printf(&quot;┻&quot;);
		}
		else
		{
			printf(&quot;╋&quot;);
		}
	}
}

void saveGame()
{
	//remove(&quot;data/chess/save.dat&quot;);
	FILE *fp=fopen(&quot;data/chess/save.dat&quot;,&quot;w&quot;);
	fwrite(chess,sizeof(Chess),32,fp);
	fwrite(&amp;stepCount,sizeof(int),1,fp);
	fclose(fp);
}

void readGame()
{
	FILE *fp=fopen(&quot;data/chess/save.dat&quot;,&quot;r&quot;);
	if(fp!=NULL)
	{
		fread(chess,sizeof(Chess),32,fp);
		fread(&amp;stepCount,sizeof(int),1,fp);
		fclose(fp);
	}
	else
	{
		//system(&quot;cd &gt;data\\chess\\save.dat.txt&quot;);
		setChess();
	}
}

void printRound()
{
	if(Alive)
	{
		gotoxy(3,5);
		setColor(TipColor);
		printf(&quot;%s走子&quot;,Group==0?&quot;蓝方&quot;:&quot;红方&quot;);
		gotoxy(3,3);
		printf(&quot;第%3d回合&quot;,stepCount/2+1);
	}
	else
	{
		gotoxy(3,5);
		//setColor(TipColor);
		printf(&quot;%s死棋&quot;,Group==0?&quot;蓝方&quot;:&quot;红方&quot;);
	}
	gotoxy(X(x[Group]),Y(y[Group]));	
}

void clearSelected()
{
	Group==0?setColor(ChessColor0):setColor(ChessColor1);
	gotoxy(X(chess[Group][selectedChess].x),Y(chess[Group][selectedChess].y));
	printf(&quot;%s&quot;,piece[Group][chess[Group][selectedChess].piece]);//清除之前选中的颜色
	selectedChess=-1;
	gotoxy(X(x[Group]),Y(y[Group]));
}

void exitGame()
{
	exit(0);
}

/****Powered by KX****/
(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[C语言俄罗斯方块]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/485222]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sat, 07 Jul 2018 07:22:52 -0700]]></pubDate>
        <description><![CDATA[(作者:KX)
(code:C)/***********************************
	源码：俄罗斯方块
	作者：王卫祥&amp;KX&amp;2017211836
	版本：18070701
	代码使用请保留版权 
***********************************/



#include &lt;stdio.h&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
#include &lt;time.h&gt;

#define X(x) (2+2*(x))//棋盘坐标转屏幕绝对坐标 
#define Y(y) (y)//棋盘坐标转屏幕绝对坐标 
#define Grade(score) ((score)/50)//由分数计算等级 
#define BorderCode &quot;▓&quot;//边框字符
#define FoodCode &quot;□&quot;//食物字符
#define SpaceCode &quot;　&quot;//空白出字符
#define BlockCode &quot;■&quot;//蛇身字符

int block[7][4][4][4]=
{
	{//第一种方块：正方形 
		{
			{1,1,0,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
	},
	{//第二种方块：直线 
		{
			{0,0,0,0},
			{1,1,1,1},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{0,1,0,0},
			{0,1,0,0},
			{0,1,0,0}
		},
		{
			{0,0,0,0},
			{1,1,1,1},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{0,1,0,0},
			{0,1,0,0},
			{0,1,0,0}
		},
	},
	{//第三种方块：S形 
		{
			{1,0,0,0},
			{1,1,0,0},
			{0,1,0,0},
			{0,0,0,0}
		},
		{
			{0,1,1,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{1,0,0,0},
			{1,1,0,0},
			{0,1,0,0},
			{0,0,0,0}
		},
		{
			{0,1,1,0},
			{1,1,0,0},
			{0,0,0,0},
			{0,0,0,0}
		},
	},
	{//第四种方块：Z形 
		{
			{0,1,0,0},
			{1,1,0,0},
			{1,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{0,1,1,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{1,1,0,0},
			{1,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{0,1,1,0},
			{0,0,0,0},
			{0,0,0,0}
		},
	},
	{//第五种方块：J形 
		{
			{1,0,0,0},
			{1,1,1,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,1,0},
			{0,1,0,0},
			{0,1,0,0},
			{0,0,0,0}
		},
		{
			{0,0,0,0},
			{1,1,1,0},
			{0,0,1,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{0,1,0,0},
			{1,1,0,0},
			{0,0,0,0}
		},
	},
	{//第六种方块：┷形 
		{
			{0,1,0,0},
			{1,1,1,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{0,1,1,0},
			{0,1,0,0},
			{0,0,0,0}
		},
		{
			{0,0,0,0},
			{1,1,1,0},
			{0,1,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{1,1,0,0},
			{0,1,0,0},
			{0,0,0,0}
		},
	},
	{//第七种方块：L形 
		{
			{0,0,1,0},
			{1,1,1,0},
			{0,0,0,0},
			{0,0,0,0}
		},
		{
			{0,1,0,0},
			{0,1,0,0},
			{0,1,1,0},
			{0,0,0,0}
		},
		{
			{0,0,0,0},
			{1,1,1,0},
			{1,0,0,0},
			{0,0,0,0}
		},
		{
			{1,1,0,0},
			{0,1,0,0},
			{0,1,0,0},
			{0,0,0,0}
		},
	},
};
int type,rotate,posiX,posiY;//当前下落方块的类型、旋转角度类型、(0,0)在屏幕上的位置 
int preType,preRotate;//下一个方块的类型、旋转角度类型
int width=10,height=30;//棋盘大小
int sta[20][10];//静态方块
int actExist=0;//下落方块是否存在 
int score;//本局得分 

void printGround();//打印背景 
void menu(int x,int y);//主菜单 
void start();//初始化游戏 
void run();//运行游戏 
void operate();//用户操控游戏 
void creatAct();//创建新的活动方块 
void rotateAct();//旋转活动方块 
void moveAct(int dire);//移动活动方块 
void clearAct();//在屏幕上清除活动方块 
void printAct();//在屏幕上打印活动方块 
void clearStaLine();//清除静态方块补全的行 
void clearSta();//清除所有静态方块 
int canFall();//判断活动方块是否可继续下落 
int isDeath();//判断玩家是否死亡 
void tipDeath();//提示用户死亡 
void act2Sta();//活动方块转静态方块 
void printScore();//打印分数、等级 
void printLine(int num,char *c);//在屏幕上打印num个字符c
//int getMaxScore();//获取最高分数 
//void puttMaxScore(); //写入最高分数 
void gotoxy(int x, int y); //光标定位
void setColor(unsigned short foreColor,unsigned short backGroundColor);//改变打印颜色 
void hideCursor();//隐藏光标 

int main(int argc, char *argv[])
{
	system(&quot;title 俄罗斯方块&quot;);
	system(&quot;mode con cols=39 lines=22&quot;);
	system(&quot;color F0&quot;);
	hideCursor();
	while(1)
		menu(7,8);
	getch();
	return 0;
}

void printGround()
{
    int i;
    setColor(3,15);
    gotoxy(0,0);
    for(i=0;i&lt;20;i++)
    {
        printf(&quot;%s&quot;,BorderCode);
        printLine(10,SpaceCode);
        printf(&quot;%s&quot;,BorderCode);
        printLine(6,SpaceCode);
        printf(&quot;%s&quot;,BorderCode);
        printf(&quot;\n&quot;);
    }
    printLine(19,BorderCode);
    return;
}

void menu(int x,int y)
{
	char key;
	printGround();
	gotoxy(x,y);
	printf(&quot;俄罗斯方块&quot;);
	gotoxy(x,y+3);
	printf(&quot;1.开始游戏&quot;);
	gotoxy(x,y+4);
	printf(&quot;0.退出游戏&quot;);
	key=getch();
	switch(key)
	{
		case '1':start();run();break;
		case '0':exit(0);break;
	}

}

void start()
{
	int i,j;
	score=0;
	actExist=0;
	clearSta();
	printGround();
	setColor(0,15);
	gotoxy(X(11),Y(0));
	//maxScore=getMaxScore();
	//printf(&quot;最高分:%4d&quot;,maxScore);
	gotoxy(X(11),Y(2));
	printf(&quot;分数:&quot;);
	gotoxy(X(11),Y(4));
	printf(&quot;等级:&quot;);
	gotoxy(X(11),Y(6));
	printf(&quot;下一个:&quot;);
	gotoxy(X(11),Y(16));
	printf(&quot;1.暂停游戏&quot;);
	gotoxy(X(11),Y(17));
	printf(&quot;2.重新开始&quot;);
	gotoxy(X(11),Y(18));
	printf(&quot;0.退出游戏&quot;);
	printScore();
	srand((unsigned) time(NULL));
	creatAct();
}

void run()
{
	int delayTime;
 	clock_t lastTime=clock();
	while(1)
	{
		if(!actExist)
		{
			posiX=4;
			posiY=-2;
			type=preType;
			rotate=preRotate;
			creatAct();
			if(isDeath())
			{
				tipDeath();
				getch();
				break;
			}
			actExist=1;
			printAct();
		}
		delayTime=1000-Grade(score)*5;
		if(delayTime&lt;200)
		{
			delayTime=200;
		}
		if(1000*((double)(clock()-lastTime)/CLOCKS_PER_SEC)&gt;delayTime)
		{
			moveAct(3);
			lastTime= clock();
		}
		if(kbhit())
		{
			operate();
		}
	}
}

void operate()
{
	char key;
	if(!kbhit())
	{
		return;
	}
	key=getch();
	switch(key)
	{
		case 'a':
		case 'A':
		case 75:
			moveAct(0);break;
		case 'w':
		case 'W':
		case 72:
			rotateAct();break;
		case 'd':
		case 'D':
		case 77:
			moveAct(2);break;
		case 's':
		case 'S':
		case 80:
			moveAct(3);break;
		case ' ':
		case '\r':
			while(canFall())moveAct(3);break;
		case '1':
			getch();break;
		case '2':
			start();run();break;
		case '0':
			exit(0);break;
	}
}

void rotateAct()
{
	int canRotate=1;
	int i,j;
	for(i=0;i&lt;4 &amp;&amp; canRotate;i++)
	{
		for(j=0;j&lt;4 &amp;&amp; canRotate;j++)
		{
			if(block[type][(rotate+1)%4][i][j]==1 &amp;&amp; (posiX+j &lt;0 || posiX+j&gt;=10 || posiY+i&gt;=20 || sta[posiY+i][posiX+j]==1))
			{
				canRotate=0;
			}
		}
	}
	if(canRotate)
	{
		clearAct();
		rotate=rotate==3?0:rotate+1;
		printAct();

	}
}

void creatAct()
{
	preType=rand()%7;
	preRotate=rand()%4;
	int i,j;
	for(i=0;i&lt;4;i++)
	{
		for(j=0;j&lt;4;j++)
		{
			gotoxy(X(13+j),Y(8+i));
			if(block[preType][preRotate][i][j]==1)
			{
				printf(&quot;%s&quot;,BlockCode);
			}
			else
			{
				printf(&quot;%s&quot;,SpaceCode);
			}

		}
	}
}

void printAct()
{
	int i,j;
	setColor((type+preType+preRotate+score)%15,15);
	for(i=0;i&lt;4;i++)
	{
		for(j=0;j&lt;4;j++)
		{
			if(block[type][rotate][i][j]==1 &amp;&amp; posiY+i&gt;=0)
			{
				gotoxy(X(posiX+j),Y(posiY+i));
				printf(&quot;%s&quot;,BlockCode);
			}
		}
	}
}


void clearAct()
{
	int i,j;
	for(i=0;i&lt;4;i++)
	{
		for(j=0;j&lt;4;j++)
		{
			if(posiX+j&gt;=0 &amp;&amp; posiX+j&lt;10 &amp;&amp; posiY+i&gt;=0 &amp;&amp; posiY+i&lt;20 &amp;&amp; sta[posiY+i][posiX+j]==0)
			{
				gotoxy(X(posiX+j),Y(posiY+i));
				printf(&quot;%s&quot;,SpaceCode);
			}
		}
	}
}

void moveAct(int dire)
{
	int i,j;
	int canMove=1;
	if(dire==0)//左
	{
		for(i=0;i&lt;4;i++)
		{
			for(j=0;j&lt;4;j++)
			{
				if(block[type][rotate][i][j]==1 &amp;&amp; (posiX+j&lt;=0 || (posiY&gt;0 &amp;&amp; sta[posiY+i][posiX+j-1]==1)))
				{
					return;
				}
			}
		}
		clearAct();
		posiX--;
		printAct();

	}
	else if(dire==2)//右
	{
		for(i=0;i&lt;4;i++)
		{
			for(j=0;j&lt;4;j++)
			{
				if(block[type][rotate][i][j]==1 &amp;&amp; (posiX+j&gt;=9 || (posiY&gt;0 &amp;&amp;sta[posiY+i][posiX+j+1]==1)))
				{
					return;
				}
			}
		}
		clearAct();
		posiX++;
		printAct();
	}
	else if(dire==3)//下
	{
		if(canFall())
		{
			clearAct();
			posiY++;
			printAct();
		}
		else
		{
			act2Sta();
			clearStaLine();
			actExist=0;
		}
	}
}

void clearStaLine()//清除排完的行
{
	int clearNum=0;
	int i,j;
	for(i=19;i&gt;=0;i--)
	{
		for(j=0;j&lt;10;j++)
		{
			if(sta[i][j]==0)
			{
				break;
			}
		}
		if(j==10)//第i行可以清空
		{
			clearNum++;
			score+=clearNum*i+Grade(score);//加分
			continue;
		}
		else if(clearNum!=0)
		{

			for(j=0;j&lt;10;j++)
			{
				sta[i+clearNum][j]=sta[i][j];
			}
		}
	}
	while(clearNum)//顶部新生成的行赋值为0 
	{
		clearNum--;
		for(j=0;j&lt;9;j++)
		{
			sta[clearNum][j]=0;
		}
	}
	setColor(8,15);
	for(i=0;i&lt;20;i++)
	{
		for(j=0;j&lt;10;j++)
		{
			gotoxy(X(j),Y(i));
			printf(&quot;%s&quot;,sta[i][j]==1?BlockCode:SpaceCode);
		}
	}
	printScore();

	/*
	if(score&gt;maxScore)
	{
		maxScore=score;
		putMaxScore();
		printScore();

	}
	*/

}


void clearSta()
{
	int i,j;
	for(i=0;i&lt;20;i++)
	{
		for(j=0;j&lt;10;j++)
		{
			sta[i][j]=0;
		}
	}
}

int canFall()
{
	int i,j;
	for(i=0;i&lt;4;i++)
	{
		for(j=0;j&lt;4;j++)
		{
			if(block[type][rotate][i][j]==1 &amp;&amp; (posiY+i&gt;=19 || (posiY+i+1&gt;=0 &amp;&amp; sta[posiY+i+1][posiX+j]==1)))
			{
				return 0;
			}
		}
	}
	return 1;
}

int isDeath()
{
	if(sta[0][5]==1)
	{
		return 1;
	}
	return 0;
}

void tipDeath()
{
	gotoxy(X(11),Y(12));
	setColor(12,15);
	printf(&quot;游戏结束&quot;);
}

void act2Sta()
{
	int i,j;
	for(i=0;i&lt;4;i++)
	{
		for(j=0;j&lt;4;j++)
		{
			if(block[type][rotate][i][j]==1)
			{
				sta[posiY+i][posiX+j]=block[type][rotate][i][j];
			}
		}
	}
}

void printScore()
{
	//gotoxy(X(14),Y(0));
	//printf(&quot;%5d&quot;,maxScore);
	gotoxy(X(14),Y(2));
	printf(&quot;%5d&quot;,score);
	gotoxy(X(14),Y(4));
	printf(&quot;%5d&quot;,Grade(score));
}

void printLine(int num,char *c)
{
    int i;
    for(i=0;i&lt;num;i++)
    {
        printf(&quot;%s&quot;,c);
    }
    return;
}

/*
int getMaxScore()
{
	FILE *fp;
	fp=fopen(&quot;tetris/maxScore.txt&quot;,&quot;r&quot;);
	if(fp==NULL)
	{
		maxScore=0;
	}
	else
	{
		fscanf(fp,&quot;%d&quot;,&amp;maxScore);
		fclose(fp);
	}
	return maxScore;
}

void putMaxScore()
{
	FILE *fp;
	fp=fopen(&quot;tetris/maxScore.txt&quot;,&quot;w&quot;);
	fprintf(fp,&quot;%d&quot;,maxScore);
	fclose(fp);
}
*/

void gotoxy(int x, int y) //光标定位
{
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}

void setColor(unsigned short foreColor,unsigned short backGroundColor)
{
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//获取当前窗口句柄
	SetConsoleTextAttribute(handle,foreColor+backGroundColor*0x10);//设置颜色
}

void hideCursor()
{
	CONSOLE_CURSOR_INFO cursor_info = {1, 0};
	SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &amp;cursor_info);
}

/****Powered by KX****/(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[全国计算机等级考试科普.docx]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/482257]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 04 Jun 2018 03:09:11 -0700]]></pubDate>
        <description><![CDATA[File Size: 43.78 KiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/482257">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[青年在选择职业时的考虑]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/481631]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Tue, 29 May 2018 01:21:02 -0700]]></pubDate>
        <description><![CDATA[(作者:马克思)自然本身给动物规定了它应该遵守的活动范围，动物也就安分地在这个范围内活动，而不试图越出这个范围，甚至不考虑有其它范围存在。神也给人指定了共同的目标──使人类和他自己趋于高尚，但是，神要人自己去寻找可以达到这个目标的手段；神让人在社会上选择一个最适合于他、最能使他和社会变得高尚的地位。
这种选择是人比其它创造物远为优越的地方，但同时也是可能毁灭人的一生、破坏他的一切计划并使他陷于不幸的行为。因此，认真地权衡这种选择，无疑是开始走上生活道路而又不愿在最重要的事情上听天由命的青年的首要责任。
每个人眼前都有一个目标，这个目标至少在他本人看来是伟大的，而且如果最深刻的信念，即内心深处的声音，认为这个目标是伟大的，那它实际上也是伟大的，因为神决不会使世人完全没有引导者；神轻声地但坚定地作启示。
但是，这声音很容易被淹没；我们认为是热情的东西可能倏忽而生，同样可能倏忽而逝。也许，我们的幻想蓦然迸发，我们的感情激动起来，我们的眼前浮想联翩，我们狂热地追求我们以为是神本身给我们指出的目标；但是，我们梦寐以求的东西很快就使我们厌恶，于是，我们便感到自己的整个存在遭到了毁灭。
因此，我们应当认真考虑：我们对所选择的职业是不是真的怀有热情？发自我们内心的声音是不是同意选择这种职业？我们的热情是不是一种迷误？我们认为是神的召唤的东西是不是一种自我欺骗？不过，如果不对热情的来源本身加以探究，我们又怎么能认清这一切呢？
伟大的东西是闪光的，闪光会激发虚荣心，虚荣心容易使人产生热情或者一种我们觉得是热情的东西；但是，被名利迷住了心窍的人，理性是无法加以约束的，于是他一头栽进那不可抗拒的欲念召唤他去的地方；他的职业已经不再是由他自己选择，而是由偶然机会和假象去决定了。
我们的使命决不是求得一个最足以炫耀的职业，因为它不是那种可能由我们长期从事，但始终不会使我们感到厌倦、始终不会使我们劲头低落、始终不会使我们的热情冷却的职业，相反，我们很快就会觉得，我们的愿望没有得到满足，我们的理想没有实现，我们就将怨天尤人。
但是，不仅虚荣心能够引起对某种职业的突然的热情，而且我们也许会用自己的幻想把这种职业美化，把它美化成生活所能提供的至高无上的东西。我们没有仔细分析它，没有衡量它的全部分量，即它加在我们肩上的重大责任；我们只是从远处观察它，而从远处观察是靠不住的。
在这里，我们自己的理性不能给我们充当顾问，因为当它被感情欺骗，受幻想蒙蔽时，它既不依靠经验，也不依靠更深入的观察。然而，我们的目光应该投向谁呢？当我们丧失理性的时候，谁来支持我们呢？
是我们的父母，他们走过了漫长的生活道路，饱尝了人世辛酸。──我们的心这样提醒我们。
如果我们经过冷静的考察，认清了所选择的职业的全部分量，了解它的困难以后，仍然对它充满热情，仍然爱它，觉得自己适合于它，那时我们就可以选择它，那时我们既不会受热情的欺骗，也不会仓促从事。
但是，我们并不总是能够选择我们自认为适合的职业；我们在社会上的关系，还在我们有能力决定它们以前就已经在某种程度上开始确立了。
我们的体质常常威胁我们，可是任何人也不敢藐视它的权利。
诚然，我们能够超越体质的限制，但这么一来，我们也就垮得更快；在这种情况下，我们就是冒险把大厦建筑在残破的废墟上，我们的一生也就变成一场精神原则和肉体原则之间的不幸的斗争。但是，一个不能克服自身相互斗争的因素的人，又怎能抗御生活的猛烈冲击，怎能安静地从事活动呢？然而只有从安静中才能产生出伟大壮丽的事业，安静是唯一能生长出成熟果实的土壤。
尽管我们由于体质不适合我们的职业，不能持久地工作，而且很少能够愉快地工作，但是，为了克尽职守而牺牲自己幸福的思想激励着我们不顾体弱去努力工作。如果我们选择了力不胜任的职业，那么我们决不能把它做好，我们很快就会自愧无能，就会感到自己是无用的人，是不能完成自己使命的社会成员。由此产生的最自然的结果就是自卑。还有比这更痛苦的感情吗？还有比这更难于靠外界的各种赐予来补偿的感情吗？自卑是一条毒蛇，它无尽无休地搅扰、啃啮我们的胸膛，吮吸我们心中滋润生命的血液，注入厌世和绝望的毒液。
如果我们错误地估计了自己的能力，以为能够胜任经过较为仔细的考虑而选定的职业，那么这种错误将使我们受到惩罚。即使不受到外界的指责，我们也会感到比外界指责更为可怕的痛苦。
如果我们把这一切都考虑过了，如果我们的生活条件容许我们选择任何一种职业，那么我们就可以选择一种使我们获得最高尊严的职业，一种建立在我们深信其正确的思想上的职业，一种能给我们提供最广阔的场所来为人类工作，并使我们自己不断接近共同目标即臻于完美境界的职业，而对于这个共同目标来说，任何职业都只不过是一种手段。
尊严是最能使人高尚、使他的活动和他的一切努力具有更加崇高品质的东西，是使他无可非议、受到众人钦佩并高出于众人之上的东西。
但是，能给人以尊严的只有这样的职业，在从事这种职业时我们不是作为奴隶般的工具，而是在自己的领域内独立地进行创造；这种职业不需要有不体面的行动（哪怕只是表面上不体面的行动），甚至最优秀的人物也会怀着崇高的自豪感去从事它。最合乎这些要求的职业，并不总是最高的职业，但往往是最可取的职业。
但是，正如有失尊严的职业会贬低我们一样，那种建立在我们后来认为是错误的思想上的职业也一定会成为我们的沉重负担。
这里，我们除了自我欺骗，别无解救办法，而让人自我欺骗的解救办法是多么令人失望啊！
那些主要不是干预生活本身，而是从事抽象真理的研究的职业，对于还没有确立坚定的原则和牢固的、不可动摇的信念的青年是最危险的，当然，如果这些职业在我们心里深深地扎下了根，如果我们能够为它们的主导思想而牺牲生命、竭尽全力，这些职业看来还是最高尚的。
这些职业能够使具有合适才干的人幸福，但是也会使那些不经考虑、凭一时冲动而贸然从事的人毁灭。
相反，重视作为我们职业的基础的思想，会使我们在社会上占有较高的地位，提高我们自己的尊严，使我们的行为不可动摇。
一个选择了自己所珍视的职业的人，一想到他可能不称职时就会战战兢兢──这种人单是因为他在社会上所处的地位是高尚的，他也就会使自己的行为保持高尚。
在选择职业时，我们应该遵守的主要指针是人类的幸福和我们自身的完美。不应认为，这两种利益会彼此敌对、互相冲突，一种利益必定消灭另一种利益；相反，人的本性是这样的：人只有为同时代人的完美、为他们的幸福而工作，自己才能达到完美。
如果一个人只为自己劳动，他也许能够成为著名的学者、伟大的哲人、卓越的诗人，然而他永远不能成为完美的、真正伟大的人物。
历史把那些为共同目标工作因而自己变得高尚的人称为最伟大的人物；经验赞美那些为大多数人带来幸福的人是最幸福的人；宗教本身也教诲我们，人人敬仰的典范，就曾为人类而牺牲自己──有谁敢否定这类教诲呢？
如果我们选择了最能为人类而工作的职业，那么，重担就不能把我们压倒，因为这是为大家作出的牺牲；那时我们所享受的就不是可怜的、有限的、自私的乐趣，我们的幸福将属于千百万人，我们的事业将悄然无声地存在下去，但是它会永远发挥作用，而面对我们的骨灰，高尚的人们将洒下热泪。(end:中文马克思主义在线)]]></description>
    </item>
        <item>
        <title><![CDATA[ACCESS选修查询练习1-4.zip]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/479678]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 14 May 2018 02:42:36 -0700]]></pubDate>
        <description><![CDATA[File Size: 0.37 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/479678">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/479678">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言学生成绩管理系统.zip]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/478287]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 25 Apr 2018 22:13:08 -0700]]></pubDate>
        <description><![CDATA[File Size: 1.14 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/478287">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/478287">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[ACCESS第8次课资料.rar]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/478120]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 23 Apr 2018 02:05:32 -0700]]></pubDate>
        <description><![CDATA[File Size: 5.3 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/478120">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/478120">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[ACCESS第7次课资料.rar]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/477383]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 16 Apr 2018 01:23:17 -0700]]></pubDate>
        <description><![CDATA[File Size: 4.87 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/477383">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/477383">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言学生成绩管理系统]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/477372]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sun, 15 Apr 2018 22:46:06 -0700]]></pubDate>
        <description><![CDATA[(code:C)#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;
#include &lt;windows.h&gt;
#define SUMGRA(a) (a-&gt;english+a-&gt;math+a-&gt;c)//计算总分 eg.:SUMGRA(pcur) 
#define KF 1//开发状态开关 


/*******************************
结构体：存放用户及学生的档案信息 
*******************************/
typedef struct
{
    char name[20];//姓名
    char group[20];//班级
    char sex[4];//性别
    char pass[20];//密码
} USER;


/***************************
结构体：存放学生成绩信息 
***************************/
typedef struct grade
{
	char id[20];//学号
	int english;//英语成绩 
	int	math;//数学成绩 
	int c;//C语言成绩 
	struct grade *next;//链表下一节点 
} GRA;


/**************
函数声明
**************/
int tipOpen();//提示打开成绩单 
char getcheln();//getcheln() 
int login();//用户登录 
int logOut();//用户退出 
void mainMenu();//主菜单 
void graSortMenu();//成绩排序菜单 
void tapToContinue(char *);//实现点击后继续 
void inputPass(char *);//输入密码 
int creatList();//创建成绩单 
int screenGra(char command);//筛选成绩 
int insertGra();//插入成绩 
void modifyGra();//修改成绩 
int deleteGra();//删除成绩 
int printList();//打印列表 
void exitSystem();//结束程序 
char *strSub(int,int,char *);//字符串截取 
char *strConnect(char *,char *);//字符串链接 
int getList(char *);//导入成绩单 
int putList();//写入成绩单 
int sortList(char);//排序成绩 
int openRecent();//询问是否打开最近成绩单 
void getRecent();//获取最近成绩单名称 
int manageUser();//管理用户档案 
int changePass();//修改本用户密码 
void gotoxy(int x,int y);//移动光标 



/******************
全局变量声明
******************/
USER *user=NULL;//存放登录者信息
GRA *head=NULL;//存放成绩单头节点地址
char userId[20],recentFile[20];//userId为登录者id,recentFile为最后一次打开的成绩单名称
int isAdmin=0,isSaved=1,askToOpen=0;;//isAdmin登录者是否为管理员，isSaved成绩单是否修改后未保存(1是0否)


/**********
函数算法
**********/

/*****************
函数：main() 
功能：主函数 
输入：无
输出：1（非正常结束） 或 0（正常结束） 
**************/

int main()
{
	do
	{
		if(userId[0]!=0)//判断用户是否登录
		{
			if(!askToOpen &amp;&amp; head==NULL)//判断成绩单是否打开
			{
				openRecent();//询问是否打开最近成绩单
			}
		    mainMenu();//显示主菜单
		}
		else
		{
			login();//用户登录
		}
	}while(1);
	return 0;
}


/*****************
函数：mainMenu() 
功能：主菜单
形参：无
返回值：无 
**************/
void mainMenu()
{
    	char command;
    	FILE *fp;
        system(&quot;cls&quot;);
		printf(&quot;┏━━━━━━━━━┓\n&quot;);
		printf(&quot;┃  KX学生管理系统  ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━┫\n&quot;);
		printf(&quot;┃用户:%13s┃\n&quot;,strSub(0,13,userId));
		printf(&quot;┣━━━━━━━━━┫\n&quot;);
		if(head==NULL)
		{
			printf(&quot;┃   暂未打开列表   ┃\n&quot;);
		}
		else
		{
			printf(&quot;┃列表:%12s%c┃\n&quot;,strSub(0,8,recentFile),(isAdmin&amp;&amp;!isSaved?'*':' '));
		}
		printf(&quot;┣━━━━━━━━━┫\n&quot;);
		printf(&quot;┃    请输入命令    ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━┫\n&quot;);
		if(head!=NULL)
		{
			printf(&quot;┃  1.%8s  ┃\n&quot;,isAdmin?&quot;添加成绩    &quot;:&quot;查询我的成绩&quot;);
			printf(&quot;┃  2.筛选成绩      ┃\n&quot;);
			isAdmin&amp;&amp;printf(&quot;┃  3.修改成绩      ┃\n&quot;);
			isAdmin&amp;&amp;printf(&quot;┃  4.删除成绩      ┃\n&quot;);
			printf(&quot;┃  5.打印成绩单    ┃\n&quot;);
			isAdmin&amp;&amp;printf(&quot;┃  6.保存成绩单    ┃\n&quot;);
		}
		isAdmin&amp;&amp;printf(&quot;┃  8.新建成绩单    ┃\n&quot;);
		printf(&quot;┃  9.读取成绩单    ┃\n&quot;);
		printf(&quot;┃  a.修改密码      ┃\n&quot;);
		isAdmin&amp;&amp;printf(&quot;┃  b.增改学生      ┃\n&quot;);
		printf(&quot;┃  c.退出登录      ┃\n&quot;);
		printf(&quot;┃  0.退出系统      ┃\n&quot;);
		printf(&quot;┗━━━━━━━━━┛\n&quot;);
	 	command=getch();
	 	switch(command)
	 	{
 			case'1'://插入成绩
	 			if(tipOpen())
	 			{
	 				system(&quot;cls&quot;);
	 				if(isAdmin)
	 				{
				 		insertGra();
				 	}
				 	else
				 	{
				 		printf(&quot;正在查询，请稍等...\n&quot;);
	 					sortList('2');
	 					screenGra('A');
	 					tapToContinue(&quot;&quot;);
	 				}
	 			}
 				break;
 			case'2'://筛选成绩
	 			if(tipOpen())
	 			{
 					screenGra(' ');
	 			}
 				break;
 			case'3'://修改成绩
	 			if(isAdmin&amp;&amp;tipOpen())
	 			{
 					modifyGra();
	 			}
 				break;
 			case'4'://删除成绩
	 			if(isAdmin&amp;&amp;tipOpen())
	 			{
	 				system(&quot;cls&quot;);
	 				screenGra('A');
 					deleteGra();
	 			}
 				break;
 			case'5'://查看列表
	 			if(tipOpen(head))
	 			{
					graSortMenu();
	 			}
				break;
			case'6'://保存列表
	 			if(isAdmin&amp;&amp;tipOpen())
	 			{
					putList();
	 			}
				break;
			case'8'://创建列表
				if(isAdmin)
				{
					system(&quot;cls&quot;);
				 	creatList();
				}
			 	break;
			case'9'://读取列表
				system(&quot;cls&quot;);
				getList(&quot;&quot;);
				break;
			case'a'://修改密码
				system(&quot;cls&quot;);
				changePass();
				break;
			case'b'://添加修改用户
				if(isAdmin)
				{
					system(&quot;cls&quot;);
					manageUser();
				}
				break;
			case'c'://退出登录
				system(&quot;cls&quot;);
				logOut();
				break;
			case'0'://退出系统
				exitSystem(0);
				break;
	 	}
	 	return;
}


/*****************
函数：graSortMenu() 
功能：成绩排序菜单
形参：无
返回值：无 
**************/

void graSortMenu()
{
	if(!tipOpen(head))
	{
		return;
	}
	while(1)
	{
		system(&quot;cls&quot;);
		screenGra('A');
    	char command;
		printf(&quot;┏━━━━━━━┓\n&quot;);
        printf(&quot;┃1.按学号排序  ┃\n&quot;);
        printf(&quot;┃2.按总分排序  ┃\n&quot;);
        printf(&quot;┃3.按英语排序  ┃\n&quot;);
        printf(&quot;┃4.按高数排序  ┃\n&quot;);
        printf(&quot;┃5.按C语言排序 ┃\n&quot;);
        printf(&quot;┃6.筛选成绩    ┃\n&quot;);
		isAdmin&amp;&amp;printf(&quot;┃7.添加成绩    ┃\n&quot;);
		isAdmin&amp;&amp;printf(&quot;┃8.修改成绩    ┃\n&quot;);
		isAdmin&amp;&amp;printf(&quot;┃9.删除成绩    ┃\n&quot;);
		printf(&quot;┃0.返回菜单    ┃\n&quot;);
		printf(&quot;┗━━━━━━━┛\n&quot;);
	 	command=getch();
	 	switch(command)
	 	{
 			case'1'://重新排序
 			case'2'://重新排序
 			case'3'://重新排序
 			case'4'://重新排序
 			case'5'://重新排序
 				sortList(command);
 				break;
			case'6'://调用筛选菜单 
				screenGra(' ');
				break;
 			case'7'://添加成绩
	 			if(isAdmin)
	 			{
 					insertGra();
	 			}
 				break;
			case'8'://修改成绩
	 			if(isAdmin)
	 			{
 					modifyGra();
	 			}
 				break;
 			case'9'://删除成绩
				deleteGra();
				break;
			case'0'://返回
				return;
	 	}	
	}
	return;
}


/*******************************
函数：getcheln()
功能：getche()并换行
形参：无
返回值：读取到的字符
********************************/
char getcheln()
{
	char c=getch();
	printf(&quot;%c\n&quot;,c);
	return c;
}



/*****************
函数：tipOpen() 
功能：判断并提示打开成绩单 
输入：无 
输出： 1（已打开成绩单）或0（未打开成绩单） 
**************/
int tipOpen()
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建成绩单！\n&quot;);
		tapToContinue(&quot;&quot;);
		return 0;
	}
	return 1;
}


/*****************
函数：getUserMess() 
功能：获取账户为id的用户信息 
输入：char *id 
输出：User*
**************/
USER *getUserMess(char *id)
{
	FILE *fp;
	USER *cUser;
	//char fileName[30]=&quot;user/&quot;;
	//strcat(fileName,userId);
	if((fp=fopen(strConnect(&quot;user/&quot;,id),&quot;r&quot;))==NULL)
	{
		return NULL;
	}
	else
	{
		cUser=(USER*)malloc(sizeof(USER));
		fread(cUser,sizeof(USER),1,fp);
		fclose(fp);
		return cUser;
	}
}


/*****************
函数：login() 
功能：用户登录 
输入：无 
输出：1(正常登陆)或0(未正常登陆) 
**************/
int login()
{
	int result=0;
    char id[20],getPass[20],truePass[20];
    FILE *fp;
    //USER *user=NULL;
    system(&quot;cls&quot;);
	printf(&quot;┏━━━━━━━━━┓\n&quot;);
	printf(&quot;┃  KX学生管理系统  ┃\n&quot;);
	printf(&quot;┣━━━━━━━━━┫\n&quot;);
	printf(&quot;┃请输入账号信息登录┃\n&quot;);
	printf(&quot;┣━━━━━━━━━┫\n&quot;);
 	printf(&quot;┃账号：            ┃\n&quot;);
 	printf(&quot;┃密码：            ┃\n&quot;);
 	printf(&quot;┗━━━━━━━━━┛\n&quot;);
    while(1)
    {
	 	gotoxy(8,5);
	    scanf(&quot;%s&quot;,id);

		if((user=getUserMess(id))==NULL &amp;&amp; !KF)
		{
	    	gotoxy(0,7);
			printf(&quot;┣━━━━━━━━━┫\n&quot;);
 			printf(&quot;┃提示：用户不存在  ┃\n&quot;);
  			printf(&quot;┗━━━━━━━━━┛\n\n\n&quot;);
			tapToContinue(&quot;&quot;);
	    	gotoxy(0,8);
  			printf(&quot;┃%18s┃&quot;,&quot;&quot;);
			gotoxy(0,5);
			printf(&quot;┃账号：            ┃&quot;); 
			continue;
		}
		else
		{
			break;
		}
    }
    while(1)
    {
	 	gotoxy(8,6);
    	inputPass(getPass);
    	if(strcmp(getPass,user-&gt;pass)==0 || KF)
    	{
    		strcpy(userId,id);
    		result=1;
	    	printf(&quot;%s，&quot;,user-&gt;name);
	    	gotoxy(0,7);
			printf(&quot;┣━━━━━━━━━┫\n&quot;);
 			printf(&quot;┃提示：登录成功！  ┃\n&quot;);
  			printf(&quot;┗━━━━━━━━━┛\n&quot;);
			tapToContinue(&quot;&quot;);
			system(&quot;cls&quot;);
	    	isAdmin=strcmp(user-&gt;group,&quot;admin&quot;)==0?1:0;
	    	askToOpen=0;
	    	return 1;
	    }
	    else if(getPass[0])
	    {
	    	gotoxy(0,7);
			printf(&quot;┣━━━━━━━━━┫\n&quot;);
 			printf(&quot;┃提示：密码错误    ┃\n&quot;);
  			printf(&quot;┗━━━━━━━━━┛\n&quot;);
			tapToContinue(&quot;&quot;);
			gotoxy(0,6);
			printf(&quot;┃密码：            ┃&quot;); 
	    	gotoxy(0,8);
  			printf(&quot;┃%18s┃&quot;,&quot;&quot;);
			continue;
    	}
    }
    return 0; 
}


/*****************
函数：logOut() 
功能：用户退出 
输入：无 
输出：1（正常退出）或0（非正常退出） 
**************/
int logOut()
{
	user=NULL;
	userId[0]=0;
	isAdmin=0;
	printf(&quot;┏━━━┓\n&quot;);
	printf(&quot;┃已退出┃\n&quot;);
  	printf(&quot;┗━━━┛\n&quot;);
	return 1;
}



/*****************
函数：tapToContinue() 
功能：显示提示（tip）实现点击后继续效果 
	（如果tip[0]==0则不显示）
输入：char *tip 
输出：无 
**************/
void tapToContinue(char *tip)
{
	if(tip[0])
	{
		printf(&quot;%s&quot;,tip);
	}
	getch();
}


/*****************
函数：inputPass() 
功能：实现输入一系列字符显示为*并将其拼接成字符串
输入：char *str
输出：无 
**************/
void inputPass(char *str)
{
	char c;
	int i;
	for(i=0;i&lt;19;)
	{
		//printf(&quot;%s\n&quot;,str);
		c=getch();
		if(c=='\r')
		{
			break;
		}
		else if(c==8){
			if(i&gt;0)
			{
				str[i-1]=0;
				i=i==0?0:(i-1);
				printf(&quot;%c%c%c&quot;,8,' ',8);				
			}
		}
		else if((c&gt;='0' &amp;&amp; c&lt;='9') || (c&gt;='a' &amp;&amp; c&lt;='z'))
		{
			str[i]=c;
			str[++i]=0;
			putchar('*');
		}
	}
	putchar('\n');
}


/*****************
函数：creatList() 
功能：创建一个新成绩单 
输入：无 
输出： 1（正常创建）或0（非正常创建） 
**************/
int creatList()
{
	GRA *pcur,*newHead;
	char command;
    newHead=(GRA*)malloc(sizeof(GRA));
    newHead-&gt;next=NULL;
    if(!isSaved)
    {
		printf(&quot;┏━━━━━━━━━━━━━━━┓\n&quot;);
		printf(&quot;┃创建新的成绩单将舍弃当前成绩单┃\n&quot;);
		printf(&quot;┣━━━━━━━┳━━━━━━━┫\n&quot;);
		printf(&quot;┃　　1.是　　　┃　　2.否　　　┃\n&quot;);
	 	printf(&quot;┗━━━━━━━┻━━━━━━━┛\n&quot;);
	 	command=getch();
	 	if(command!='1')
	 	{
			return 0;
	 	}
    }
    head=newHead;
    strcpy(recentFile,&quot;Untitle&quot;);
	insertGra();
    printf(&quot;新的成绩单创建完成\n&quot;);
    isSaved=0;
    return 1;
}


/*****************
函数：screenGra() 
功能：筛选并显示成绩单 
输入：char command
输出：成绩单中成员的个数 
**************/
int screenGra(char command)
{
	GRA *pcur;
    int screenInt1,screenInt2,count=0;
    char screenStr[50],userName[20],userGroup[20],userSex[4];
    while(1)
    {
    	system(&quot;cls&quot;);
		if(command!='A' &amp;&amp; command!='0')
	    {
	        while(!(command&gt;='1' &amp;&amp; command&lt;='7'))
	        {
	        	system(&quot;cls&quot;);
	            printf(&quot;┏━━━━━━━━━┓\n&quot;);
	            printf(&quot;┃　   筛选成绩 　　┃\n&quot;);
	            printf(&quot;┣━━━━━━━━━┫\n&quot;);
	            printf(&quot;┃1.按姓名筛选　　　┃\n&quot;);
	            printf(&quot;┃2.按学号筛选　　　┃\n&quot;);
	            printf(&quot;┃3.按班级筛选　　　┃\n&quot;);
	            printf(&quot;┃4.按总成绩筛选　　┃\n&quot;);
	            printf(&quot;┃5.按英语成绩筛选　┃\n&quot;);
	            printf(&quot;┃6.按高数成绩筛选　┃\n&quot;);
	            printf(&quot;┃7.按Ｃ语言成绩筛选┃\n&quot;);
	            printf(&quot;┃0.返回上一层　　　┃\n&quot;);
	            printf(&quot;┗━━━━━━━━━┛\n&quot;);
	            command=getcheln();
	            if(command=='0')
	            {
	                return 0;
	            }
	        }
	        switch(command)
	        {
	        	case'1':
	        	case'2':
	        	case'3':
	            	printf(&quot;┏━━━━━━━━━┓\n&quot;);
       		 		printf(&quot;┃请输入筛选关键字：┃\n&quot;);
       		 		printf(&quot;┃%18s┃\n&quot;,&quot;&quot;);
	            	printf(&quot;┗━━━━━━━━━┛\n&quot;);
					gotoxy(2,15);
	        		scanf(&quot;%s&quot;,screenStr);
	        		gotoxy(0,17);
	        		break;
	       		case'4':
	       		case'5':
	       		case'6':
	       		case'7':
	            	printf(&quot;┏━━━━━━━━━┓\n&quot;);
       		 		printf(&quot;┃请输入成绩区间：  ┃\n&quot;);
       		 		printf(&quot;┃［　　　，　　　］┃\n&quot;,&quot;&quot;);
	            	printf(&quot;┗━━━━━━━━━┛\n&quot;);
					gotoxy(4,15);
	       			scanf(&quot;%d&quot;,&amp;screenInt1);
					gotoxy(12,15);
	       			scanf(&quot;%d&quot;,&amp;screenInt2);
	       			gotoxy(0,17);
	       			break;
	 			default:
	 				printf(&quot;error\n&quot;);
	        }
	    }
	    pcur=head;
	    printf(&quot;┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━┳━━┳━━┳━━┳━━┓\n&quot;);
	    printf(&quot;┃%6s┃%10s┃%10s┃%10s┃%4s┃%4s┃%4s┃%4s┃%4s┃\n&quot;,&quot;序号&quot;,&quot;学号&quot;,&quot;姓名&quot;,&quot;班级&quot;,&quot;性别&quot;,&quot;英语&quot;,&quot;高数&quot;,&quot;C&quot;,&quot;总分&quot;);
	    while(pcur-&gt;next!=NULL)
	    {
	        pcur=pcur-&gt;next;
	    	user=getUserMess(pcur-&gt;id);
	    	if(user!=NULL)
	    	{
		    	strcpy(userName,user-&gt;name);
		    	strcpy(userGroup,user-&gt;group);
		    	strcpy(userSex,user-&gt;sex);
		    }
		    else
		    {
	    		userName[0]=userGroup[0]=userSex[0]=0;
	    	}
	        if (command=='A'
	        || (command=='1' &amp;&amp; strstr(userName,screenStr)!=NULL)
		 	|| (command=='2' &amp;&amp; strstr(pcur-&gt;id,screenStr)!=NULL)
		 	|| (command=='3' &amp;&amp; strstr(userGroup,screenStr)!=NULL)
		 	|| (command=='4' &amp;&amp; screenInt1&lt;=SUMGRA(pcur) &amp;&amp; screenInt2&gt;=SUMGRA(pcur))
		 	|| (command=='5' &amp;&amp; screenInt1&lt;=pcur-&gt;english &amp;&amp; screenInt2&gt;=pcur-&gt;english)
		 	|| (command=='6' &amp;&amp; screenInt1&lt;=pcur-&gt;math &amp;&amp; screenInt2&gt;=pcur-&gt;math)
		 	|| (command=='7' &amp;&amp; screenInt1&lt;=pcur-&gt;c &amp;&amp; screenInt2&gt;=pcur-&gt;c))
	        {
	        	count++;
				printf(&quot;┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━╋━━╋━━╋━━╋━━┫\n&quot;);
		        printf(&quot;┃%s%5d┃%10s┃%10s┃%10s┃%4s┃%4d┃%4d┃%4d┃%4d┃\n&quot;,strcmp(pcur-&gt;id,userId)==0?&quot;*&quot;:&quot; &quot;,count,pcur-&gt;id,userName,userGroup,userSex,pcur-&gt;english,pcur-&gt;math,pcur-&gt;c,SUMGRA(pcur));
	        }
	    }
	    printf(&quot;┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━┻━━┻━━┻━━┻━━┛\n&quot;);
	    if(command=='A')
    		break;
   		else
   		{
		    tapToContinue(&quot;点击任意键返回...\n&quot;);
		   	command=' ';
	   	}
    }
    return count;
}


/*****************
函数：insertGra() 
功能：插入成绩 
输入：无 
输出：插入的成绩个数 
**************/
int insertGra()
{
	GRA *pnew,*pcur=head;
	int i=0,count=1;
	char id[10],fileName[30];
	FILE *fp;
	system(&quot;cls&quot;);
 	printf(&quot;┏━━━━┳━━━━━━━━┳━━━━┳━━━━┳━━━━━┓\n&quot;);
	printf(&quot;┃%8s┃%16s┃%8s┃%8s┃%10s┃\n&quot;,&quot;序号&quot;,&quot;学号&quot;,&quot;英语成绩&quot;,&quot;高数成绩&quot;,&quot;Ｃ语言成绩&quot;);
	printf(&quot;┣━━━━╋━━━━━━━━╋━━━━╋━━━━╋━━━━━┫\n&quot;);
	printf(&quot;┃%8d┃%16s┃%8s┃%8s┃%10s┃\n&quot;,1,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;);
 	printf(&quot;┗━━━━┻━━━━━━━━┻━━━━┻━━━━┻━━━━━┛\n&quot;);
    while(1)
    {
		gotoxy(12,1+count*2);
		scanf(&quot;%s&quot;,id);
        if(id[0]=='0' &amp;&amp; id[1]==0)
        {
        	break;
        }
        pnew=(GRA*)malloc(sizeof(GRA));
        pnew-&gt;next=pcur-&gt;next;
        pcur-&gt;next=pnew;
        pcur=pnew;
        strcpy(pcur-&gt;id,id);
        gotoxy(30,1+count*2);
        scanf(&quot;%d&quot;,&amp;pcur-&gt;english);
        gotoxy(40,1+count*2);
        scanf(&quot;%d&quot;,&amp;pcur-&gt;math);
        gotoxy(50,1+count*2);
        scanf(&quot;%d&quot;,&amp;pcur-&gt;c);
        i++;
        isSaved=0;
        gotoxy(0,2+count*2);
 		count++;
		printf(&quot;┣━━━━╋━━━━━━━━╋━━━━╋━━━━╋━━━━━┫\n&quot;);
		printf(&quot;┃%8d┃%16s┃%8s┃%8s┃%10s┃\n&quot;,count,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;);
 		printf(&quot;┗━━━━┻━━━━━━━━┻━━━━┻━━━━┻━━━━━┛\n&quot;);
    }
    return i;
}


/*****************
函数：deleteGra() 
功能：删除成绩 
输入：无 
输出：删除的成绩个数 
**************/
int deleteGra()
{
	char c;
	GRA *pcur,*ptemp;
    int i=0,j,delId[100],id,sum,min;
 	printf(&quot;┏━━━━━━━━━━━━┓\n&quot;);
    printf(&quot;┃ 请输入要删除成绩的编号 ┃\n&quot;);
	printf(&quot;┃多个用空格隔开,输入0结束┃\n&quot;);
	printf(&quot;┗━━━━━━━━━━━━┛\n&quot;);
    while(scanf(&quot;%d&quot;,&amp;id),id!=0)
    {
    	delId[i]=id;
    	i++;
   	}
   	sum=i;
    for(i=0;i&lt;sum-1;i++)
    {
    	min=i;
    	for(j=i;j&lt;sum-1;j++)
    	{
	    	if(delId[j]&lt;delId[min])
	    	{
	    		min=j;
	    	}
	    }
	    j=delId[i];
	    delId[i]=delId[min];
	    delId[min]=j;
    }
    pcur=head;
    j=1;
    i=0;
    system(&quot;cls&quot;);
 	printf(&quot;┏━━━━━━━━━━━━┓\n&quot;);
    while(pcur-&gt;next!=NULL)
    {
        ptemp=pcur;
        pcur=pcur-&gt;next;
        if(j==delId[i])
        {
            printf(&quot;┃删除成功 成绩编号:%6d！┃\n&quot;,delId[i]);
            ptemp-&gt;next=pcur-&gt;next;
            free(pcur);
            pcur=ptemp;
            i++;
    		isSaved=0;
        }
        j++;
    }
	printf(&quot;┗━━━━━━━━━━━┛\n&quot;);
	tapToContinue(&quot;&quot;);
	return i; 
}


/*****************
函数：modifyGra() 
功能：修改成绩 
输入：无 
输出：无 
**************/
void modifyGra()
{
	GRA *pcur;
    int i,modId,count;
	system(&quot;cls&quot;);
	count=screenGra('A');
	while(1)
	{
		printf(&quot;┏━━━━━━━━━━━━━━━━━━━━━━━━━┓\n&quot;);
	    printf(&quot;┃%50s┃\n&quot;,&quot;&quot;);
	    printf(&quot;┃%50s┃\n&quot;,&quot;&quot;);
		printf(&quot;┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n&quot;);
		gotoxy(2,4+2*count);
		printf(&quot;%50s&quot;,&quot;&quot;);
		gotoxy(2,4+2*count);
	    printf(&quot;请输入要修改成绩的编号(输入0返回) \n&quot;);
		gotoxy(2,5+2*count);
		printf(&quot;%50s&quot;,&quot;&quot;);
		gotoxy(2,5+2*count);
	    scanf(&quot;%d&quot;,&amp;modId);
	    if(modId==0)
	    {
    		break;
    	}
	    pcur=head;
	    for(i=0;i&lt;modId;i++)
	    {
	    	if(pcur-&gt;next==NULL)
	    	{
				gotoxy(2,4+2*count);
				printf(&quot;%50s&quot;,&quot;&quot;);
				gotoxy(2,4+2*count);
		    	printf(&quot;未找到序号:%5d&quot;,modId);
		    	tapToContinue(&quot;&quot;);
		    	return;
		    }
	    	pcur=pcur-&gt;next;
	    }
		gotoxy(2,1+2*i);
		putchar('');
		gotoxy(2,4+2*count);
		printf(&quot;%50s&quot;,&quot;&quot;);
		gotoxy(2,4+2*count);
		printf(&quot;输入新的英语成绩、高数成绩、C语言成绩(用空格隔开)\n&quot;);
		gotoxy(2,5+2*count);
		printf(&quot;%50s&quot;,&quot;&quot;);
		gotoxy(2,5+2*count);
		isSaved=0;
		scanf(&quot;%d%d%d&quot;,&amp;pcur-&gt;english,&amp;pcur-&gt;math,&amp;pcur-&gt;c);
		gotoxy(52,1+2*i);
		printf(&quot;%4d&quot;,pcur-&gt;english);
		gotoxy(58,1+2*i);
		printf(&quot;%4d&quot;,pcur-&gt;math);
		gotoxy(64,1+2*i);
		printf(&quot;%4d&quot;,pcur-&gt;c);
		gotoxy(70,1+2*i);
		printf(&quot;%4d&quot;,SUMGRA(pcur));
		gotoxy(2,1+2*i);
		putchar('*');
		gotoxy(0,3+2*count);
	}
}


/*********************
函数：strSub() 
功能：字符串截取
	将str从第start个字符截取到第end个字符
输入：int start,int end,char *str
输出：截取后字符串的地址 
********************/
char *strSub(int start,int end,char *str)
{
	int lenth=strlen(str);
	if(start&gt;end || start&gt;=lenth)
	{
		return 0;
	}
	char *str2=(char *)calloc(lenth+1,sizeof(char));
	strcpy(str2,str);
	if(end&lt;lenth)
	{
		str2[end]=0;
	}
	return str2+start;
}



/*****************
函数：exitSystem() 
功能：退出系统，结束程序 
输入：无 
输出：无 
**************/
void exitSystem()
{
	char c;
	system(&quot;cls&quot;);
	if(isSaved)
	{
		printf(&quot;┏━━━━━━━┓\n&quot;);
		printf(&quot;┃确定退出系统？┃\n&quot;);
		printf(&quot;┣━━━┳━━━┫\n&quot;);
		printf(&quot;┃1.是　┃　2.否┃\n&quot;);
	 	printf(&quot;┗━━━┻━━━┛\n&quot;);
	 	c=getch();
	 	if(c=='1')
	 	{
	 		gotoxy(0,4);
			printf(&quot;┣━━━┻━━━┫\n&quot;);
	 		printf(&quot;┃    已退出    ┃\n&quot;);
	 		printf(&quot;┗━━━━━━━┛\n&quot;);
		 	exit(0);
	 	}
	}
	else
	{
		if(isAdmin)
		{
			printf(&quot;┏━━━━━━━━━━━━━━━━━━┓\n&quot;);
			printf(&quot;┃当前成绩单未保存，是否保存后再退出？┃\n&quot;);
			printf(&quot;┣━━━━━━┳━━━━━┳━━━━━┫\n&quot;);
			printf(&quot;┃1.保存并退出┃2.直接退出┃0.返回菜单┃\n&quot;);
		 	printf(&quot;┗━━━━━━┻━━━━━┻━━━━━┛\n&quot;);
		 	c=getch();
			switch(c)
			{
				case'1':
					while(!putList());
				case'2':
					exit(0);
					break;
				default:
					return;
			}
		}
		else
		{
			exit(0);
		}
	}
}



/*****************
函数：putList() 
功能：保存成绩单 
输入：无 
输出：1(成功保存)或0(未成功保存) 
**************/
int putList()
{
	GRA *pcur=head-&gt;next;
	char fileName[30],list[20],command=0;
	FILE *fp;
	int haveName=strcmp(recentFile,&quot;Untitle&quot;)==0?0:1;
	system(&quot;cls&quot;);
	if(haveName)
	{
		printf(&quot;┏━━━━━━━━━━━━━━━━┓\n&quot;);
		printf(&quot;┃         请选择保存方式         ┃\n&quot;);
		printf(&quot;┣━━━━━━━┳━━━━┳━━━┫\n&quot;);
		printf(&quot;┃1.保存到原文件┃2.另存为┃3.返回┃\n&quot;);
		printf(&quot;┗━━━━━━━┻━━━━┻━━━┛\n&quot;);
		command=getcheln();
		if(command=='1')
		{
			strcpy(list,recentFile);
		}
		else if(command=='2')
		{
			
		}
		else
		{
			return 1;
		}
	}
	while(1)
	{
		if(!haveName || command=='2')
		{
			system(&quot;cls&quot;);
			printf(&quot;┏━━━━━━━━━━━━━━━━┓\n&quot;);
			printf(&quot;┃请输入要保存的文件名(输入0取消):┃\n&quot;);
			printf(&quot;┃%32s┃\n&quot;,&quot;&quot;);
			printf(&quot;┗━━━━━━━━━━━━━━━━┛\n&quot;);
			gotoxy(2,2);
			scanf(&quot;%s&quot;,list);
			gotoxy(0,4);
			if(list[1]==0)
			{
				if(list[0]=='0')
				{
					return 0;
				}
			}
		}
		strcpy(fileName,strConnect(&quot;list/&quot;,list));
		if((fp=fopen(fileName,&quot;r&quot;))!=NULL)
		{
			fclose(fp);
			if(strcmp(list,recentFile)!=0)
			{
				printf(&quot;┏━━━━━━━━━━━━━━━━━━━━━━┓\n&quot;);
				printf(&quot;┃列表%20s已存在，确定要覆盖吗？┃\n&quot;,list);
				printf(&quot;┣━━━━━━━━━━━┳━━━━━━━━━━┫\n&quot;);
				printf(&quot;┃        1.是          ┃        2.否        ┃\n&quot;);
		 		printf(&quot;┗━━━━━━━━━━━┻━━━━━━━━━━┛\n&quot;);
				if(getch()!='1')
				{
					continue;
				}
			}
		}
		remove(fileName);
		system(&quot;cls&quot;);
 		printf(&quot;┏━━━━━┓\n&quot;);	
		printf(&quot;┃正在保存..┃\n&quot;);
 		printf(&quot;┗━━━━━┛\n&quot;);	
		if((fp=fopen(fileName,&quot;a&quot;))==NULL)
		{
			gotoxy(2,1);
			printf(&quot;打开失败！\n&quot;);
			return 0;
		}
		while(pcur!=NULL)
		{
			fwrite(pcur,sizeof(GRA),1,fp);
			pcur=pcur-&gt;next;
		}
		fclose(fp);
		putRecent(list);
		gotoxy(2,1);
		printf(&quot;保存成功！\n&quot;,list);
		isSaved=1;
		tapToContinue(&quot;&quot;);
		return 1;	
	}
}



/*****************
函数：getList() 
功能：读取名为ilist的成绩单 
	ilist[0]==0的话则由用户输入并赋值给ilist 
输入：char *ilist
输出：1(正常读取)或0(非正常读取)
**************/
int getList(char *ilist)
{
	char command;
	if(!isSaved &amp;&amp; isAdmin)
	{
		printf(&quot;┏━━━━━━━━━━━━━━━━━━┓\n&quot;);
		printf(&quot;┃当前成绩单未保存，是否先进行保存？  ┃\n&quot;);
		printf(&quot;┣━━━━━━┳━━━━━┳━━━━━┫\n&quot;);
		printf(&quot;┃1.保存成绩单┃2.放弃保存┃3.返回菜单┃\n&quot;);
	 	printf(&quot;┗━━━━━━┻━━━━━┻━━━━━┛\n&quot;);
	 	command=getch();
		switch(command)
		{
			case'1':
				while(!putList());
			case'2':
				break;
			case'3':
				return;
		}
	}
	GRA *pcur,*pnew,*newHead;
	newHead=(GRA *)malloc(sizeof(GRA));
	FILE *fp;
	char list[20],clearStr[5]=&quot;%22s&quot;;
	while(1)
	{
		newHead-&gt;next=NULL;
		pcur=newHead;
		if(!ilist[0])
		{
			system(&quot;cls&quot;);
			strcpy(clearStr,&quot;%30s&quot;);
			printf(&quot;┏━━━━━━━━━━━━━━━┓\n&quot;);
			printf(&quot;┃请输入导入的成绩单(输入0取消):┃\n&quot;);
			printf(&quot;┃%30s┃\n&quot;,&quot;&quot;);
		 	printf(&quot;┗━━━━━━━━━━━━━━━┛\n&quot;);
		 	gotoxy(2,2);
			scanf(&quot;%s&quot;,list);
			if(list[0]=='0' &amp;&amp; list[1]==0)
			{
				return 0;
			}
		}
		else
		{
			strcpy(list,ilist);
		}
		gotoxy(2,1);
		printf(clearStr,&quot;&quot;);
		gotoxy(2,1);
		printf(&quot;打开:%s...\n&quot;,list);
		if((fp=fopen(strConnect(&quot;list/&quot;,list),&quot;r&quot;))==NULL)
		{
			gotoxy(2,1);
			printf(clearStr,&quot;&quot;);
			gotoxy(2,1);
			printf(&quot;打开失败！\n&quot;);
			free(list);
			continue;
		}
		putRecent(list);
		while(1)
		{
			pnew=(GRA *)malloc(sizeof(GRA));
			fread(pnew,sizeof(GRA),1,fp);
			pcur-&gt;next=pnew;
			if(pnew-&gt;next==NULL)
			{
				break;
			} 
			pcur=pcur-&gt;next;
		}
		fclose(fp);
		gotoxy(2,1);
		printf(clearStr,&quot;&quot;);
		gotoxy(2,1);
		printf(&quot;读取成绩单完成！\n&quot;);
		tapToContinue(&quot;&quot;);
		isSaved=1;
		head=newHead;
		return 1;
		
	}
}




/*****************
函数：sortList() 
功能：按方式command排序成绩单 
	command==' '则由用户输入command 
输入：char command
输出：1(正常排序)或0(非正常排序) 
**************/
int sortList(char command)
{
	GRA *pcur,*ptemp,*pmax,*pswap,*pcurNext,*pmaxNext;
	pswap=(GRA *)malloc(sizeof(GRA));
    pcur=head-&gt;next;
    while(pcur!=NULL)
    {
    	pmax=pcur;
    	for(ptemp=pcur;ptemp!=NULL;ptemp=ptemp-&gt;next)
    	{
	        if((command=='1' &amp;&amp; strcmp(ptemp-&gt;id,pmax-&gt;id)&lt;0)
		 	|| (command=='2' &amp;&amp; SUMGRA(ptemp)&gt;SUMGRA(pmax))
		 	|| (command=='3' &amp;&amp; ptemp-&gt;english&gt;pmax-&gt;english)
		 	|| (command=='4' &amp;&amp; ptemp-&gt;math&gt;pmax-&gt;math)
		 	|| (command=='5' &amp;&amp; ptemp-&gt;c&gt;pmax-&gt;c))
	        {
				pmax=ptemp;
	        }
	    }
	    pcurNext=pcur-&gt;next;
	    pmaxNext=pmax-&gt;next;
	    memcpy(pswap,pcur,sizeof(GRA));
	    memcpy(pcur,pmax,sizeof(GRA));
	    memcpy(pmax,pswap,sizeof(GRA));
	    pcur-&gt;next=pcurNext;
	    pmax-&gt;next=pmaxNext;
		pcur=pcur-&gt;next;
    }
    system(&quot;cls&quot;);
    isSaved=0;
    return 1;
}





/*****************
函数：putRecent() 
功能：记录最后操作的成绩单的名称(fileName)
输入：char *fileName 
输出：1(成功记录)或0(未记录)
**************/
int putRecent(char *fileName)
{
	if(!fileName)
	{
		return 0;
	}
	strcpy(recentFile,fileName);
	FILE *recent;
	recent=fopen(&quot;data/recentList&quot;,&quot;w&quot;);
	fputs(fileName,recent);
	fclose(recent);
	return 1;
}



/*****************
函数：getRecent() 
功能：获取最后操作的成绩单的名称并赋值给rencentFile 
输入：无 
输出：无 
**************/
void getRecent()
{
	char command;
	FILE *recent;
	if((recent=fopen(&quot;data/recentList&quot;,&quot;r&quot;))==NULL)
	{
		return;
	}
	fgets(recentFile,20,recent);
	fclose(recent);
}



/*****************
函数：openRecent() 
功能：询问用户是否打开最后操作的成绩单 
输入：无 
输出：1(正常打开)或0(未打开) 
**************/
int openRecent()
{
	char command;
	FILE *recent;
	char recentFileTemp[20];
	askToOpen=1;
	getRecent();
	strcpy(recentFileTemp,strSub(0,13,recentFile));
	recentFileTemp[10]=recentFileTemp[11]=recentFileTemp[12]='.';
	printf(&quot;┏━━━━━━━━━━━┓\n&quot;);
	printf(&quot;┃是否打开上次的成绩单？┃\n&quot;);
	printf(&quot;┣━━━━━━━━━━━┫\n&quot;);
	printf(&quot;┃上次打开:%13s┃\n&quot;,recentFileTemp);
	printf(&quot;┣━━━━━━┳━━━━┫\n&quot;);
	printf(&quot;┃  1.是　    ┃  2.否  ┃\n&quot;);
 	printf(&quot;┗━━━━━━┻━━━━┛\n&quot;);
 	command=getch();
	if(command!='1')
	{
		return 0;
	}
	getList(recentFile);
	return 1;
}


/*****************
函数：manageUser() 
功能：管理学生用户 
输入：无
输出： 
**************/
int manageUser()
{
	USER *user;
	int isCreat,count=0;
	char id[20],newId[20],command;
	FILE *fp;
	int existUser;
	while(1)
	{
		system(&quot;cls&quot;);
		isCreat=1;
		printf(&quot;┏━━━━━━━━━━━━┓\n&quot;);
		printf(&quot;┃    学生档案信息管理    ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━━━━┫\n&quot;);
		printf(&quot;┃输入学生ID(输入0取消)： ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━━━━┫\n&quot;);
 		printf(&quot;┃                        ┃\n&quot;);
 		printf(&quot;┗━━━━━━━━━━━━┛\n&quot;);
		gotoxy(2,5);
		scanf(&quot;%s&quot;,id);
		gotoxy(0,7);
		if(id[0]=='0' &amp;&amp; id[1]==0)
		{
			return count;
		}
		while(1)
		{
			system(&quot;cls&quot;);
			existUser=(fp=fopen(strConnect(&quot;user/&quot;,id),&quot;r&quot;))!=NULL?1:0;
			printf(&quot;┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n&quot;);
			printf(&quot;┃          %24s的用户%s存在                      ┃\n&quot;,strConnect(&quot;ID为&quot;,id),existUser?&quot;已&quot;:&quot;不&quot;);
			printf(&quot;┣━━━━━━━━┳━━━━━┳━━━━━┳━━┳━━━━━━━━━━┫\n&quot;);
	    	printf(&quot;┃%16s┃%10s┃%10s┃%4s┃%20s┃\n&quot;,&quot;学号&quot;,&quot;姓名&quot;,&quot;班级&quot;,&quot;性别&quot;,&quot;登录密码&quot;);
			if(existUser)
			{

				user=getUserMess(id);
				printf(&quot;┃%16s┃%10s┃%10s┃%4s┃%20s┃\n&quot;,id,user-&gt;name,user-&gt;group,user-&gt;sex,user-&gt;pass);
				printf(&quot;┣━━━━━━━━┻━━━━━┻━━━━━┻━━┻━━━━━━━━━━┫\n&quot;);
	            printf(&quot;┃    1.修改Ta的学号  　  　  　  　                                　┃\n&quot;);
	            printf(&quot;┃    2.修改Ta的姓名　  　   　                                  　 　┃\n&quot;);
	            printf(&quot;┃    3.修改Ta的班级　      　  　                                　　┃\n&quot;);
	            printf(&quot;┃    4.修改Ta的性别　   　  　                                  　   ┃\n&quot;);
	            printf(&quot;┃    5.修改登录密码　    　  　                                  　  ┃\n&quot;);
	            printf(&quot;┃    6.删除学生信息       　  　                                  　 ┃\n&quot;);
	            printf(&quot;┃    7.管理其它学生       　  　                                  　 ┃\n&quot;);
	            printf(&quot;┃    0.返回菜单            　  　                                  　┃\n&quot;);
			 	printf(&quot;┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n&quot;);
			 	fclose(fp);
			 	command=getch();
				if(command=='0')
				{
					return count;
				}
				else if(command=='1')
				{
					gotoxy(2,4);
					printf(&quot;%16s&quot;,&quot;&quot;);
					gotoxy(2,4);
					scanf(&quot;%16s&quot;,newId);
					if(rename(strConnect(&quot;user/&quot;,id),strConnect(&quot;user/&quot;,newId))==0)
					{
						strcpy(id,newId);
					}
					else
					{
						gotoxy(2,4);
						printf(&quot;%16s&quot;,id);
					}
	
				}
				else if((command&gt;='2' &amp;&amp; command&lt;='5'))
				{
					user=getUserMess(id);
					switch(command)
					{
						case'2':
							gotoxy(20,4);
							printf(&quot;%10s&quot;,&quot;&quot;);
							gotoxy(20,4);
							scanf(&quot;%s&quot;,user-&gt;name);
							break;
						case'3':
							gotoxy(32,4);
							printf(&quot;%10s&quot;,&quot;&quot;);
							gotoxy(32,4);
							scanf(&quot;%s&quot;,user-&gt;group);
							break;
						case'4':
							strcpy(user-&gt;sex,strcmp(&quot;女&quot;,user-&gt;sex)==0?&quot;男&quot;:&quot;女&quot;);
							break;
						case'5':
							gotoxy(50,4);
							printf(&quot;%20s&quot;,&quot;&quot;);
							gotoxy(50,4);
							scanf(&quot;%s&quot;,user-&gt;pass);
							break;
						default:
							break;
					}
					fp=fopen(strConnect(&quot;user/&quot;,id),&quot;w&quot;);
					fwrite(user,sizeof(USER),1,fp);
					fclose(fp);
					count++;
				}
				else if(command=='6')
				{
					if(remove(strConnect(&quot;user/&quot;,id))==0)
					{
						printf(&quot;删除成功！\n&quot;);
						break;
					}
					else
					{
						printf(&quot;删除失败！\n&quot;);
					}
				}
				else if(command=='7')
				{
					break;
				}
			}
			else
			{
				user=(USER*)malloc(sizeof(USER));
				printf(&quot;┃%16s┃%10s┃%10s┃%4s┃%20s┃\n&quot;,id,&quot;&quot;,&quot;&quot;,&quot;&quot;,&quot;&quot;);
				printf(&quot;┗━━━━━━━━┻━━━━━┻━━━━━┻━━┻━━━━━━━━━━┛\n&quot;);
				gotoxy(20,4);
				scanf(&quot;%s&quot;,user-&gt;name);
				gotoxy(32,4);
				scanf(&quot;%s&quot;,user-&gt;group);
				gotoxy(44,4);
				scanf(&quot;%s&quot;,user-&gt;sex);
				gotoxy(50,4);
				scanf(&quot;%s&quot;,user-&gt;pass);
				//scanf(&quot;%s%s%s%s&quot;,user-&gt;name,user-&gt;group,user-&gt;sex,user-&gt;pass);
				FILE *fp;
				fp=fopen(strConnect(&quot;user/&quot;,id),&quot;w&quot;);
				fwrite(user,sizeof(USER),1,fp);
				fclose(fp);
				printf(&quot;新建学生信息完成！\n&quot;);
			}
			
		}
		tapToContinue(&quot;&quot;);
	}
}


/*****************
函数：changePass() 
功能：修改密码 
输入：无 
输出：1(成功修改)或0(未成功修改)
**************/
int changePass()
{
	char getPass[20],truePass[20],putPass[2][20],fileName[30];
    FILE *fp;
    int result=0;
    do
    {
    	system(&quot;cls&quot;);
		printf(&quot;┏━━━━━━━━━━━━━━━━┓\n&quot;);
		printf(&quot;┃          修改登录密码          ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━━━━━━━━┫\n&quot;);
		printf(&quot;┃原密码:                         ┃\n&quot;);
		printf(&quot;┃新密码:                         ┃\n&quot;);
		printf(&quot;┃新密码:                         ┃\n&quot;);
		printf(&quot;┣━━━━━━━━━━━━━━━━┫\n&quot;);
 		printf(&quot;┃提示：                          ┃\n&quot;);
 		printf(&quot;┗━━━━━━━━━━━━━━━━┛\n&quot;);
		gotoxy(8,7);
        printf(&quot;请输入原密码（输入0取消）&quot;);
        gotoxy(10,3);
        printf(&quot;%12s&quot;,&quot;&quot;);
        gotoxy(10,3);
        inputPass(getPass);
        if(getPass[0]=='0' &amp;&amp; getPass[1]==0)
        {
        	break;
        }
        if(strcmp(user-&gt;pass,getPass)!=0)
        {
			gotoxy(8,7);
			printf(&quot;%26s&quot;,&quot;&quot;);
			gotoxy(8,7);
        	tapToContinue(&quot;原密码错误！&quot;);
        	continue;
        }
    	do
    	{
			gotoxy(8,7);
	        printf(&quot;请输入新密码（输入0取消）&quot;);
	        gotoxy(10,4);
	        printf(&quot;%12s&quot;,&quot;&quot;);
	        gotoxy(10,4);
			inputPass(putPass[0]);
			if(putPass[0][0]=='0' &amp;&amp; putPass[0][1]==0)
			{
				break;
			}
			if(strlen(putPass[0])&lt;6)
			{
				gotoxy(8,7);
				printf(&quot;%26s&quot;,&quot;&quot;);
				gotoxy(8,7);
				tapToContinue(&quot;新密码至少要六位！&quot;);
				continue;
			}
			gotoxy(8,7);
			printf(&quot;%26s&quot;,&quot;&quot;);
			gotoxy(8,7);
			printf(&quot;请再次输入新密码&quot;);
	        gotoxy(10,5);
	        printf(&quot;%12s&quot;,&quot;&quot;);
	        gotoxy(10,5);
			inputPass(putPass[1]);
			if(strcmp(putPass[0],putPass[1])!=0)
			{
				gotoxy(8,7);
				printf(&quot;%26s&quot;,&quot;&quot;);
				gotoxy(8,7);
				tapToContinue(&quot;两次输入的密码不一致！&quot;);
				continue;
			}
			strcpy(user-&gt;pass,putPass[0]);
			fp=fopen(strConnect(&quot;user/&quot;,userId),&quot;w&quot;);
			fwrite(user,sizeof(USER),1,fp);
			gotoxy(8,7);
			printf(&quot;%26s&quot;,&quot;&quot;);
			gotoxy(8,7);
			tapToContinue(&quot;密码修改成功！&quot;);
			fclose(fp);
			result=1;
			break;
    	}while(!(putPass[0][0]=='0' &amp;&amp; putPass[0][1]==0));
    }while((getPass[0]!='0' &amp;&amp; getPass[1]!=0) &amp;&amp; result!=1);
    return result;
}


/*****************
函数：strConnect() 
功能：将字符串str1和str2连接 
输入：char *str1,char *str2
输出：连接后的字符串地址 
**************/
char *strConnect(char *str1,char *str2)
{
	char *str=(char*)malloc(strlen(str1)+strlen(str2)+1);
	strcpy(str,str1);
	strcat(str,str2);
	return str;
}


/*****************
函数：gotoxy() 
功能：光标移动到第y-1行第x个字节 
输入：int x,int y
输出：无 
**************/
void gotoxy(int x,int y)
{
	int xx=0x0b;
	HANDLE hOutput;
	COORD loc;
	loc.X= x;
	loc.Y=y;
	hOutput= GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleCursorPosition(hOutput, loc);
	return;
}
(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[共产党宣言]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/477031]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 11 Apr 2018 23:09:14 -0700]]></pubDate>
        <description><![CDATA[(作者:马克思、恩格斯)一个幽灵，共产主义的幽灵，在欧洲游荡。为了对这个幽灵进行神圣的围剿，旧欧洲的一切势力，教皇和沙皇、梅特涅和基佐、法国的激进派和德国的警察，都联合起来了。
有哪一个反对党不被它的当政的敌人骂为共产党呢？又有哪一个反对党不拿共产主义这个罪名去回敬更进步的反对党人和自己的反动敌人呢？
从这一事实中可以得出两个结论：
共产主义已经被欧洲的一切势力公认为一种势力；
现在是共产党人向全世界公开说明自己的观点、自己的目的、自己的意图并且拿党自己的宣言来反驳关于共产主义幽灵的神话的时候了。
为了这个目的，各国共产党人集会于伦敦，拟定了如下的宣言，用英文、法文、德文、意大利文、弗拉芒文和丹麦文公布于世。
一、资产者和无产者
至今一切社会的历史都是阶级斗争的历史。
自由民和奴隶、贵族和平民、领主和农奴、行会师傅和帮工，一句话，压迫者和被压迫者，始终处于相互对立的地位，进行不断的、有时隐蔽有时公开的斗争，而每一次斗争的结局都是整个社会受到革命改造或者斗争的各阶级同归于尽。
在过去的各个历史时代，我们几乎到处都可以看到社会完全划分为各个不同的等级，看到社会地位分成多种多样的层次。在古罗马，有贵族、骑士、平民、奴隶，在中世纪，有封建主、臣仆、行会师傅、帮工、农奴，而且几乎在每一个阶级内部又有一些特殊的阶层。
从封建社会的灭亡中产生出来的现代资产阶级社会并没有消灭阶级对立。它只是用新的阶级、新的压迫条件、新的斗争形式代替了旧的。
但是，我们的时代，资产阶级时代，却有一个特点：它使阶级对立简单化了。整个社会日益分裂为两大敌对的阵营，分裂为两大相互直接对立的阶级：资产阶级和无产阶级。
从中世纪的农奴中产生了初期城市的城关市民；从这个市民等级中发展出最初的资产阶级分子。
美洲的发现、绕过非洲的航行，给新兴的资产阶级开辟了新天地。东印度和中国的市场、美洲的殖民化、对殖民地的贸易、交换手段和一般商品的增加，使商业、航海业和工业空前高涨，因而使正在崩溃的封建社会内部的革命因素迅速发展。
以前那种封建的或行会的工业经营方式已经不能满足随着新市场的出现而增加的需求了。工场手工业代替了这种经营方式。行会师傅被工业的中间等级排挤掉了；各种行业组织之间的分工随着各个作坊内部的分工的出现而消失了。
但是，市场总是在扩大，需求总是在增加。甚至工场手工业也不再能满足需要了。于是，蒸汽和机器引起了工业生产的革命。现代大工业代替了工场手工业；工业中的百万富翁，一支一支产业大军的首领，现代资产者，代替了工业的中间等级。
大工业建立了由美洲的发现所准备好的世界市场。世界市场使商业、航海业和陆路交通得到了巨大的发展。这种发展又反过来促进了工业的扩展。同时，随着工业、商业、航海业和铁路的扩展，资产阶级也在同一程度上得到发展，增加自己的资本，把中世纪遗留下来的一切阶级排挤到后面去。
由此可见，现代资产阶级本身是一个长期发展过程的产物，是生产方式和交换方式的一系列变革的产物。
资产阶级的这种发展的每一个阶段，都伴随着相应的政治上的进展。它在封建主统治下是被压迫的等级，在公社里是武装的和自治的团体，在一些地方组成独立的城市共和国，在另一些地方组成君主国中的纳税的第三等级；后来，在工场手工业时期，它是等级君主国或专制君主国中同贵族抗衡的势力，而且是大君主国的主要基础；最后，从大工业和世界市场建立的时候起，它在现代的代议制国家里夺得了独占的政治统治。现代的国家政权不过是管理整个资产阶级的共同事务的委员会罢了。
资产阶级在历史上曾经起过非常革命的作用。
资产阶级在它已经取得了统治的地方把一切封建的、宗法的和田园般的关系都破坏了。它无情地斩断了把人们束缚于天然尊长的形形色色的封建羁绊，它使人和人之间除了赤裸裸的利害关系，除了冷酷无情的“现金交易”，就再也没有任何别的联系了。它把宗教虔诚、骑士热忱、小市民伤感这些情感的神圣发作，淹没在利己主义打算的冰水之中。它把人的尊严变成了交换价值，用一种没有良心的贸易自由代替了无数特许的和自力挣得的自由。总而言之，它用公开的、无耻的、直接的、露骨的剥削代替了由宗教幻想和政治幻想掩盖着的剥削。
资产阶级抹去了一切向来受人尊崇和令人敬畏的职业的神圣光环。它把医生、律师、教士、诗人和学者变成了它出钱招雇的雇佣劳动者。
资产阶级撕下了罩在家庭关系上的温情脉脉的面纱，把这种关系变成了纯粹的金钱关系。资产阶级揭示了，在中世纪深受反动派称许的那种人力的野蛮使用，是以极端怠惰作为相应补充的。它第一个证明了，人的活动能够取得什么样的成就。它创造了完全不同于埃及金字塔、罗马水道和哥特式教堂的奇迹；它完成了完全不同于民族大迁徙和十字军征讨的远征。
资产阶级除非对生产工具，从而对生产关系，从而对全部社会关系不断地进行革命，否则就不能生存下去。反之，原封不动地保持旧的生产方式，却是过去的一切工业阶级生存的首要条件。生产的不断变革，一切社会状况不停的动荡，永远的不安定和变动，这就是资产阶级时代不同于过去一切时代的地方。一切固定的僵化的关系以及与之相适应的素被尊崇的观念和见解都被消除了，一切新形成的关系等不到固定下来就陈旧了。一切等级的和固定的东西都烟消云散了，一切神圣的东西都被亵渎了。人们终于不得不用冷静的眼光来看他们的生活地位、他们的相互关系。
不断扩大产品销路的需要，驱使资产阶级奔走于全球各地。它必须到处落户，到处开发，到处建立联系。
资产阶级，由于开拓了世界市场，使一切国家的生产和消费都成为世界性的了。使反动派大为惋惜的是，资产阶级挖掉了工业脚下的民族基础。古老的民族工业被消灭了，并且每天都还在被消灭。它们被新的工业排挤掉了，新的工业的建立已经成为一切文明民族的生命攸关的问题；这些工业所加工的，已经不是本地的原料，而是来自极其遥远的地区的原料；它们的产品不仅供本国消费，而且同时供世界各地消费。旧的、靠本国产品来满足的需要，被新的、要靠极其遥远的国家和地带的产品来满足的需要所代替了。过去那种地方的和民族的自给自足和闭关自守状态，被各民族的各方面的互相往来和各方面的互相依赖所代替了。物质的生产是如此，精神的生产也是如此。各民族的精神产品成了公共的财产。民族的片面性和局限性日益成为不可能，于是由许多种民族的和地方的文学形成了一种世界的文学。
资产阶级，由于一切生产工具的迅速改进，由于交通的极其便利，把一切民族甚至最野蛮的民族都卷到文明中来了。它的商品的低廉价格，是它用来摧毁一切万里长城、征服野蛮人最顽强的仇外心理的重炮。它迫使一切民族——如果它们不想灭亡的话——采用资产阶级的生产方式；它迫使它们在自己那里推行所谓文明，即变成资产者。一句话，它按照自己的面貌为自己创造出一个世界。
资产阶级使农村屈服于城市的统治。它创立了巨大的城市，使城市人口比农村人口大大增加起来，因而使很大一部分居民脱离了农村生活的愚昧状态。正像它使农村从属于城市一样，它使未开化和半开化的国家从属于文明的国家，使农民的民族从属于资产阶级的民族，使东方从属于西方。
资产阶级日甚一日地消灭生产资料、财产和人口的分散状态。它使人口密集起来，使生产资料集中起来，使财产聚集在少数人的手里。由此必然产生的结果就是政治的集中。各自独立的、几乎只有同盟关系的、各有不同利益、不同法律、不同政府、不同关税的各个地区，现在已经结合为一个拥有统一的政府、统一的法律、统一的民族阶级利益和统一的关税的统一的民族。
资产阶级在它的不到一百年的阶级统治中所创造的生产力，比过去一切世代创造的全部生产力还要多，还要大。自然力的征服，机器的采用，化学在工业和农业中的应用，轮船的行驶，铁路的通行，电报的使用，整个整个大陆的开垦，河川的通航，仿佛用法术从地下呼唤出来的大量人口，——过去哪一个世纪料想到在社会劳动里蕴藏有这样的生产力呢？
由此可见，资产阶级赖以形成的生产资料和交换手段，是在封建社会里造成的。在这些生产资料和交换手段发展的一定阶段上，封建社会的生产和交换在其中进行的关系，封建的农业和工场手工业组织，一句话，封建的所有制关系，就不再适应已经发展的生产力了。这种关系已经在阻碍生产而不是促进生产了。它变成了束缚生产的桎梏。它必须被炸毁，它已经被炸毁了。
起而代之的是自由竞争以及与自由竞争相适应的社会制度和政治制度、资产阶级的经济统治和政治统治。
现在，我们眼前又进行着类似的运动。资产阶级的生产关系和交换关系，资产阶级的所有制关系，这个曾经仿佛用法术创造了如此庞大的生产资料和交换手段的现代资产阶级社会，现在像一个魔法师一样不能再支配自己用法术呼唤出来的魔鬼了。几十年来的工业和商业的历史，只不过是现代生产力反抗现代生产关系、反抗作为资产阶级及其统治的存在条件的所有制关系的历史。只要指出在周期性的重复中越来越危及整个资产阶级社会生存的商业危机就够了。在商业危机期间，总是不仅有很大一部分制成的产品被毁灭掉，而且有很大一部分已经造成的生产力被毁灭掉。在危机期间，发生一种在过去一切时代看来都好像是荒唐现象的社会瘟疫，即生产过剩的瘟疫。社会突然发现自己回到了一时的野蛮状态；仿佛是一次饥荒、一场普遍的毁灭性战争，使社会失去了全部生活资料；仿佛是工业和商业全被毁灭了，——这是什么缘故呢？因为社会上文明过度，生活资料太多，工业和商业太发达。社会所拥有的生产力已经不能再促进资产阶级文明和资产阶级所有制关系的发展；相反，生产力已经强大到这种关系所不能适应的地步，它已经受到这种关系的阻碍；而它一着手克服这种障碍，就使整个资产阶级社会陷入混乱，就使资产阶级所有制的存在受到威胁。资产阶级的关系已经太狭窄了，再容纳不了它本身所造成的财富了。——资产阶级用什么办法来克服这种危机呢？一方面不得不消灭大量生产力，另一方面夺取新的市场，更加彻底地利用旧的市场。这究竟是怎样的一种办法呢？这不过是资产阶级准备更全面更猛烈的危机的办法，不过是使防止危机的手段越来越少的办法。
资产阶级用来推翻封建制度的武器，现在却对准资产阶级自己了。
但是，资产阶级不仅锻造了置自身于死地的武器；它还产生了将要运用这种武器的人——现代的工人，即无产者。
随着资产阶级即资本的发展，无产阶级即现代工人阶级也在同一程度上得到发展；现代的工人只有当他们找到工作的时候才能生存，而且只有当他们的劳动增殖资本的时候才能找到工作。这些不得不把自己零星出卖的工人，像其他任何货物一样，也是一种商品，所以他们同样地受到竞争的一切变化、市场的一切波动的影响。
由于推广机器和分工，无产者的劳动已经失去了任何独立的性质，因而对工人也失去了任何吸引力。工人变成了机器的单纯的附属品，要求他做的只是极其简单、极其单调和极容易学会的操作。因此，花在工人身上的费用，几乎只限于维持工人生活和延续工人后代所必需的生活资料。但是，商品的价格，从而劳动的价格，是同它的生产费用相等的。因此，劳动越使人感到厌恶，工资也就越少。不仅如此，机器越推广，分工越细致，劳动量出就越增加，这或者是由于工作时间的延长，或者是由于在一定时间内所要求的劳动的增加，机器运转的加速，等等。
现代工业已经把家长式的师傅的小作坊变成了工业资本家的大工厂。挤在工厂里的工人群众就像士兵一样被组织起来。他们是产业军的普通士兵，受着各级军士和军官的层层监视。他们不仅仅是资产阶级的、资产阶级国家的奴隶，他们每日每时都受机器、受监工、首先是受各个经营工厂的资产者本人的奴役。这种专制制度越是公开地把营利宣布为自己的最终目的，它就越是可鄙、可恨和可恶。
手的操作所要求的技巧和气力越少，换句话说，现代工业越发达，男工也就越受到女工和童工的排挤。对工人阶级来说，性别和年龄的差别再没有什么社会意义了。他们都只是劳动工具，不过因为年龄和性别的不同而需要不同的费用罢了。
当厂主对工人的剥削告一段落，工人领到了用现钱支付的工资的时候，马上就有资产阶级中的另一部分人——房东、小店主、当铺老板等等向他们扑来。
以前的中间等级的下层，即小工业家、小商人和小食利者，手工业者和农民——所有这些阶级都降落到无产阶级的队伍里来了，有的是因为他们的小资本不足以经营大工业，经不起较大的资本家的竞争；有的是因为他们的手艺已经被新的生产方法弄得不值钱了。无产阶级就是这样从居民的所有阶级中得到补充的。
无产阶级经历了各个不同的发展阶段。它反对资产阶级的斗争是和它的存在同时开始的。
最初是单个的工人，然后是某一工厂的工人，然后是某一地方的某一劳动部门的工人，同直接剥削他们的单个资产者作斗争。他们不仅仅攻击资产阶级的生产关系，而且攻击生产工具本身；他们毁坏那些来竞争的外国商品，捣毁机器，烧毁工厂，力图恢复已经失去的中世纪工人的地位。
在这个阶段上，工人是分散在全国各地并为竞争所分裂的群众。工人的大规模集结，还不是他们自己联合的结果，而是资产阶级联合的结果，当时资产阶级为了达到自己的政治目的必须而且暂时还能够把整个无产阶级发动起来。因此，在这个阶段上，无产者不是同自己的敌人作斗争，而是同自己的敌人的敌人作斗争，即同专制君主制的残余、地主、非工业资产者和小资产者作斗争。因此，整个历史运动都集中在资产阶级手里；在这种条件下取得的每一个胜利都是资产阶级的胜利。
但是，随着工业的发展，无产阶级不仅人数增加了，而且它结合成更大的集体，它的力量日益增长，它越来越感觉到自己的力量。机器使劳动的差别越来越小，使工资几乎到处都降到同样低的水平，因而无产阶级内部的利益、生活状况也越来越趋于一致。资产者彼此间日益加剧的竞争以及由此引起的商业危机，使工人的工资越来越不稳定；机器的日益迅速的和继续不断的改良，使工人的整个生活地位越来越没有保障；单个工人和单个资产者之间的冲突越来越具有两个阶级的冲突的性质。工人开始成立反对资产者的同盟；他们联合起来保卫自己的工资。他们甚至建立了经常性的团体，以便为可能发生的反抗准备食品。有些地方，斗争爆发为起义。
工人有时也得到胜利，但这种胜利只是暂时的。他们斗争的真正成果并不是直接取得的成功，而是工人的越来越扩大的联合。这种联合由于大工业所造成的日益发达的交通工具而得到发展，这种交通工具把各地的工人彼此联系起来。只要有了这种联系，就能把许多性质相同的地方性的斗争汇合成全国性的斗争，汇合成阶级斗争。而一切阶级斗争都是政治斗争。中世纪的市民靠乡间小道需要几百年才能达到的联合，现代的无产者利用铁路只要几年就可以达到了。
无产者组织成为阶级，从而组织成为政党这件事，不断地由于工人的自相竞争而受到破坏。但是，这种组织总是重新产生，并且一次比一次更强大，更坚固，更有力。它利用资产阶级内部的分裂，迫使他们用法律形式承认工人的个别利益。英国的十小时工作日法案就是一个例子。
旧社会内部的所有冲突在许多方面都促进了无产阶级的发展。资产阶级处于不断的斗争中：最初反对贵族；后来反对同工业进步有利害冲突的那部分资产阶级；经常反对一切外国的资产阶级。在这一切斗争中，资产阶级都不得不向无产阶级呼吁，要求无产阶级援助，这样就把无产阶级卷进了政治运动。于是，资产阶级自己就把自己的教育因素即反对自身的武器给予了无产阶级。
其次，我们已经看到，工业的进步把统治阶级的整批成员抛到无产阶级队伍里去，或者至少也使他们的生活条件受到威胁。他们也给无产阶级带来了大量的教育因素。
最后，在阶级斗争接近决战的时期，统治阶级内部的、整个旧社会内部的瓦解过程，就达到非常强烈、非常尖锐的程度，甚至使得统治阶级中的一小部分人脱离统治阶级而归附于革命的阶级，即掌握着未来的阶级。所以，正像过去贵族中有一部分人转到资产阶级方面一样，现在资产阶级中也有一部分人，特别是已经提高到从理论上认识整个历史运动这一水平的一部分资产阶级思想家，转到无产阶级方面来了。
在当前同资产阶级对立的一切阶级中，只有无产阶级是真正革命的阶级。其余的阶级都随着大工业的发展而日趋没落和灭亡，无产阶级却是大工业本身的产物。
中间等级，即小工业家、小商人、手工业者、农民，他们同资产阶级作斗争，都是为了维护他们这种中间等级的生存，以免于灭亡。所以，他们不是革命的，而是保守的。不仅如此，他们甚至是反动的，因为他们力图使历史的车轮倒转。如果说他们是革命的，那是鉴于他们行将转入无产阶级的队伍，这样，他们就不是维护他们目前的利益，而是维护他们将来的利益，他们就离开自己原来的立场，而站到无产阶级的立场上来。
流氓无产阶级是旧社会最下层中消极的腐化的部分，他们在一些地方也被无产阶级革命卷到运动里来，但是，由于他们的整个生活状况，他们更甘心于被人收买，去干反动的勾当。
在无产阶级的生活条件中，旧社会的生活条件已经被消灭了。无产者是没有财产的；他们和妻子儿女的关系同资产阶级的家庭关系再没有任何共同之处了；现代的工业劳动，现代的资本压迫，无论在英国或法国，无论在美国或德国，都有是一样的，都使无产者失去了任何民族性。法律、道德、宗教在他们看来全都是资产阶级偏见，隐藏在这些偏见后面的全都是资产阶级利益。
过去一切阶级在争得统治之后，总是使整个社会服从于它们发财致富的条件，企图以此来巩固它们已获得的生活地位。无产者只有废除自己的现存的占有方式，从而废除全部现存的占有方式，才能取得社会生产力。无产者没有什么自己的东西必须加以保护，他们必须摧毁至今保护和保障私有财产的一切。
过去的一切运动都是少数人的或者为少数人谋利益的运动。无产阶级的运动是绝大多数人的、为绝大多数人谋利益的独立的运动。无产阶级，现今社会的最下层，如果不炸毁构成官方社会的整个上层，就不能抬起头来，挺起胸来。
如果不就内容而就形式来说，无产阶级反对资产阶级的斗争首先是一国范围内的斗争。每一个国家的无产阶级当然首先应该打倒本国的资产阶级。
在叙述无产阶级发展的最一般的阶段的时候，我们循序探讨了现存社会内部或多或少隐蔽着的国内战争，直到这个战争爆发为公开的革命，无产阶级用暴力推翻资产阶级而建立自己的统治。
我们已经看到，至今的一切社会都是建立在压迫阶级和被压迫阶级的对立之上的。但是，为了有可能压迫一个阶级，就必须保证这个阶级至少有能够勉强维持它的奴隶般的生存的条件。农奴曾经在农奴制度下挣扎到公社成员的地位，小资产者曾经在封建专制制度的束缚下挣扎到资产者的地位。现代的工人却相反，他们并不是随着工业的进步而上升，而是越来越降到本阶级的生存条件以下。工人变成赤贫者，贫困比人口和财富增长得还要快。由此可以明显地看出，资产阶级再不能做社会的统治阶级了，再不能把自己阶级的生存条件当作支配一切的规律强加于社会了。资产阶级不能统治下去了，因为它甚至不能保证自己的奴隶维持奴隶的生活，因为它不得不让自己的奴隶落到不能养活它反而要它来养活的地步。社会再不能在它统治下生存下去了，就是说，它的生存不再同社会相容了。
资产阶级生存和统治的根本条件，是财富在私人手里的积累，是资本的形成和增殖；资本的条件是雇佣劳动。雇佣劳动完全是建立在工人的自相竞争之上的。资产阶级无意中造成而又无力抵抗的工业进步，使工人通过结社而达到的革命联合代替了他们由于竞争而造成的分散状态。于是，随着大工业的发展，资产阶级赖以生产和占有产品的基础本身也就从它的脚下被挖掉了。它首先生产的是它自身的掘墓人。资产阶级的灭亡和无产阶级的胜利是同样不可避免的。
二、无产者和共产党人
共产党人同全体无产者的关系是怎样的呢？
共产党人不是同其他工人政党相对立的特殊政党。
他们没有任何同整个无产阶级的利益不同的利益。
他们不提出任何特殊的原则，用以塑造无产阶级的运动。
共产党人同其他无产阶级政党不同的地方只是：一方面，在无产者不同的民族的斗争中，共产党人强调和坚持整个无产阶级共同的不分民族的利益；另一方面，在无产阶级和资产阶级的斗争所经历的各个发展阶段上，共产党人始终代表整个运动的利益。
因此，在实践方面，共产党人是各国工人政党中最坚决的、始终起推动作用的部分；在理论方面，他们胜过其余无产阶级群众的地方在于他们了解无产阶级运动的条件、进程和一般结果。
共产党人的最近目的是和其他一切无产阶级政党的最近目的一样的：使无产阶级形成为阶级，推翻资产阶级的统治，由无产阶级夺取政权。
共产党人的理论原理，决不是以这个或那个世界改革家所发明或发现的思想、原则为根据的。
这些原理不过是现存的阶级斗争、我们眼前的历史运动的真实关系的一般表述。废除先前存在的所有制关系，并不是共产主义所独具的特征。
一切所有制关系都经历了经常的历史更替、经常的历史变更。
例如，法国革命废除了封建的所有制，代之以资产阶级的所有制。
共产主义的特征并不是要废除一般的所有制，而是要废除资产阶级的所有制。
但是，现代的资产阶级私有制是建立在阶级对立上面、建立在一些人对另一些人的剥削上面的产品生产和占有的最后而又完备的表现。
从这个意义上说，共产党人可以把自己的理论概括为一句话：消灭私有制。
有人责备我们共产党人，说我们消灭个人挣得的、自己劳动得来的财产，要消灭构成个人的一切自由、活动和独立的基础的财产。
好一个劳动得来的、自己挣得的、自己赚来的财产！你们说的是资产阶级财产出现以前的那种小资产阶级、小农的财产吗？那种财产用不着我们去消灭，工业的发展已经把它消灭了，而且每天都在消灭它。
或者，你们说的是现代的资产阶级的私有财产吧？
但是，难道雇佣劳动，无产者的劳动，会给无产者创造出财产来吗？没有的事。这种劳动所创造的资本，即剥削雇佣劳动的财产，只有在不断产生出新的雇佣劳动来重新加以剥削的条件下才能增殖的财产。现今的这种财产是在资本和雇佣劳动的对立中运动的。让我们来看看这种对立的两个方面吧。
做一个资本家，这就是说，他在生产中不仅占有一种纯粹个人的地位，而且占有一种社会地位。资本是集体的产物，它只有通过社会许多成员的共同活动，而且归根到底只有通过社会全体成员的共同活动，才能运动起来。
因此，资本不是一种个人力量，而是一种社会力量。
因此，把资本变为公共的、属于社会全体成员的财产，这并不是把个人财产变为社会财产。这里所改变的只是财产的社会性质。它将失掉它的阶级性质。
现在，我们来看看雇佣劳动。
雇佣劳动的平均价格是最低限度的工资，即工人为维持其工人的生活所必需的生活资料的数额。因此，雇佣工人靠自己的劳动所占有的东西，只够勉强维持他的生命的再生产。我们决不打算消灭这种供直接生命再生产用的劳动产品的个人占有，这种占有并不会留下任何剩余的东西使人们有可能支配别人的劳动。我们要消灭的只是这种占有的可怜的性质，在这种占有下，工人仅仅为增殖资本而活着，只有在统治阶级的利益需要他活着的时候才能活着。
在资产阶级社会里，活的劳动只是增殖已经积累起来的劳动的一种手段。在共产主义社会里，已经积累起来的劳动只是扩大、丰富和提高工人的生活的一种手段。
因此，在资产阶级社会里是过去支配现在，在共产主义社会里是现在支配过去。在资产阶级社会里，资本具有独立性和个性，而活动着的个人却没有独立性和个性。
而资产阶级却把消灭这种关系说成是消灭个性和自由！说对了。的确，正是要消灭资产者的个性、独立性和自由。
在现今的资产阶级生产关系的范围内，所谓自由就是自由贸易，自由买卖。
但是，买卖一消失，自由买卖也就会消失。关于自由买卖的言论，也像我们的资产阶级的其他一切关于自由的大话一样，仅仅对于不自由的买卖来说，对于中世纪被奴役的市民来说，才是有意义的，而对于共产主义要消灭买卖、消灭资产阶级生产关系和资产阶级本身这一点来说，却是毫无意义的。
我们要消灭私有制，你们就惊慌起来。但是，在你们的现存社会里，私有财产对十分之九的成员来说已经被消灭了；这种私有制这所以存在，正是因为私有财产对十分之九的成员来说已经不存在。可见，你们责备我们，是说我们要消灭那种以社会上的绝大多数人没有财产为必要条件的所有制。
总而言之，你们责备我们，是说我们要消灭你们的那种所有制。的确，我们是要这样做的。
从劳动不再能变为资本、货币、地租，一句话，不再能变为可以垄断的社会力量的时候起，就是说，从个人财产不再能变为资产阶级财产的时候起，你们说，个性被消灭了。
由此可见，你们是承认，你们所理解的个性，不外是资产者、资产阶级私有者。这样的个性确实应当被消灭。
共产主义并不剥夺任何人占有社会产品的权力，它只剥夺利用这种占有去奴役他人劳动的权力。
有人反驳说，私有制一消灭，一切活动就会停止，懒惰之风就会兴起。
这样说来，资产阶级社会早就应该因懒惰而灭亡了，因为在这个社会里劳者不获，获者不劳。所有这些顾虑，都可以归结为这样一个同义反复：一旦没有资本，也就不再有雇佣劳动了。
所有这些对共产主义的物质产品的占有方式和生产方式的责备，也被扩及到精神产品的占有和生产方面。正如阶级的所有制的终止在资产者看来是生产本身的终止一样，阶级的教育的终止在他们看来就等于一切教育的终止。
资产者唯恐失去的那种教育，绝大多数人来说是把人训练成机器。
但是，你们既然用你们资产阶级关于自由、教育、法等等的观念来衡量废除资产阶级所有制的主张，那就请你们不要同我们争论了。你们的观念本身是资产阶级的生产关系和所有制关系的产物，正像你们的法不过是被奉为法律的你们这个阶级的意志一样，而这种意志的内容是由你们这个阶级的物质生活条件决定的。
你们的利己观念使你们把自己的生产关系和所有制关系从历史的、在生产过程中是暂时的关系变成永恒的自然规律和理性规律，这种利己观念是你们和一切灭亡了的统治阶级所共有的。谈到古代所有制的时候你们所能理解的，谈到封建所有制的时候你们所能理解的，一谈到资产阶级所有制你们就再也不能理解了。
消灭家庭！连极端的激进派也对共产党人的这种可耻的意图表示愤慨。
现代的、资产阶级的家庭是建立在什么基础上的呢？是建立在资本上面，建立在私人发财上面的。这种家庭只是在资产阶级那里才以充分发展的形式存在着，而无产者的被迫独居和公开的卖淫则是它的补充。
资产者的家庭自然会随着它的这种补充的消失而消失，两者都要随着资本的消失而消失。
你们是责备我们要消灭父母对子女的剥削吗？我们承认这种罪状。
但是，你们说，我们用社会教育代替家庭教育，就是要消灭人们最亲密的关系。
而你们的教育不也是由社会决定的吗？不也是由你们进行教育时所处的那种社会关系决定的吗？不也是由社会通过学校等等进行的直接的或间接的干涉决定的吗？共产党人并没有发明社会对教育的作用；他们仅仅是要改变这种作用的性质，要使教育摆脱统治阶级的影响。
无产者的一切家庭联系越是由于大工业的发展而被破坏，他们的子女越是由于这种发展而被变成单纯的商品和劳动工具，资产阶级关于家庭和教育、关于父母和子女的亲密关系的空话就越是令人作呕。
但是，你们共产党人是要实行公妻制的啊，——整个资产阶级异口同声地向我们这样叫喊。
资产者是把自己的妻子看作单纯的生产工具的。他们听说生产工具将要公共使用，自然就不能不想到妇女也会遭到同样的命运。
他们想也没有想到，问题正在于使妇女不再处于单纯生产工具的地位。
其实，我们的资产者装得道貌岸然，对所谓的共产党人的正式公妻制表示惊讶，那是再可笑不过了。公妻制无需共产党人来实行，它差不多是一向就有的。
我们的资产者不以他们的无产者的妻子和女儿受他们支配为满足，正式的卖淫更不必说了，他们还以互相诱奸妻子为最大的享乐。资产阶级的婚姻实际上是公妻制。人们至多只能责备共产党人，说他们想用正式的、公开的公妻制来代替伪善地掩蔽着的公妻制。其实，不言而喻，随着现在的生产关系的消灭，从这种关系中产生的公妻制，即正式的和非正式的卖淫，也就消失了。
有人还责备共产党人，说他们要取消祖国，取消民族。
工人没有祖国。决不能剥夺他们所没有的东西。因为无产阶级首先必须取得政治统治，上升为民族的阶级，把自身组织成为民族，所以它本身还是民族的，虽然完全不是资产阶级所理解的那种意思。
随着资产阶级的发展，随着贸易自由的实现和世界市场的建立，随着工业生产以及与之相适应的生活条件的趋于一致，各国人民之间的民族分隔和对立日益消失。
无产阶级的统治将使它们更快地消失。联合的行动，至少是各文明国家的联合的行动，是无产阶级获得解放的首要条件之一。
人对人的剥削一消灭，民族对民族的剥削就会随之消灭。
民族内部的阶级对立一消失，民族之间的敌对关系就会随之消失。
从宗教的、哲学的和一切意识形态的观点对共产主义提出的种种责难，都不值得详细讨论了。
人们的观念、观点和概念，一句话，人们的意识，随着人们的生活条件、人们的社会关系、人们的社会存在的改变而改变，这难道需要经过深思才能了解吗？
思想的历史除了证明精神生产随着物质生产的改造而改造，还证明了什么呢？任何一个时代的统治思想始终都不过是统治阶级的思想。
当人们谈到使整个社会革命化的思想时，他们只是表明了一个事实：在旧社会内部已经形成了新社会的因素，旧思想的瓦解是同旧生活条件的瓦解步调一致的。
当古代世界走向灭亡的时候，古代的各种宗教就被基督教战胜了。当基督教思想在18世纪被启蒙思想击败的时候，封建社会正在同当时革命的资产阶级进行殊死的斗争。信仰自由和宗教自由的思想，不过表明竞争在信仰领域里占统治地位罢了。
“但是”，有人会说，“宗教的、道德的、哲学的、政治的、法的观念等等在历史发展的进程中固然是不断改变的，而宗教、道德、哲学、政治和法在这种变化中却始终保存着。
此外，还存在着一切社会状态所共有的永恒真理，如自由、正义等等。但是共产主义要废除永恒真理，它要废除宗教、道德，而不是加以革新，所以共产主义是同至今的全部历史发展相矛盾的。”
这种责难归结为什么呢？至今的一切社会的历史都是在阶级对立中运动的，而这种对立在不同的时代具有不同的形式。
但是，不管阶级对立具有什么样的形式，社会上一部分人对另一部分人的剥削却是过去各个世纪所共有的事实。因此，毫不奇怪，各个世纪的社会意识，尽管形形色色、千差万别，总是在某些共同的形式中运动的，这些形式，这些意识形式，只有当阶级对立完全消失的时候才会完全消失。
共产主义革命就是同传统的所有制关系实行最彻底的决裂；毫不奇怪，它在自己的发展进程中要同传统的观念实行最彻底的决裂。
不过，我们还是把资产阶级对共产主义的种种责难撇开吧。
前面我们已经看到，工人革命的第一步就是使无产阶级上升为统治阶级，争得民主。
无产阶级将利用自己的政治统治，一步一步地夺取资产阶级的全部资本，把一切生产工具集中在国家即组织成为统治阶级的无产阶级手里，并且尽可能快地增加生产力的总量。
要做到这一点，当然首先必须对所有权和资产阶级生产关系实行强制性的干涉，也就是采取这样一些措施，这些措施在经济上似乎是不够充分的和没有力量的，但是在运动进程中它们会越出本身，而且作为变革全部生产方式的手段是必不可少的。
这些措施在不同的国家里当然会是不同的。
但是，最先进的国家几乎都可以采取下面的措施：
1、剥夺地产，把地租用于国家支出。
2、征收高额累进税。
3、废除继承权。
4、没收一切流亡分子和叛乱分子的财产。
5、通过拥有国家资本和独享垄断权的国家银行，把信贷集中在国家手里。
6、把全部运输业集中在国家的手里。
7、按照总的计划增加国家工厂和生产工具，开垦荒地和改良土壤。
8、实行普遍劳动义务制，成立产业军，特别是在农业方面。
9、把农业和工业结合起来，促使城乡对立逐步消灭。
10、对所有儿童实行公共的和免费的教育。取消现在这种形式的儿童的工厂劳动。把教育同物质生产结合起来，等等。
当阶级差别在发展进程中已经消失而全部生产集中在联合起来的个人的手里的时候，公共权力就失去政治性质。原来意义上的政治权力，是一个阶级用以压迫另一个阶级的有组织的暴力。如果说无产阶级在反对资产阶级的斗争中一定要联合为阶级，如果说它通过革命使自己成为统治阶级，并以统治阶级的资格用暴力消灭旧的生产关系，那么它在消灭这种生产关系的同时，也就消灭了阶级对立的存在条件，消灭阶级本身的存在条件，从而消灭了它自己这个阶级的统治。
代替那存在着阶级和阶级对立的资产阶级旧社会的，将是这样一个联合体，在那里，每个人的自由发展是一切人的自由发展的条件。
三、社会主义的和共产主义的文献
1、反动的社会主义
（甲）封建的社会主义
法国和英国的贵族，按照他们的历史地位所负的使命，就是写一些抨击现代资产阶级社会的作品。在法国的1830年七月革命和英国的改革运动中，他们再一次被可恨的暴发户打败了。从此就再谈不上严重的政治斗争了。他们还能进行的只是文字斗争。但是，即使在文字方面也不可能重弹复辟时期的老调了。为了激起同情，贵族们不得不装模作样，似乎他们已经不关心自身的利益，只是为了被剥削的工人阶级的利益才去写对资产阶级的控诉书。他们用来泄愤的手段是：唱唱诅咒他们的新统治者的歌，并向他叽叽咕咕地说一些或多或少凶险的预言。
这样就产生了封建的社会主义，半是挽歌，半是谤文，半是过去的回音，半是未来的恫吓；它有时也能用辛辣、俏皮而尖刻的评论剌中资产阶级的心，但是它由于完全不能理解现代历史的进程而总是令人感到可笑。
为了拉拢人民，贵族们把无产阶级的乞食袋当作旗帜来挥舞。但是，每当人民跟着他们走的时候，都发现他们的臀部带有旧的封建纹章，于是就哈哈大笑，一哄而散。
一部分法国正统派和“青年英国”，都演过这出戏。
封建主说，他们的剥削方式和资产阶级的剥削不同，那他们只是忘记了，他们是在完全不同的、目前已经过时的情况和条件下进行剥削的。他们说，在他们的统治下并没有出现过现代的无产阶级，那他们只是忘记了，现代的资产阶级正是他们的社会制度的必然产物。
不过，他们毫不掩饰自己的批评的反动性质，他们控告资产阶级的主要罪状正是在于：在资产阶级的统治下有一个将把整个旧社会制度炸毁的阶级发展起来。
他们责备资产阶级，与其说是因为它产生了无产阶级，不如说是因为它产生了革命的无产阶级。
因此，在政治实践中，他们参与对工人阶级采取的一切暴力措施，在日常生活中，他们违背自己的那一套冠冕堂皇的言词，屈尊拾取金苹果，不顾信义、仁爱和名誉去做羊毛、甜菜和烧酒的买卖。
正如僧侣总是同封建主携手同行一样，僧侣的社会主义也总是同封建的社会主义携手同行的。
要给基督教禁欲主义涂上一层社会主义的色彩，是再容易不过了。基督教不是也激烈反对私有财产，反对婚姻，反对国家吗？它不是提倡用行善和求乞、独身和禁欲、修道和礼拜来代替这一切吗？基督教的社会主义，只不过是僧侣用来使贵族的怨愤神圣的圣水罢了。
（乙）小资产阶级的社会主义
封建贵族并不是被资产阶级所推翻的、其生活条件在现代资产阶级社会里日益恶化和消失的唯一阶级。中世纪的城关市民和小农等级是现代资产阶级的前身。在工商业不很发达的国家里，这个阶级还在新兴的资产阶级身旁勉强生存着。
在现代文明已经发展的国家里，形成了一个新的小资产阶级，它摇摆于无产阶级和资产阶级之间，并且作为资产阶级社会的补充部分不断地重新组成。但是，这一阶级的成员经常被竞争抛到无产阶级队伍里去，而且，随着大工业的发展，他们甚至觉察到，他们很快就会完全失去他们作为现代社会中一个独立部分的地位，在商业、工业和农业中很快就会被监工和雇员所代替。
在农民阶级远远超过人口半数的国家，例如在法国，那些站在无产阶级方面反对资产阶级的著作家，自然是用小资产阶级和小农的尺度去批判资产阶级制度的，是从小资产阶级的立场出发替工人说话的。这样就形成了小资产阶级的社会主义。西斯蒙第不仅对法国而且对英国来说都是这类著作家的首领。
这种社会主义非常透彻地分析了现代生产关系中的矛盾。它揭穿了经济学家的虚伪的粉饰。它确凿地证明了机器和分工的破坏作用、资本和地产的积聚、生产过剩、危机、小资产者和小农的必然没落、无产阶级的贫困、生产的无政府状态、财富分配的极不平均、各民族之间的毁灭性的工业战争，以及旧风尚、旧家庭关系和旧民族性的解体。
但是，这种社会主义按其实际内容来说，或者是企图恢复旧的生产资料和交换手段，从而恢复旧的所有制关系和旧的社会，或者是企图重新把现代的生产资料和交换手段硬塞到已被它们突破而且必然被突破的旧的所有制关系的框子里去。它在这两种场合都是反动的，同时又是空想的。
工业中的行会制度，农业中的宗法经济，——这就是它的结论。
这一思潮在它以后的发展中变成了一种怯懦的悲叹。
（丙）德国的或“真正的”社会主义
法国的社会主义和共产主义的文献是在居于统治地位的资产阶级的压迫下产生的，并且是同这种统治作斗争的文字表现，这种文献被搬到德国的时候，那里的资产阶级才刚刚开始进行反对封建专制制度的斗争。
德国的哲学家、半哲学家和美文学家，贪婪地抓住了这种文献，不过他们忘记了：在这种著作从法国搬到德国的时候，法国的生活条件却没有同时搬过去。在德国的条件下，法国的文献完全失去了直接实践的意义，而只具有纯粹文献的形式。它必然表现为关于真正的社会、关于实现人的本质的无谓思辨。这样，第一次法国革命的要求，在18世纪的德国哲学家看来，不过是一般“实践理性”的要求，而革命的法国资产阶级的意志的表现，在他们心目中就是纯粹的意志、本来的意志、真正人的意志的规律。
德国著作家的唯一工作，就是把新的法国的思想同他们的旧的哲学信仰调和起来，或者毋宁说，就是从他们的哲学观点出发去掌握法国的思想。
这种掌握，就像掌握外国语一样，是通过翻译的。
大家知道，僧侣们曾经在古代异教经典的手抄本上面写上荒诞的天主教圣徒传。德国著作家对世俗的法国文献采取相反的作法。他们在法国的原著下面写上自己的哲学胡说。例如，他们在法国人对货币关系的批判下面写上“人的本质的外化”，在法国人对资产阶级国家的批判下面写上所谓“抽象普遍物的统治的扬弃”，等等。
这种在法国人的论述下面塞进自己哲学词句的做法，他们称之为“行动的哲学”、”真正的社会主义”、“德国的社会主义科学”、“社会主义的哲学论证”，等等。
法国的社会主义和共产主义的文献就这样被完全阉割了。既然这种文献在德国人手里已不再表现一个阶级反对另一个阶级的斗争，于是德国人就认为：他们克服了“法国人的片面性”，他们不代表真实的要求，而代表真理的要求，不代表无产者的利益，而代表人的本质的利益，即一般人的利益，这种人不属于任何阶级，根本不存在于现实界，而只存在于云雾弥漫的哲学幻想的太空。
这种曾经郑重其事地看待自己那一套拙劣的小学生作业并且大言不惭地加以吹嘘的德国社会主义，现在渐渐失去了它的自炫博学的天真。
德国的特别是普鲁士的资产阶级反对封建主和专制王朝的斗争，一句话，自由主义运动，越来越严重了。
于是，“真正的”社会主义就得到了一个好机会，把社会主义的要求同政治运动对立起来，用诅咒异端邪说的传统办法诅咒自由主义，诅咒代议制国家，诅咒资产阶级的竞争、资产阶级的新闻出版自由、资产阶级的法、资产阶级的自由和平等，并且向人民群众大肆宣扬，说什么在这个资产阶级运动中，人民群众非但一无所得，反而会失去一切。德国的社会主义恰好忘记了，法国的批判（德国的社会主义是这种批判的可怜的回声）是以现代的资产阶级社会以及相应的物质生活条件和相当的政治制度为前提的，而这一切前提当时在德国正是尚待争取的。
这种社会主义成了德意志各邦专制政府及其随从——僧侣、教员、容克和官僚求之不得的、吓唬来势汹汹的资产阶级的稻草人。
这种社会主义是这些政府用来镇压德国工人起义的毒辣的皮鞭和枪弹的甜蜜的补充。
既然“真正的”社会主义就这样成了这些政府对付德国资产阶级的武器，那么它也就直接代表了一种反动的利益，即德国小市民的利益。在德国，16世纪遗留下来的、从那时起经常以不同形式重新出现的小资产阶级，是现存制度的真实的社会基础。
保存这个小资产阶级，就是保存德国的现存制度。这个阶级胆战心惊地从资产阶级的工业统治和政治统治那里等候着无可幸免的灭亡，这一方面是由于资本的积聚，另一方面是由于革命无产阶级的兴起。在它看来，“真正的”社会主义能起一箭双雕的作用。“真正的”社会主义像瘟疫一样流行起来了。
德国的社会主义者给自己的那几条干瘪的“永恒真理”披上一件用思辨的蛛丝织成的、绣满华丽辞藻的花朵和浸透甜情蜜意的甘露的外衣，这件光彩夺目的外衣只是使他们的货物在这些顾客中间增加销路罢了。
同时，德国的社会主义也越来越认识到自己的使命就是充当这种小市民的夸夸其谈的代言人。
它宣布德意志民族是模范的民族，德国小市民是模范的人。它给这些小市民的每一种丑行都加上奥秘的、高尚的、社会主义的意义，使之变成完全相反的东西。它发展到最后，就直接反对共产主义的“野蛮破坏的”倾向，并且宣布自己是不偏不倚地超乎任何阶级斗争之上的。现今在德国流行的一切所谓社会主义和共产主义的著作，除了极少数的例外，都属于这一类卑鄙龌龊的、令人委靡的文献。
2、保守的或资产阶级的社会主义
资产阶级中的一部分人想要消除社会的弊病，以便保障资产阶级社会的生存。
这一部分人包括：经济学家、博爱主义者、人道主义者、劳动阶级状况改善派、慈善事业组织者、动物保护协会会员、戒酒协会发起人以及形形色色的小改良家。这种资产阶级的社会主义甚至被制成一些完整的体系。
我们可以举蒲鲁东的《贫困的哲学》作为例子。
社会主义的资产者愿意要现代社会的生存条件，但是不要由这些条件必然产生的斗争和危险。他们愿意要现存的社会，但是不要那些使这个社会革命化和瓦解的因素。他们愿意要资产阶级，但是不要无产阶级。在资产阶级看来，它所统治的世界自然是最美好的世界。资产阶级的社会主义把这种安慰人心的观念制成半套或整套的体系。它要求无产阶级实现它的体系，走进新的耶路撒冷，其实它不过是要求无产阶级停留在现今的社会里，但是要抛弃他们关于这个社会的可恶的观念。
这种社会主义的另一种不够系统、但是比较实际的形式，力图使工人阶级厌弃一切革命运动，硬说能给工人阶级带来好处的并不是这样或那样的政治改革，而仅仅是物质生活条件即经济关系的改变。但是，这种社会主义所理解的物质生活条件的改变，绝对不是只有通过革命的途径才能实现的资产阶级生产关系的废除，而是一些在这种生产关系的基础上实行的行政上的改良，因而丝毫不会改变资本和雇佣劳动的关系，至多只能减少资产阶级的统治费用和简化它的财政管理。
资产阶级的社会主义只有在它变成纯粹的演说辞令的时候，才获得自己的适当的表现。
自由贸易！为了工人阶级的利益；保护关税！为了工人阶级的利益；单身牢房！为了工人阶级的利益。——这才是资产阶级的社会主义唯一认真说出的最后的话。
资产阶级的社会主义就是这样一个论断：资产者之为资产者，是为了工人阶级的利益。
3、批判的空想的社会主义和共产主义
在这里，我们不谈在现代一切大革命中表达过无产阶级要求的文献（巴贝夫等人的著作）。
无产阶级在普遍激动的时代、在推翻封建社会的时期直接实现自己阶级利益的最初尝试，都不可避免地遭到了失败，这是由于当时无产阶级本身还不够发展，由于无产阶级解放的物质条件还没具备，这些条件只是资产阶级时代的产物。随着这些早期的无产阶级运动而出现的革命文献，就其内容来说必然是反动的。这种文献倡导普遍的禁欲主义和粗陋的平均主义。
本来意义的社会主义和共产主义的体系，圣西门、傅立叶、欧文等人的体系，是在无产阶级和资产阶级之间的斗争还不发展的最初时期出现的。关于这个时期，我们在前面已经叙述过了（见《资产阶级和无产阶级》）。
诚然，这些体系的发明家看到了阶级的对立，以及占统治地位的社会本身中的瓦解因素的作用。但是，他们看不到无产阶级方面的任何历史主动性，看不到它所特有的任何政治运动。
由于阶级对立的发展是同工业的发展步调一致的，所以这些发明家也不可能看到无产阶级解放的物质条件，于是他们就去探求某种社会科学、社会规律，以便创造这些条件。
社会的活动要由他们个人的发明活动来代替，解放的历史条件要由幻想的条件来代替，无产阶级的逐步组织成为阶级要由一种特意设计出来的社会组织来代替。在他们看来，今后的世界历史不过是宣传和实施他们的社会计划。
诚然，他们也意识到，他们的计划主要是代表工人阶级这一受苦最深的阶级的利益。在他们心目中，无产阶级只是一个受苦最深的阶级。
但是，由于阶级斗争不发展，由于他们本身的生活状况，他们就以为自己是高高超乎这种阶级对立之上的。他们要改善社会一切成员的生活状况，甚至生活最优裕的成员也包括在内。因此，他们总是不加区别地向整个社会呼吁，而且主要是向统治阶级呼吁。他们以为，人们只要理解他们的体系，就会承认这种体系是最美好的社会的最美好的计划。
因此，他们拒绝一切政治行动，特别是一切革命行动；他们想通过和平的途径达到自己的目的，并且企图通过一些小型的、当然不会成功的试验，通过示范的力量来为新的社会福音开辟道路。
这种对未来社会的幻想的描绘，在无产阶级还很不发展、因而对本身的地位的认识还基于幻想的时候，是同无产阶级对社会普遍改造的最初的本能的渴望相适应的。
但是，这些社会主义和共产主义的著作也含有批判的成分。这些著作抨击现存社会的全部基础。因此，它们提供了启发工人觉悟的极为宝贵的材料。它们关于未来社会的积极的主张，例如消灭城乡对立，消灭家庭，消灭私人营利，消灭雇佣劳动，提倡社会和谐，把国家变成纯粹的生产管理机构，——所有这些主张都只是表明要消灭阶级对立，而这种阶级对立在当时刚刚开始发展，它们所知道的只是这种对立的早期的、不明显的、不确定的形式。因此，这些主张本身还带有纯粹空想的性质。
批判的空想的社会主义和共产主义的意义，是同历史的发展成反比的。阶级斗争越发展和越具有确定的形式，这种超乎阶级斗争的幻想，这种反对阶级斗争的幻想，就越失去任何实践意义和任何理论根据。所以，虽然这些体系的创始人在许多方面是革命的，但是他们的信徒总是组成一些反动的宗派。这些信徒无视无产阶级的历史进展，还是死守着老师们的旧观点。因此，他们一贯企图削弱阶级斗争，调和对立。他们还总是梦想用试验的办法来实现自己的社会空想，创办单个的法伦斯泰尔，建立国内移民区，创立小伊加利亚，即袖珍版的新耶路撒冷，——而为了建造这一切空中楼阁，他们就不得不呼吁资产阶级发善心和慷慨解囊。他们逐渐地堕落到上述反动的或保守的社会主义者的一伙中去了，所不同的只是他们更加系统地卖弄学问，狂热地迷信自己那一套社会科学的奇功异效。
因此，他们激烈地反对工人的一切政治运动，认为这种运动只是由于盲目地不相信新福音才发生的。
在英国，有欧文主义者反对宪章派，在法国，有傅立叶主义者反对改革派。
四、共产党人对各种反对党派的态度
看过第二章之后，就可以了解共产党人同已经形成的工人政党的关系，因而也就可以了解他们同英国宪章派和北美土地改革派的关系。
共产党人为工人阶级的最近的目的和利益而斗争，但是他们在当前的运动中同时代表运动的未来。在法国，共产党人同社会主义民主党联合起来反对保守的和激进的资产阶级，但是并不因此放弃对那些从革命的传统中承袭下来的空谈和幻想采取批判态度的权利。
在瑞士，共产党人支持激进派，但是并不忽略这个政党是由互相矛盾的分子组成的，其中一部分是法国式的民主社会主义者，一部分是激进的资产者。
在波兰人中间，共产党人支持那个把土地革命当作民族解放的条件的政党，即发动过1846年克拉科夫起义的政党。
在德国，只要资产阶级采取革命的行动，共产党就同它一起去反对专制君主制、封建土地所有制和小市民的反动性。
但是，共产党一分钟也不忽略教育工人尽可能明确地意识到资产阶级和无产阶级的敌对的对立，以便德国工人能够立刻利用资产阶级统治所必然带来的社会的和政治的条件作为反对资产阶级的武器，以便在推翻德国的反动阶级之后立即开始反对资产阶级本身的斗争。
共产党人把自己的主要注意力集中在德国，因为德国正处在资产阶级革命的前夜，因为同17世纪的英国和18世纪的法国相比，德国将在整个欧洲文明更进步的条件下，拥有发展得多的无产阶级去实现这个变革，因而德国的资产阶级革命只能是无产阶级革命的直接序幕。
总之，共产党人到处都支持一切反对现存的社会制度和政治制度的革命运动。
在所有这些运动中，他们都强调所有制问题是运动的基本问题，不管这个问题的发展程度怎样。
最后，共产党人到处都努力争取全世界民主政党之间的团结和协调。
共产党人不屑于隐瞒自己的观点和意图。他们公开宣布：他们的目的只有用暴力推翻全部现存的社会制度才能达到。让统治阶级在共产主义革命面前发抖吧。无产者在这个革命中失去的只是锁链。他们获得的将是整个世界。
全世界无产者，联合起来！(end:《共产党宣言》)]]></description>
    </item>
        <item>
        <title><![CDATA[多用编辑器sublime安装包.exe]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/476986]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 11 Apr 2018 07:13:50 -0700]]></pubDate>
        <description><![CDATA[File Size: 8.54 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/476986">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[ACCESS第6次课资料.rar]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/476818]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 09 Apr 2018 02:06:15 -0700]]></pubDate>
        <description><![CDATA[File Size: 4.81 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/476818">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/476818">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言学生管理系统]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/476778]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sun, 08 Apr 2018 06:55:44 -0700]]></pubDate>
        <description><![CDATA[(作者:KX)
(code:c)#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;
struct STU
{
    char name[10];
    int id;
    int age;
    char address[50];
    struct STU *next;
};
int login();
struct STU *menu(struct STU *);
struct STU *creatList();
struct STU *getStuList(char *);
int putStuList(struct STU *);
struct STU *getRencent();
int putRecent(char *);
int searchStu(struct STU *,char);
int sortList(struct STU *);
int insertStu(struct STU *);
void deleteStu(struct STU *);
int countStu(struct STU *);
void tapToContinue(char *);
char getcheln();
int tipOpen(struct STU *);
void exitSystem(int);
char *strSub(int,int,char *);
void inputPass(char *);
int modifyPass();

int main()
{
    if(login()!=1)
    {
        exit(0);
    }
	struct STU *head=NULL;
	head=getRencent();
	do
	{
	    head=menu(head);
	}while(1);
    return 0;
}


int login()
{
    char getPass[20],truePass[20];
    FILE *fp;
    if((fp=fopen(&quot;admin.dat&quot;,&quot;r&quot;))!=NULL)
    {
    	fgets(truePass,20,fp);
    	fclose(fp);
	    do
	    {
	    	system(&quot;cls&quot;);
			printf(&quot;┏━━━━━━┓\n&quot;);
			printf(&quot;┃学生管理系统┃\n&quot;);
			printf(&quot;┗━━━━━━┛\n&quot;);
	        printf(&quot;请输入密码：\n&quot;);
	        inputPass(getPass);
	        if(strcmp(truePass,getPass)==0)
	        {
	            tapToContinue(&quot;登陆成功！\n&quot;);
	            return 1;
	        }
	        else
	        {
	            tapToContinue(&quot;密码错误！\n&quot;);
	        }
	    }while(getPass[0]!='0' &amp;&amp; getPass[1]!=0);
    }
    else
    {
    	fp=fopen(&quot;admin.dat&quot;,&quot;w&quot;);
    	fputs(&quot;123456&quot;,fp);
    	fclose(fp);
    	tapToContinue(&quot;您的初始密码为123456，请尽快修改密码\n&quot;);
    	return 1;
    }
    return 0;
}


/************************
函数：主菜单
输入：列表链表头结点地址
返回：处理后的链表头结点地址
************************/
struct STU *menu(struct STU *head)
{
    	char command;
        system(&quot;cls&quot;);
		printf(&quot;┏━━━━━━┓\n&quot;);
		printf(&quot;┃学生管理系统┃\n&quot;);
		printf(&quot;┣━━━━━━┫\n&quot;);
		if(head==NULL)
		{
			printf(&quot;┃暂未打开列表┃\n&quot;);
		}
		else
		{
			int stuAmount=countStu(head);
			printf(&quot;┃一共%2d个学生┃\n&quot;,stuAmount);
		}
		printf(&quot;┣━━━━━━┫\n&quot;);
		printf(&quot;┃ 请输入命令 ┃\n&quot;);
		printf(&quot;┣━━━━━━┫\n&quot;);
		if(head!=NULL)
		{
			printf(&quot;┃ 1.查询学生 ┃\n&quot;);
			printf(&quot;┃ 2.添加学生 ┃\n&quot;);
			printf(&quot;┃ 3.删除学生 ┃\n&quot;);
			printf(&quot;┃ 4.排序列表 ┃\n&quot;);
			printf(&quot;┃ 5.打印列表 ┃\n&quot;);
			printf(&quot;┃ 6.保存列表 ┃\n&quot;);
		}
		printf(&quot;┃ 8.新建列表 ┃\n&quot;);
		printf(&quot;┃ 9.读取列表 ┃\n&quot;);
		printf(&quot;┃ a.修改密码 ┃\n&quot;);
		printf(&quot;┃ 0.退出系统 ┃\n&quot;);
		printf(&quot;┗━━━━━━┛\n&quot;);
	 	command=getch();
	 	switch(command)
	 	{
	 		case'1'://搜索学生
	 			if(tipOpen(head))
	 			{
			 		searchStu(head,'0');
	 				tapToContinue(&quot;&quot;);
	 			}
	 			break;
 			case'2'://插入学生
	 			if(tipOpen(head))
	 			{
 					insertStu(head);
	 				tapToContinue(&quot;&quot;);
	 			}
 				break;
			case'3'://删除学生
	 			if(tipOpen(head))
	 			{
					searchStu(head,'A');
					deleteStu(head);
					tapToContinue(&quot;&quot;);
	 			}
				break;
			case'4'://排序列表
	 			if(tipOpen(head))
	 			{
					if(sortList(head))
					{
						searchStu(head,'A');
						tapToContinue(&quot;&quot;);
					}
	 			}
				break;
			case'5'://打印列表
	 			if(tipOpen(head))
	 			{
					searchStu(head,'A');
					tapToContinue(&quot;&quot;);
	 			}
				break;
			case'6'://保存列表
	 			if(tipOpen(head))
	 			{
					putStuList(head);
					tapToContinue(&quot;&quot;);
	 			}
				break;
			case'8'://创建列表
			 	head=creatList(head);
			 	tapToContinue(&quot;&quot;);
			 	break;
			case'9'://读取列表
				head=getStuList(&quot;&quot;);
				tapToContinue(&quot;&quot;);
				break;
			case'0'://退出系统
				exitSystem(0);
				break;
			case'a'://修改密码 
				modifyPass();
				break;
	 	}
	 	return head;
}

/*******************************
函数：创建列表并插入学生
返回创建的列表首地址或原来的首地址
********************************/
struct STU* creatList(struct STU *head)
{
	struct STU *pcur,*newHead;
    newHead=pcur=(struct STU*)malloc(sizeof(struct STU));
    newHead-&gt;next=NULL;
    if(head!=NULL)
    {
    	printf(&quot;创建新列表将舍弃当前列表\n&quot;);
    }
	if(!insertStu(newHead))
	{
		return head;
	}
    printf(&quot;链表创建完成\n&quot;);
    return newHead;
}


/*******************************
函数：打开最后打开的列表
返回列表链表首地址  NULL未成功打开
********************************/
struct STU *getRencent()
{
	char command;
	FILE *recent;
	char recentFile[20],recentFileTemp[20];
	if((recent=fopen(&quot;recentList.dat&quot;,&quot;r&quot;))==NULL)
	{
		return NULL;
	}
	fgets(recentFile,20,recent);
	fclose(recent);
	strcpy(recentFileTemp,recentFile);
	if(recentFileTemp[11])
	{
		recentFileTemp[8]=recentFileTemp[9]=recentFileTemp[10]='.';
		recentFileTemp[11]=0;
	}
	printf(&quot;┏━━━━━━━━━━┓\n&quot;);
	printf(&quot;┃是否打开上次的列表？┃\n&quot;);
	printf(&quot;┣━━━━━━━━━━┫\n&quot;);
	printf(&quot;┃上次打开:%11s┃\n&quot;,recentFileTemp);
	printf(&quot;┣━━━━━┳━━━━┫\n&quot;);
	printf(&quot;┃  1.是　  ┃  2.否  ┃\n&quot;);
 	printf(&quot;┗━━━━━┻━━━━┛\n&quot;);
 	command=getch();
	if(command!='1')
	{
		return NULL;
	}
	struct STU *head=getStuList(recentFile);
	tapToContinue(&quot;&quot;);
	return head;
}


/*******************************
函数：记录打开的列表名称
返回值：1成功记录  0未记录
********************************/
int putRecent(char *fileName)
{
	if(!fileName)
	{
		return 0;
	}
	FILE *recent;
	recent=fopen(&quot;recentList.dat&quot;,&quot;w&quot;);
	fputs(fileName,recent);
	fclose(recent);
	return 1;
}


/*******************************
函数：打开名为fileName的列表
实参fileName为空则由用户输入fileName
返回fileName链表的首地址
********************************/
struct STU *getStuList(char *fileName)
{
	struct STU *pcur,*head,*pnew;
	head=(struct STU *)malloc(sizeof(struct STU));
	FILE *fp;
	head-&gt;next=NULL;
	pcur=head;
	if(!fileName[0])
	{
		fileName=(char*)calloc(20,sizeof(char));
		printf(&quot;请输入导入文件名:\n&quot;);
		scanf(&quot;%s&quot;,fileName);
	}
	printf(&quot;打开:%s...\n&quot;,fileName);
	if((fp=fopen(fileName,&quot;r&quot;))==NULL)
	{
		printf(&quot;打开失败！\n&quot;);
		free(fileName);
		return NULL;
	}
	putRecent(fileName);
	fseek(fp,1,1);
	while(!feof(fp))
	{
		fseek(fp,-1,1);
		pnew=(struct STU *)malloc(sizeof(struct STU));
		pnew-&gt;next=NULL;
		fread(pnew,sizeof(struct STU),1,fp);
		pcur-&gt;next=pnew;
		pcur=pcur-&gt;next;
		fgetc(fp);
	}
	fclose(fp);
	printf(&quot;读取完成！\n&quot;);
	return head;
}


/*******************************
函数：写入列表
返回值： 1写入成功  2失败
********************************/
int putStuList(struct STU *head)
{
	struct STU *pcur=head-&gt;next;
	char fileName[20];
	FILE *fp;
	while(1)
	{
		printf(&quot;请输入要保存的文件名:\n&quot;);
		scanf(&quot;%s&quot;,fileName);
		if(strcmp(&quot;.dat&quot;,strSub(strlen(fileName)-4,100,fileName))==0)
		{
			tapToContinue(&quot;不能以dat为扩展名\n&quot;);
		}
		else
		{
			break;
		}		
	}

	remove(fileName);
	if((fp=fopen(fileName,&quot;a&quot;))==NULL)
	{
		printf(&quot;打开失败！\n&quot;);
		return 0;
	}
	while(pcur!=NULL)
	{
		fwrite(pcur,sizeof(struct STU),1,fp);
		pcur=pcur-&gt;next;
	}
	fclose(fp);
	putRecent(fileName);
	printf(&quot;保存完成！:%s\n&quot;,fileName);
	return 1;
}


/*******************************
函数：计算列表中学生的总个数
返回列表中学生总个数
********************************/
int countStu(struct STU *head)
{
	struct STU *pcur;
	int count=0;
	pcur=head;
    while(pcur-&gt;next!=NULL)
    {
        pcur=pcur-&gt;next;
        count++;
    }
    return count;
}


/*******************************
函数：查找学生
返回查找到的学生个数
********************************/
int searchStu(struct STU *head,char command)
{
	struct STU *pcur;
    int searchInt,count=0;
    char searchStr[50];
	if(command!='A')
    {
        while(!(command=='1' || command=='2' || command=='3' || command=='4'))
        {
            printf(&quot;┏━━━━━━┓\n&quot;);
            printf(&quot;┃输入查找依据┃\n&quot;);
            printf(&quot;┣━━━━━━┫\n&quot;);
            printf(&quot;┃1.按姓名查找┃\n&quot;);
            printf(&quot;┃2.按学号查找┃\n&quot;);
            printf(&quot;┃3.按年龄查找┃\n&quot;);
            printf(&quot;┃4.按地址查找┃\n&quot;);
            printf(&quot;┃0.返回上一层┃\n&quot;);
            printf(&quot;┗━━━━━━┛\n&quot;);
            command=getcheln();
            if(command=='0')
            {
                return 0;
            }
        }
        printf(&quot;\n输入查找关键字:\n&quot;);
        if(command=='1' || command=='4')
        {
            scanf(&quot;%s&quot;,searchStr);
        }
        else if(command=='2' || command=='3')
        {
            scanf(&quot;%d&quot;,&amp;searchInt);
        }
    }
    pcur=head;
    printf(&quot;┏━━━━━┳━━━━━┳━━┳━━━━━━━━━━━━━━━━━━━━┓\n&quot;);
    printf(&quot;┃%10s┃%10s┃%4s┃%40s┃\n&quot;,&quot;姓名&quot;,&quot;学号&quot;,&quot;年龄&quot;,&quot;地址&quot;);
    while(pcur-&gt;next!=NULL)
    {
        pcur=pcur-&gt;next;
        if (command=='A'
        || (command=='1' &amp;&amp; strstr(pcur-&gt;name,searchStr)!=NULL)
	 	|| (command=='4' &amp;&amp; strstr(pcur-&gt;address,searchStr)!=NULL)
	 	|| (command=='2' &amp;&amp; pcur-&gt;id==searchInt)
	 	|| (command=='3' &amp;&amp; pcur-&gt;age==searchInt))
        {
			printf(&quot;┣━━━━━╋━━━━━╋━━╋━━━━━━━━━━━━━━━━━━━━┫\n&quot;);
            printf(&quot;┃%10s┃%10d┃%4d┃%40s┃\n&quot;,pcur-&gt;name,pcur-&gt;id,pcur-&gt;age,pcur-&gt;address);
            count++;
        }
    }
    printf(&quot;┗━━━━━┻━━━━━┻━━┻━━━━━━━━━━━━━━━━━━━━┛\n&quot;);
    return count;
}


/*******************************
函数：列表排序
返回排序依据  0：未排序
********************************/
int sortList(struct STU *head)
{
	char command;
	struct STU *pcur,*ptemp,*pmax,*pswap,*pcurNext,*pmaxNext;
	pswap=(struct STU *)malloc(sizeof(struct STU));
    while(!(command=='1' || command=='2' || command=='3' || command=='4'))
    {
        printf(&quot;┏━━━━━━┓\n&quot;);
        printf(&quot;┃输入排序依据┃\n&quot;);
        printf(&quot;┣━━━━━━┫\n&quot;);
        printf(&quot;┃1.按姓名排序┃\n&quot;);
        printf(&quot;┃2.按学号排序┃\n&quot;);
        printf(&quot;┃3.按年龄排序┃\n&quot;);
        printf(&quot;┃4.按地址排序┃\n&quot;);
        printf(&quot;┃0.返回上一层┃\n&quot;);
        printf(&quot;┗━━━━━━┛\n&quot;);
        command=getcheln();
        if(command=='0')
        {
            return 0;
        }
    }
    pcur=head-&gt;next;
    while(pcur!=NULL)
    {
    	pmax=pcur;
    	for(ptemp=pcur;ptemp!=NULL;ptemp=ptemp-&gt;next)
    	{
	        if((command=='1' &amp;&amp; strcmp(ptemp-&gt;name,pmax-&gt;name)&lt;0)
		 	|| (command=='4' &amp;&amp; strcmp(ptemp-&gt;address,pmax-&gt;address)&lt;0)
		 	|| (command=='2' &amp;&amp; ptemp-&gt;id&lt;pmax-&gt;id)
		 	|| (command=='3' &amp;&amp; ptemp-&gt;age&lt;pmax-&gt;age))
	        {
				pmax=ptemp;
	        }
	    }
	    pcurNext=pcur-&gt;next;
	    pmaxNext=pmax-&gt;next;
	    memcpy(pswap,pcur,sizeof(struct STU));
	    memcpy(pcur,pmax,sizeof(struct STU));
	    memcpy(pmax,pswap,sizeof(struct STU));
	    pcur-&gt;next=pcurNext;
	    pmax-&gt;next=pmaxNext;
		pcur=pcur-&gt;next;
    }
    printf(&quot;排序完成！\n&quot;);
    return command-'0';
}


/*******************************
函数：插入学生
返回插入学生的数量
********************************/
int insertStu(struct STU *pcur)
{
	struct STU *pnew;
	int i;
	char name[10];
    for(i=0;;i++)
    {
        printf(&quot;请输入第%d个学生的信息(姓名、学号、年龄、地址)，用空格隔开:\n&quot;,i+1);
        scanf(&quot;%s&quot;,name);
        if(name[0]=='0' &amp;&amp; name[1]==0)
        {
        	break;
        }
        pnew=(struct STU*)malloc(sizeof(struct STU));
        pnew-&gt;next=pcur-&gt;next;
        pcur-&gt;next=pnew;
        pcur=pnew;
        strcpy(pcur-&gt;name,name);
        scanf(&quot;%d%d%s&quot;,&amp;pcur-&gt;id,&amp;pcur-&gt;age,pcur-&gt;address);
    }
    return i;
}


/*******************************
函数：删除学生
********************************/
void deleteStu(struct STU *head)
{
	char c;
	struct STU *pcur,*ptemp;
    printf(&quot;请输入要删除学生的学号（多个用空格隔开）:\n&quot;);
    int delId;
    while(scanf(&quot;%c&quot;,&amp;c),c!='\n')
    {
    	if(c==' ' || c==',')
    	{
	    	continue;
	    }
	    delId=c-'0';
	    pcur=head;
	    while(pcur-&gt;next!=NULL)
	    {
	        ptemp=pcur;
	        pcur=pcur-&gt;next;
	        if(pcur-&gt;id==delId)
	        {
	            ptemp-&gt;next=pcur-&gt;next;
	            free(pcur);
	            printf(&quot;删除成功 学号:%d！\n&quot;,delId);
	            pcur=ptemp;
	        }
	    }
    }
}


/*******************************
函数：点击任意键继续效果
********************************/
void tapToContinue(char *tip)
{
	if(tip[0]==0)
	{
		printf(&quot;\n点击任意键继续...\n&quot;);
	}
	else
	{
		printf(&quot;%s&quot;,tip);
	}
	getch();
}


/*******************************
函数：getche()并换行
返回读取到的字符
********************************/
char getcheln()
{
	char c=getch();
	printf(&quot;%c\n&quot;,c);
	return c;
}


/*******************************
函数：未打开列表提示打开或创建一个列表
返回值：1已打开  0未打开
********************************/
int tipOpen(struct STU *head)
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		tapToContinue(&quot;&quot;);
		return 0;
	}
	return 1;
}


/*******************************
函数：退出系统确认
********************************/
void exitSystem(int n)
{
	char c;
	printf(&quot;┏━━━━━━━┓\n&quot;);
	printf(&quot;┃确定退出系统？┃\n&quot;);
	printf(&quot;┣━━━┳━━━┫\n&quot;);
	printf(&quot;┃1.是　┃　2.否┃\n&quot;);
 	printf(&quot;┗━━━┻━━━┛\n&quot;);
 	c=getch();
 	if(c=='1')
 	{
 		printf(&quot;已退出\n&quot;);
	 	exit(n);
 	}
}


/*******************************
函数：字符串截取
从第start个字符截取到第end个字符
返回截取后的字符串
********************************/
char *strSub(int start,int end,char *str)
{
	int lenth=strlen(str);
	if(start&gt;end || start&gt;=lenth)
	{
		return 0;
	}
	char *str2=(char *)calloc(lenth+1,sizeof(char));
	strcpy(str2,str);
	if(end&lt;lenth)
	{
		str2[end]=0;
	}
	return str2+start;
}

/*****************************
函数：输入密码显示 *
输入：要输入的字符串的地址 
*****************************/
void inputPass(char *str)
{
	char c;
	int i;
	for(i=0;i&lt;19;)
	{
		//printf(&quot;%s\n&quot;,str);
		c=getch();
		if(c=='\r')
		{
			break;
		}
		else if(c==8){
			str[i-1]=0;
			i=i==0?0:(i-1);
			printf(&quot;%c%c%c&quot;,8,' ',8);
		}
		else if((c&gt;='0' &amp;&amp; c&lt;='9') || (c&gt;='a' &amp;&amp; c&lt;='z'))
		{
			str[i]=c;
			str[++i]=0;
			putchar('*');
		}
	}
	putchar('\n');
}

/***********************
函数：修改密码
返回值：1 修改成功 0未修改或修改失败
***********************/ 
int modifyPass()
{
	char getPass[20],truePass[20],putPass[2][20];
    FILE *fpr,*fpw;
    int result=0;
    fpr=fopen(&quot;admin.dat&quot;,&quot;r&quot;);
    fgets(truePass,20,fpr);
    do
    {
    	system(&quot;cls&quot;);
		printf(&quot;┏━━━━┓\n&quot;);
		printf(&quot;┃修改密码┃\n&quot;);
		printf(&quot;┗━━━━┛\n&quot;);
        printf(&quot;请输入原密码（输入0取消）：\n&quot;);
        inputPass(getPass);
        if(getPass[0]=='0' &amp;&amp; getPass[1]==0)
        {
        	break;
        }
        if(strcmp(truePass,getPass)!=0)
        {
        	tapToContinue(&quot;原密码错误！\n&quot;);
        	continue;
        }
    	while(!(putPass[0][0]=='0' &amp;&amp; putPass[0][1]==0))
    	{
    		system(&quot;cls&quot;);
        	printf(&quot;请输入新密码（仅支持数字、小写字母，输入0取消）：\n&quot;);
			inputPass(putPass[0]);
			if(putPass[0][0]=='0' &amp;&amp; putPass[0][1]==0)
			{
				return 0;
			}
			if(strlen(putPass[0])&lt;6)
			{
				tapToContinue(&quot;新密码长度太短了，至少要六位！\n&quot;);
				continue;
			}
			printf(&quot;再次输入密码：\n&quot;);
			inputPass(putPass[1]);
			if(strcmp(putPass[0],putPass[1])!=0)
			{
				tapToContinue(&quot;两次输入的密码不一致！\n&quot;);
				continue;
			}
			fpw=fopen(&quot;admin.dat&quot;,&quot;w&quot;);
			fputs(putPass[0],fpw);
			tapToContinue(&quot;密码修改成功！\n&quot;);
			fclose(fpw);
			result=1;
			break;
    	}
    }while((getPass[0]!='0' &amp;&amp; getPass[1]!=0) &amp;&amp; result!=1);
    fclose(fpr);
    return result;
}
(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[黑白怀旧风格纪念辛亥革命106周年幻灯片PPT模板.pptx]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/476403]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Tue, 03 Apr 2018 19:20:38 -0700]]></pubDate>
        <description><![CDATA[File Size: 5.6 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/476403">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[Access练习题.zip]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/476276]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 02 Apr 2018 02:06:59 -0700]]></pubDate>
        <description><![CDATA[File Size: 239.19 KiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/browse/476276">Decompress</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/476276">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[这个视频我会永远挂在这里。。。直到隔屁.mp4]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/476243]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sun, 01 Apr 2018 21:50:57 -0700]]></pubDate>
        <description><![CDATA[File Size: 3.85 MiBWord Count: 307,802&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/476243">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[要嫁就嫁程序员，钱多话少死得早~]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/475756]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 26 Mar 2018 19:55:54 -0700]]></pubDate>
        <description><![CDATA[今天在在网上看到了一个关于程序员的笑话，特此搬来跟大家分享一下~~~

一、

程序猿问科比：“你为什么这么成功？ ”
科比：“你知道洛杉矶凌晨四点是什么样子吗？ ”
程序猿：“知道，一般那个时候我还在写代码，怎么了？”
科比：“额…….”

二、

女神：你能让这个论坛的人都吵起来，我今晚就跟你走。
程序猿：PHP语言是最好的语言！
论坛炸锅了，各种吵架。
女神：服了你了，我们走吧，你想干啥都行。
程序猿：今天不行，我一定要说服他们，PHP语言是最好的语言。. 906111ca1c676b938365320ca3e94adf.jpg
三、

我是一个苦b的程序员，今晚加班到快通宵了，困得快睁不开眼了，女上司很关心，问我要不要吃宵夜。我没好气地说，宵夜就算了，能让我睡一觉就行了。女上司红着脸说了句讨厌啊，然后坐在我身边不动，好像距离我很近，搞得我很紧张，难道她发现我的程序出了bug？

四、

老公一定要找程序员！！！！！！
钱多话少死的早. 207e61d540b21102d44c78c4e91ff756.jpg
五、

老婆给当程序员的老公打电话：“下班顺路买一斤包子带回来，如果看到卖西瓜的，就买一个。”

当晚，程序员老公手捧一个包子进了家门……

老婆怒道：“你怎么就买了一个包子？！”

老公答曰：“因为看到了卖西瓜的。”

六、. a36c3ef584474660cf2a61597ec5e2ff.jpg
七、

某人发帖子：“各位JR，我想做一个程序猿，请问有什么要注意的……”
某猿：“等我下班跟你细说……”

然后……就没有然后了

八、. ca7dcba879775a71ae218d515cd16db6.jpg
我问程序员朋友借了1000，他说再多借你24吧，凑个整

九、

程序员A: “我吃鱼香肉丝盖饭, 你吃什么?”
程序员B: “宫保鸡丁盖饭.”
程序员A 在点菜单写上：

    鱼香肉丝盖饭 * 1
    宫保鸡丁盖饭 * 1

程序员B: “我还是要牛肉面吧!”
程序员A 更正点菜单:

    鱼香肉丝盖饭 * 1
//  宫保鸡丁盖饭 * 1
    牛肉面 * 1

十、

我是一个程序猿，一天我坐在路边一边喝水一边苦苦检查bug，这时一个乞丐在我边上坐下了，开始要饭，我觉得他可怜，就给了他一块钱，然后接着调试程序。他可能生意不好，就无聊的看看我在干什么，然后过了一会，他幽幽说，这里少了一个分号。

我惊奇的问：“你也懂这行啊” 乞丐说：“我以前就是做这个的。”. 2889529b635d2c6c7d0a9a7d9813748a.jpg
十一、

某程序员退休后决定练习书法，于是重金购买文房四宝。一日，饭后突生雅兴，一番研墨拟纸，并点上上好檀香。定神片刻，泼墨挥毫，郑重地写下一行字：Hello world！

十二、

搞IT太辛苦了，想换一行怎么办？”“敲一下Enter键。”

十三、

程序员不喜欢乾隆的第八个儿子，因为八阿哥 bug

十四、

一女同学在食堂吃饭时，一程序猿凑到旁边，“同学，我能和你说话不，我已经一个月没和女生说话了。

十五、

两个程序员在聊天：“我昨天碰到个辣妹。我把她带回家，马上就开始如饥似渴地亲吻，她就坐在我的键盘上，然后……”“你在家里也有台电脑？CPU是什么型号的？”

十六、

程序员的读书历程：x 语言入门 —&gt; x 语言应用实践 —&gt; x 语言高阶编程 —&gt; x 语言的科学与艺术 —&gt; 编程之美 —&gt; 编程之道 —&gt; 编程之禅—&gt; 颈椎病康复指南。(end:eason_15的CSDN博客)]]></description>
    </item>
        <item>
        <title><![CDATA[《深入浅出C语言》知识点 .html]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/475671]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Sun, 25 Mar 2018 00:14:47 -0700]]></pubDate>
        <description><![CDATA[File Size: 6.61 MiBWord Count: 6,926,851<a href="https://kxiang.wodemo.net/down/475671/%E3%80%8A%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BAC%E8%AF%AD%E8%A8%80%E3%80%8B%E7%9F%A5%E8%AF%86%E7%82%B9+.html">Open</a>&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/475671">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言运算符优先级]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/475534]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 23 Mar 2018 18:55:54 -0700]]></pubDate>
        <description><![CDATA[优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
()
圆括号
（表达式）/函数名(形参表)
.
成员选择（对象）
对象.成员名
-&gt;
成员选择（指针）
对象指针-&gt;成员名
2
-
负号运算符
-常量
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针变量
单目运算符
&amp;
取地址运算符
&amp;变量名
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof(表达式)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数（取模）
整型表达式/整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
&lt;&lt;
左移
变量&lt;&lt;表达式
左到右
双目运算符
&gt;&gt;
右移
变量&gt;&gt;表达式
双目运算符
6
&gt;
大于
表达式&gt;表达式
左到右
双目运算符
&gt;=
大于等于
表达式&gt;=表达式
双目运算符
&lt;
小于
表达式&lt;表达式
双目运算符
&lt;=
小于等于
表达式&lt;=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&amp;
按位与
表达式&amp;表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&amp;&amp;
逻辑与
表达式&amp;&amp;表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
&lt;&lt;=
左移后赋值
变量&lt;&lt;=表达式
&gt;&gt;=
右移后赋值
变量&gt;&gt;=表达式
&amp;=
按位与后赋值
变量&amp;=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
■“单”表示单目运算符：逻辑非(!),按位取反(~),自增(++),自减(--),取地址(&amp;),取值(*)；
■“算”表示算术运算符：乘、除和求余(*,/,%)级别高于加减(+,-)；
■“移”表示按位左移(&lt;&lt;)和位右移(&gt;&gt;)；
■“关”表示关系运算符：大小关系(&gt;,&gt;=,&lt;,&lt;=)级别高于相等不相等关系(==,!=)；
■“与”表示按位与(&amp;)；
■“异”表示按位异或(^)；
■“或”表示按位或(|)；
■“逻”表示逻辑运算符：逻辑与(&amp;&amp;)级别高于逻辑或(||)；
■“条”表示条件运算符(? :)；
■“赋”表示赋值运算符(=,+=,-=,*=,/=,%=,&gt;&gt;=,&lt;&lt;=,&amp;=,^=, |=,!=)；
◆另，逗号运算符(,) 级别最低，口诀中没有表述，需另加记忆...]]></description>
    </item>
        <item>
        <title><![CDATA[周杰伦 - 以父之名.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/475518]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 23 Mar 2018 08:49:13 -0700]]></pubDate>
        <description><![CDATA[File Size: 5.2 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/475518">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[C语言链表]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/475491]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 23 Mar 2018 03:10:04 -0700]]></pubDate>
        <description><![CDATA[(作者:KX、DavidZhang)
我的版本：
(code:C)
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt; 
struct STU
{
    char name[10];
    int id;
    int age;
    char address[50];
    struct STU *next;
};
struct STU* creatList();
struct STU* getStuList();
void putStuList(struct STU*);
void searchStu(struct STU*,char);
void insertStu(struct STU*);
void deleteStu(struct STU*);
int countStu(struct STU*);
void tapToContinue(char*);
int main()
{
	struct STU *head=NULL;
	char command;
	do
	{
		int stuAmount=countStu(head);
		printf(&quot;共%d个学生:\n&quot;,stuAmount);
		printf(&quot;┏━━━━━┓\n&quot;);
		printf(&quot;┃请输入命令┃\n&quot;);
		printf(&quot;┣━━━━━┫\n&quot;);
		if(head!=NULL)
		{
			printf(&quot;┃1.查询学生┃\n&quot;);
			printf(&quot;┃2.添加学生┃\n&quot;);
			printf(&quot;┃3.删除学生┃\n&quot;);
			printf(&quot;┃4.打印列表┃\n&quot;);
			printf(&quot;┃5.保存列表┃\n&quot;);
		} 
		printf(&quot;┃6.新建列表┃\n&quot;);
		printf(&quot;┃7.读取列表┃\n&quot;);
		printf(&quot;┃0.退出系统┃\n&quot;);
		printf(&quot;┗━━━━━┛\n&quot;);
	 	command=getch();
	 	switch(command)
	 	{
	 		case'1':
	 			searchStu(head,'0');
	 			break;
 			case'2':
 				insertStu(head);
 				break;
			case'3':
				searchStu(head,'A');
				deleteStu(head);
				tapToContinue(&quot;&quot;);
				break;
			case'4':
				searchStu(head,'A');
				tapToContinue(&quot;&quot;);
				break;
			case'5':
				putStuList(head);
				tapToContinue(&quot;&quot;);
				break;
			case'6':
			 	head=creatList();
			 	tapToContinue(&quot;&quot;);
			 	break;
			case'7':
				head=getStuList();
				tapToContinue(&quot;&quot;);
				break;
			case'0':
				system(&quot;exit&quot;);
	 	}
	 	system(&quot;cls&quot;);
	}while(1);
    return 0;
}
struct STU* creatList()
{
	struct STU *head,*pcur,*pnew;
    head=pcur=(struct STU*)malloc(sizeof(struct STU));
    head-&gt;next=NULL;
	insertStu(head);
    printf(&quot;链表创建完成\n&quot;);
    return head;
}
struct STU *getStuList()
{
	struct STU *pcur,*head,*pnew;
	head=(struct STU *)malloc(sizeof(struct STU));
	FILE *fp;
	head-&gt;next=NULL;
	pcur=head; 
	char fileName[20];
	printf(&quot;请输入导入文件名:\n&quot;);
	scanf(&quot;%s&quot;,fileName);
	if((fp=fopen(fileName,&quot;r&quot;))==NULL)
	{
		printf(&quot;打开失败！&quot;);
		return;
	}
	fseek(fp,1,1);
	while(!feof(fp))
	{	
		fseek(fp,-1,1);
		pnew=(struct STU *)malloc(sizeof(struct STU));
		pnew-&gt;next=NULL;
		fread(pnew,sizeof(struct STU),1,fp);
		pcur-&gt;next=pnew;
		pcur=pcur-&gt;next;
		fgetc(fp);
	}
	fclose(fp);
	printf(&quot;读取完成！&quot;);
	return head;
}
void putStuList(struct STU *head)
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		return;
	}
	struct STU *pcur=head-&gt;next;
	char fileName[20];
	FILE *fp;
	printf(&quot;请输入导出文件名:\n&quot;);
	scanf(&quot;%s&quot;,fileName);
	remove(fileName);
	if((fp=fopen(fileName,&quot;a&quot;))==NULL)
	{
		printf(&quot;打开失败！&quot;);
		return;
	}
	while(pcur!=NULL)
	{
		fwrite(pcur,sizeof(struct STU),1,fp);
		pcur=pcur-&gt;next;
	}
	fclose(fp);
	printf(&quot;导入完成！&quot;);
}
int countStu(struct STU *head)
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		return 0;
	}
	struct STU *pcur;
	int count=0;
	pcur=head;
    while(pcur-&gt;next!=NULL)
    {
        pcur=pcur-&gt;next;
        count++;
    }
    return count;
}
void searchStu(struct STU *head,char command)
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		return;
	}
	struct STU *pcur,*ptemp;
    int searchInt;
    char searchStr[50];
	if(command!='A')
    {
        while(!(command=='1' || command=='2' || command=='3' || command=='4'))
        {
            printf(&quot;┏━━━━━━┓\n&quot;);
            printf(&quot;┃输入查找依据┃\n&quot;);
            printf(&quot;┣━━━━━━┫\n&quot;);
            printf(&quot;┃1.按姓名查找┃\n&quot;);
            printf(&quot;┃2.按ＩＤ查找┃\n&quot;);
            printf(&quot;┃3.按年龄查找┃\n&quot;);
            printf(&quot;┃4.按地址查找┃\n&quot;);
            printf(&quot;┃0.返回上一层┃\n&quot;);
            printf(&quot;┗━━━━━━┛\n&quot;);
            command=getch();
            if(command=='0')
            {
                return;
            }
        }
        printf(&quot;输入查找关键字:\n&quot;);
        if(command=='1' || command=='4')
        {
            scanf(&quot;%s&quot;,searchStr);
        }
        else if(command=='2' || command=='3')
        {
            scanf(&quot;%d&quot;,&amp;searchInt);
        }
    }
    pcur=head;
    printf(&quot;┏━━━━━┳━━━━━┳━━┳━━━━━━━━━━━━━━━━━━━━┓\n&quot;);
    printf(&quot;┃%10s┃%10s┃%4s┃%40s┃\n&quot;,&quot;姓名&quot;,&quot;学号&quot;,&quot;年龄&quot;,&quot;地址&quot;);
    while(pcur-&gt;next!=NULL)
    {
        ptemp=pcur;
        pcur=pcur-&gt;next;
        if (command=='A'
        || (command=='1' &amp;&amp; strcmp(pcur-&gt;name,searchStr)==0)
	 	|| (command=='4' &amp;&amp; strcmp(pcur-&gt;address,searchStr)==0)
	 	|| (command=='2' &amp;&amp; pcur-&gt;id==searchInt)
	 	|| (command=='3' &amp;&amp; pcur-&gt;age==searchInt))
        {
			printf(&quot;┣━━━━━╋━━━━━╋━━╋━━━━━━━━━━━━━━━━━━━━┫\n&quot;);
            printf(&quot;┃%10s┃%10d┃%4d┃%40s┃\n&quot;,pcur-&gt;name,pcur-&gt;id,pcur-&gt;age,pcur-&gt;address);
        }
    }
    printf(&quot;┗━━━━━┻━━━━━┻━━┻━━━━━━━━━━━━━━━━━━━━┛\n&quot;);
}
void insertStu(struct STU *pcur)
{
	if(pcur==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		return;
	}
	struct STU *pnew;
	int i,total;
	char name[10];
    printf(&quot;请输入插入学生个数：\n&quot;);
    scanf(&quot;%d&quot;,&amp;total);
    for(i=0;i&lt;total;i++)
    {
        printf(&quot;请输入第%d个学生的信息(姓名、学号、年龄、地址):\n&quot;,i+1);
        scanf(&quot;%s&quot;,name);
        if(name[0]=='0' &amp;&amp; name[1]==0)
        {
        	break;
        }
        pnew=(struct STU*)malloc(sizeof(struct STU));
        pnew-&gt;next=pcur-&gt;next;
        pcur-&gt;next=pnew;
        pcur=pnew;
        strcpy(pcur-&gt;name,name);
        scanf(&quot;%d%d%s&quot;,&amp;pcur-&gt;id,&amp;pcur-&gt;age,pcur-&gt;address);
    }
}
void deleteStu(struct STU *head)
{
	if(head==NULL)
	{
		printf(&quot;还没有打开或创建列表！\n&quot;);
		return;
	}
	char c;
	struct STU *pcur,*ptemp;
    printf(&quot;请输入要删除学生的ID（多个用空格隔开）:\n&quot;);
    int delId;
    while(scanf(&quot;%c&quot;,&amp;c),c!='\n')
    {
    	if(c==' ' || c==',')
    	{
	    	continue;
	    }
	    delId=c-'0';
	    pcur=head;
	    while(pcur-&gt;next!=NULL)
	    {
	        ptemp=pcur;
	        pcur=pcur-&gt;next;
	        if(pcur-&gt;id==delId)
	        {
	            ptemp-&gt;next=pcur-&gt;next;
	            free(pcur);
	            printf(&quot;删除成功 ID:%d！\n&quot;,delId);
	            pcur=ptemp;
	        }
	    }   	
    }
}
void tapToContinue(char *tip)
{
	if(tip[0]==0)
	{
		printf(&quot;点击任意键继续...\n&quot;);
	}
	else
	{
		printf(&quot;%s&quot;,tip);
	}
	getch();
}
(/code)张斌老师版本：
(code:C)
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

struct Student
{
    char name[20];
    int num;
    int eScore;
    int cScore;
    int mScore;
    struct Student * pNext;
};


int main()
{
    int total, index=0;
    printf(&quot;请输入班级人数:&quot;);
    scanf(&quot;%d&quot;, &amp;total);
    //定义头结点指针
    struct Student *pHeader;
    pHeader = (struct Student *) malloc(sizeof(struct Student));
    //定义新的数据节点指针
    struct Student *pNewNode;
    //定义当前节点指针，让其指向头结点
    struct Student *pCurNode = pHeader;
    printf(&quot;请输入每个同学的姓名、学号、英语成绩、数学、C语言:\n&quot;);
    while(index &lt; total)
    {
        //为新节点开辟空间，并赋值
        pNewNode = (struct Student *) malloc(sizeof(struct Student));
        //给pNewNode指向节点赋值
        scanf(&quot;%s&quot;, pNewNode-&gt;name);
        scanf(&quot;%d,%d,%d,%d&quot;, &amp;pNewNode-&gt;num,&amp;pNewNode-&gt;eScore, &amp;pNewNode-&gt;mScore, &amp;pNewNode-&gt;cScore);
        pNewNode-&gt;pNext = NULL;

        //让当前节点的Next指向新创建的节点
        pCurNode-&gt;pNext = pNewNode;
        //当前节点指针后移，为下一次创建新节点连接到链尾做准备
        pCurNode = pNewNode;
        index++;
    }

    printf(&quot;输出班级内学生信息:\n&quot;);
    //让当前节点指针重新指向头结点，从头开始访问链表中所有节点
    pCurNode = pHeader;
    //还有下一个节点
    while(pCurNode-&gt;pNext != NULL)
    {
        pCurNode = pCurNode-&gt;pNext;
        printf(&quot;%s,%d,%d,%d,%d\n&quot;, pCurNode-&gt;name, pCurNode-&gt;num, pCurNode-&gt;eScore, pCurNode-&gt;mScore, pCurNode-&gt;cScore);
    }
    return 0;
}
(/code)]]></description>
    </item>
        <item>
        <title><![CDATA[妹妹，你是降落凡间的天使]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/469467]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 24 Jan 2018 09:11:24 -0800]]></pubDate>
        <description><![CDATA[(作者:小可)我出生的时候就觉得有个什么东西再后面拉着我，我使劲的蹬着我的小腿，可惜什么也踹不着，没有办法我只好在落地那一刻撒娇，“哇……”的哭了，声音那叫一个洪亮，可是当护士小姐温柔的把我抱在怀里夸我以后一定是一个漂亮的小伙时候，又一名护士小姐喊到：“哎呀！还有一个呢！”就这样又一个小家伙出生了，他们叫我们俩“龙凤胎”！

本来属于我一个人的世界现在又多了一个小屁孩和你分享，而且什么你都要分一半给她，只要我稍微有点不满情绪她就会用她比我还洪亮的声音喊来妈妈，我只好乖乖听话。五岁那年不知是哪位健忘的叔叔送了一把玩具冲锋枪给我，竟然忘了还有一个小祖宗，所以她来要我把枪分一半给她时我说什么也不肯，毕竟枪是男孩子的玩具，可她不依不饶的又喊来了妈妈，妈妈说：“你是哥哥，要让着妹妹！”说完就把枪给了她，她拿着枪对我一顿扫射后，我按照她的要求躺下装死，心里就想：“我宁可我是妹妹！你去当什么倒霉哥哥吧！”然后她就一阵哈哈大笑，脚踩在我的肚皮上摆出胜利的架势！可怜的我啊，谁知道我们的父母偏偏是少有的几个不重男轻女的典范之一，所以可以想象我在家里的地位。我们家在别人眼里是幸福的四口之家，男女人数还平衡，可是地位怎么就不能平衡呢？后来在我一点一点长大慢慢的实践生活中知道了，这纯属遗传！

直到我们上了幼儿园，我在幼儿园里的人缘要比她好，因为她比较凶，可能是在家里横行霸道惯了，对谁都像对我那样，人家当然不会真的和我一样被她压迫，很快她哭着跑来找我说没有人陪她玩，要我陪她，没有办法我只好从命，谁让她是我们家的老大，我不听话除非不想回家了！就这样我放弃了陪那些美丽的小女孩玩的时间来陪这个小毛丫头。

有一次一个不知道死活的小破孩来抢她手里刚从我那里抢来的一个变形金刚的玩具模型，她虽然凶但是毕竟没有人家男生的力气大 ，那时我正在偷懒在看一群美丽的小姑娘玩游戏，她气乎乎的跑来告诉我说她被抢劫了，我立刻挽起袖子找到那个比我还要高一头的大班男生，“把变形金刚还给她！”就不！”我一拳打过去，他的鼻子被我打出血，扔下玩具哇哇的哭着去找老师了，我捡起玩具交给她，她好崇拜的看着我，嘿嘿！我终于有点当哥哥的尊严，但是后果惨重，我妈妈被叫到幼儿园，大班的阿姨不知道我和她的关系以为我是为情行凶，呵呵，我哪有那么早熟，还没有她明白的多呢，妈妈让我赔礼道歉，我非不道歉，结果妈妈重重的打了我的屁股两下，我忍住了没有哭，但是坚决不道歉，对着面前那个只空有块头的小子放出豪言：“你以后再敢欺负她我还把你鼻子打出血！”

从那以后她似乎对我的态度变了，不再欺负我还经常拿她以前偷偷藏起来的好吃的给我吃，其实我都知道她藏在哪里。呵呵！

上学了，我们背着一样的书包，穿着一样的衣服和鞋子，她在前我在后走进校门。我们在同一个班级，同学们都很好奇我们为什么长的那么像，因为那时候他们还不知道“龙凤胎”是怎么生出来的，更不明白染色体什么什么的，当然我也不懂，是后来学了生物才知道的！老师让我们一个在东一个在西坐着，怕看我们坐在一起眼花，呵呵！她那时候和小子一样，确切的说和是我一样，俨然一对双胞胎。

放学了和我一起去踢球一起去树林里爬树，弄的一身汗和泥，我真有点错觉她就是我，看着她就知道自己什么德行，在干什么！我们唯一有一点的区别就是在她左边的眼睛旁边有一颗小黑痣，别人说那是美人痣，可我怎么也看不出来她像个美人，就是一个假小子。

她的成绩却比我的好，因为她写好作业后我拿来抄一下就好了，轻松的很，我也不用那么用功的去学，有这么一个帮手也不错，代价就是我得带着她到处去玩，童年的时光总是快乐的，又是短暂的，我们很快长大，我们家也从原来的地方搬家搬到另一个城市里的更新更大的房子里，我和她分开住了，整个阁楼属于我，是我自己的天地，更自由，她在楼下，却经常跑到我这来玩，每次都不敲门一脚踢开，把我吓一跳，我真后悔不应该教她踢足球。

渐渐的我觉得她变了，我们不再一样，她变的漂亮了，头发也长了，知道臭美了，也不和我穿一样的衣服了，妈妈给她买了许多更漂亮的衣服，而我只能穿校服，不平衡啊！但是我有很多漫画，这是她羡慕的。

我们上了中学，是初中高中一体的那种，上了这的初中就有机会考上这的高中，上了这的高中就一定会考上一个好大学！她是全校第一的成绩升到重点中学的，我虽然也上了重点却是最后一名。我不在乎，上了就好，成绩于我如浮云！我们还在一个班级，没有人知道我们是兄妹，因为现在没有人认为我们像了，除了我们的眼睛，和爸爸的是一个模子刻出来的一样。我们也没有和别人说过我们是一个妈妈生的，因为她说不想让别人知道她有一个笨哥哥，也不想让别人知道我有这么漂亮的妹妹，呵呵。

新同学很好奇我们的名字为什么那么像，老师也很好奇为什么来开家长会的时候我们的父母总是一起来一起走，可是就是没往那上想，因为龙凤胎毕竟是稀有的。两个人除了眼睛之外其他的地方一点也不像也是龙凤胎里稀有的。说了你们都不信，我比较安静喜欢看书画漫画，她比较活泼喜欢唱歌和乐器！

我喜欢语文和英语，她也喜欢英语可是特别不喜欢语文，但是成绩一直不错，她每次考试之前都会突击找我复习，临阵磨枪。我每天还是那么悠闲自在的过着，回家抄抄她的作业，她也抄我的，比如作文，我经常说她：“你的书面表达能力这么差，以后怎么给你喜欢的男生写情书啊？”

“哇！老兄！不会让他们给我写吗？再说有你这大帅哥在我旁边谁还敢追我啊？”“那以后我们放学分开走，免得影响你吸引异性！”“算了！我们学校那几个男生，不是我夸你啊，我也从来没夸过你啊，你就当这是第一次好了！”“什么啊？”“你真的比他们强多了！最起码我是这么认为的。还不是我的基因好？”“这和你有什么关系？”“是我的基因好，捎带脚把你也感染了！”“没有搞错？是我先好不好？一分钟之后你才出来呢！小丫头！”

我用手点她的脑门，“哎呀！我认为是他们搞错了，是我先吧？”“那好啊，那你以后就得让着我了，姐姐得照顾弟弟啊！把我以前被你抢走的玩具还回来！”“不要！那算了，还是你先好了。不过……”她突然搞的很神秘坐到我前面的桌子上，“你坦白，有没有小女孩给你写过情书？”“没有！”“真的没有？”“真的没有！”“那我就放心了。”“你放什么心？”“你找女朋友得先通过我的审批才行！”“救命啊，小姐！你老哥我还年轻，没你想的那么成熟，那么有魅力！”“但是，如果你找了一定要先告诉我！”“好！”“说准了啊！给你，这是我的代数作业！把你的作文拿来！”“给你！不过拜托你，把内容改一改再写到你的本子上，这不像数学答案只有一个！”“我哪有时间慢慢改啊？老师也没发现过。”“谁说的上次写的那个老师就已经很怀疑了，在我的本子上写：‘要独立完成！’他以为我抄你的呢。”“哈哈哈！谁让我名声好？谁让你只有作文好？”她一溜烟的下楼了，我拿过她的代数作业，认真的照搬到我的本子上，我绝对相信她！

早上我刚进教室就在书桌里看到了一封信，信封是一个心型，是情书！我有点纳闷，怎么昨天她刚说完，今天就有人给我写啊？我没有打开，放学回家后她又一脚踢进我的房间，“今天我收到情书啦！”她手里挥舞着一个信封，我低下头继续画画，“我也收到了！”“啊？在哪？”“啊！这呢！”我交给她，“你还没看呢啊？”“是啊，你不是说得回来你审查吗？我这不表示对您的尊重么！”“乖！”她摸摸我的头，然后打开信封，看了一会后说：“人家约你今天放学见面呢，你都没看也不知道！人家现在一定很伤心！”“那正好就当无声的拒绝了吧！”“那多不好！”“那我现在马上回去？万一她还在等呢？”我假装起身要走，“不行！不让你去！”她伸开胳膊挡住我，“为什么？不是你说的不好么？”“我就是说说而已。”“好！不去了！那把你的给我看看啊？”“好吧！”我接着说。

第二天她没有等我一个人先上学了，我想她可能还在生我的气呢，我背上书包骑车上学了。第一节是语文课，老师进来抱着作文本，放下之后，推了推眼镜然后说：今天我要给大家看两篇文章，简直是雷同的不能再雷同了！”刘可把你的作文给大家念念，我心里一下凉了，我看了那丫头一眼，她也正看着我，吐了吐舌头，“让你改一改，你不听！现在出事了吧？”“对不起啦！”我们之间有心灵感应，在我们迅速的用眼神交流之后，我硬着头皮拿回作文本，回到位置上开始朗诵！等我念完了，老师又说：“刘珂，把你的作文也念一下！”她也低着头拿回来，磕磕巴巴的念完了，然后抬起头来看看老师然后看看我，“你们解释一下，为什么两篇作文完全一样？说吧！是谁抄谁的？”她看看我，没有办法我只好承认，“老师，是我！是我照刘珂写的！”“我想也是你！平时你的语文成绩不错啊，怎么能抄别人的作文呢？”“老师我这是第一次！”“不是第一次吧？上次的作文你们俩的也很像！只不过这次太离谱了，一点都没改就抄上去了！你说你们这样多久了？”“啊？我们……我们……”我编不下去了，看了看她，“老师！是我不好！不应该这么帮助他学作文的！我想让他参考我的然后自己写，没想到他照搬上去了，以后绝对不会了。”

“恩！同学之间互相帮助是可以的，但是刘可你也不能这么个学法啊。好了，看在刘珂是一番好意的份上，你回去写个检查给我吧！坐下！都坐下吧！”教语文的老头还是比较善良的，还好他没有告诉我们班主任，要不非得把我们俩的家长一起请来不可，到时候就更热闹了！郁闷的上完了语文课，我在想晚上回家怎么惩罚她谁知道倒霉的事还没有结束，真是祸不单行啊?

终于下课了，要做间操，刚想走出教室，就被代数老师叫了回来，“还有刘珂，你们俩来帮我拿点东西，当作惩罚！”年轻的代数老师以这个为借口把我们俩叫到她的办公室，屋里没人，“喂！你们坦白吧！”“坦白什么？”“是不是在偷偷的谈恋爱？”“什么？”我脱口而出，“干吗那么大反映？我也是刚从学生过来的，不会揭发你们的，你们就告诉我吧！”“老师您的好奇心也太重了吧？我们？我们怎么可能？”

“还不承认？我天天看见你们放学一起走，现在连作业都借你抄了，还不是真的？”我无言以对，看着她，“刘珂！老师问你呢，你招不招啊？”她知道我是在问她要不要招我们是兄妹的问题，可是她偏说：“哎呀！被老师看出来了啊！嘿嘿！”“啊？你？老师，其实我们……”我气的要解释，话还没说出口就被她把嘴捂住，“你看！人家女孩子都承认了，你还不好意思。我没有那么封建，谁不是这个年纪过来的啊

不过看你们的名字人家还以为你们是亲戚呢，像兄妹的名字！”我被刘珂捂着嘴没法说话只好拼命的点点头，她在后面踢了我一脚，我不敢再有什么表示了，“看！还挺亲热呢！不过恋爱也不能耽误学习啊！刘可你得多向刘珂学习啊。好了你们回去吧！”“谢谢老师！嘿嘿！”刘珂把我拖了出去，到外面我才挣脱出她的魔爪，“你怎么能这么和她说呢？这不误会了吗？”“这才有意思嘛！多好玩！”“好玩？我看哪天别人知道了怎么办？还有万一谁再瞎说传到我们班主任那去，那就惨啦！她还不把我们家那两位请来啊？本来妈妈就说让我们告诉老师我们的关系，你偏不让！”“怎么了？妈听我的！你管不着！知道就知道！生活要有刺激才好玩嘛！”说完她蹦蹦跳跳的走了，我无可奈何，谁让我贪上这样的妹妹呢？

放学了，几个一起踢球的朋友围过来，“喂！说实话！你是不是和刘珂……？”“是啊！多久了？和我们还保密啊？”“你小子真有艳福啊？咱们三年级最漂亮的女生被你弄到手了！”“人家学习还好呢，你小子以后连作业都不用自己写了！”“等等……等会！谁告诉你们我和她那什么的？我自己怎么不知道啊？”“得了吧你！还装糊涂呢？全班现在谁不知道啊？”“早就觉得你们俩有点什么，天天一起走，还不承认？”

“今天上课你们俩怎么回事啊？谁看不出来啊？哈哈！”我被你一言他一语的弄的迷糊了，“天地良心！我和她真不是那种关系！她是我……”我刚想说出她是我妹妹，妹妹这两个字还没出口呢，就看见她在前面对我比画了一个抹脖子的手势，我只好把那句话咽下去，“说啊！她是你什么啊？哈哈哈哈！”

这时她对这边喊：“刘可！还走不走了？”“哦！来了！”我背上书包跟她回家了，后面的人一阵起哄，我和妹妹的关系被确定为了情侣！很快大街小巷全校皆听到风声，唯一庆幸的是我们老师还不知道！只有代数老师上课时会有意无意的逗我们俩一下，全班又会哈哈大笑，我有理说不清，只中考要到了，妹妹和我每天辛苦的复习再复习，其实所谓的辛苦无非是她对着一堆古文发晕，我对着一堆函数方程眼晕而已，所以我们成了彼此的老师，我教她语文，她教我代数，她学的比我快，很快就能翻译一篇绕嘴的古文了，我就比较惨，经常被她用卷子敲我的头大叫“笨蛋！”

妈妈给我们准备了一个月的军事化集中复习的丰盛伙食，爸爸也买了好多补品给我们，我们成为真正的皇帝，呵呵，不过是女皇制！为了使我的数学成绩在一个月内突飞猛进，我们经常熬夜到很晚，有时候她就干脆睡在我这了，还好我是双人床，否则我都不知道要不要睡在地板上了，“把这道题做完才可以睡！我先睡了啊！不许偷懒！快做！”

她睡了还得强迫我继续受苦，好不容易解完了一道那么长的题，有六个问号，我看看手表已经一点了，我不敢洗脸了怕又精神了，只好拿毛巾用热水浸湿了擦了擦脸，倒在她身边睡了，我们好久没有在一个床上睡觉了，我也好久没有这么近的看过她了，她闭上眼睛睡着的样子怎么这么面熟呢？

我越想越纳闷，我起来拿着镜子看了看自己又看了看她，哦，原来是像我！我都忘了我们是一起出生的了！嘿嘿！“你做题做傻了啊？大半夜的笑什么？”“哦！我在看你啊！我们其实还是有点像的！”“废话！快睡吧！”我也觉得自己有点傻，再次回到床上准备睡觉，“刘可！”“怎么了？”“我能枕着你的胳膊睡吗？”“行啊！”我把胳膊伸了过去，她笑嘻嘻的钻到我怀里，我们一起进入梦乡，不知道会不会做同一个梦？

“完了！迟到啦！”我早上一下子醒过来，“刘珂！快醒醒！要迟到啦！”她还在那做梦笑呢，被我一推，她也吓一跳：“怎么了？地震了？”“晚了！都几点了！睡过头了！”“你昨天没上闹钟吗？”“忘了！”“笨蛋！”“还骂我，快起来吧！”我们赶紧刷牙洗脸换衣服，出门前发现老妈他们竟然也没醒呢，这一家子什么毛病都是一起犯，哎！没办法！我在冰箱里拿了面包和牛奶塞进书包里，“刘珂，好了没有啊？”“来了，来了！”我们像消防队一样冲了出去，火速赶到学校，早自习已经开始，还好老师不在，我们俩溜进教室。

“嘿！你们去哪了？大早上的就约会啊？”“哪啊？我起来晚了！”“那她呢？不会也起来晚了吧？你们一起睡的啊？哈哈！”我心里想：“嘿！真让你猜中了，我们还就是一起睡的！”可是不能这么说啊，只好说：“是啊！是啊！我们约会去了！”“你看！承认就好了么！”后面的同学把我调侃一通，我无奈啊，谁让她不许我说真相，她回头看看我，做了一个鬼脸，嘿嘿的笑了！我回了她一个鬼脸！

“真是惊险啊！差一点就被老师碰上了！”“是啊！今天回家得把闹钟都翻出来！”“哈哈哈哈哈！”“给你！早上没吃，饿了吧？”“还真饿了！”我把面包和牛奶给她，“你的呢？”“我早上走的着急就拿了一份！”“说你笨，一点都不是虚构的！那你不饿啊？”“我不饿，你吃吧！”“不行！早上不吃饭会影响智商的，本来你就够低了！”“你就不能说我点好的？”“你有好的让我说吗？给！一人一半！”她把面包掰了一半给，“那你够吗？”“那也不能让你饿着啊！”

说完一下塞进我的嘴里，我嘿嘿的笑着，她也笑了，这时班主任正好路过，我们俩齐唰唰的向后转，然后假装谁也没看见谁，我往右看，她向左望，等班主任过去了，我们才松了一口气，“被她看见我们这样就完了！”“恩！还不全校批斗我们俩啊？顺便还得捎上我们家那俩！”我们急忙跑回教室准备上下一节课。班主任是有名的封建加保守，男生和女生说话都不行，被她看见了就会怀疑你们俩有什么，哎！没有办法！

一个月很快过去，这一个月她几乎都是睡在我这，我的数学成绩明显进步，她现在时不时的也能从嘴里溜达出来几句古文，没事就叫我“汝”，称呼自己“吾”，叫爸妈“尔等”！全家都回到了封建社会！考试那天我们不在一个教室，她在楼下的二年级教室，她对我说：“别紧张啊！”我对她说：“别大意啊！”我们笑笑，各自走向战场！

三天考试，下了三天的雨，我和她都喜欢雨天，所以心情很好，现在只等成绩发布了！

大考之后必定大玩，我们要放将近两个月的暑假，要去哪里消遣成了问题，我说去海边，她说去爬山，我们各持己见，最后没有办法只好找了一个前山后海的地方，爸妈有工作不能去，给了我们些人民币，我们自己行动！

这是我们希望的，有他们在，就没意思了！她高兴的准备出门的行李，买了很多吃的，最后上火车那天我大包小包的背了一身，她只背着她自己随身的那个小包，戴着墨镜，轻松的很，“你就忍心看着你老哥变成民工啊？”“怕什么？给我做苦力光荣啊，刘可同志！”

五个小时后我们到了目的地，果然是山海相望，漂亮的不得了，“真是好地方！”“来对了！”我们找了旅店住下，“这能看见海啊！”“是啊！所以比别的贵啊！”“值得！”“恩！”“刘可！”“啊？什么事？”“……没事！”“不对！有！让我想想你在想什么？”我看着她，过了半分钟后我说：“你不会是想？”她兴奋的点点头：“恩！是啊！是啊！”“不！”“我要！”“一路上都是我在辛苦啊！”“那坐车也很累很无聊么！好不好？”我受不了她的磨来磨去，“好吧！就一会啊！躺下吧！”“好！”她把外衣和鞋子脱掉，只剩下贴身的吊带背心，“来吧！”我也脱掉外套，扒下鞋，坐在她身上，“哎呀！你轻一点，腰断了！”“知足吧！我就这点力气了！”“啊！用点力！……啊！这！不是！是这！啊！……”“你小点声。”“可是很舒服嘛！……啊……”这时一个服务员突然进来，看见我们这样立刻红着脸说：“不好意思！我是给你们送水的，忘了敲门了！对不起，对不起！”放下水壶后转身跑了，把门紧紧的关上。我们俩面面相觑，“看！又让人家误会了吧！”“我们又没干什么！快！继续按！按摩是不能停的！这！肩膀！对！啊……真舒服！你的手艺精进了不少么！哈哈哈哈！”

没有办法，这是小时候落下的毛病，有一次她和我一起跳墙的时候不小心掉下来，虽然没有受伤，但是全身都疼，我就把她背回家，然后一点一点的帮她按摩，怕她哪里骨折了还不知道，还好没事，但是从那以后她就喜欢我给她按摩了，后来还专门买了一本按摩的书让我研究，我成了她的私人专业按摩师！

累了一天我们晚上很早就睡了，第二天我们要去爬山，凌晨三点我被她弄醒，“天还没亮呢！干吗啊？”“ 我们去看日出吧！”“啊？不是吧？”“是啊！我们去海边看日出！走！”我被这位活祖宗拉起来穿好衣服坐到沙滩上等太阳！“太阳什么时候出来啊？”“我怎么知道？应该快了吧！”“那也不用一动不动的盯着吧！我先睡会，太阳出来了你叫我啊！”“那怎么行？一定要第一时间亲眼看着太阳出来的！……阿嚏！”“看！冻着了吧！刚才让你多穿衣服，你不干！”我把外衣脱下来给她披上，“你不冷吗？”“我多穿了一件，就是怕你冷啊！”“嘿嘿！……你能搂着我吗？”我搂着她，“这样暖和点了吗？”“恩！好多了！还是你好！”“难道我眼看你冻着啊？生病了不还是我照顾你？”“嘿嘿！”她把头靠在我的肩膀上，“你说，现在太阳在哪呢？”“美国！还没溜达过来呢！”……

我们在沙滩上坐了一个小多小时后，突然一道红光刺入我们的眼睛，在海平面上，一个红彤彤的大火球露出了个头，深蓝色的海水颜色开始变浅，仿佛就在一眨眼的工夫，那个大球“嗖”的一声从海里蹦了出来，天一下子亮了，“啊！快看！太阳！”她高兴的也从地上蹦了起来，“真漂亮！”“恩！”“我带你来看日后还有一个目的！”“什么？”“回家后你得把它画出来，送给我！”“没问题！”她抱着我好开心的蹦来蹦去，我第一次觉得妹妹是这么可爱！

看过日出我们饱饱的吃了一顿早饭然后背上一书包的水开始爬山。这山上有很多庙，每到一处她都会很虔诚的进去跪拜然后嘴里在小声说些什么，“你许愿啦？”“是啊！”“你和佛祖说什么？”“不告诉你！说了就不灵了！”“哈！还瞒着我？我也不想知道你们小丫头的秘密！”“哼！你不许愿吗？”“我啊？好！希望世界和平！”“好远大的理想啊！”“是啊！这才是男人的理想！”

好不容易爬上山顶，登峰造极的感觉真的不错，心情立刻变的好起来，刚才爬山时的辛苦都已抛在脑后，放眼百里是一望无际的海，山顶的风都是凉丝丝的，有花的香，有树林的清新，还有大海的咸，“要是能住在这种环境就好了！”“你自己住不闷吗？”“不！我让你陪我一起住！”

我们在这玩了一个星期，放松得彻底，考试的压力已经完全没有了印象，没事时我就在旅店房间里的阳台上看书，她则一刻也闲不住，一会玩沙子，一会要游泳，一会要去附近的树林里玩，晚上回来还要和我比赛看谁晒的黑，等我们踏上回家的火车时都快成了菲律宾人。

“那也是你的肉！”“哈哈！做什么啊？”“你说呢？”“妈！我们回来了！”“爸！我们回来了！”家里没人，“真是的！我们回来不去接也就算了，现在还玩空城计！”“谁让你说不用他们接的？”“那我也没说不用在家吧？”“小姐！现在才三点多，他们还没下班呢！”“哦！……”妹妹放下书包，“刘可，我饿了！”“我也饿了，我们出去吃吧！”“不！太累了，我们自己做吧！”“好吧！”我们洗了手来到厨房，她打开冰箱，“有西红柿，有青椒，有土豆，有黄瓜，还有一个大茄子，……上面还有鸡肉，你的肉！”“什么？”“就是猪肉啦”乒乒乓乓的一阵忙乱之后，我们弄了两个菜一个汤，青椒炒鸡肉，西红柿炒鸡蛋，瓜片清汤！

我们吃饱了之后，就去睡觉了，晚上爸妈回来我们还没醒，我就隐约听见妈妈说：“这俩孩子怎么还没回来？”接着是爸爸的声音：“家里是不是进来小偷了？怎么这么乱？哎呀！这小偷怎么还在咱们家吃饭啊？”我被逗的笑醒了，我听见了她的声音：“妈！爸！我们回来了！”估计她也是被逗醒的！我去洗了把脸下楼去，“宝贝儿，玩的怎么样？”“好玩极了！以后我还和刘可一起去那玩！”“好！等你们高中毕业考上大学的，我出钱让你们出国玩一圈！”“真的啊？你说准了啊！”“说准了！让你爸爸带你们去！”“不！我要和刘可自己去！”“那怎么行？国外不比国内！你们还小呢！”“那时候我们都20了还小啊！给我们报个旅游团我们和大队人马一起不会有事的！”“好吧，好吧！到时候再说！”

好像我不是他们生的，他们围着刘珂问长问短，没有一个人搭理我，哎，没办法我已经习惯！这就是我们家的一贯传统，女儿是最亲的，儿子是后养的！“呦！刘可也在呢啊！”听听这话，我都站这半天了，“你们终于发现还有我这么一个人呢啊？”“过来让妈妈看看！”我走了过去，“也黑了！有没有好好照顾妹妹？”“有！我差不点背着她上山啦！”“哪有？是我自己走上去的！”“你带了那么多的水和吃的比你还沉呢，是谁背上去的？”“好了，好了，知道刘可辛苦了！爸爸给你们做点好吃的！”“爸！我们已经吃过了。”“是啊，和小偷一起吃的！”哈哈哈哈哈哈我们都笑了，一家子活宝！

休息了两天后成绩出来了，她不负众望以最高分升入我们学校的高中部，最奇怪的是她的语文成绩也是最高分，我难以理解，我就没有她那么高姿态了，我过线10分，也进了高中部。“你要感谢我！”“为什么？”“没有我你语文能考那么多分吗？”“大哥有没有搞错？我的语文成绩比你还多3分呢！”“这叫青出于蓝。”“还胜于兰呢！那你也得感谢我！”“为什么？”“没有我你就差点得去别的高中念书了！你数学成绩可是我帮你弄上去的！”我看看自己的数学分，满分150，我考了135，是啊，要是没有她我的数学还在100分大关那努力呢，要是没有她那阵帮我恶补我还真就和这所学校拜拜了，“是啊！谢谢刘老师的谆谆教导！”我们又可以在一起念书了，暑假我们在家买了很多书，天天看书，她说在她变白之前不再出门了，也不许我出门，因为我得陪她，她的皮肤现在黑黑的，我觉得她还是黑一点更漂亮！

“你什么时候给我画画啊？”“这种事情是要有灵感的。”“那你什么时候才有灵感啊？”“这你得问灵感他什么时候来啊！”晚上爸爸出差了，妈妈医院要加班就剩我们俩在家，我们吃完饭之后就各自回房间了，我很奇怪她今天怎么没有缠着我陪她玩，我关上门在房间里看漫画，屋子里很静，一点声音也没有，我有点不习惯没有她唧唧喳喳，突然我听见钢琴声，一段很悠扬的曲子从下面传上来，我打开门回到座位上仔细的聆听，这是她在弹琴，从小她就喜欢乐器，那时家里不是很富裕妈妈和爸爸用他们两个人一个月的工资给她买了一台最好的电子琴，后来家里慢慢有了点积蓄，妈妈又给她买了这架钢琴，还专门请一个老师在家里教她，她对音乐似乎天生就有灵性和天分，她十五岁那年已经到了八级，本来以为她会在音乐这方面发展，结果她却说只是爱好不打算靠这吃饭，所以就没有再继续深造。上了初三后功课多了，她就没有再弹过琴了，今天怎么突然有了兴致？

我出于好奇下了楼，客厅里没有开灯只有外面路灯的光柔柔的透过窗帘照进来，正好照在钢琴那边，我坐在她旁边看着她，她弹琴时的样子好专注，一点也不像平时那么毛躁，这么大的屋子里只有她的钢琴声在回荡，赶走了夏夜的热和烦躁，都说心静自然凉，这句话是有道理的，我仿佛回到我们去过的那个山顶，给人清爽给人安逸！一曲结束，她转过头来问我：“好听吗？”“好听！”“好久没弹了，手都生了！”“是吗？我怎么没听出来有手生的感觉？和什么德曼弹的一样好！”“是理查德26;克莱德曼！”“对！就是他！”“还想听吗？”“想！”“那我们一起弹！”“你不怕我搅和乱啦？”“不怕！”于是我和她一起在琴键上游动着十根手指，我也好久没碰过钢琴了，总比她慢半拍，她微笑着就合我一起慢下来再一点点的带着我进入主旋律……

“还好，你还没忘干净！”“嘿嘿！还凑合吧！刚才弹的是贝多芬的什么来着？”“是舒曼的！”“哦！是梦幻曲！”“是浪漫曲啦！”“嘿嘿！差不多啦！”“光会弹就是不记名字！和小时候一样！”“我们家有一个钢琴家就行了！我是跟着你偷学的么！”爸妈到现在为止还不知道我也会弹琴，我又想起了小时候，她学完之后就会教我，爸妈都工作忙，我们俩小的时候经常自己在家，有时间她就教我弹琴，所以我也学了些皮毛，我们那时和现在一样，坐在一个凳子上她弹高音区我弹低音区，我总喜欢给她捣乱，时不时的发出一个低音吓她一跳！“刘可！”“恩？”“你以后还会像现在这样陪着我吗？”“当然！你是我唯一的妹妹嘛！”“可是你会找女朋友会结婚！”“傻瓜，你也会有男朋友也会结婚啊！”“我肯定嫁不出去！”“怎么会呢？刘珂那么漂亮后？”“那你有了女朋友还会陪我吗？”“会！我带你们一起出去玩！”……她不说话了，靠在我的肩膀上出神，我在琴键上继续演奏，最经典的《给艾丽丝》……

上高中了，第一件事是分班然后军训，我和她这次没有分到一个班级，我在三班她在一班，新班级里有三分之二的老同学也有三分之一外校考入的新同学，没有妹妹在身边像一个小管家婆一样的看着我，我觉得这种感觉就像一九四九年——解放了！军训的第一天我们班就有一个小女生因为中暑昏倒了，是我把她背进了医务室，她是我在新同学里认识的第一个，任晓。

“听说你今天英雄救美啦？”回到家里刘珂问我，“就是出于人道主义援助！”“是吗？是看人家小女孩漂亮才救的吧？”“我有那么好色吗？”“这就不知道了！”“你怎么知道的？我们俩班不在一起训练啊？”“我有耳目在你身边！哈！怕了吧？别忘了，我们在学校的身份可是情侣关系哦！你这么明目张胆的红杏出墙能没有人告诉我吗？”“天啊！”……她在那得意的笑，我只好认命。

军训之后我们就开始了与世隔绝的痛苦学习进程，高中没有初中那么轻松，第一次期中考试全班六十个人，我考了四十五名，已经进入倒数的行列，这是我没有想到的，以前就是再不用功也不会考的这么惨，这使我的自尊心大受打击，可能是年纪大了对名次这种事情有了重视，成绩于我不再像浮云，我不能和以前一样抄抄作业，考试前突击一下就可以糊弄过关了，我得好好学习了！到了高中所有的课程都好像突然加深，完全和初中学的知识脱节一样，我必须上课认真听讲，晚自习还得复习做题巩固。我第一次尝到了学习的辛苦，每天精神都很紧张，晚上回到家里也懒得说话，吃了饭就上楼看书然后睡觉。我和刘珂也只能在吃晚饭的时候见上一面说一两句话，大部分时间我们是各忙各的，上学和放学也碰不到一起了，我们的距离渐渐疏远！

努力是有成果的，在高一上学期的期末考试，我的成绩大踏步前进，进入前十！可是发成绩单那天我看见刘珂的成绩却是前所未有的，低到历史最低点，她竟然出了前十名，而且才考了她班第三十。

寒假在家，她没有嚷嚷要去哪玩，而是把自己关在屋子里，闷闷不乐。妈妈也不敢问她为什么没考好，怕她压力太大，让我去问问她到底怎么了。“怎么了？没考好，心情不好？”“不是！”“和我说说，你怎么了？突然……这样了？”“你不知道因为什么吗？”她瞪着大眼睛看着我，我被她吓了一跳，“怎么了？难道你……恋爱了？失恋了？影响学习了吧？”我笑，我一直觉得我这个妹妹要比我早熟得多，她想的事情总是超前。

“你瞎说！我什么时候恋爱了？又失恋了？你知道我这半年都在干什么吗？”她这么一问到把我问住了，这半年我确实没怎么注意她，竟自己忙了，“告诉我吧！到底怎么了？”“我告诉你，这次我是故意考不好的！题目我都会，我就是不答！”“为什么啊？”我摸了摸她的头，“没发烧啊，学傻了吧？”“你才学傻了呢，天天就知道学习！回家话都不和我说，上学放学也不等我！”说完她噘起小嘴，好像有点要哭，我这才明白她是在我和怄气，怪我没搭理她，“是我不好！我没有好好照顾您老人家！让您受冷落了！”

“哼！你没时间理我却有时间理人家，还给人家讲题，帮人家复习！你怎么不给我讲啊？”“你还用我给你讲吗？你什么不会啊？每次还不是你教我？”“可是……可是……可是那你就撒手不管我了？不要你妹妹啦？”她的嘴噘的越来越高，“行了行了，我错了！你看你的嘴都能挂瓶酱油了！”“那你打算怎么弥补你的过失？”“刚开始上高中我有点不适应这么紧张的气氛和学习内容，现在已经进入轨道了，哥哥以后有空就去看你，陪你一起回家好不好？”“这还差不多！”她破涕为笑了，“那我怎么和妈妈说你考不好的原因啊？”“这有什么，你就说我考试的时候睡着了，没答完题！”她又恢复了精神，折磨了我一个寒假！

春暖花开，我们迎来了第一个运动会，很不理解别人的学校都是秋季运动会只有我们是春季运动会。本来我不想参加可是班长和体育委员盛情邀请我只好参加，还是重量级项目100米短跑和4* 4接力。“班长，你不能害我啊？我哪行啊 ？”“没事！我相信你！你总不能去扔铅球吧？就你这单薄的小身板？”“当群众也很光荣啊！”“重在参与！党和人民需要你的时候你得冲啊！有空好好练习吧！还有半个月！”我就这样被党和人民选中，每天早上牺牲了一个小时的睡眠，早早来到操场跑步！她每天也陪我一起来，但是只是看着我跑。

“快点！这速度不行啊！”“说的容易，你来跑跑！”“哈哈，我们班有实力的人多了，用不上我的！快！别偷懒！”“你干脆拿条皮鞭再骑头毛驴！”“好主意！哈哈哈哈哈哈！”……

终于到了运动会这一天，我多么希望今天下雨啊，可惜今天阳光灿烂，“我会给你加油的！”“那你不成了你们班的叛徒？”“这有什么？你是我哥啊！”“呵呵！你别让你们班同学当卖国贼给枪毙了啊！”“谁敢？哈哈哈哈”

升国旗，校长讲话，然后是集体广播体操。我们穿着整齐，步伐整齐通过主席台接受领导检阅！一大套形式之后，开始比赛！我们班的方块在起点那，左边的左边是刘珂她班，可以看见她像一只小兔子一样跑来跑去，还时不时的向我这边看看，做个鬼脸！我的项目是第四个，所以一开始我就在后面热身，然后检录，妹妹跑过来：“刘可，我有兴奋剂你要吗？”“不是吧？”“嘿嘿！是瓶葡萄糖啊！喝了吧，省得一会你没劲！”“太看不起人了！你看我腿上的肌肉？”我拉起裤管，“得了！像田鸡一样！”“小东西！”我点了一下她的脑门，“给！我回去了！一会加油啊，别给我丢人啊！”她跑回去了，我打开瓶盖喝下去，果然很甜！

“下面是一年级男子100米预赛，请选手在起点准备！”广播喇叭里传出声音，“刘可，加油啊！指望你了！”班长紧紧的握着我的手，好像我一去不复返了似的。……“下面宣布一年男子100米预赛第一组选手名单，第一道，一年七班，郑毅。”七班那一阵锣鼓，“第二道，一年四班，王光平。”四班那一阵锣鼓，“第三道，一年一班，管鸣一。”一班那的女生“啊！”的一阵尖叫盖过锣鼓声，这小子蛮受欢迎的，“第四道，一年三班，刘可。”轰隆隆一通鼓声，我一看是我们班胖子班长在亲自为我擂鼓助阵，全班同学都向我呐喊加油，我有点感动，笑着向他们挥挥手，然后看见妹妹在她们班那也跳着给我加油呢，旁边的人都看着她表情差异，我冲着她竖起大拇指，她对我大喊：“加油！”“第五道，一年六班，魏为。第六道，一年八班，庄行严。第七道，一年二班，陈默。第八道，一年五班，文景。”……

介绍完了，我们八个人在起跑线上整装待发，裁判员举起发令抢，“砰！”枪声一响，八个人如脱缰野马直冲出去。人家都说男子100米是最刺激的项目，体能的瞬间爆发，让人热血沸腾。距离迅速拉开，旁边的那个姓管的帅哥和我几乎并肩冲过终点。结果出来了，他第一，我第二，只差0.1秒，但是都能进入决赛。刘珂跑过来一手里拿着条毛巾，管鸣一很兴奋的迎上去，对着她说：“谢谢你！”“啊？对不起！不是给你的！呵呵！”她绕过他向我走来，“给你！擦擦！你真棒！”“嘿嘿！”我笑着接过来，管鸣一转过来看着她对我殷勤的问来问去，眼睛里喷着火，“喂！我们才是一个班的吧？你怎么帮着他加油？”他走过来问她，“啊？我给谁加油关你什么事？”妹妹瞪了她一眼，然后继续帮我擦汗，“他是你什么人？”“用不着你管！”他愤怒的瞪着我，我耸耸肩膀：“你还是问她吧！”我和妹妹向休息区走去，就听见后面有人告诉他说：“你不知道啊，他是她男朋友！初三的时候就在一起了！你没戏了！”

“喂！他是不是喜欢你啊？”“谁知道？一天没事就跑来和我套近乎！”“那就是啦！他好像很受欢迎呢？”“那又怎么样，我又不喜欢他！”“呵呵！看来一会决赛我得小心了！”“你怕他啊？”“我怕我赢不了他给你丢脸！”“哈哈哈哈，那你就争气点啊！”

下午是决赛，第一组里面我和管鸣一还有二班的陈默，八班的庄严，六班的魏为五个人进入决赛。第二组只有三个。我们再次站到起跑线上，管鸣一一直狠狠的瞪着我，“嘿！别看了，一会忘了跑了！”“我不会输给你的！”“各就各位，预备……砰！”他第一个冲了出去，我在后面紧紧的跟着他，眼前就是终点，我突然加速，仿佛是中午又喝的那瓶葡糖糖起了作用，我抢先他一步冲破终点线！

“啊！……”我们班那里沸腾了，妹妹第一时间冲过来：“刘可，太棒了！”我也很兴奋，一下子把妹妹抱起来！“把她放下来！”在我和她还沉浸在欢乐中的时候，管鸣一把拉住我的手使劲的往下一拽，我手一滑，差点把刘珂扔了出去，“你干什么？差点摔到我了！”刘珂气呼呼的对着他说，“谁让他抱着你？”“他抱我关你什么事？”

“你…………”他脸憋的通红不知道说什么才好，也不知道是因为比赛输给了我还是因为我抱着他喜欢的人，“我不会认输的！也不会把她让给你！”我来了兴致，这个小子还真是挺有勇气的么，“好啊！我等着你！”我对他说，“哼！你妄想！”刘珂拉着我走开了。运动会的第一天就在浓烈的火药味和酸味中过去了，明天我还得有一场接力，不知道还能不能遇上那个管鸣一。

第二天的比赛更为激烈因为大多都是决赛，只有接力的预赛和决赛在一天比，还有长跑没有预赛直接角逐。我被分到第三棒，很多人都搞不明白这四个棒到底哪一个最重要，如果不是第一棒的话那么你落下太多，就算后面三个人把肠子都跑的吐出来也是赶不上的，因为对手又不是残疾人。第二棒呢？看起来是最无所谓的，但是也不能跑的太差劲了，第三棒呢，如果你这棒落下了，那第四棒那人得有多大压力啊？最后一棒呢，如果前面你们都是最后你也无所谓了，还也许你发挥一个超长追上一个俩的，如果你们一直领先那你就得小心了，万一最后你不是第一个冲过终点那你就得担负一条鱼腥了一锅汤的罪名了，呵呵！还好我不是最后一棒，不过说回来还是得靠四个人的共同努力，大家都是英雄！我和我们班另外三个腿长的兄弟来到检录处检录，果然又看见了那个管鸣一，我冲他挥手致意，他却瞪了我一眼，哎，仇人见面眼分外红啊！我还发现他是他班最后一棒，可怜的家伙！我们在起跑线上准备就绪，妹妹依然在那边对我张牙舞爪的比划着为我加油，我看了管鸣一一眼，他的眼睛更红了。枪声响了，比赛开始，我们班的第一个勇士箭一样的飞了出去，遥遥领先，一圈回来之后，我们班的二号接过棒子一个箭步蹿了出去，我怀疑他上树的本事一定不错，马上就到我了，我开始原地跑动然后看着他离我还有三步远的距离和他一起跑了出去，他快赶几步把棒子交给我，哥们，我也走了！到了我跑的时候我们班已经落下第二名大半圈了，看来我们班的人都是真人不露相啊！我拼了我的小命的往前奔，当我把接力棒交给最后一个人的时候我知道我们一定必胜无疑了！果然，当管鸣一跑出去的时候我们班的四棒已经过了弯道，他估计也是玩命的追呢，这小子跑的确实挺快本来他班已经倒第二了，可是他硬是给追回来2个，等他跑回终点的时候上气不接下气的接过他们班小女生递给他的毛巾的时候再一次恶狠狠的看着我和刘珂这边，哎，这个情敌我是结下了！

运动会结束了，我们班总成绩第四，还算可以，刘珂她班第六，在这次活动中我有了一个收获那就是我发现我跑的还是挺快的，可能是和小时候总出去上树爬墙有关系，锻炼了一身好肌肉呵呵！还有一个意外的收获就是发现多了一个喜欢刘珂的人，无辜的多了一个情敌！

放松了头脑劳累了筋骨之后我们又回到了忙碌的学习中来，我似乎已经习惯了和适应了这种气氛，所以开始得心应手。刘珂也恢复正常，成绩遥遥领先，我可望不可及，高一的第二次期末考试她以全班第一全年组第三的名次再次成为我的偶像，我不得不佩服她真的比我聪明！同时又迎来的夏季！

“我讨厌夏天！”“我也是！”“你为什么讨厌？”“你为什么讨厌？”“我怕晒黑！”“我怕你以这个为借口在家折磨我！”“哈哈哈哈！”……

“哥！”“干吗？”“你以后想考哪个大学？”“不知道没想好呢！你呢？”“你去哪我去哪！”“我就知道！”……

“刘可！”“干吗？”“你头发长了，我帮你剪吧！不收你钱！”“你倒找我钱我也不会让你剪的！”“就一次！”“我还想见人呢！”“你不相信我？”“你说呢？”“站住，别跑！”……

“你帮我擦钢琴吧？”“那你呢？”“看着你擦啊！”“这是给谁买的钢琴啊？”“我啊！”“那为什么我擦？”“我教你弹你给我学费了吗？”“……”“这不得了！”……

“把你的漫画借给我看看吧！”“不要！你总把书里弄的到处是薯片的碎渣！”“我保证这次不会了！”“那你用什么保证！”“用我哥哥的人头！行了吧？哈哈哈哈”……

“我墙上那张画呢？”“哦！被我包书皮了！”“啊？那是我画了三天的画啊！”“对啊！我知道！”“那你还……”“这样才证明了它的价值嘛……挂在你的房间里谁能看见？”……

“你看我干吗？”“你猜我在想什么？”……“站住！去哪？”

“我是不会给你按摩的！”……

“你有时觉不觉得有点不公平？”“哪方面？”“比如为什么我吃的永远是盘子里绿色的植物？”“因为你缺乏维生素么！”“那你不觉得我也应该适当的吃一点肉吗？”“那怎么行？吃肉这么辛苦的事情就让妹妹我代劳吧！”……

“哥！”“你又想干吗？”“我给你画张画像吧？”“你？算了！你知道怎么下笔吗？”“有什么啊？你会的我也会！”“那你画吧，我看书！”……“别动！”“我伸个懒腰也不行啊？”“不行！对艺术要有耐心！”……“画好了！”“可算好了，我看看！……你觉得你哥和猪八戒长的很像吗？”“恩……哈哈哈哈！”……

“明天就开学了，讨厌，还没过够呢！”“明天就开学了，太好了，终于解放了！”……

高二要分文理，我选择了喜欢的文科，妹妹精明的头脑理所当然的选择了理科，妈妈说：“当初一定是你们俩投错胎了，刘可应该是女儿，刘珂应该是儿子！”“那我是儿子，您还喜欢我吗？”“喜欢啊！”“那我是女儿您会喜欢我吗？”“不喜欢！因为有我！哈哈哈哈哈哈！”所以不管怎么投胎都是我没她招人喜欢！

再一次来到一个新班级，学文的大部分都是女生，有两个文科班,加在一起才有不到三十个男生，呵呵，我们男生成了“花心”！我发现那个任晓也学了文，而且又和我分到一个班，开学第一天我们从原来的班级拿着书包来到新班级的时候在门口遇上，她对我笑了一下，我也笑一下表示友好！

学文了就相对于学理科的轻松多了，不用浪费那么多的脑细胞去计算，去思考，只需要背，再理解，再背就好了！我有了时间就会去看刘珂，这是她要求的，下午有一节是自由活动的体活课，那时候我就会去她们教室找她，陪她聊天。每次去的时候都看见她在给别人讲题，看见我了就对我招招手意思我等一会，等她讲完了就会蹦蹦跳跳的出来跟我聊天，我们到操场上散步，有时候也陪我踢足球，很多人都奇怪为什么是我和一个女生在一起踢球，可是他们不知道刘珂的技术不比那些男生差，呵呵，这可全是我的功劳！

这天我像往常一样去找她，可是她没有在教室里等我，我在门口向教室后面望了望，还是没有，原来的一个老同学看见我了出来告诉我：“刘珂被管鸣一叫出去了。”“去哪了？”“不知道！不过他们好像在吵架！”我急忙从楼上下来，到处找他们，那小子该不会对她做什么吧？我在操场上找一圈，没有，我停下脚步慢慢感应妹妹到底在哪，有一个地方，我向实验楼那边的方向走去。实验楼除了有课要用，平时几乎没有人来，而且实验楼在我们学校的最东边，有点偏僻了。我跑到楼前四处搜索妹妹的影子，突然我听见她的声音：“你以为你是谁？”我顺着声音的方向来到实验楼右边的空地，他们果然在这，他们情绪都很激动好像在吵架，我一点一点的靠近他们都没有发觉，他们争吵的越来越激烈，我快跑两步一下子挡在妹妹前面，“你要干吗？”“哈！你啊！真是有心灵感应啊，正说到你呢，你就出现了！”“有什么事和我说，欺负女人算什么能耐？”“我没有欺负她，我只想和你公平竞争！”“刘可，我们走！”她拉着我转身要走，“没种就别当护花使者！”“你说什么？再说一次！”我停下脚步，“我说你没种就别装护花使者！”“你是不是觉得我没有脾气？”

“你有脾气吗？你不是害怕了要走吗？看你长的还像那么回事，没想到是个孬种……”我一拳打过去，把他**在地，这是我第二次为了她和别的男生打架，可能是我下手太重，他在地上半天没有缓过神来，“我已经够客气的了！

你别太嚣张，小子！我和她的事还轮不到你来管！”我对他咆哮着，刘珂在一旁有点被我的样子吓到了，我拉起她的手回到教室。“以后不许你和他再单独出去！”“我也没想到会这样！”……

晚上放学后一路上我也没和她说话，到了家里我胡乱吃了点饭就上楼了，把自己关在屋子里，塞上耳机听音乐！过了很久，她穿着睡衣推门进来了，不是用脚而是第一次用手推开的，看着我，“干吗？”“你还生气啊？”“你说呢？”“那怎么才能不生气？”“你被别人那么说你会不生气吗？”“是我不好！”她竟然和我道歉，“我没听错吧？你是在对我说吗？”“你别生气了！”她好像还有点想哭，我看着她那小样，心立刻软了下来，因为每次她想哭的时候我的心也会好难受，“好了！不生气了！看在你第一次和我道歉的份上！”“真的？”“恩！”我点点头，“爸妈今天不回来了！”“又加班啊？”“是啊！刚才打了电话！”“然后呢？”“我能不能和你一起睡今天？我自己在下面害怕！”“你都多大了还害怕啊？”

“你说行不行？”她立刻又变成凶狠的小巫婆，“行行行！欢迎！”她嘿嘿的笑着钻进我的被窝，我看看手表已经快十二点了，我也洗了洗躺下了，我们躺在一个被窝里面对着面像小时候一样，“你今天好有男人味啊！”“什么样才叫有男人味？”“就是你为了我挺身而出那样啊！”“傻瓜，你是我妹妹啊！”“那为了别的女人你也会那样吗？”“不知道，那得看是谁了？”“哥！”“恩？”“我还想你搂着我睡！”“好吧！”我把她搂在怀里，渐渐进入梦乡……

第二天我醒来的时候她还在睡着，随着呼吸她的胸部跟着上下起伏着，我竟有点看得入了神，直到她醒了看见我盯着那发呆：“喂！傻了！想什么呢？”“啊？没什么！起来吧！”“呵呵！你脸红了！”“是吗？”我赶紧摸自己的脸，是有点发烫，“不是做什么美梦了吧？”被她这么一说我还真想起来昨晚好像真做过一个梦，“我昨天晚上也做了一个美梦！”“哦？是吗？什么梦啊？”“嘿嘿不告诉你！”“算了！起来吧！我做早饭给你吃！”“恩！谢谢老哥！啵……”她在我发烫的脸上亲了一下然后下楼去了，我愣在那，被她刚才的吻给吓到，心里有种说不出的感觉，来到卫生间我竟然发现我的下面有了反映，这怎么可能？她是我妹妹啊！我打开淋浴用凉水浇在自己身上，让自己清醒，我怎么可以对自己的妹妹有反映？……

好几天我也没和她怎么说话好像刻意的在回避着她，那天晚上放学她问我：“你最近怎么了？怪怪的？”“没事！”正说着我们被几个人拦住，路灯下我看见领头的那个人不是别人，“管鸣一，你想干什么？”“没事！就是想和你旁边的这位使者聊聊！”“你别乱来！”“那就看他老不老实了！”他手往前一挥，那三个人把我拉到一边的胡同里，他来到刘珂旁边挡在她前面，“你真不是东西！”“为了你，我不择手段！”“你敢伤了他我和你没完！”“好啊！我也没打算让你和我有完啊！”我被三个小子拉进胡同，“你们想干什么？”“你说想干什么？”“听说你跑的挺快！老大我们就废了他的腿！”“少废话！动手！”他们之中最胖的一个一拳向我挥来，我一侧身躲了过去，然后反手拉住那人的胳膊往回一拽，用右手按住他的头使劲向下，用膝盖一顶，他“哎呀”一声，正撞在他的脸上，然后再把他揪起来扔到一边。

...红的，我转过身去看见管鸣一手里拿着一根棒子站在我后面，棒子上面还有我的血，他好像害怕了扔下棒子也没管地上这三个一个人跑了。“哥！……”刘珂跑过来不知道该如何是好，“没事！别怕！就是破了点皮！”“好多血啊！都怪我不好！”“傻丫头没事！”“我们去医院吧？”……

很晚了，我们才回家，还好家里那两位还没下班回来，我赶紧上楼换下带血的衣服，碰到头有一点疼，这时她突然破门而入，我只穿了一条小短裤，几乎完全暴露在她面前，“啊！”她不好意思的转过身去，“你怎么还是改不了这毛病，毛毛燥燥的！也不敲门？哎呀！”我的头又疼了起来，“怎么了？疼吗？”她紧张的跑进来帮我揉着头，我和她就这样身贴身站在一起，我有点头晕，呼吸也变得急促，一下没站稳倒在她身上，她也没站稳我们俩一起摔倒在床上，她被我压在身子底下，那一瞬间我感觉我的下面又有了反映，直挺挺的顶着她，我想她可能也感觉到了，她把我推到旁边，我们俩就这样躺在床上等着呼吸慢慢变平和，“你头还疼吗？”“好多了！”“那我把你的衣服拿下去洗了！”说完她走了，我一个人在屋里想着刚才发生的一切，我怎究竟在干什么？……

医生说我可能是轻微脑震荡，近一段时间可能经常会出现头昏恶心的现象，果然我最近总是看东西模模糊糊的，爸妈看见我头上的绷带，问我是怎么回事，我只好编了个谎话说是和别人踢球的时候不小心撞的，他们也就没多问什么，妹妹一直哀怨的看着我，我知道她心里一直在自责，我不怪她，也没有生气，但是我还是想和她保持一点距离，尽管我们是亲兄妹……

从那次以后我就再也没见过管鸣一，听说他转学了，我们两个人里真的有一个是孬种，但绝对不是我！

同学们看见我头上带着伤都很好奇和关心，尤其是她……

“你头是怎么伤的？”“哦！不小心碰到了！”“我不信！哪有人不小心碰头是碰到后脑的？”她说的对啊，就算不小心碰到，也应该是脑门那啊，我怎么就没想到呢，看来我说谎的技术不行，问题是连她都听出不对了，我们家那两位竟然没听出来，而且我妈还是医生呢，“看来儿子肯定不是亲生的。”我心里不平衡道，“啊？你说什么？”“哦！没事，我想别的事呢！呵呵！”“你还没回答我问题呢，到底是怎么弄的？”“哎！我也不骗你了，是和别人打架打的！”“你和别人打架？谁啊？为什么要打架？”我就把怎么和管鸣一结下梁子的事告诉了她，“怎么是他？”“啊？你认识他吗？他已经转学了！”“我知道他转学了！”“你们以前认识？”“……他……是我哥！”“什么？”……

原来管鸣一是任晓的哥哥。“可是你们为什么不姓一个姓？也从来没听你说过啊！”“呵呵！他随爸爸姓管，我随妈妈姓任！”“那你们家可是超生喽？”“呵呵，不是超生！因为我爸爸是军人，军人的家庭可以有指标的！”“哦！你们也是龙凤胎？”我不由得想到自己和妹妹，“怎么说也是？哪有那么巧的事？你见过龙凤胎长的一点不像的么？”我心想不知道我和刘珂算不算？“哦！是啊！现在想一想，你们长的是有点像但又不是很像！”“我小他一年，我像妈妈多一点，他像爸爸多一点！”“哦！嘿嘿！那你妈妈一定比你爸爸好看！”“呵呵！”她笑了，脸上泛起了一丝红晕。我竟然对这个在背后偷袭我的“情敌”的妹妹有了好感，和她说话感到很轻松，而且她也非常漂亮，是和妹妹完全两种不同的美！……

“你真的和刘珂在恋爱吗？”“你觉得呢？”“我总觉得你对她不是那种……感觉？”“那是哪种？”“我也说不清楚，就是觉得你们不像男女朋友的关系！”

“呵呵！说真的我也不知道和她是什么关系！”我倒在公园湖边的草地上，阳光照在身上暖暖的，我没有告诉任晓我和妹妹的关系，因为现在我自己也弄不懂我们之间到底是什么关系，“那我呢？”任晓也倒在我的旁边，和我一起享受着阳光，“你愿意做我女朋友吗？”“我愿意你做我男朋友！”

我们的手握在一起，在高三无声无息的来临之时我和任晓走到一起，没有人知道，当然也包括刘珂！

高三在别人眼里是可怕的是黑色的，可是对于我却不是这样，我过的轻松，任晓和我秘密的恋爱着，有时间我们就一起到自习室里看书，我教她如何理解的去记忆那些令她头疼的政治，她领悟能力很强，在我和她的嘴里再也没提到过管鸣一和刘珂。背书的间暇我也会偷偷的和她在桌子下面拉手，感觉甜蜜，我们一起迎接高考，我们要上同一所大学继续我们的爱。

我和妹妹的距离彻底拉开了，我们甚至有时一天也说不上一句话，她很忙碌，在吃晚饭的时候我们的目光偶尔会碰到一块，但是我很快的就避开了，我不敢看她的眼睛，我怕我会想起我们那天的情景，我感到惭愧，我不敢面对！

黑色七月到了，这个城市的七月还是那么爱下雨，我依然喜欢雨天，三天之后我觉得自己脱胎换骨，终于结束了这漫长的学习之苦，我不是一个爱学习的人，但是不管为了谁，我都应该是很光荣的完成了使命，接下来就等着填写自愿和放榜了。

“哥！”刘珂在我的房间门口没有进来，“干吗站在那？进来啊！”我最近心情一直很好，但是我觉察到了她和我的生分，她走进来坐在我对面，“小丫头考的怎么样？”“还可以！”“你一定没问题的！”“你打算报哪？”“我想好了去上海x大。”“为什么要去那么远？”“上一次大学还不走的远点那多没意思啊！”“还有别的原因吗？”“还有什么？你呢？”“妈妈说不想我离家太远。”“恩！她会想你的！再说你完全可以去清华，何苦还想去别的地方呢？”“可是我们说好了要上同一个大学的！”“呵呵！那是什么时候的事了！再说，我也考不上清华啊！”“那我和你一起去上海！”“算了吧！妈是不会同意的！再说清华你也想放弃啊？”她不说话了，低着头，过了许久她问我：“那你希望我和你去同一个大学吗？”“我啊？我希望离你越远越好，这样你就欺负不了我了！哈哈！”我一直在看漫画没有注意到她脸上的表情，她轻轻的退出了我的房间，接着楼下便传来了她的琴声，这次的名字我知道，是流行歌曲，是许茹芸的《泪海》……

成绩出来了我和任晓都被上海x大入取，我是新闻系，她的是法律系。刘珂的通知书也到了，清华大学最有名的建筑系。全家都在为我们俩庆祝，爷爷奶奶姥姥姥爷也都从外地来看我们，当然还是她是焦点，呵呵！她并不是很高兴，我看得出也感觉得到，她提起要出国旅游的事，我却不太想去了，因为我还要和任晓好好的过一个暑假，她也没再要求。那天我们回到学校照毕业照，我和任晓站在一起，相片上幸福的留下我们的笑容，可是妹妹却没有留在她班的合照里，那天她缺席！

“你有女朋友了？”“呵呵！你终于知道了！”“你们在相片里抱的那么幸福我还看不出来吗？”“呵呵！”我看见自己钱包里放着那天我和任晓拍的合影，“我们的那张呢？”“哦！在这！”我从抽屉里拿出原来放在这个位置的我和妹妹的合影，她接过来，上面是她对我挥舞着拳头，我痛苦求饶的样子！“你看你那么凶！”“你是不是喜欢温柔的女生？”“对啊！谁不喜欢温柔的？难道喜欢母夜叉？”“你说我是母夜叉？”“没！你比母夜叉好看多了！是漂亮的……母夜叉！”“你再说一次试试看！”“我错了！我错了！”“不过说真的，你再不改改你的脾气，可能真的没人敢要你了啊！再漂亮也没用！”“那我就一辈子不嫁！”“那怎么行？……你看我都找女朋友了，你也赶紧加油吧！到大学里找个帅的！”“我不！谁都没有你帅！我看不上！再说了……你找女朋友经过我的允许了吗？我同意了吗？”“哦！忘了忘了！那你现在看看照片，还不错吧？”她拿起我的钱包看着上面的任晓，“长的是不错！和我有一拼！”“可是人家比你要温柔多了！”“你还敢说？”“不说，不说！你说！”“你真的喜欢她吗？”“当然！”“那我呢？”“也喜欢你！你是我妹妹嘛！”她转身走了，临走时说了一句话我没有听清楚，我也没有问她，我赶紧收拾收拾了房间，因为明天任晓说要来我家玩！

第二天上午，“刘珂！起来没有？”我敲开她的房门，“干吗？大早上的，你不会梦游呢吧？”“哥求你一件事！”“什么事啊？还求？”“今天你能不能出去一天？”“怎么了谁要来啊？……是她？”“嘿嘿！是啊！她说想来我家看看，参观我的房间！”“那和我有什么关系？她来她的呗！”“她不知道我们的关系啊，你忘啦？”“你还没告诉她啊？”“你不是不让我说么，我没请示您之前哪敢啊？”“哦……可是这么热的天让我去哪啊？”“乖！你去书店逛逛吧！然后去KFC吃点东西！”“哦……可是我没有钱啊！”“你没钱？小姐谁不知道你是咱家富婆啊？上次爷爷他们来给你多少别以为我不知道哦！”“那钱是我留着以后有用的，再说不也给你了吗？”“喂！你这是趁火打劫啊！”“那算了……我还没睡够呢！我回去接着……”“好好！我怕了你了。”我把钱包给她，“自己拿吧！”“哈哈！挺有钱的么！”她抽了两张，“我一共就这么点了，还被你敲诈！”“这是你应该给的！哈哈！”

我以200块钱的代价把妹妹请了出去，我大致的收拾了一下客厅，然后把房间里和妹妹有关的东西都藏起来，等待任晓的到来。

时钟指向九点钟，她准时来到我家楼下，我把她接上来。“你家好大啊！”“是啊！人多么！”“啊？什么？你家还有别人住吗？”“啊！不是，我是说我爷爷和奶奶经常来住，所以给他们准备了房间！”“哦！诶？钢琴？你会弹钢琴吗？”“会一点点！”“只会一点点吗？”她说着来到钢琴旁边坐到凳子上，用手指随便的弹了两下，“你也会？”“恩！小时候学过一点！可惜没坚持，也没有这么漂亮的钢琴！你的房间是哪间？”“我住阁楼！”“是吗？我去参观一下！”“非常荣幸！”……“你房间很别致啊！很有艺术气息么！”“呵呵！还好了！”“我哥的房间从来不让我进。”“为什么？”“他怕我碰坏了他的模型！”“他喜欢模型？”“是啊，都是坦克啊，飞机啊什么的。好多！”“果然是军人的儿子！”“可是却没有你这不是军人的儿子能打啊！”她调侃的看着我，“嘿嘿！”我傻笑着。

我们在我的房间里听着音乐聊着天，她要看我的画，我就一张一张的给她介绍，“这张好有意思啊，两个小孩在抢一个大苹果！这是什么时候画的？”我看着那张画，那是我小时候的涂鸦，上面是我和妹妹在抢一个苹果，“哦！是我小时候画的！才这么高的时候！”我手比量着，“上面这个孩子是你吗？我觉得有点像！”“是我！”“那为什么还有一个你呢？……恩？这边这个有个红脸蛋，那个没有！”“哦！这个……”那个有红脸蛋的是刘珂，“我也不记得了，可能我希望有个弟弟吧！”“哈哈！真逗！”她翻过去看下一张了，下一个是素描，画的是刘珂，我心里咯噔一下，“完了！忘了这个！”“这是谁啊？好漂亮的女孩子！”

画上的刘珂那时16岁，是我给她画的肖像素描。“是她？”“恩！”“你还想着她吗？”这个问题我不知道该怎么回答，因为我天天都可以看见她。“她这么漂亮难怪你会那么喜欢她！是你的初恋吗？”“……我现在只喜欢你！”“真的吗？”……我顶点，我用手抚摩着，看着它们一点点凸起变硬，她开始呢喃，同时我的下面也硬了，我吻她的脖子，吻她的腰，我脱去她的上衣，把她的裙子也脱掉，现在呈现在我面前的是只穿着一条内裤的她，她用双手挡住胸部，不好意思的看着我们越来越近，“音乐真好听！”“是啊！不要浪费！”……我们的唇碰到一起，我感觉浑身像被10v的电流电到一样，麻麻的，很快我们抱在一起，吻得更激烈，这是我长这么大第一次和别人接吻，是我的初吻，我和任晓在一起一年多了还是第一次越界，我们在床上翻滚着，我想这才是我的冲动，我开始隔着衣服摸她，慢慢的把手伸进衣服里面。

她一开始拒绝了，但是很快对我给她的侵袭放松的警惕，我摸着她光滑的肌肤，一点一点试探到她的胸部，20岁的她已经发育的很好，我解开那层扣子，高高耸起的是像雪一样白皙的两座山峰，上面是粉红色的，然后向床里面蹭了蹭，我脱掉自己的T-恤，“我要你！”我准备进入她的身体，她的双腿已经打开，我却不知道该进入哪里，在我焦头烂额的时候，熟悉的钢琴声想起，我一个激灵连忙起身穿好衣服，任晓也吓了一跳，“怎么有琴声，是谁回来了？”

我的第一直觉告诉我不是别人是刘珂回来了！“你先穿好衣服！我下去看看！”我跑到楼下，果然是她！“你怎么突然回来了？不是告诉你先出去一会嘛！”她不理我，继续弹琴，眉头紧锁，“喂！和你说话呢！”我有点生气，因为她坏了我的好事，“不用那么生气吧？”她看都没看我一眼，“她还在呢！你怎么就回来了？”“我知道她还在！那我就不许回自己的家吗？”“我们可是说好了，你先躲一会的！”“是啊！我躲了，可是你又没说躲多久？我已经在外面很久了！”“是吗？很久了吗？”我看看手表，可不是已经下午三点了，我和任晓在房间里聊天都忘了时间，“算哥哥求你！你先躲一下！”“她已经知道回来人了！”“……”“她怎么会在这？”任晓下楼了，走到我和妹妹旁边，完了，我该怎么解释，“我为什么不能在这？”“可是……你是怎么进来的？”“我用钥匙开门走进来的！”“你怎么会有……”刘珂停止弹奏，站在我和她中间，“是叫任晓吧？我下面正式介绍，我是你男朋友的妹妹！”“什么？”任晓向我求证，我很庆幸刘珂没有再乱说什么谎话，“对！她真的是我妹妹！”“没错！我们是孪生的，龙凤胎！他比我早出生一分钟，他叫刘可，我叫刘珂！”“天啊！可是在学校他们都说你们是……”“那是我撒的一个小谎，骗他们玩呢。”“简直不可思议！”“现在你明白了吧，欢迎你来我们家做客！”她转向我说：“哥，我累了，我去休息了！你们继续，随意！”她摆摆手进了房间，留下我和仍然不敢相信眼前事实的任晓。

我送任晓回家，“这简直是太荒唐了！她怎么能说她是女朋友？”“她爱玩！就开了这个玩笑！”“那我哥岂不是？”“算我们对不起他！”“我总觉得你们的关系不一般，却怎么也没想过你们是孪生兄妹！”“呵呵！是啊！像我们这样的龙凤胎很少的！”“难怪你们的名字那么像？是谁给你们起的？”“是我爸！”“有什么意义吗？为什么叫可和珂？”“说了你都不信！我妈妈喜欢女儿，虽然我是先出生的，但是却先给她起的名字，我妈妈姓王，所以爸爸给她起名叫刘珂，到我的时候实在想不到什么好名字了就干脆把王字旁去掉，就叫刘可了！”“哈哈！真的假的？你爸爸妈妈真逗！”“呵呵！我从小到大一直被这个妹妹欺负的！”“还好她是你妹妹！”“为什么这么说？”“如果她不是！那我绝对不是她的对手！”她看着我，我有点不明白她的意思，“好了，我到了！再见！”她上楼去了，我返回家里！

我回到房间发现刘珂坐在那看她的画像，“她安全回家了？”“是啊！小丫头！哎……”我叹了口气倒在床上，“怎么伤心了？”“没有！”“我漂亮吗？”她把画放在我眼前晃晃，“漂亮！”“那她有我漂亮吗？”“你们都漂亮！”“那哪一个更漂亮？”“你们是两种不同风格的美！”“哥！”“恩？”“你是不是生我气了？”“没有！怎么这么说？”“我是不是破坏了你和她……”我下意识的坐起来：“你是什么时候回来的？你听见什么了？”“……我听见你说你要她！”“你偷听？”“我不是故意的！”“刘珂，你怎么能偷听我和任晓……你是故意在下面弹琴的是吗？”“是！”“你回来了，为什么不告诉我一声？”“我以为你们已经出去了，可是到楼上的时候我才知道你们还在，然后……”“然后你就躲在门外偷听？”“我说了我不是故意的！”“你出去！让我一个人静一静！”我从来没有这么对她凶过，完全是因为现在的我不知道该怎么面对她，她听到了一切，我仿佛一丝不挂的站在她的面前，我觉得没有面子，我觉得在她面前没有了尊严，我羞愧难当，我拿起妹妹的那副画像用力的撕碎，一头栽到床上，不一会竟然睡了…

等我醒来的时候已经是晚上十点了，楼下没有声音，我走下楼去，爸爸妈妈可能是又加班没有回来，刘珂不在家吗?怎么这么安静?我来到她的房门口，轻轻的敲了敲门，没有人说话，我试着推了推，门没有锁，我走了进去里面没有开灯我摸着墙找到开关，灯亮了，没有人！已经这么晚了她去哪了？我立刻反映到是自己刚才对她的态度有点过分了，“刘珂！”我喊着她的名字，每一间屋子都没有，在我打算出去找她的时候我好像看见阳台那里有人，我跑了过去，“刘珂！怎么了？你怎么在这？”她穿着白色的睡衣，坐在地上，小声的在哭。“快起来回屋里去！”她不理我，还是哭，我的心好难受，我蹲下来，借着月光看见她已经是泪流满面，眼睛肿得像桃一样，“是哥哥不好！我不该那么凶！”“哇……”她一下子大声的哭出来，扑到我的怀里，“你不喜欢我了，你对我那么凶？呜……”“是我不好！是我不好！我该死！”我把她抱起来回到她的房里，她紧紧的搂着我的脖子不松手，“乖！自己躺一会！我去给你弄吃的！”“我要你陪我！”“你不饿啊？我可饿了啊！”“你还好意思饿？”“啊！我错了！我是想别把我美丽的妹妹饿坏了！”“这还差不多！我要喝粥！”好！我去做！你等会啊！先听音乐！”

爸妈经常不在家，所以很小的时候我和她就开始自己弄吃的了，一般都是她指挥我动手，呵呵，我也习惯了！弄好了之后我把菜和饭端到她的房间里，“等急了吧？快吃吧！”“恩！”我们俩饱餐了一顿之后，她突然打了几个喷嚏，紧接着我也打了一个喷嚏，“完了！你感冒了！你在外面坐了多久？”“我也不知道天黑了就出去了，我一个人害怕！”“啊？那不得两三个小时了？还坐在地上，不听话！”“谁让你欺负……啊……阿嚏！”“你看你。我去给你拿药来！”我把家里的药箱拿来，找了感冒药给她，“给！吃了！两片！”她把药扔进嘴里，手比划着要水，“哦！我忘了！我下去拿！”“你个坏蛋！你是故意的！”我拿了水给她，她咕咚咕咚的喝下去大半杯，“苦死我了！”“呵呵！”“你还笑？你陷害我！”“快躺下！”“哥！”“要什么啊？”“你晚上能不能在这陪我啊？”“那我睡哪啊？你这可是单人床啊！”“那你自己想办法吧！”“爸妈也不知道还能不能回来？”“看样子是回不来了！”“好吧！我去把被拿下来在你这打地铺！还好是夏天！”“恩！”我回到楼上，在壁橱里把冬天的被拿出来然后夹着枕头和薄被回到她的房间，铺好。

“好了！你吃了药睡吧！”“你呢？”“我还不困，我看会书！”“可是你开灯我睡不着，那我陪你聊天吧？”“得了！得了！我也睡了！”我赶紧把灯关了！“小气！”“还说？你把被盖好啊！你要是难受就喊我啊！”“恩！”……

不知是半夜几点的时候我就觉得浑身难受，还有点呼吸困难，又似乎听见有人在说话，我睁开眼睛，冷静了一会，仔细一听是刘珂在说梦话，“哥！我好难受！哥……”我一骨碌爬起来，打开台灯，“刘珂，你怎么了？哪里难受？”“哥……难受……”她还在迷迷糊糊的说着，我用手摸了摸她的额头，有点发热，我找到体温计，“刘珂！把体温计夹好！”我把体温计拿来却不知道该怎么给她放进腋窝里去，没办法了，我把她的睡衣脱了，她里面没有穿内衣只有内裤，我的脸也开始发烧，我抬起她的胳膊把体温计放好，然后把被子给她盖上，可是她一直在动根本夹不住，没办法我只好用手楼住她，用另一只手按住她的胳膊，时间一秒一秒的过，我却度日如年，我的胳膊贴着她的胸部，她的不安分让她胸前那两块肉在我的胳膊上来回磨蹭，她还在说着胡话：“好热啊！哥……你别走……”“我没走！乖！”我想起她小时候有一次生病，我也是这样在她身边守着她，她的小手紧紧的握着我，可是那时的她还是一个小女孩，现在的她已经是一个发育完全的少女，我也不是那时候什么都不懂的小男孩，我今天白天还想和自己的女朋友发生关系。现在的她赤裸的躺在我的怀里我怎么能毫无感觉？

五分钟到了，我拿出体温计在灯下看，“糟糕，发烧了，38度7。小珂，你等一会哥哥去给你拿冰袋。”还好家里有一个医生，什么装备都有。我找到冰袋加了冰和冷水然后用毛巾擦干跑回来，“来，别动，把这个放头上。”她开始踢被，我知道她很热，但是没有办法，我把被给她压好，“哥……别走！”“我没走！没走！”“哥！别走……别去上海……”她烧得一直在说胡话，“哥……我……喜欢……你……”我惊呆了，这是她的胡话还是什么？我能当做没听见吗？

清晨六点，我感觉有人在摸我的头，我睁开眼睛，她醒了，在对我笑。“醒了？好点没有？还难受吗？”我摸了摸她的头，“还好，烧退了。要喝水吗？”她点点头，我把水给了，扶她起来，她了一大口，然后躺下问我：“我昨晚发烧了啊？”“是啊！现在还哪里难受吗？”“恩……头还有点晕。”“那你快躺好，饿了没有？我去做饭！”“你昨晚一直这么陪着我吗？”“傻丫头，我不陪你谁陪你啊？”我从地上站起来，昨晚跪在地上趴在她身边睡了一会，现在下面都麻了，我揉了揉膝盖，“疼吗？”“有点酸，没事！”我一瘸一拐的去了厨房。不一会我端着粥和一点咸菜回来，“家里没有别的了，一会我出去买点，先喝点粥吧！能自己吃吗？”她眨着大眼睛看着我，长长的睫毛呼扇呼扇的，我知道她想我喂她，“来吧！我喂你！靠在床头把枕头垫好。”

“嘿嘿！”我拿着勺子一口一口的喂着她喝粥，“哥！你饿吗？”“等你吃完我再吃！”“哥！我昨天晚上做了噩梦！”“什么噩梦啊？”“我梦见你……死了！”“烧糊涂了吧？不盼你哥点好的！”“我可伤心了，还哭了呢，你看，现在眼睛旁边还有眼泪呢！”她用手在眼角擦出一滴眼泪，“那我是怎么死的啊？”“忘了！”“小丫头！吃饭的时候别说话！”……“哥！”“又怎么了？”“你真好！”“呵呵！谢谢领导表扬！一会我出去买东西，你再躺一会。”“可是会无聊！”“那我把电视搬下来给你看吧！”“好啊！我看上你那个小电视很久了，呵呵！”“就知道你居心叵测！来最后一口！”

等她吃完后我迅速的把自己那碗喝光，然后上楼换衣服拌电视。我有一台小电视，大约也就只有17寸那么大，那是我用自己的压岁钱的买的，放在自己的房间里，有时候打游戏，有时候看影碟，我擦了擦上面的灰尘，把它捧到妹妹的房间，“心痛啊！你病好了，可得还给我啊！”“那要看我的心情如何了！”“那我搬回去了，你自己躺着吧！”“哎呀！小气鬼，还！肯定还！”我放在她床对面的大五斗橱上，这个高度正好，然后去客厅把有线电视的线撤进来插好，“行了！给你遥控器！”“这么点的电视也有遥控器啊？”“是啊！我自己后装上去的！”“呵呵！懒人就是懒人！”“现在是方便病人！”我把遥控器丢给她，“我走了啊！你想吃什么啊？我给你带回来！”“你又不是不知道我爱吃什么，自己看着买吧！”我冲她挥挥拳头，关上房门！

家的对面就有一个大超市，我在搜索着食物和她喜欢吃的东西，买了满满两个袋子，我回到家里正好赶上电话，“喂！”“喂！小可啊，是妈妈！”“哦！”“你们俩吃饭了吗？”“吃了！喝的粥！”“冰箱里好像没有吃的了，一会你去买点！”“妈！我已经买回来了！”

“哦！乖儿子！你妹妹呢？还没起来吗？”“妈！小珂生病了，昨晚发烧了！”“啊？你们等着我马上回来！”啪，她把电话挂了，我还没来得及说她已经好了，一听说她女儿生病了立刻就回来了，哎，要是我生病了，顶多告诉我吃药，睡觉！我把吃的给妹妹拿进去，“妈一会回来！”“你告诉她我病啦？”“是啊！”“笨蛋！这不让她担心呢嘛！”“我还没来得及说你已经没事了，她也不等我说完就挂了说马上回来！哎……还是你有影响力啊！”不到半小时妈妈风风火火的赶回来了，一进屋就直奔她女儿床前，“小珂，没事吧？”“妈，我已经好了！”“啊？是吗？”妈妈摸了摸她的头，又拿体温计给她量了一下，“恩！烧是退了！可是也不能大意，万一反复了呢！”她转过来对我说：“好好照顾你妹妹啊！”看这话说的，好像我之前的辛苦都白费了，“妈！哥一直照顾我呢！昨晚都没睡！”

“哦？是吗？恩！看来我们家刘可可以去培训当男护士了！”“妈！就算我不是您亲生的吧，您也不能这么说我啊！”“看你这孩子，乱说，你怎么不是妈亲生的。”“就是，你要不是，那我不也不是了吗？”“好了，我医院还有事呢，你没事我就放心了，晚上可能还不能回来，这两天有一个外国来的专家团。”“那爸爸呢？”“他啊？又被发配了！好了，我走了啊，你们自己在家小心点！刘可和妈妈出来一下！”我和妈妈到门口，她穿好鞋子对我说：“你好好照顾妹妹，千万看好，一旦她有什么不舒服立刻告诉我！”她说的很严肃，我不明白只不过就是感冒发烧的小毛病她为什么这么着急，还要特殊的叮嘱我，“妈！放心吧！路上小心！”“好儿子！”妈拍拍我的肩膀走了。

“妈走了？”“恩！”“她和你说什么了？”“就是让我好好照顾你！哎！深怕我欺负她宝贝女儿！”“嘿嘿！把吃的给我。”“你别吃的太多啊，小心闹肚子，本来就感冒肠胃会受影响的！”“哎呀！我们家又多了一个大夫！”“我这也是照顾某人得出的经验！我去厨房收拾了！”其实妹妹身体一直不是很好，小时候经常生病，每次都是我在照顾她，打针的时候她很坚强从来不哭，皱着眉头紧紧的抓着我的手。我把东西放进冰箱，洗了碗，擦了擦台面，然后洗手回到她的房间。“看什么呢？”“电视剧，《天龙八部》。”妹妹喜欢看武侠片，尤其喜欢金庸！“这不是郭靖吗？”“哪啊？这是萧峰！”“一个人么！”“演员是同一个啦！黄日华！”“哪有女生喜欢看金庸的？”“哪有男生不喜欢金庸的？哼……”

“刘可，你要吃果冻吗？”“好啊！”“自己来拿！”“啊？这么一大袋你都吃啦？”“我爱吃么！”“也不给妈留点，她也爱吃！难为她不关心我我还那么想着她。”“那你的意思就是说我没良心喽，妈这么关心我我还不想着她？”“这可是你自己说的。”“哼！我才没你想的那样呢，给她留了这个小袋的了，大的我们吃！”“哦！我要吃荔枝味的！”“给你！这些都是白的！”想知道我为什么爱吃荔枝的吗？那是因为她从来不吃那个味的，所以我只能告诉她我喜欢吃荔枝的！

到了晚上还是我们俩，电话响了，“喂！”“喂！怎么一天都不给我打电话？”是任晓，“哦！我忙的都忘了！刘珂生病了，我在照顾她！”“那就不用想我啦？”她有些抱怨，“呵呵！对不起！”我回头看了刘珂一眼，她也正看着我，“你等一下，我出去打给你！你先挂了！”我放下电话，来到客厅给任晓打电话，“喂！”“怎么了刚才？”“刚才在她的房间里说话不方便！”“哦！”“对了，你没告诉你哥我和刘珂的关系吧？”“呵呵！晚了，已经说了！他可还心心念念的想着你妹妹呢啊！”“啊？”“我哥可是对她一见钟情啊。现在还没忘呢！又听说了这个振奋人心的消息，呵呵，现在正高兴呢！”“你怎么告诉他了？”“你又没说不可以，再说，我不想你和我哥之间一直存在矛盾啊，以后……以后我们要是真的在一起了，那你们怎么相处啊？”“那你就出卖刘珂当交换？”“怎么是出卖呢？你干吗这么说我，这不好吗？我和你，她和我哥！”“你不觉得你想的太天真了？刘珂不喜欢他啊！”“慢慢就会喜欢了，我哥又不难看，配不上她吗？”“我觉得她一定不会接受你哥的！”“没有试过怎么知道！”“一定不行！”“怎么？难道她还真的喜欢你啊？”“你瞎说什么，我是她亲哥哥！”“是吗？我可觉得她当你不是那么单纯的只是哥哥吧？”“你什么意思？”“这是女人的直觉！刘可我真的觉得她对你有点……不太正常！”“不许你这么说她，她是我妹妹！”我挂上电话，有点生气，她怎么可以这么说刘珂，我不允许任何人诋毁她！我回到妹妹的房间，“是任晓？”“恩！”“吃醋了吧？”“她吃谁的醋？”“我啊！你守了我一天，没搭理她！”“小丫头别乱说！”“嘿嘿……哥！我想去洗澡！”“好吧！我去给你放水！”我放满了一浴缸的水，刘珂已经进来了，“小心点，别再凉到了！”“恩！”我把门关好，继续回去看电视。……一个小时了，她还没有出来，我又等了一会，还是没出来，我觉得不对劲，来到浴室那，“刘珂！……刘珂？”没有人回答，我打开门进去，发现她倒在浴盆里，闭着眼睛一动不动，“刘珂！”我吓了一跳，“刘珂醒一醒！”我冲着她大喊，用手拍她的脸，她一点反映也没有，我把她扶起来用浴巾包上然后抱回卧室。“刘珂，醒醒啊，别吓我！”我掐她的人中，没有反映，“到底怎么了？求求你睁开眼睛，刘珂！别吓你老哥啊！”我又用手压她的心脏，还是没有反映，对了，急救课老师讲过的，还有人工呼吸！我没有多想把她的嘴扒开低头吹了下去……突然我感觉她的手搂住我的脖子，我们唇贴在一起，她开始吻我，我还没来得及反应已经被她拉到床上，我们的舌头绞缠在一起，她的疯狂让我失控，我开始迷失在她香甜的吻里，还有那光滑毫无遮拦的身体。我们抱在一起，我甚至已经脱去了上衣，她回手关上了灯，只有电视屏幕上的一点点荧光光亮！她身体是那么的完美，我已经不知道我是谁，更不知道她是谁，我唯一知道的就是我要和她**，我受不了这种诱惑，我真的很奇怪为什么昨天和任晓弄了半天也没弄进去的我现在竟然在她这里一击即中！这种一顶到底的痛快让她大声的喊了出来：“哥！……”

我被这一声“哥！”惊醒，我仿佛是在梦游，然后突然被别人喊回到现实中来，借着微弱的光亮，我看见赤裸的自己已经进入同样赤裸的她，天哪！我们做了什么？

我们就这样僵持在彼此身体里，“哥……！我喜欢你！”“你说什么？”“我说我喜欢你！从小到大，一直都喜欢你！”刘珂，我们……我们不可以啊！”“难道你不喜欢我吗？”“你是我妹妹我当然喜欢你！”“我不相信，你对我只是像对妹妹那样！”“……”“难道不是吗？否则刚才你就不会接受我，还有那次，你也不会有反应！”我想起了那次和她一起倒在床上，其实她不知道还有一次我也对她有了反应，她还不知道给我第一次冲动的就是她！但是我不能告诉她，那样我们俩将不可自拔，“刘珂！我们不能这样！”我想离开她的身体，“哥！不要！”我看着眼前的她，湿湿的长发散落在洁白的床单上，让她不仅漂亮而且性感，突然她一下子把被蒙上，腿盘在我的腰上，视线里的她消失了，紧存的一点光亮现在也被被子掩盖，“哥，如果我不爱你，不会把自己给你。如果你不爱我，你也不会让自己这样！”她搂住我的脖子，我们再一次纠缠在一起，直到我们都筋疲力尽……

我沉沉的睡着，一直在做梦，梦里都是我们从小到大的样子，从没有桌子高的小破孩到现在，我们一起成长，一起上学，一起爬树，一起踢球，一起糊弄老师抄作业，一起骗同学，我因为她打人，也因为她被打，一起在厨房里做饭弄得乱七八糟，一起去旅游，一起在海边看日出，一起登上山顶，一起看书，一起听音乐，一起弹钢琴……一起**！

天亮了，我醒来，旁边的刘珂在我怀里仍旧甜甜的睡着，嘴角露出笑容，一夜的温存她似乎还在享受！

我把她轻轻的放在旁边，拿着衣服回到自己的房间，我打开淋浴，让水冲刷自己，不知道我是想清洗自己的身体还是灵魂？我一辈子都没有后悔过，可是现在我不得不后悔，我夺走了自己妹妹的第一次，我禽兽不如，以后该怎么办？我们是根本不可能在一起的，我必需改变这一切，我竟然想到了一个人也许可以，他就是管鸣一……

“喂！”“喂！是我！”“……”“任晓，对不起！昨天我不应该和你发脾气！”“知道自己错了？”“恩！”“这么早给我打电话有什么事吗？”“我……我想，也许你说的对，……也许她和你哥哥会……会成为朋友的！”……

“起来了吗？”我来敲她的门，“进来吧！”“醒了？”我看见她虚掩的身体，下意识的把头转向电视那里，“还敲门啊？呵呵！”我坐在她的床尾打开电视，没有目的的调着频道，“哥！我想你了……”她从后面抱住我，在我的脸上亲的一下，我连忙把她的手从我身上拿下来，然后用被子把她包裹好，“小心！别又着凉了！”“我已经好了！”她的唇已经碰到我的下巴，在碰到我的唇之前我躲开了，“怎么了？怕我传染你啊？要传染昨天早就传染了！呵呵！”“不是！我是怕你再感冒了！……刘珂！我们今天出去玩吧？”“好啊！去哪？和你一起去哪都行！”“那你快起来吧，我做早点，吃完了我们出去！”“好！不过，我要你亲我一下！”没有办法，我在她的额头上轻轻的点了一下，“家伙！没诚意！我去洗澡了！”她走进浴室，我去厨房心不在焉的做早饭！

吃过早饭我们来到游乐场，“哇！你多大了，还来这里啊？”“这里可以忘掉一些事！”“忘掉什么？”“长大后的烦恼！”我若有所思的说着，可是她并没有注意到我的反常，我看看手表，他们快到了，我一回头看见远处任晓在向我边挥手边走来，后面跟着的正是好久没见的管鸣一……

“你好！好久不见！”管鸣一看都没看我一眼直接奔主题而去，刘珂先是一惊，然后看着任晓挎着我的胳膊对她说：“你好！刘珂！一直也没和你介绍，管鸣一是我哥！呵呵，不过跟你和刘可不一样，我们不是孪生的！”“呵呵！我就说我们是有缘的，对吗？”管鸣一仍然对着主题演讲，“刘可！这是怎么回事？”刘珂的目光仿佛冰山冰冷而且锋利，“……哦忘了和你说，我今天还约了他们，想大家一起……聚聚！”“聚聚？难道你忘了你的头是挨了谁一棍子？”“这……”“这是误会！现在我都知道了，完全是误会！呵呵！”管鸣一终于看见了我，对着我讪笑，我有点觉得今天的这个决定是个错误，“误会？哦！现在你们是一家人了？被打也可以说是误会！那何必叫上我？”“刘珂，你看，我妹妹现在和你哥多好，你看我们是不是有机会……发展下去？”“哦！原来是这个意思！”她看着我，“刘可！这是你的意思吗？”我点点头，仍然不敢看她的眼睛，“为什么不敢看着我？也不敢告诉我？”“我……我也是好意！”“谢谢你的好意！”

她头也不回的走了，我没有勇气去追她，管鸣一到是追过去拦住她，“为什么就不能给我一个机会？”“因为我已经有喜欢的人了。”“什么？那人是谁？”“是谁？他心里知道！但是我要告诉你，绝对绝对，永远永远不会是你！”

我一直在外面晃了很久才回家，管鸣一在刘珂走了之后也回家了，看来他受的打击不小，他似乎真的很喜欢刘珂，但是谁也不会知道昨天晚上我们之间发生了什么，我这么做彻底伤了她的心，捎带脚把管鸣一也伤了，“很晚了，我送你回家吧！”“你也早点回去！和刘珂解释一下，真没想过会这样！”任晓说，“不！这全是我的错！”

把任晓送回家，我还是没有勇气上楼回家，在楼下的公园里打秋千，上去下来，荡在空中的感觉真好，小时候刘珂喜欢坐在秋千上指挥着我使劲的推，每次到了最高点，她都会喊：“我飞了……”也不想想我在她的后面累的全身都是汗。我笑了，沉浸在儿时的欢愉中，“你现在还愿意帮我推秋千吗？”我被旁边的声音吓了一跳，“你什么时候来的？”“就在你刚才想事情的时候！”“……对不起！……”“来帮我推秋千吧！”我走到她的身后，把她送上去，再高，再高……“我飞了！”我心里一阵阵的刺痛，我把自己的妹妹当作什么了，把她送给别人来掩饰我做的亏心事，我伤了她又想把她丢给别人帮我赎罪，我不是不想负责，可是这个责任我该怎么负？

我停止推动，秋千的幅度也越来越小，吱吱呦呦的停下来，“知道我为什么喜欢你推我坐秋千吗？”我摇头，“因为不管你把我送出多远，我都会回到你的手边，尽管等来的是你再次的送离，但是我仍旧会来回！……”我眼里已经充满泪水，“哥！……就当一切都没发生过！”她走了，我闭上眼睛，眼泪终于流下来……

三天后清华开学，妹妹收拾好了东西走了，又过了十天我也该走了，我和任晓买好了机票准备南飞，在临走的前一天我把她领回家见了我的父母，爸妈很喜欢她，我没有告诉刘珂我什么时候离开，只在临行前把我画了一个星期的画放在她的房间里，画的是海边的日出！

我的大学，让我疗伤！

已经开学一个多月了，我和任晓的关系稳中有升，任晓的美丽让所有上x大的男生垂涎，当她挎着我的胳膊走在校园里，走在高大的梧桐树下，无数羡慕和嫉妒的眼光让我的虚荣心空前满足，然而有时候我也会想在清华的校园里，刘珂带去的该是多少男人的震撼？刚到上海的时候我就买了手机，同时给任晓也买了一个，方便我们联系。我们似乎有说不完的甜言蜜语，天天见面却仍然在仅有的一点看不见的时间里发着短信！新的生活，新的开始，但是我却不想回家，因为还是不能面对！

“妈！过年我不想回家了！”“为什么？”“学校里有一个计算机寒假加强班，我想学学。”“那过年你也不回来吗？”“来不及！过年的时候机票很难买的！”“那任晓回家吗？”“她留下陪我！”“那……好吧！你妹妹今天就放假了！”“哦！”“不和她说话吗？”“……不了！手机要没有电了！带我问她好吧！”“那好吧！你自己多注意身体啊！”“恩！妈再见！”挂下电话，我在想如果刘珂知道我不和她通话她会是什么表情，呵呵！算了！

第一次在南方过年，我有点不习惯南方冬天的阴冷，感冒了！寝室的同学都回家了，所以任晓搬来和我一起住！“快！起来把药吃了！”“苦！”“又不是让你嚼碎了吃！给你水！”我从小就不爱吃药，可我也不总生病，没有刘珂勇敢，每次打针吃药都面不改色。“你为什么不回家？”“不爱折腾！”“你不想你家里人吗？”“……我想和你一起过年！”“呵呵！傻瓜！快躺好，要不该在医院里过了！”“遵命，老婆大人！”

躺了三天，感冒好了！三十的晚上我和任晓在外滩溜达了一夜，礼花，灯光，黄浦江，大上海，不夜城！我收到一条陌生的短信“春节快乐！”，“是谁呢？”任晓看着我的手机出神，我心里知道是她，她也买了手机！“是谁？”“不知道，可能是发错了吧！”我骗了她，删掉短信，也许我还不能忘记那晚的一切，轻松的面对她，我选择逃避，就像现在这样，逃在上海！

过年这些天街上到处都是人，我不喜欢人多的地方，所以躲在寝室里看书，上网！任晓去了她同学家玩，剩下我自己倒也自在！“嗡……”手机收到一条短信，“你知道是我，可以不回！为什么也不给爸妈拜年？”果然是她。过年了我竟然没有给家里打电话拜年，她说的对，我拨通家里的电话，心里已经有了准备听到她久违的声音，“喂！”“喂！……妈！”“刘可啊？你个臭小子，过年也不知道给妈妈和爸爸拜年！”“呵呵！我忘了！过年好！”“乖！”“我爸呢？”“哦！孩子他爸，儿子叫你呢！”“喂！刘可啊！”“爸，过年好！”“恩！又长一岁了！在上海还好吧？

怎么过的年？

”“我和任晓一起过的，去了外滩！”“哦！好浪漫啊！呵呵！”“呵呵……对了，爸……刘珂呢？”“哦！你妹妹不在家，去奶奶家了！”“为什么？”“你也不回来！她自己一个人无聊啊，本来想看看你的，都半年没见了吧！可是你还不回来！”“我……这不是有事么！”“行了，你长大了，什么事自己做主吧！行了，……他妈还有话没有啊？”爸爸对着后面说，“……刘可啊，好好照顾自己，注意身体，你离的远，不像你妹妹周末还可以回家，有空，有空就回来……？”妈妈竟然哭了，我的眼泪也在眼睛里打转，“妈！我知道了！我有空就回家看你们！”挂上电话，我的心里很不是滋味，妈和爸还是关心我的，他们没有过多的表露感情在我身上可能因为我是男孩子不像刘珂那样需要更多的爱护，我对不起自己的妹妹，现在更觉得对不起养育自己的父母，可是谁能知道我是没有脸回去啊?

春暖花开，这个美丽的季节是我这辈子终身难忘的。

“刘可，你为什么不和你妹妹联系呢？”“哦！她没有时间吧！？”“是吗？我总觉得是你在躲着她！”“呵呵，对了，你哥怎么样了？”“他啊，算是对你妹妹终身难忘了，相思呢吧！”“他不是也在北京吗？”“是啊！可是你妹妹一点机会也不给啊！”“是吗？”她还是那么坚决！“你不好帮帮忙吗？”“我帮什么？”“让她给我哥一个机会啊！”“呵呵，你认为她会听我的话吗？”……

日子还在貌似平静的过着，我给家里的电话要比以前多了一些，但是却从来没有碰到过她，说过话，她也没有再给我发过短信，妈妈也总问我为什么不给妹妹打电话关心一下，我总推说自己太忙，匆匆挂上电话。也许我们就应该这样渐渐退出彼此的世界，也许她也会找到一个真正爱的人，也许……

“刘可，今天下午和经管的比赛别忘了！”“哦！记着呢！”下午要和经管学院友谊赛，说是友谊赛其实是比赛第一，友谊第二，我们彼此看对方很久了都不爽，决定今天一决雌雄！中午吃了七分饱，免得下午跑不动，我吃过饭陪任晓上了一节政治经济学，然后她去看我比赛！下午三点比赛开始，双方的眼里丝毫看不出友谊的光芒，才开场十五分钟，双方就已经各领了两张黄牌了，操场上空硝烟弥漫，我是前锋，我在对方的半场等待着对友的传球。对方两个后卫死死的盯着我，皮球只要落到我的脚下就立刻上来围抢，胳膊和手上的小动作裁判视而不见，我有些沉不住气了，在他们第N次从我这断球后，我来到裁判这理论，裁判是信息系的大三学长，“你什么眼神啊？他们推人你没看见啊？”“我不认为那样的动作是犯规。”别的人也围了过来，比赛中断。“这还不算，那什么算犯规？你他妈的故意的吧！”“你再说一次，我罚你出场！”他要掏牌，“别！刘可，别冲动！”

队长过来拉住我，把我拽到人群外面，“别现在和他争，是你自己吃亏。等比赛结束的！”“我靠！太欺负人了！”“靠！我他妈的也有点看不过去了，等完了的！揍丫的！”队长是我大三的老乡，我们系的体育部长。我压了压火继续比赛，不过我不会客气了，小动作谁不会？

后场一个长传，右路的边锋把球停住，然后看了看我的位置，传中！我胸前停球，转身，当我刚刚晃过一个后卫准备近区射门的时候，另一个后卫伸出一脚，我被绊倒重重的摔在地上。“刘可！……”所有人都向我这跑来，这下摔的的确不轻，我躺在地上就觉得心口发闷，心脏一阵阵的绞痛，“刘可，没事吧？”上面的人七嘴八舌的吵上了，“你他妈的找死啊？”“你往哪踢呢？”“我……我没看清楚！”“不就是摔一下么！靠！”“裁判，这个肯定是点球了吧？”“凭什么是点球？”“靠！近区犯规，绊人，你他妈敢说不是点球？”……任晓也跑了过来，“刘可，没事吧？你脸色好难看！刘可……”我想说话却发不出声音，豆大的汗珠从我的额头上滚下来，“痛！”我按住心脏，一瞬间脑子里出现的是刘珂的脸，

她在对我甜甜的笑着，然后突然是她痛苦的表情，我耳边响起她的声音：“哥！你在哪？我好痛！”

他们七手八脚的把我抬到医务室，医生检查了半天也弄不明白到底是怎么回事，身上除了头部和胳膊有轻微的擦伤之外，其他一切正常，“刘可，你到底哪里不舒服？”“大夫，您看看他到底怎么了？”“他以前有这种情况吗？”“没有啊！”“这就不明白了，身上哪儿也没事，也没骨折啊！你们还是送到医院去吧，别耽误了！快！”救护车来了，呼啸着把我送进了附属医院。我做了全身检查，答案和刚才一样没有异常，“你到底哪里不舒服？”“这儿！”我捂着心脏，“心电图显示你的心跳很正常啊，没有什么不对啊！这样吧！先留下观察一个晚上。”我住进了医院，我的鼻子里插着氧气管，手一直捂着胸口，心脏似乎已经不属于这个身体，它要从我的身体里离开，我停止呼吸，短暂休克，耳边听到的最后一句话是“刘可，你妈妈打电话来了，刘珂她出事了……”

清晨我从噩梦中惊醒，似乎一切只是一场梦，包括那场足球比赛。“你醒了？”任晓眼睛红红的声音兴奋，“是啊！我怎么会在这？”“你忘啦？昨天踢球，你被他们绊倒了然后就被送到这了！”看来是真的，不是梦，“刘珂！对！刘珂怎么了？我昨天听见你说，刘珂，她怎么了？”我忽然明白过来，“她……她……出事了！”“什么叫出事了？到底怎么了？”“你先别激动，昨天你就是听见她的名字才昏了的！”“好！我不激动！你说，她到底怎么了？”“昨天你检查的时候你妈妈给你打的手机，我接的电话，你妈妈说，刘珂她住院了，而且希望你马上回家！”“住院？怎么会突然……受伤了吗？”“她没有说，就是说让你回去！”“电话给我！”我拨通家里的电话，没有人接，又给爸爸的手机打，通了，“喂！爸！是我！刘珂她怎么了？”“小可！你怎么了？昨天打电话的时候任晓说你进医院了！”爸爸的声音很疲倦，“爸！我没事！踢球的时候不小心受伤了，现在已经好了。

清晨我从噩梦中惊醒，似乎一切只是一场梦，包括那场足球比赛。“你醒了？”任晓眼睛红红的声音兴奋，“是啊！我怎么会在这？”“你忘啦？昨天踢球，你被他们绊倒了然后就被送到这了！”看来是真的，不是梦，“刘珂！对！刘珂怎么了？我昨天听见你说，刘珂，她怎么了？”我忽然明白过来，“她……她……出事了！”“什么叫出事了？到底怎么了？”“你先别激动，昨天你就是听见她的名字才昏了的！”“好！我不激动！你说，她到底怎么了？”“昨天你检查的时候你妈妈给你打的手机，我接的电话，你妈妈说，刘珂她住院了，而且希望你马上回家！”“住院？怎么会突然……受伤了吗？”“她没有说，就是说让你回去！”“电话给我！”我拨通家里的电话，没有人接，又给爸爸的手机打，通了，“喂！爸！是我！刘珂她怎么了？”“小可！你怎么了？昨天打电话的时候任晓说你进医院了！”爸爸的声音很疲倦，“爸！我没事！踢球的时候不小心受伤了，现在已经好了，您快说刘珂怎么了？”“小可啊，电话里说不清楚，你快回来一趟吧！和学校请个假，你妹妹她……是心脏病，是先天性心脏病！……”

飞机仿佛静止一样的飞着，我丝毫感觉不到飞行的速度，我脑子里一片空白，无心欣赏窗外的风景，云彩在我身边掠过，我把泪洒在三万英尺的空中……

北京，我久违的城市，四月的北京已经从冬天里复苏，街上的树已经长出绿色，还有一个小时我就可以见到你了，等我，刘珂！

跳下出租车，我一口气跑到三楼的监护病房，屋子里很安静只有仪器“滴……滴……”的声音，爸妈守在床边，刘珂的脸上没有了往日的笑容和神采，她闭着眼睛，均匀的呼吸着氧气罩输给她的氧气，“爸！妈！”我有点想哭，他们似乎一夜之间苍老了许多，从来爱漂亮的妈妈竟然有了白发，“小可！”妈妈哭着扑到我的身上哭了。“妈！”我终于忍不住了，哭了出来，爸爸过来拍拍我的肩膀，然后安慰妈妈说：“好了！别哭了，看，你把儿子也弄哭了！”

妈妈擦了擦眼泪，“爸！妈！这到底是怎么回事？刘珂怎么会有心脏病？”“刘可啊，这是她的命啊！”妈妈看着躺在那的刘珂，“她生下来就有先天性心脏病，我和你爸爸都知道，一直没告诉你，是怕你伤心啊！这病治不好的，只能等她发作，然后，然后就……”

妈妈又哭了，一会她接着说：“我们以为她并不知道自己有这个病，可是昨天她竟然说她在上大学之前就知道了，你妹妹要强，可是她一直希望你过年的时候可以回来，可是你却没有！我们也不知道你们兄妹间到底怎么了？原来那么好的感情，怎么突然间就淡成这样了？”“妈！没有别的办法吗？”妈妈摇摇头，“小可啊，好好陪陪你妹妹吧！”我来到她的身边，握着她冰冷的手，“刘珂！是我！哥回来了！哥回来看你了！”她慢慢的张开眼睛，头向我这边转过来，努力的冲着我笑笑，我摘掉她的氧气罩，她用微弱的声音说：“哥！你终于肯回来了！”

我的眼泪又止不住的流下来，“小珂！哥哥错了！”我知道她想和我单独呆一会，我回头对爸妈说：“你们都累了，回家休息一会吧！我在这陪她！”“好吧！那我们走了，你陪她吧，别让她太累了！”“好！放心吧！”“小珂，妈妈和爸爸回去了！乖！”妈妈摸了摸她的脸，她闭了一下眼睛表示同意！

长时间的沉默和对望，我不知道该说些什么，她也是一直努力的保持着微笑看着我，我宁愿她像从前一样从床上蹦起来骂我一顿！“很意外是吗？”她先打破了僵局，“你自己是什么时候知道的？”“就在去年暑假！”“暑假？”“就在那晚！其实在浴室里我是真的晕倒了！”“我一直以为……以为你是装的，在骗我！”“呵呵！你后悔吗？”我知道她问的是那件事，“刘珂，是哥错了！我……不该那样做！”“不！你没有错！是我自愿的！”她的手还是那么冷，却紧紧的握住我的手，“哥！对不起！”“傻丫头，你有什么错！是哥对不起你！”太阳下山了，残留的血红色在窗子的西北角射进病房投映在雪白的床上，没有声音，只有我轻声的流着眼泪，“哥！你知道吗？”“什么？”“呵呵，初三那年的那封情书是我写给你的。”“是你！？”“恩！可惜被我撕掉了！呵呵！”“傻丫头！”“你和她还好吗？”“还好！”“那我就放心了，这个嫂子不是我挑的，不过只要你喜欢就好！”“别说了！”我已泣不成声，“你那时候已经知道了为什么不告诉我？你太残忍了！”“真是我的笨哥哥，告诉你，会有用吗？还不是多一个人替我担心。”我现在终于知道为什么妈妈爸爸从小就那么护着她，尤其是她一生病妈妈就特别紧张，而且还不许她出远门，只能在北京上大学！“也许我不属于这个世界！现在……是要走的时候了！哥……我真的很舍不得你！如果可以，下辈子我还要爱上你，但是我一定不要做你妹妹！”一滴泪从她的眼角流下，滑过她的脸颊，我吻上那颗泪，“我爱你！”……

第二天，四月十日，阴天，刘珂在一家人的陪伴下安静的走了，按照她的遗愿她捐献了她的角膜。

回到家里，我把自己关在她的屋子里，这里仍然可以闻到她熟悉的味道，在她的床头挂着我给她的画，一轮火红的太阳从海平面升起，在沙滩上坐着两个人，他们并排的坐在一起，女孩一只手指着太阳。我打开她的抽屉里面竟然都是我小时候被她抢走的玩具，还有一张我们俩从小到大的成绩单，左边是我的，右边是她的，在下面有一段小字：这个笨蛋哥哥，成绩那么差，我一定要帮他考上一个好大学！恩！我们共同的大学！谁让我这么优秀？哈哈哈哈！然后还有她画的一个笑嘻嘻的笑脸。我被她逗乐了，这个傻丫头！旁边的抽屉上着锁，我很容易的在她经常藏东西的小罐子里找到钥匙，里面是她的日记，还有那件带血的衣服。整整七个小时，我一口气看完所有的字，合上本子的时候我再也控制不住自己，大声的哭了出来，这是我从小到大第一次放开声音的哭，痛，是怎样一种痛，苦是怎样一种苦，嗓子哑了，眼睛已经看不清东西，心整个碎了……

日记里记满了我们从小到大的每一件事，有的我根本都已经没有了印象她却还记得，我知道了她从初三那年开始爱上我，每天压抑自己的感情，她心里的痛苦和矛盾却从来没有表现出来过，一个人默默的承受着这一切。

“我们**了，我以为我的梦想实现了，他也爱上我了，最起码我们可以在心里互相爱着对方，可是第二天他却把我推给了管鸣一。可，你把我当成什么？但是我却没有一点的恨！对你，难道我已经失去了恨的能力？……珂”最后一篇是她写给我的信，或者叫遗书……

哥哥：

你看见我的日记的时候我想我已经不在了，你一定会很轻松的找到钥匙然后打开抽屉的，我猜的对吗？呵呵！

请原谅我从小到大一直欺负着你，把你当成各种小勤杂工，我知道我是一个任性不讲理的小丫头，那是因为

爸爸妈妈还有你一直都这么宠着我，我真的很舍不得离开你们，舍不得丢失这种疼爱！

还记的那个变形金刚吗？那是你第一次为了我打架的玩具，还有那件衣服，上面是你因为我被管鸣一打破了头流的血，我一直都把它们藏在这里，还有那副画，我真的很喜欢，当我上大学之后第一次回家看见桌子上的画我就知道，哥哥，在你心里是有我的！画上的两个人是我们吗？一定是！我给这画起了一个名字叫《轮回》，希望在下一个轮回我们可以真正的相爱！

哥，最近的心总是很痛，每次想到你就会更痛，我知道我的日子不多了，先天性的心脏病好像没有几个能活过三十岁的，呵呵！也许我已经是长寿了！哥，还记得我和你说过的那个电视剧吗？《天龙八部》里的木宛清，就爱上了自己的哥哥段誉，我就像她一样傻傻的明知道是没有结果的却仍然那么深深的爱着你，可是她比我幸福，因为最后真相大白她和段誉并不是亲兄妹，没有血缘关系，呵呵，可惜我们真的是亲兄妹，是龙凤胎！

哥，我真的还想在这个世界多留上几年，我想看着你成家立业生子，让我知道你真的很幸福那我也可以毫无牵挂的去了。我还想多给教你几首曲子，不过你一定要记住名字哦，我也想和你学画画，可是你从来都没有教过我。

还记得我们一起爬的山吗？我在佛祖前许愿希望你永远健康幸福，希望我们下辈子可以做夫妻！还有，还记得那次你早上醒了脸红的事吗？那晚我做了一个梦，梦见我不是你妹妹，我们恋爱结婚，幸福的生活在一起……我真的希望那样该多好。你做了什么梦呢？梦里有没有我？

我一直都想去一个地方，就是加拿大，上次暑假本来想和你一起去的，可惜你没有答应！那里有世界上最漂亮的最壮观的尼亚加拉大瀑布，真想一睹风采啊，不过估计是没有可能了，如果有机会你去那里看看，帮我拍张照片然后“寄”给我看吧！天上也不知道有没有望远镜？我想在上面看这个世界一定很有趣吧！

对了，我还有一张存折呢，是我这些年攒的，现在全部归你了，高兴吧？就当作是你给我打了24年工的报酬吧！本来是想可以当你结婚时候的财礼的，呵呵！密码是我们的生日！有时候我真的在想为什么我们会一起出生呢？难道真的是上辈子没做成夫妻吗？可是这辈子一样做不成啊！

哥，我真的很舍不得你，还有帮我好好照顾爸爸妈妈，你一直是他们的希望，我不在了，他们只有你了，记住不许不孝顺！其实他们也非常的爱你，可能是我的缘故他们没有对你表现的那么强烈！

好长的日记啊，呵呵！你看累了吧？写多少，也会有写完的时候，舍不得又有什么办法？哥，把我的名字刻在你的心里了吗？

再弹一首曲子给我听吧，我知道你比我有音乐方面的天赋，可惜你却没有认真学，以后想我的时候就弹琴给我听，我在天上一样可以听得到的，因为我们的心永远都在一起，是吗？

我擦干眼泪，来到钢琴边，月亮又正好的照在钢琴这里，我坐下用手轻轻的抚摩着每一个琴键，那上面有妹妹的指纹有妹妹的灵魂，琴声响起，是她最喜欢的《爱的协奏曲》，眼泪在月光下闪着银光，我闭上眼睛，用心感觉着，刘珂现在就在我身边，靠在我肩膀上，微笑着，微笑着……

“小可？怎么你也会……？”爸爸妈妈听见了琴声出来，我没有说话，继续和她一起弹奏着，他们坐在沙发上看着我，听着这熟悉的曲子。一曲终了，我慢慢的转过身，“你们看见了吗？她没有走，就在我旁边！”“是啊，她一直都在这里，永远是我们的好女儿，你的好妹妹啊！”“不！对我来说她不是妹妹，她是我的天使……”

一个星期后我退了学，和任晓说我要出国留学，我们平静的吃了最后一顿饭，“我等你……”“不！不值得！忘了我吧……”

四月的最后一天我带着刘珂的照片还有她的一部分骨灰坐上飞机，留学加拿大。

这是一个接近北极圈地广人稀的国家，路上都是悠闲的白皮肤蓝眼睛的人，我在温哥华的日子一切还算平静，只有在夜深人静的时候会看着她的照片默默的流泪。我喜欢这里的气候永远不会太热，像我的血液！有时间我就会在Rim国家公园里，沿着长滩一遍一遍的走着，我在寻找什么吗？还是在学着遗忘？

圣诞节快到了，我给家里打了电话，学校里要放一个星期的假，我决定去旅游，去她一直想去的地方，尼亚加拉大瀑布！

也许不亲眼看见你真的很难感受到它的壮观，站在它的对面那种震撼，激活你身上的每一个细胞，我深呼吸，贪婪着的享受着造物主的恩赐，飞泄的瀑布，震耳欲聋的声音，冷风夹着粉碎的水沫吹到脸上，让人想有纵身一跃的冲动！〈完〉












读者A后续:

冷风夹着粉碎的水沫吹到脸上，让人想有纵身一跃的冲动！为什么不呢? 在一刹那,我做了一个决定... 我不知道等待我的将会是什么,但我不后悔...

我急速的下落,我的心一片宁静,有种超脱于现实的感觉,我看到了刘珂!

她正在对着我微笑,她笑容那么迷人,眼神却流露出悲楚....我张开双臂去抱她。。&quot;..

&quot;宝贝,我说过,我们永远不要分开,你总是那样任性,有点刁蛮,我怕你到了陌生的地方,会有人欺负你呢,你一个人会孤单,会怕的!
我说过我会永远的保护你,我也来了..等着我...
“可儿。可儿。。。。。”一阵飘渺而模糊的声音回旋在我朦胧的世界里。有人在叫我？

“啊...好疼！”我睁开眼睛，慢慢适应这个环境，四周是惨白的墙壁，我躺在病床上，妈妈正坐在我的身边一副关切的眼神盯我。终于她露出了一点笑容，她看我醒了！“傻孩子啊，你终于醒了！哎，你差点吓死我和你爸了！知道吗？”
“我的头好疼，发生什么事了？妹妹呢？”我一手捂着头问妈妈。
“你都昏迷2天了！哪天晚上你居然从2楼跳下去了，伤到了头，要不是护士小姐及时发现，恐怕。。。。。。哎，你们兄妹俩啊，快把爸妈忧心死了！”妈妈用手抹去眼角的泪水说道。。。。

两天了？我只记得那天我在刘珂的床边，和她说话。妹妹身体很虚弱的，说的话我几乎听不见，但是我可以感觉的到她说的什么。我们是心灵相通的。我无比怜惜的看着她，告诉她不要说话。好好休息。可妹妹她倔强的摇了下头，我知道，如果现在不说的话，以后就没有机会。。。。。。

“刘珂，你要坚强点儿！好吗？”我柔声的对她说道，并握住她的手。
突然，她一副十分难受的样子，嘴也轻轻的张开着确说不出话，眼睛大睁，用一种很复杂的眼神死盯着我，有不舍，有痛苦，有失望，有无奈。。！我的心立即被狠狠的拧了一下！我迅速按下传唤铃，并失声大喊！“救命啊！我妹妹快不行了！。快来人！。。快！。。救命！”。。。急救医生很快就冲了进来，快点准备抢救！让病人家属先出去！几个工作人员来拉我出去

“不！。。”我大叫！ 我盯着她的脸，她已经闭上眼睛了，我只能看到她嘴角微微动了下。。那分明是在喊“哥。。。”她不想走！“不！我要看着她！我不会让死神带走她的！决不！没有人能够！。。“刘珂！哥来保护你。我不会让你走的！。。”我发疯一样的挣扎，和歇斯底里的喊叫没有起到什么作用！最后还是被拖了出去，并被打了镇定剂。。。然后就什么都不知道了。

“妈妈，刘珂她？” 我带着哭腔问道。
“呵呵，别担心，你妹妹的病情终于控制住了，那是一位军区总院的心脏病专家赶来治的。他说是被一位当军人的老朋友请来的”妈妈微笑着对我讲完
啊！我不敢相信，原来真的是个梦，真的是梦啊！
而且这个梦好长，好真实，好可怕，原来我昏迷2天多就一直在做梦，梦到妹妹死了，梦到妹妹的遗书，我想着想着，不敢相信的咬了自己的手指，啊，一阵剧疼刺激着我的神经。
“哈哈，原来妹妹还在！哈哈。。哈。”我高兴的狂笑！ 妈妈也被我逗乐了
“傻孩子。。呵呵，妈妈先回去了啊，妈也两天没睡了！”妈妈摸了摸我的脸，一副爱怜的叮嘱我道：“可儿，你头都摔破了，要好好休息。。”说完起身要走。“妈妈！”“恩？”“ 我爱你，妈妈！”
“呵呵，傻儿子。。我也爱你们！”“走了！”
“恩！”
我现在最强烈的意识就是去找刘珂！尽管头疼的厉害，我试着撑起来。
“啊！我靠！”头上的剧痛和浑身的酸痛一起上，还真难受！。我强忍着痛下了床，打开了病房门。
来到重症监护室，我进去了。

刘珂躺在病床上，不过比上次见她的时候看起来好多了。我有好多话要对她说。可还没等我说话，她就已经看见我了。“哥！你。。？ 头怎么了？”她紧张的望着我“呵呵，傻丫头，你没事就好！哥只是碰了下头！没关系的！”“啊，为什么那么不小心啊？” “哎，这有什么，你感觉好些了吗”我握住了她的手，本来柔软的小手因为冰冷而稍微有些硬和骨感。
她也紧握着我的手。
就这样，我们互相凝视了很久。
“哥！。。我回来了！”
“恩，我再也不要你走了！我要你永远留在我的生命里！”
“恩，我是舍不得你！”
我低头，俯身。。
“哥。。。”
我的唇堵住了她的嘴。。。。。

5天后，刘珂出院了。
家里把亲戚们全都请来了，摆了很大两桌。今天非常高兴，看着健康这个健康的她，红润的脸颊，充满着活力！我就这样盯着她，她居然脸红了。
“大色狼，你还想要吃我啊！”她说着夹了一大块肉放我碗里。“呐，念在我生病的时候你护驾有功！嘿嘿”
“呵呵，谢谢公主陛下！
我夹起那块肉，一下子放进了嘴里。“啊。。救命，噎死我了！ 咳。。咳。！”
“你这个笨蛋！慢慢吃啊，谁叫你一口吃下去啊”刘珂紧张的看着我。
“哈哈，我故意的！”
“切，去死好了！”
“那我真的死咯？”“哼，你不能死，你还要做我的免费小临工呢！”
“妈，爸！你们看看啊，你们这好女儿怎么老是压迫她的哥哥啊！”哈哈，今天太高兴了，我也来装一回小孩。
“这两兄妹。。呵呵！”亲戚们大笑！
。。。。一阵手机铃声响起，“喂！”“.....”“
“是我” “任晓？”我避开刘珂探询的目光，走出门外
“我想你了。你什么时候来啊。？”
“我。。。。。。。”我知道现在自己心里彻底只有刘珂一个人了，我不能在骗 任晓，也许甚至连找她做女朋友也只是为了逃避刘珂，如果还不告诉她，只能能 伤害她。
“你快说话呀，你不知道我一个人有多无聊，难道你不想我吗？”
“你妹妹现在好了吧？你知道救她的医生是谁请来的吗？”
“他是我爸爸的朋友，我不是说过吗，我爸爸是军人，那个军人医生和我爸交情很好！我哥知道你妹妹的病情后就去求爸爸让他那个朋友来试试的！”
“啊，原来是他。。”我一楞，没想到是管鸣一帮了一个这么大的帮，立时对他特别的感激，这是发自内心的。
“那真是不知道怎么感谢他，我会亲自去跟他道谢的！真的非常感激他！”
“呵呵，他说不需要任何感谢。只希望你能说服你妹妹给他一次机会！”
“。。。。。。”我沉默了半晌
“怎么呢？”
“对不起，我不会那样做的，而且。。我相信我妹妹，。。她也不会~”
“为什么？难道你。。。真的爱你的妹妹？你们之间是真的 ？”
“是的，。。对不起！我爱她，她就是我的生命，是我的一切！自从上次我差点永远的失去她，我就明白了！‘要珍惜眼前人，别等到失去了才去追悔’！”
电话那头传来哭声。。
“我一直在担心的事，终究还是发生了，刘可！你知道吗，这个担心就象一个大石头一样每天压着我。。可是我一直在努力说服自己，你们毕竟是亲兄妹！是不可能的~~没想到。。。。它还是发生了！呵呵。我真笨。。。”
“任晓，你是个好女孩！你会有很多的追求者，我根本不值得你爱，对不起。。”我抬起头努力不让那滴液体流下
“好吧。。我知道已经无法挽回了，你也不用说对不起，。。可是，你们是亲兄妹啊！是没有结果的啊！你就没考虑这些吗？”
她的话语，每一个字都刺激着我的心灵，可是。。我已经不能被动摇了！
“我爱她！他就是上天赐给我的天使，心已经被对方占据了，我知道我们不能失去对方。。。知道‘彼岸花’吗？有花时，就没有叶子，有叶子的时候就没有花，。花叶永不相见，生生相错，相恋相惜永相失，那是一种用不能相见的痛苦啊！而我妹妹还没死！这是上天给我的机会，我不能再做个懦夫，！决不会自把刘珂推给任何人！为了她我将会做个勇士，一直守护她，照顾她，爱护她，一生一世！”我不知道我怎么一口气说了这么多真心话，反正我把压抑在内心的话全都说了，现在觉得好轻松。畅快。
“。。。。。。那。只有祝福你们。。我想，我也该去找一个那样爱我的人了！ 再见！”
“你会找到的！。。”
我挂了。
刚转身，就看见妹妹呆呆的站在我面前，她泪流满面。。

“我们永远不分开！”
“恩，再也不分开了！”------------------------












读者B后续:
冷风夹着粉碎的水沫吹到脸上，让人想有纵身一跃的冲动！

“Don`t do it !”

“What?”

“Didn`t you want to jump ?”

“The falls？……how do you think so？”

“My intuition！”

“呵呵，我不会真跳下去的！”我转过身去自言自语到。

“你是中国人？”

我好奇的再次回过头去，眼前是一个和我年纪差不多的漂亮女孩，黑色的长发，黄色的皮肤。

“你也是中国人？”

“恩！能在这遇上自己人真不容易！”她声音很兴奋。

用自己人形容我们，我感到亲切，是啊，在本来就人少的可怜的这个都是移民的国家能碰上黄种人已经很不容易了，何况是中国人！

我微笑着点点头。

“我叫Angel。”

“Angel？好名字！我叫Jason。很高兴认识你！”

“我也是！你自己一个人吗？”

“恩！我来加拿大留学，学校放假我来旅游！”

“我也是一个人啊！你在哪个城市？”

“温哥华！”

“太巧了，我也是！”

她摘下太阳镜，那一刻我呆住了，那双眼睛是那样的美丽，尤其是在笑的时候，和刘珂的眼睛简直是一模一样！

“Hey，怎么了？”她看我盯着她发呆，用手在我眼前晃晃。

“哦！对不起！我刚才觉得你的眼睛很像一个人的。”

“哦？是吗？是你女朋友吧？”她笑呵呵的把眼镜又戴了回去。

“为什么要戴眼镜呢？光线不是很足啊？”

“哦！因为我的眼睛受过伤，从那以后我就很小心了，戴上它保护眼睛啊！”

“你的眼睛是怎么受伤的？”

“哎……！都怪我自己不好，我喜欢摄影，今年三月份的时候，我还在北京，自己弄了一个暗室洗照片，结果不小心药水进到眼睛里，把眼睛烧坏了！还好，在医院等了不到一个月的时间就等到了角膜。听说，那是个很漂亮的女孩子的，可惜她得的是先天性心脏病，到现在我还不知道她的样子呢。出院之后没多久我就留学到温哥华了……”

我没等她说完，过去一把把她搂在怀里……

“喂！怎么了？”

“你真的是一个Angel！我发誓我绝对不会再失去你！”

“你说什么啊？”

我摘下她的眼镜，握住她的双手。

“也许你不明白，也许你不相信，但是，请你这一分钟听仔细，我爱你！我要用我生命里剩下的所有时间去爱你，去照顾你，答应我，给我这个机会！你就是我的天使！”

她笑了。

“也许我真的不懂你！我也不知道自己为什么相信你！但是直觉告诉我你是一个好人。”

我们紧紧的抱在一起。

“妹妹，难道这是你冥冥之中在指引着我们的相遇吗？如果你现在看得见，那么祝福我吧……My Angel……”(end:搜狐)]]></description>
    </item>
        <item>
        <title><![CDATA[双笙 - 我的一个道姑朋友.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/465524]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 13 Dec 2017 22:42:52 -0800]]></pubDate>
        <description><![CDATA[File Size: 11.98 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/465524">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[我的一个道姑朋友]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/465522]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Wed, 13 Dec 2017 22:19:36 -0800]]></pubDate>
        <description><![CDATA[(作者:洛棠尧)
最后，我看着你还俗，从一个信徒退回你最初的俗世间，看着你娶妻，生子，看你破了戒，给她们做好吃的东西，经历着人间那么多美好的事情。这个时候我才发现，其实最好的时光就是七年前，当我也还是个俗人的时候。
(T:strong)一
　　七年前，华阴城里住着一个少女。

　　她是一个调皮的姑娘，爹娘在她出生那一年就得瘟疫去世了，只剩她和奶奶一起生活。

　　她从小没见过父母，心里倒也没什么特别的悲伤，只是有的时候看到别的孩子和爹娘一起走在街上，会有一点点失落的感觉。

　　可是大多数时候她还是一副没心没肺的样子。奶奶供不起她上学，她便每天自己游玩，上树摘果，下河抓鱼，无所不能。傍晚的时候带着“斩获”来的战利品回到奶奶的摊位，骄傲地给奶奶展示，就像一个小英雄一样。

　　“佩玖，你今年都十五了，还是那么孩子气。”奶奶接过她手心里的野果，“今天又去哪了，衣服脏成这样子。”

　　“今天去了后面的山林，可远的地方呢！”她指着远处的一座山。那座山很高，像突兀插入云朵的一把刀刃，山间云雾缭绕，苍翠的颜色看起来很神秘。

　　“以后别去那里了，这么远，出了事奶奶可没法管你呀。”奶奶突然表情变得凝重起来。“我不知道还有多少时日了，你爹娘都不在，我最担心以后你该怎么过…”

　　“奶奶，佩玖不许你说这些话！我们快收摊回家吧，佩玖以后不会不听话了！”

　　她最看不得平日里慈祥的奶奶变成这种样子，每每如此她心里就像拧住了一样，很难过很难过。

　　大大咧咧的疯丫头杨佩玖也有伤心的时候。

　　“奶奶，你能不能多陪佩玖几年呀。至少等到佩玖嫁人了好不好？”那天晚上，她搂着奶奶的胳膊，说道。

　　“傻孩子，奶奶还没看到你嫁人成家呢，怎么可能走了呢？奶奶命硬，还能活好久呢！”

　　“那我就放心了…”她依偎在奶奶的怀抱里慢慢睡着了。

　　如何能放心呢？其实两人都不放心啊。

　　这种没有准头的生活对她已经是一种常态了。不定时而来的忧虑和不愿再去想的疲惫交替进行，生性活泼的她便会不定时地伤感。

　　奶奶每天经营的小药草摊位盈利也微薄。奶奶年纪大了，不能自己去采药草，她便每天跑去附近的荒郊野外，帮奶奶找各种珍贵的药草，若是能卖个好价钱，她们还能偶尔改善一下生活。

　　再大的忧虑也是困不住一个年少的小丫头的。她每当跑去山林里寻找药材的时候，就会把烦恼抛到脑后。

　　相比华阴城里沉甸甸的气氛，人们连活下来都已经用尽了力气，她更喜欢待在一丛丛参天古树的怀抱里不出来。

　　雨季快要到了。

　　华阴城最近时常下雨，那雨点不分时间，前一刻还是晴空万里的午后，下一刻不知从哪里飘来一朵乌云，这雨说下就下了起来。

　　买不起漂亮的小花纸伞，她便戴一个斗笠，风雨无阻地去山林里逛。在艰辛里长大的姑娘从不娇气，受得起，也已经习惯风吹雨打。

　　那天她照例去山下的一处野地里寻草药，一株一株地放进围裙口袋里，很快那小口袋就被塞的满满的。

　　华山脚下的那片树林，野兽很多。奶奶警告过她不要往深处走，她这次偏偏忘了这劝诫，想要看看里面的土壤生长着什么可以卖钱的“奇珍异宝”。

　　那里面确实好东西多，可是倒也没看到什么猛兽。她愈发勇敢地向深处走去，看着塞的满满当当的口袋，还不禁哼唱起小曲儿来。

　　当一只猛虎向她扑来的时候，她后悔了之前所有的想法。

　　外面微雨不停地下着，林子里瘴气重，她看不清楚眼前的道路，朦胧地看到哪里有路便向哪里跑去。

　　她跑过的全是狭窄的道路，那老虎却灵活的很，无论何时回头望去它都在身后，保持着一个恰当的距离，好像随时可以猛扑过来，把她撕咬成碎片。

　　“怎么办，我不会死在这吧，奶奶还在等我呢…”头上的斗笠跑掉了，衣服都湿透了，她急得想落泪。眼前氤氲的水汽却让视线变得更加模糊，她便只能把这种想哭的欲望生生压回心底。

　　毕竟眼前最棘手的事，还是逃命呀。

　　隐约之间她好像看到不远处山腰间有一个小庭院。看起来像一座寺庙似的。

　　“若是那里有人就好了，一定可以救我一命。”

　　她的双腿变得有些酸软了，她决定赌一把，拼尽了最后剩下的一点力气，向那座寺庙奔去。

　　然而当她终于到达那里时，却发现空无一人，里面陈设着人们的日用品，也许偏偏赶巧这里的主人不在吧。

　　“真的没有力气了……”她绝望地瘫在地上，眼看那老虎越来越近。

　　忽然背后一只有力的手猛的把她拽到后面，“你是谁？来这里做什么！”她没理会那人，只看到一个白色的身影，手持武器把那老虎吓退了好几丈远，向虎口中投出的药丸落得精准，那老虎马上变得衰弱不堪，慢慢地走开了。

　　那白衣的身影回过头看她的时候，她还惊魂未定，瘫坐在那里说不出话。

　　“吓坏了吧？也是，我刚才太凶了。”这白衣人是一个和她年龄相仿的少年，长发束在脑后，眼神很温柔。

　　那少年不过十六七岁光景，长发白衣，颇有些仙风道骨的模样。只是一番搏斗后脸上划破的几道血痕显得有点狼狈。

　　“姑娘先在房檐下躲一会雨，我去取伞，送你回家。”少年神色匆匆地跑去屋里，留她在屋檐下。

　　她看着檐上滴下来的水滴发呆。那少年的出现超出了她的预想，惊鸿一瞥似的，一瞬间惊艳了她。

　　“姑娘，我这也只剩一把伞了。这样，你用伞，我多淋点雨没什么事。”少年有点愧疚地看着她。

　　“你淋雨多不好，一起进来吧！”

　　“可是这……”他看她一副不懂男女授受不亲的天真模样，也不太好解释，便为她撑了伞。

　　他刻意和她隔开了些距离，伞向她身上倾斜着，以至于他的大半个肩膀都露在外面。

　　“姑娘，你家住何方？”

　　“你带我走出这片林子我就知道差不多啦，我家离这山很近的，就在山脚下的华阴城里。”

　　她能感受到他摒得很平稳的呼吸，一口口的气扑到她脸颊上，热热的。

　　吹得她心里痒痒的。

　　这少年乍一看没什么，仔细看来，还很有清秀俊逸的气息，她看得有点出神。

　　就这样，走到华阴城的入口，少年停下了脚步

　　“姑娘，把你送进这城，我便不再跟去了，免得人们闲话。你若觉得不安全，我跟在你后面，护送到你回家了便是。”他把雨伞递到她手中，顺带了一个小符牌。“姑娘把这带在身上，也许能护身。看姑娘孤身一人，这也是我的一点心意。”

　　“我认得这里的路啦！”她小声说。

　　“那我就回去了，姑娘不必把伞还给我，权当人情一场吧。”他转身，飘逸的发辫在空中飞扬起一个好看的弧度。

　　“请留步！”她有点着急地喊住他，“公子对我有恩，请问公子尊姓大名，佩玖来日一定回报！”说着，她掏出兜里几株草药，塞进他手里，“收下吧，这种草治擦伤很管用的！”

　　“我么？”他笑了笑，“叫我怿心就好。”那个干净的笑容很好看，好看到她能在心里记一辈子。

　　“怿心……真好听的名字！”她看着他的背影在雨幕里淡去，直到看不见了，撑着伞无比欢快地跑回去，踏过的小水坑把泥点溅在她的脚踝上。

　　回到家的时候，她头发蓬乱，衣服湿透了，裤脚脏兮兮的，斗笠丢掉了，撑着一把陌生的伞，衣兜里塞了满满的草药，看起来像个小乞丐一样。

　　“你怎么把自己弄成这样！”奶奶今天提早收摊回家，给她做了她最爱吃的红烧鱼，她却狼狈地如此晚归。

　　“奶奶，我在山里采草药的时候从山坡摔下来了。”她笑了笑，拍拍自己身上的泥土。“地滑，我没站稳嘛，你看，我一点事都没有呢。”

　　“你的斗笠呢？还有这伞是……”

　　“斗笠摔丢了……有个好心人把我救下了，这伞是他给我的。”说到这，她脑海里浮现出那个少年的笑容，不由得面色变得绯红。

　　“佩玖啊，这一桌菜都凉了。奶奶再给你热热啊……”

　　“奶奶歇歇吧，我自己去热饭就好！”她端起那些好吃的饭菜，颠颠地跑进厨房里。

　　也许是有一个可以念想的人，一切疲累和心酸都能暂时被欢快所代替。(T:strong)二
　　那天晚上，奶奶和她聊着聊着，便说到了婚嫁上。

　　“佩玖，你以后想嫁给一个什么样的郎君呢？

　　“我呀，我想想啊。”她窝在奶奶的怀抱里，撒娇似的躺着。“我希望他有黑黑的长头发，会武功，而且，要有一个好听的名字！”

　　“哎，主要还是要对我家佩玖好呀。”奶奶摸摸她的头，“你还是太小了。”

　　“您说的是。”她转过身去，面向纸窗。下过雨后的华阴城格外清澈，月光透过窗户纸投进来，显得很皎洁。她躺在被子里，轻轻闭上了眼睛，想着那个名叫怿心的少年。

　　“他该回去了吧，也许现在也要睡觉了。”她这样想着，心里有种甜丝丝的感觉。

　　之后的日子很平静，她心里的波澜却从未平息。

　　那个少年的样子一直在她心里出现，搞得她有时都不能专心做事情，睁眼是他闭眼也是他。

　　她很想再见他一面。

　　她时常翻出那符牌，前前后后地看。她和许多一起玩过的伙伴们打听过，终于有人说，华山上有一个道观，里面有一些道士，他们乐于助人，但从不下山。

　　她想，也许他就在那里面吧。

　　她用自己攒了很久的零用钱里拿出一大半，买了一盒桂花糕，用小篮子装好，向山里走去。一路上她把那符咒挂在胸前，一直念念有词，说来也奇妙，这一路上没有出现任何危险。

　　她看到那座小小的道观，冲了过去，急切地敲门，问怿心道长在不在。

　　里面热心的道士们听说有人来找怿心小道长，便都匆忙地去找他。

　　“小施主稍等一会啊，怿心上山砍柴了，已经叫人去喊他下来了，很快的。”一个年长的道士和她说。

　　“不急不急，有劳你们了。”她露出一个文静的笑容，如一株弱柳似的站在那里。

　　快要见到那个心心念念的人了，她看起来镇定自若，心里早已经风起云涌。

　　半个时辰后，他来了。

　　他那天穿了一件青兰色道袍，一束长发还是那样绑在脑后，一副干净清爽的模样。

　　“怿心道长，你那次救我的恩情，小女子实在无以为报，我今天带来了一盒桂花糕，道长收下吧！”

　　“你竟然还敢只身一人来这个地方，只为了报恩？”他有点疑惑，上下打量着这个女孩。“你怎么过来的？”

　　“我带着你给我的那个符咒呀！说来真的管用，一路上什么危险都没有。” 她一脸欣喜，手不自觉抓住了他的胳膊。

　　“哦，对不起，我太激动了。”她又轻轻把手放开，羞红了脸。

　　怿心向长老请了事假，来陪这个远道而来的女孩。他们在树林里走走停停，林里难走，不时的他便抓着她的手臂，慢慢的，少年和少女也不再害羞，笑着闹着，和其他的孩子无异。

　　谈笑之中，她得知他是一个弃婴，从未见过生身父母，被这里的长老捡到后才得以保住这条性命。此后他便忠心行道，以报长老救他的恩情

　　原来，这世间的人们都活在一张巨大的网里，各自都有着恩情的牵绊，大至性命，小至亏欠。

　　傍晚时分，她该回家了。

　　这一天下来，桂花糕分吃完了，小篮子里也装满了采好的草药。

　　“让你自己回去我不太放心，我还得再送你一次。”少年摇了摇头，无奈地笑了笑。

　　“怿心道长，你真好！”她雀跃着，“那这次恩情我又该怎么回报呢？”

　　“我不知道啊，你看着办咯。其实没什么，不用你这么辛苦地回报的。”

　　那天是晴天，少年和少女的身影被夕阳拉得很长。

　　就这样，她隔三差五去给他送些东西，有时是茶点，有时是她儿时最喜爱的玩物。借着这个报恩的名义，她想把她所有喜欢的东西都送给他。他对她不放心，每次也会送她下山。

　　这条山路承载太多他们的故事了。

　　她十七岁那年，奶奶去世了。

　　早晨她醒来的时候，没有照例的早饭摆在桌上，无论她怎么摇，奶奶都醒不来。

　　平日里关系好的街坊四邻帮她办的丧礼，此后，只剩她一个人，孤零零地在这世上，不知道该怎么生活下去。

　　积蓄都要用尽了，她已经到了一个走投无路的地步。

　　终于，她开始收拾家当。把衣服和值钱的财物打包好，其他东西当掉，便前往道观。

　　不如做个道姑，清心寡欲，远离这世间的尘嚣。

　　一路上，她感到挂在脖颈上的符咒异常沉重，在胸口撞击着。她走得很急促，脱口而出的祷告一遍又一遍。她已经失去了所有拥有的东西，绝不能再让自己在投靠他的路上丧命。

　　那天，她跪在众道士面前，虔诚地说出了自己要入道的愿望。

　　清心寡欲，戒痴戒嗔，不染私情，戒荤茹素。

　　这条路没有回头的余地，一旦走上，就要和这些清规戒律相守一辈子。

　　把刚刚过肩的头发盘成发髻，穿上玄色道服的时候，她已经是这道观里唯一的一个小道姑了。

　　开头几天，她总是走不出悲伤的。整晚整晚地在被子里哭泣，做什么都无精打采，脸色越来越苍白。

　　道士们时常说，“这孩子还没有走出俗世啊，过一段时间就好了。”

　　只有他知道她有多脆弱。他常远远地看着她，很心疼，又不知道能为她做什么。

　　看着她日渐消瘦，茶饭不思， 他便每天从饭堂里拿来点其他的吃食，用油纸包好，放在她房门口。她每次看到了都会拿回房里，他不知道她吃了没有，也许有的时候她会倒掉，但她最近气色貌似好了些。

　　看着她慢慢好起来，他心里的担子也好像轻了些。

　　后来的修行里，其他道友们看他们年龄相仿，便让他带领她修行。

　　他手把手教她剑术，他的动作很轻，剑峰温柔得像流水一样，一招一式都引得起她心里的惊鸿。

　　他带她上山砍柴，挑水，有重活的时候帮她多分担一些，只为了让她轻松一点。

　　他带她看道观里长老炼丹和做过的法事，这种时候她又感到他是如此正经的一个人。她不知道他对她有没有类似这种暗暗的情愫，她和他在一起的时候感到很温暖，可晨钟暮鼓的从道生活从不允许教徒们有私情，她只能把这份感情隐藏得很深很深，她不希望他背叛自己的信条，却也不希望他太过虔诚，以至于他心里只有教条，没有留下给她的余地。

　　而她，很想做一个清心寡欲的道姑，但心里的那份感情总是按捺不住，时不时出现在念头里，搅乱她的思绪。(T:strong)三
　　快到新年了，道观里要做祈福，道士们要下山采购做法事要用的东西，这是平日里不出山的道士们唯一可以接触俗世的机会。

　　她没有去，他则和一个年长的道士一起去了。

　　他去了七日，她念了七日。

　　这七日没有了放在房门口的小馈赠，她才明白那是来自于他的关心。

　　虽然这七天没有了来自他的关心，她却欣喜得异常。心里隐藏的情愫得到回馈是一件很让人心动的事，况且正巧来自那个心心念念的人。

　　她做活做的格外卖力，把道观收拾得很干净，地板几乎都要闪出光来。

　　她要等他回来，让他看到他没在的这段时间里，她有多勤奋。

　　他回来的那天，带回来很多她没见过的物件。对那些东西她没多大兴趣，仅仅是看到他，就足够她欢喜。

　　那天晚上他竟然主动邀她出来散步。他从衣袖里掏出一个小布包，里面有一小袋炒豆子，还有一盒胭脂

　　“也不知道你爱吃什么，就随便买了点。你马上就要十八岁了，姑娘家都爱漂亮，没事做的时候打扮打扮也好。”

　　“你买这些，让师兄看到多不好…况且这胭脂看来也不便宜呀。”她红着脸说。

　　“没人发现的，胭脂也不太贵。”他看着别处，“我也不太会挑，你就安心收下就是。”

　　她小心地接过，拿在手里，心里小鹿乱撞。

　　“佩玖，你说，思慕一个人是什么感觉？”他蓦地问道。

　　她心里一紧，莫非他要表达心意了么？

　　他仰头看着月亮，林间的月光总是被树叶分割成好几块，映得他的脸很白净。“我想，大概一个姑娘不会拒绝红妆，也不会拒绝绫罗绸缎的衣裳吧。”

　　“是呀，一定是……”她的声音变得颤抖。她心想，莫非他还要送自己漂亮的衣服么？这样一来就打破了教规了，不过如果他真的对她有意，她愿意为了他打破规矩，一起还俗。

　　“佩玖，我在市井闲逛的时候，看到一家胭脂铺的姑娘。”他眼睛里闪过从未有过的光芒，“她真的很美，比这月亮还温柔。这盒胭脂就是从她那里买来的。”

　　她心里猛的一凉。

　　“她喜欢把脸画得粉嫩嫩的，平时爱穿红色的衣裙…佩玖，你说这就是喜欢一个人的感觉吗？”

　　“是吧……也许是。”她的脸色凝固了，“我有点累了，先回去了啊。”

　　都是自己想多了吗？本以为他没有如此强烈的情欲，所以不敢向他表露心意，却没料到他将他罕有的爱情给了其他人。

　　后来，时间过了三年。他不时偷偷下山，买几身俗人的服装，打理好后装作不经意地去光顾那姑娘的店铺。每每带回来些化妆的小物件，便赠与她。她不想接受，也想不出理由拒绝，那只不过是他为了追求另一个女孩的附赠。

　　她问他为何不速速还俗，这种介于二者之间的生活很难过，他说，他想慢慢修炼自己的阅历和武艺，到时候可以护那女孩平安。

　　他决定还俗的那年，她二十一岁，他二十三岁。

　　她记得那时，他恭敬地和道观里的长老们和道友们道别，对他类似于“离经叛道”的行为表示歉意，并说要把以后挣到的钱捐给道观，当做回报。

　　“循道之路很长，很苦，你既已决定入此路，便不要像我一样有杂心了。也许我从来就不是一个虔诚的教徒，只怨造化弄人吧。这辈子，我欠这道教的。”他和她道别时说。

　　“你去吧，俗世令人欢喜的事还很多，任重道远，我也需要时间斩断牵挂。希望你过得幸福。”她平静地说。

　　看他转身下山的那一刻，她的世界都要崩塌了。

　　他下山的那条路，满满的是她和他的故事啊。如今他要踏过这路去寻别人了。

　　一座山成了两种人生的分界线，一侧是寡淡的孤寂，另一侧是喧闹的繁华。

　　道观里人们消息很灵通，次年，她听说他要成婚了。新娘子是那个胭脂铺的姑娘，人长得很漂亮，待他很温柔

　　其他道士们默默为他高兴，唯独她，是不可能悄无声息地祝福他的。

　　她怎么可能愿意祝福？她宁可选择诅咒。

　　他成婚那天，她换了一身衣服，悄悄去了他的婚礼。

　　他变得愈发英俊，眉宇间已经多了几分硬朗的气质。新娘小鸟依人，妆容精致。他站在那新娘身旁，两人般配地无可挑剔。那女孩的父母一脸赞许地看着这个年轻人。

　　突然她脑海里闪现出一个画面，奶奶在旁边，看着他们两个成婚，拜堂，没有其他的亲人，只有他们三个人。

　　这画面晃了晃，便化为泡影。

　　她看到他笑盈盈地接过宾客们的礼物，那些礼物一个个都用喜庆的红纸包好，精致的很。

　　她最后一个走上前，“我本是路过，看到你们家有喜事，没有厚礼相送，就把这雨伞赠与你们吧。”

　　她拿着那把伞，自从七年前他送给她后，她从未用过。变卖家当的时候也没有当掉它。

　　他认出她的眉眼，眼里闪过一丝惊诧，却又很快压了回去。

　　新娘注意到了这一细微的变化，便问道，“官人先前认识这位姑娘？”

　　“当年做道士的时候结识的一位道姑朋友，没想到会在这里遇到。”

　　“这把伞跟我很多年了，是我很久以前爱慕的男子赠予我的。身上没有其他可以当礼物的东西，便把这送给你们。祝你们白头偕老。”

　　“那么，我便替拙荆谢谢这位姑娘的赠礼。”他恭敬的一字一句都如针刺一般，刺在她心里。

　　“真好！”那新娘握住她的手，“姐姐本是路过我们的婚礼，还能送上如此祝福，小女子真的很高兴呢！姐姐也来喝喜酒吧！我们份子很足，权当请客了。”

　　她僵硬地笑了笑。“罢了，我还有别的事情，偶尔路过罢了，不必致谢。”

　　她没有再去看他的眼神，她怕控制不住想要抱住他的冲动。

　　离开的一刹那，婚宴上人头攒动，新人忙着敬酒

　　没有一个人看到她转身后山洪般的泪如雨下。

　　总算，让他知道了那份心意。这样也比埋在心里一辈子好多了。

　　遇见你的时候，你是四月檐上雨；

　　放弃你的时候，你是人间惊鸿客。

　　要是在一起了，苦恼和阻碍也多。倒不如远远观望他的幸福吧。她这样宽慰自己。

　　她买了一包炒豆子，悄悄又回到了山上。那天晚上她抱着那包豆子，泣不成声。

　　从那之后，她成了一个真正的道姑。像一个世外高人一样修道，不染尘俗，也不入世。

　　两年后，她便逝世了。她走得很安详，没有病痛折磨，身上也没有伤口，就像她的人生只允许她走到二十四岁一样，寿终正寝。

　　许是当年她抓他衣袖把他惊动了，又或是那桂花糕捂得不够热，抑或她的深情表达得太晚，他早已没有了机会把这感情细细消化。

　　他们都不是虔诚的信徒，一个还俗，一个心里住着个放不下的人。

　　她想过，“也许我当年该勇敢一点，在伞下挤进你的怀抱，或者那天晚上散步的时候吻你？如果那样做了，现在想来，你也许不会把我推开，而是拥我入怀中吧。”

　　“我的人生没有什么值得称道的事，家世不好，亲人一个个离开我，没有学业，没有事业，就连修道也没做到心无旁骛。”

　　她死后，一个门下的小道士为她立了一块墓碑。上面不知道该写些什么，便只拙劣地刻下了“佩玖”二字。

　　后来时间过得飞快，华阴城过了花季，又过了雨季。这样来来回回了七八个年头。

　　一个雨天，一白衣公子出现在道观前，打听佩玖道长在不在。门前徒弟说她仙逝很多年了，生前留了一句话，“生何其苦，死方极乐。”

　　那公子便把油纸伞放在她坟前，失魂落魄地走了。

　　那天，雨下得很大很大，像极了他成婚那日她转身涌出的泪水。

　　也许上天也会流着泪叹息，人间又多了一场错过。

　　已闻君，诸事安康，且遇佳人。

　　已闻君，得偿所想，料是如君所望。

　　若你早与他人两心同

　　何苦惹我错付了情衷

　　本就无缘分

　　全靠我死撑
(end:阅听文学)]]></description>
    </item>
        <item>
        <title><![CDATA[献给热爱二次元的你.mp4]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/461888]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 17 Nov 2017 19:34:52 -0800]]></pubDate>
        <description><![CDATA[File Size: 10.46 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/461888">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[毛毛 - 奇迹再现.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/461700]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 17 Nov 2017 06:41:58 -0800]]></pubDate>
        <description><![CDATA[File Size: 9.04 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/461700">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[js获取文件内容测试]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/460539]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Thu, 09 Nov 2017 04:19:17 -0800]]></pubDate>
        <description><![CDATA[  
function upload(input) {  
    //支持chrome IE10  
    if (window.FileReader) {  
        var file = input.files[0];  
        filename = file.name.split(".")[0];  
        var reader = new FileReader();  
        reader.onload = function() {  
            console.log(this.result)  
            alert(this.result);  
        }  
        reader.readAsText(file);  
    }   
    //支持IE 7 8 9 10  
    else if (typeof window.ActiveXObject != 'undefined'){  
        var xmlDoc;   
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");   
        xmlDoc.async = false;   
        xmlDoc.load(input.value);   
        alert(xmlDoc.xml);   
    }   
    //支持FF  
    else if (document.implementation && document.implementation.createDocument) {   
        var xmlDoc;   
        xmlDoc = document.implementation.createDocument("", "", null);   
        xmlDoc.async = false;   
        xmlDoc.load(input.value);   
        alert(xmlDoc.xml);  
    } else {   
        alert('error');   
    }   
}  
  
      ]]></description>
    </item>
        <item>
        <title><![CDATA[base64编码解码]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/460387]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Tue, 07 Nov 2017 16:56:08 -0800]]></pubDate>
        <description><![CDATA[
▼编码 解码▼

  
function Base64() {  
   
    // private property  
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  
   
    // public method for encoding  
    this.encode = function (input) {  
        var output = "";  
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;  
        var i = 0;  
        input = _utf8_encode(input);  
        while (i < input.length) {  
            chr1 = input.charCodeAt(i++);  
            chr2 = input.charCodeAt(i++);  
            chr3 = input.charCodeAt(i++);  
            enc1 = chr1 >> 2;  
            enc2 = ((chr1 & 3) > 4);  
            enc3 = ((chr2 & 15) > 6);  
            enc4 = chr3 & 63;  
            if (isNaN(chr2)) {  
                enc3 = enc4 = 64;  
            } else if (isNaN(chr3)) {  
                enc4 = 64;  
            }  
            output = output +  
            _keyStr.charAt(enc1) + _keyStr.charAt(enc2) +  
            _keyStr.charAt(enc3) + _keyStr.charAt(enc4);  
        }  
        return output;  
    }  
   
    // public method for decoding  
    this.decode = function (input) {  
        var output = "";  
        var chr1, chr2, chr3;  
        var enc1, enc2, enc3, enc4;  
        var i = 0;  
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");  
        while (i < input.length) {  
            enc1 = _keyStr.indexOf(input.charAt(i++));  
            enc2 = _keyStr.indexOf(input.charAt(i++));  
            enc3 = _keyStr.indexOf(input.charAt(i++));  
            enc4 = _keyStr.indexOf(input.charAt(i++));  
            chr1 = (enc1 > 4);  
            chr2 = ((enc2 & 15) > 2);  
            chr3 = ((enc3 & 3)  127) && (c < 2048)) {  
                utftext += String.fromCharCode((c >> 6) | 192);  
                utftext += String.fromCharCode((c & 63) | 128);  
            } else {  
                utftext += String.fromCharCode((c >> 12) | 224);  
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);  
                utftext += String.fromCharCode((c & 63) | 128);  
            }  
   
        }  
        return utftext;  
    }  
   
    // private method for UTF-8 decoding  
    _utf8_decode = function (utftext) {  
        var string = "";  
        var i = 0;  
        var c = c1 = c2 = 0;  
        while ( i < utftext.length ) {  
            c = utftext.charCodeAt(i);  
            if (c < 128) {  
                string += String.fromCharCode(c);  
                i++;  
            } else if((c > 191) && (c < 224)) {  
                c2 = utftext.charCodeAt(i+1);  
                string += String.fromCharCode(((c & 31) ]]></description>
    </item>
        <item>
        <title><![CDATA[PHP中CURL方法curl_setopt()函数的一些参数]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/460326]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 06 Nov 2017 05:32:26 -0800]]></pubDate>
        <description><![CDATA[bool curl_setopt (int ch, string option, mixed value)
curl_setopt()函数将为一个CURL会话设置选项。option参数是你想要的设置，value是这个选项给定的值。

下列选项的值将被作为长整形使用(在option参数中指定)：    
•    CURLOPT_INFILESIZE : 当你上传一个文件到远程站点，这个选项告诉PHP你上传文件的大小。
•    CURLOPT_VERBOSE : 如果你想CURL报告每一件意外的事情，设置这个选项为一个非零值。
•    CURLOPT_HEADER : 如果你想把一个头包含在输出中，设置这个选项为一个非零值。
•    CURLOPT_NOPROGRESS: 如果你不会PHP为CURL传输显示一个进程条，设置这个选项为一个非零值。注意：PHP自动设置这个选项为非零值，你应该仅仅为了调试的目的来改变这个选项。
•    CURLOPT_NOBODY : 如果你不想在输出中包含body部分，设置这个选项为一个非零值。
•    CURLOPT_FAILONERROR : 如果你想让PHP在发生错误(HTTP代码返回大于等于300)时，不显示，设置这个选项为一人非零值。默认行为是返回一个正常页，忽略代码。
•    CURLOPT_UPLOAD: 如果你想让PHP为上传做准备，设置这个选项为一个非零值。
•    CURLOPT_POST : 如果你想PHP去做一个正规的HTTP POST，设置这个选项为一个非零值。这个POST是普通的 application/x-www-from-urlencoded 类型，多数被HTML表单使用。
•    CURLOPT_FTPLISTONLY : 设置这个选项为非零值，PHP将列出FTP的目录名列表。
•    CURLOPT_FTPAPPEND : 设置这个选项为一个非零值，PHP将应用远程文件代替覆盖它。
•    CURLOPT_NETRC : 设置这个选项为一个非零值，PHP将在你的 ~./netrc 文件中查找你要建立连接的远程站点的用户名及密码。
•    CURLOPT_FOLLOWLOCATION : 设置这个选项为一个非零值(象 “Location: “)的头，服务器会把它当做HTTP头的一部分发送(注意这是递归的，PHP将发送形如 “Location: “的头)。
•    CURLOPT_PUT : 设置这个选项为一个非零值去用HTTP上传一个文件。要上传这个文件必须设置CURLOPT_INFILE和CURLOPT_INFILESIZE选项.
•    CURLOPT_MUTE : 设置这个选项为一个非零值，PHP对于CURL函数将完全沉默。
•    CURLOPT_TIMEOUT : 设置一个长整形数，作为最大延续多少秒。
•    CURLOPT_LOW_SPEED_LIMIT: 设置一个长整形数，控制传送多少字节。
•    CURLOPT_LOW_SPEED_TIME : 设置一个长整形数，控制多少秒传送CURLOPT_LOW_SPEED_LIMIT规定的字节数。
•    CURLOPT_RESUME_FROM : 传递一个包含字节偏移地址的长整形参数，(你想转移到的开始表单)。
•    CURLOPT_SSLVERSION: 传递一个包含SSL版本的长参数。默认PHP将被它自己努力的确定，在更多的安全中你必须手工设置。
•    CURLOPT_TIMECONDITION : 传递一个长参数，指定怎么处理CURLOPT_TIMEVALUE参数。你可以设置这个参数为TIMECOND_IFMODSINCE 或 TIMECOND_ISUNMODSINCE。这仅用于HTTP。
•    CURLOPT_TIMEVALUE : 传递一个从1970-1-1开始到现在的秒数。这个时间将被CURLOPT_TIMEVALUE选项作为指定值使用，或被默认TIMECOND_IFMODSINCE使用。
下列选项的值将被作为字符串：
•    CURLOPT_URL: 这是你想用PHP取回的URL地址。你也可以在用curl_init()函数初始化时设置这个选项。
•    CURLOPT_USERPWD : 传递一个形如[username]:[password]风格的字符串,作用PHP去连接。
•    CURLOPT_PROXYUSERPWD : 传递一个形如[username]:[password] 格式的字符串去连接HTTP代理。
•    CURLOPT_RANGE : 传递一个你想指定的范围。它应该是”X-Y”格式，X或Y是被除外的。HTTP传送同样支持几个间隔，用逗句来分隔(X-Y,N-M)。
•    CURLOPT_POSTFIELDS : 传递一个作为HTTP “POST”操作的所有数据的字符串。
•    CURLOPT_REFERER: 在HTTP请求中包含一个”referer”头的字符串。
•    CURLOPT_USERAGENT : 在HTTP请求中包含一个”user-agent”头的字符串。
•    CURLOPT_FTPPORT: 传递一个包含被ftp “POST”指令使用的IP地址。这个POST指令告诉远程服务器去连接我们指定的IP地址。这个字符串可以是一个IP地址，一个主机名，一个网络界面名(在UNIX下)，或是‘-'(使用系统默认IP地址)。
•    CURLOPT_COOKIE : 传递一个包含HTTP cookie的头连接。
•    CURLOPT_SSLCERT : 传递一个包含PEM格式证书的字符串。
•    CURLOPT_SSLCERTPASSWD : 传递一个包含使用CURLOPT_SSLCERT证书必需的密码。
•    CURLOPT_COOKIEFILE : 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式，或是堆存在文件中的HTTP风格的头。
•    CURLOPT_CUSTOMREQUEST : 当进行HTTP请求时，传递一个字符被GET或HEAD使用。为进行DELETE或其它操作是有益的，更Pass a string to be used instead of GET or HEAD when doing an HTTP request. This is useful for doing or another, more obscure, HTTP request. 注意: 在确认你的服务器支持命令先不要去这样做。下列的选项要求一个文件描述(通过使用fopen()函数获得)：
•    CURLOPT_FILE: 这个文件将是你放置传送的输出文件，默认是STDOUT.
•    CURLOPT_INFILE : 这个文件是你传送过来的输入文件。
•    CURLOPT_WRITEHEADER : 这个文件写有你输出的头部分。
•    CURLOPT_STDERR : 这个文件写有错误而不是stderr。用来获取需要登录的页面的例子,当前做法是每次或许都登录一次,有需要的人再做改进了.]]></description>
    </item>
        <item>
        <title><![CDATA[Hoaprox - Ngẫu Hứng - Remix.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/459753]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 27 Oct 2017 08:10:36 -0700]]></pubDate>
        <description><![CDATA[File Size: 6.23 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/459753">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[Hoaprox - Ngẫu Hứng.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/459740]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 27 Oct 2017 03:31:02 -0700]]></pubDate>
        <description><![CDATA[File Size: 2.47 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/459740">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[抽签]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/459219]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 20 Oct 2017 08:46:28 -0700]]></pubDate>
        <description><![CDATA[
.lTitle
{
    color:#25e;
    background-color:#8ce;
    border-radius:0.2em;
}

a
{
    text-decoration: none;
    color: #006cbf;
}
#drawedList
{
    border-radius: 0em;
    font-size: 4vmin;
    padding:10px;
    margin-top:-18px;
    box-shadow: 3px 3px 5px grey;
    background-color:#89f;
    color:#fff;
    background-image: linear-gradient(45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,transparent 75%, transparent);
}
#allLabels
{
    border-radius: 0em;
    font-size: 3vmin;
    padding:6px;
    margin-top:0px;
    box-shadow: 3px 3px 5px grey;
    background-color:#89f;
    background-image: linear-gradient(45deg, rgba(255, 255, 255, .2) 25%, transparent 25%,transparent 50%, rgba(255, 255, 255, .2) 50%, rgba(255, 255, 255, .2) 75%,transparent 75%, transparent);
    color: white;
    display: none;
    transition: max-height 3s;
}
.checkingLebel
{
    border-radius: 0.2em;
    box-shadow: inset 0px 0px 3px 2px #2196F3;
    color: #001f7b;
}
li
{
    list-style:none;
}
#labelsSelect
{
    float:right;
    height:30px;
    background-color:#5ad;
    border: none;
}

#drawCount
{
    float: right;
    margin: 0px;
    background-color: #2196F3;
    color: white;
    min-width: 30px;
    text-align: center;
    border-radius: 0.2em;
}
#theLabel
{
    border-radius: 0.3em;
    font-size:28px;
    padding:10px 8px 8px 8px;
    line-height:32px;
    background-color:#eee;
    border:1px solid #9a9; 
    float:right;
    display:none;
    max-width:56%;
    margin-top:-20px;
}
#drawButton
{
    background-color:#fff;
    border-radius:0.3em;
    font-size:60px;
    margin-right:0px;
}
#labelsInput
{
    width:98%;
    height:100px;
    font-size:16px;
    max-width: 100%;
}
#time
{
    text-align: center;
    position: fixed;
    bottom: 0%;
    left: 50%;
    transform: translate(-50%, 0%);}


    
        抽签名单(用空格隔开)：
        
            
                选择抽签名单
            
            
                软件一班
            
            
                软件二班
            
            
                软件一班男生
            
            
                软件一班女生
            
            
                扑克
            
            
                二抽
            
            
                四抽
            
            
                六抽（骰子）
            
            
                八抽
            
            
                十抽
            
            
                掷硬币
            
        
    
    输入抽签名单，以空格隔开
    
    抽取次数：
    
    |
    
    可重复抽取同一签  |
    
    跳过动画  |
    
        重来
    







    抽！





    已抽到的签：
    
        点此复制
    
    
        0
    







    drawCount=0;
drawTimes=0;
function draw(i)
{//抽签函数
    drawAllTimes=document.getElementById("drawAllTimes").value;
    isSkip=document.getElementById("isSkip").checked;
    document.getElementById("drawButton").href="javascript:;";//处理抽签按钮
    var labelsList=document.getElementById("labelsInput").value;//从textarea获取抽签列表
    if (!labelsList || labelsList=="输入抽签名单，以空格隔开")
    {
        tipNoLabel();
        return false;
    }
    labelsList = labelsList.replace(/\n/g," "); //将换行符替换为空格
    labels = labelsList.split(' ');//按空格分割字符串为数组
    var timesRun = 0;
    var interval = setInterval(function()
    {
        timesRun ++;//滚动计数
        if(timesRun==1)
        {
            if(!isSkip)
            {
                document.getElementById("allLabels").style.display = 'block';//显示滚动窗口
                document.getElementById("allLabels").style.maxHeight = '100%';//显示滚动窗口
                gdcs=Math.random()*labels.length*1.2+12;
            }
            else
            {
                gdcs=2;
                if(document.getElementById("allLabels").style.display == 'block')
                {
                    document.getElementById("allLabels").style.display = 'none';
                }
            }
            document.getElementById("theLabel").style.display = 'block';//显示滚动窗口
            if(!drawCount || isSkip)
                labelsNo=Math.floor(Math.random() * labels.length);
        }
        if(!drawAllTimes)
        {
            stopDraw();
            clearInterval(interval);
        }
        labelsNo=labelsNo%labels.length;
        if(!isSkip)
            printAllLabels();
        theLabel=printLabel = labels[labelsNo];
        if(timesRun+1 >= gdcs && timesRun < gdcs)//达到滚动次数
        {
            if (!document.getElementById("reDraw").checked)
            {//若不可重复抽取一签
                labelsList = labelsList.replace(theLabel,"");//将本次抽到的签替换为空
                labelsList = labelsList.replace("  "," ");//处理空格
                labelsList = labelsList.replace(/(^\s*)|(\s*$)/g, "");
                document.getElementById("labelsInput").value = labelsList;
            }
            clearInterval(interval);
            if(drawTimes < drawAllTimes-1)
            {
                drawTimes++;
                draw();
            }
            else
            {
                stopDraw();
            }
            console.log("第"+(++drawCount) + "次抽取：" + theLabel);
            document.getElementById("drawCount").innerHTML = drawCount;//写入已经抽取标签
            document.getElementById("drawedList").innerHTML = theLabel + " " + document.getElementById("drawedList").innerText;//写入已经抽取标签
            printLabel = ""+printLabel+"";
        }
        else
        {
            labelsNo++;
        }
        document.getElementById("theLabel").innerHTML = printLabel;
        if(!isSkip)
        {
            if(timesRun=gdcs-7)//逐渐减速滚动
            {
                console.log("减速"+(7-(gdcs-timesRun))*140)
                delay((7-(gdcs-timesRun))*140);
            }                       
        }
    }, 80);
}
function labelsSelect()//切换抽签列表 初始化
{
    var objS = document.getElementById("labelsSelect");
    var labelsList = objS.options[objS.selectedIndex].getAttribute('labelsList');
    document.getElementById("labelsInput").value = labelsList;
    document.getElementById("theLabel").style.display = 'none';  //隐藏本次抽取标签
    document.getElementById("allLabels").style.display = 'none';  //隐藏本次抽取标签
    document.getElementById("drawedList").innerHTML = "";//清空已经抽取标签
    document.getElementById("drawCount").innerHTML = 0;//写入已经抽取标签
    drawCount=drawAllTimes=0;
    theLabel=allLabels="";
    stopDraw();
    console.log("清空/切换了抽签名单");
}
function stopDraw()//停止抽取 初始化
{
    drawTimes=0;
    document.getElementById("drawButton").href="javascript:draw('1');";
}
function tipNoLabel()
{
    alert("抽签名单为空");
    stopDraw();
    document.getElementById("drawButton").href="javascript:draw('1');";
    return;
}
function delay(dTime)//自定义延迟函数
{
    var yTime = new Date().getTime();
    var nTime = yTime;
    for(;yTime+dTime>nTime;nTime = new Date().getTime());
}
function printAllLabels()//打印抽签列表 实现滚动效果
{
    var x;
    var allLabels="";
    var printLabel;
    for (x in labels)
    {
        if(x==labelsNo)
            printLabel=""+labels[x]+"";
        else
            printLabel=labels[x];
        allLabels+= printLabel + " ";
    }
    document.getElementById("allLabels").innerHTML= allLabels;
}
function copyText(id)//复制文本
{
    document.getElementById("copyInput").style.display = 'block';  //隐藏本次抽取标签
    var text = document.getElementById(id).innerHTML;
    var input = document.getElementById("copyInput");
    input.value = text; // 修改文本框的内容
    console.log("复制了内容:\n"+text);
    input.select(); // 选中文本
    document.execCommand("copy");// 执行浏览器复制命令
    document.getElementById("copyInput").style.display = 'none';  //隐藏本次抽取标签
    document.getElementById("theLabel").innerHTML="复制成功";
}
function getTime()//动态显示时间
{
    time=new Date();
    year=time.getFullYear();
    month=time.getMonth()+1;
    month=month>=10?month:'0'+month;
    day=time.getDate();
    day=day>=10?day:'0'+day;
    hour=time.getHours();
    hour=hour>=10?hour:'0'+hour;
    minute=time.getMinutes();
    minute=minute>=10?minute:'0'+minute;
    second=time.getSeconds();
    second=second>=10?second:'0'+second;
    dateTime=year+'-'+month+'-'+day+' '+hour+':'+minute+':'+second;
    document.getElementById("time").innerHTML = dateTime;
}
getTime();
setInterval(getTime,1000);
/*******************
******制作：KX******
******请勿抄袭******
******保留版权******
******20180315*****/

]]></description>
    </item>
        <item>
        <title><![CDATA[电脑办公快捷键]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/entry/458943]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Tue, 17 Oct 2017 03:01:17 -0700]]></pubDate>
        <description><![CDATA[电脑快捷键
Ctrl+S 保存
Ctrl+W 关闭程序
Ctrl+N 新建
Ctrl+O 打开
Ctrl+Z 撤销
Ctrl+F 查找
Ctrl+X 剪切
Ctrl+C 复制
Ctrl+V 粘贴
Ctrl+A 全选
Ctrl+[ 缩小文字
Ctrl+] 放大文字
Ctrl+B 粗体
Ctrl+I 斜体
Ctrl+U 下划线
Ctrl+Shift 输入法切换
Ctrl+空格 中英文切换
Ctrl+回车 QQ号中发送信息
Ctrl+Home 光标快速移到文件头
Ctrl+End 光标快速移到文件尾
Ctrl+Esc 显示开始菜单
Ctrl+Shift+&lt; 快速缩小文字
Ctrl+Shift+&gt; 快速放大文字
Ctrl+F5 在IE中强行刷新
Ctrl+拖动文件 复制文件
Ctrl+Backspace 启动\关闭输入法
Ctrl+Shift+拖动文件 创建快捷方式
Alt+空格+C 关闭窗口
Alt+空格+N 最小化当前窗口
Alt+空格+R 恢复最小化窗口
Alt+空格+X 最大化当前窗口]]></description>
    </item>
        <item>
        <title><![CDATA[毛不易 - 像我这样的人.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/457867]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 06 Oct 2017 00:43:50 -0700]]></pubDate>
        <description><![CDATA[File Size: 6.55 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/457867">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[毛不易 - 消愁.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/456973]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 02 Oct 2017 02:25:20 -0700]]></pubDate>
        <description><![CDATA[File Size: 4.26 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/456973">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[Matteo - Panama.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/456972]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Mon, 02 Oct 2017 02:13:18 -0700]]></pubDate>
        <description><![CDATA[File Size: 7.67 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/456972">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[赵方婧 - 尽头.mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/456198]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 29 Sep 2017 05:03:55 -0700]]></pubDate>
        <description><![CDATA[File Size: 9.81 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/456198">Meta</a>]]></description>
    </item>
        <item>
        <title><![CDATA[金志文 - 远走高飞 (独唱版).mp3]]></title>
		<link><![CDATA[https://kxiang.wodemo.net/file/454861]]></link>
		<dc:creator><![CDATA[KX (@kxiang)]]></dc:creator>
		<pubDate><![CDATA[Fri, 15 Sep 2017 22:25:04 -0700]]></pubDate>
        <description><![CDATA[File Size: 9.29 MiBWord Count: 6,926,851&nbsp;|&nbsp;<a href="https://kxiang.wodemo.net/meta/454861">Meta</a>]]></description>
    </item>
    </channel>
</rss>
