博文

词法分析(2007-03-20 11:09:00)

摘要:  词法分析程序设计   设计目的   了解词法分析程序的基本构造原理,掌握词法分析程序的手工构造及自动构造方法 初步体验软件开发工作的步骤和方法 设计内容 根据PASCAL 语言的说明语句形式,用手工及自动方法构造一个对说明语句进行词法分析 数据可以从键盘或文件输入,数据形式: “const con=23,sum=23.3,ch=’f ’,str=”dfj”;” 的常量说明串进行处理,分析常量说明串的常量名,常量类型,以及常量值,并对各类型进行统计 设计要求 1,  输入的常量以分号结束,当然其后可以是空格,制表符,或回车符   2,  能根据输入判断是否为合法的常量定义串   3,  识别出常量名,常量名必须是标识符,定义为以字母开头由字母数字或下划线组成   4,识别常量类型,包括整型 int ; 字符型 char ; 字符串 string ; 实型 float; 布尔型 bool;          整型:单独一个0 合法,象 012 不合法,必须是数字,大小不限制          字符型:不能多于一个字符,字符任意          字符串:长度不限,字符任意                浮点型:标志为含一个 “.” 符号,本程序不处理科学计数形式         布尔型:true ,false ,不区分大小写 5,统计各类型常量的个数   6,以二元组(类型,值)的形式输出各常量的类型和值   7,对常量定义错误进行处理   代码有详细的注释,有流程图 !        点击下载......

阅读全文(4098) | 评论:1

单词统计(2007-03-20 11:06:00)

摘要:/*
编写一个程序要求用户输入一段文字,然后按照每个单词的开头字母对这段文字分类统计单词的数量并排序输出。例如,一次运行程序情况如下:
Please input a passage:
The topic of this assignment is about array, pointer and string. In particular, the goal of the assignment is to give you experience for dividing programs into modules and using the pointer for manipulation of string data.
Words begin with t: 7
Words begin with a: 6
Words begin with i: 4
Words begin with p: 4
Words begin with o: 3
Words begin with d: 2
Words begin with f: 2
Words begin with g: 2
Words begin with m: 2
Words begin with s: 2
Words begin with e: 1
Words begin with u: 1
Words begin with y: 1 Total words: 37
 单词必须为字母开头
 以回车为输入结束标记
*/
#include <stdio.h>
#include <ctype.h> int main(){
    int i,j,k,max,flag = 0,sum = 0;
    int word[26];
    char c;     for (i = 0; i < 26; i++)
        word......

阅读全文(3444) | 评论:1

简单的(2007-03-20 10:56:00)

摘要:/* Problem Deion 8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天? Input 输入包括多个测试实例.每个测试实例包括2个整数M, k,(2 <= k <= M <= 1000).M = 0, k = 0代表输入结束. Output 对于每个测试实例输出一个整数,表示M元可以用的天数。 Sample Input
2 2
4 3
0 0
Sample Output
3
5 */ #include <stdio.h>
#include <malloc.h> typedef struct node{
    int m;
    int k;
    int d;
    struct node*next;
}NODE; int main(){
    NODE *head,*temp;     head = temp = (NODE*)malloc(sizeof(NODE));
    temp->d = 0;
    while(1){
        scanf("%d %d",&temp->m,&temp->k);
        if(!temp->m && !temp->k)
            break;
        else{
     &......

阅读全文(2640) | 评论:0

利用 dos 中断写密码程序(2007-03-20 10:46:00)

摘要:/* 编译器 TC */ #include <stdio.h>
#include <dos.h> void main(void){
 union REGS inregs,outregs;
 int index;
 char password[255];  do{
  printf("Enter password:");
  index = 0;
  do{ inregs.h.ah = 8; /* int 21h 功能 8 键盘输入无回显 */
   intdos(&inregs,&outregs);
   if(outregs.h.al == '\r')
    password[index] = NULL;
   else if(outregs.h.al == '\b'){
    if(index){
     index --;
     printf("\b \b");
    }
    else
     printf("\a");
    continue;
   }
   else{
    printf("*");
    password[index] = outregs.h.al;
   }
   if(index == 255){
    password[index-1] = NULL;
    break;
   }
&......

阅读全文(4097) | 评论:0

编程高手是怎样炼成的(2007-03-20 10:42:00)

摘要:首先声明,偶不是高手,以免引起不必要的冷嘲热讽,呵呵。

估计很多的朋友在很小的时候就看过奥斯特洛夫斯基同学的《钢铁是怎样炼成的》,偶小时候在农村混,看的最多是各式各样的牛屎以及长得极象牛屎的山头,这些所谓的名著偶直到大学才有机会拜读,但说实话,偶是个俗人,还是更喜欢看一些痞子写的文字或带COLOR的BOOKS。偶之所以写这么个主题,主要是太多的朋友给偶发EMAIL或在VCHOME.NET提问,偶其实也与大家一样为生活而奔波,因此没有时间一一作答,在这作一次回答,还望海涵。

高手是一个哗众取宠的词汇,世上本来并没有高手,说的人多了也就有了高手,我看程序员只有老少之分,并无高低之分,比如偶就是一个老程序员,因此作为程序员,我们追求的应该是写出有用有价值的软件产品,呵呵,废话少说,切入正题吧!

1. 迷恋 + 热情;
爱因斯坦同学说:兴趣是最好的老师,这就是说一个人一旦对某事物有了浓厚的兴趣,就会主动去求知、去探索、去实践,并在求知、探索、实践中产生愉快的情绪和体验,并不断地激发学习的动力,这种说法很美妙,众所周知,程序员是一种有点乏味有点枯燥有点辛苦的技术工作,要能坚持下去,并能做得很好,没有迷恋没有热情是很难很难的,偶就很迷恋,迷恋C++,迷恋computer,迷恋network,偶迷恋for、if、while、case等等就如同歌手迷恋五线谱的小蝌蚪一样,我觉得程序代码真是无所不能,简简单单的几行代码就能实现丰富多彩的功能,你难道不觉得很NB吗?呵呵,因此,作为一名老程序员,我建议年轻的程序员们一定要对coding保持迷恋保持热情,那样我们才有可能做得更好。

2. 在项目中磨练与成长;
很多朋友经常问:他看了很多书,也做了较多的练习,但感觉水平并没有得到提高,这是为什么?呵呵,我觉得每个人不同,有些程序员通过看书,也能学到很多东东,但我个人觉得最好的提高方法,还是要参与到某一项目中去锻炼,从设计到开发到测试到维护一整套的磨练流程,项目是有周期的,有周期就有压力,有压力才能不分昼夜地去学习与实现,学习的效果也会很显著与深刻。

3. 数不胜数的加班;
偶这里所讲的加班并不单指工作上的OT(即overtime),而更多的是学习上的OT,偶认为程序员学习的黄金时间在毕业后的前三年,这三年......

阅读全文(2495) | 评论:3

分治法(2007-03-20 10:37:00)

摘要: /*   分治法简介
 
    任何一个可以用计算机求解的问题所需的计算时间都与其规模
有关。问题的规模越小,越容易直接求解,解题所需的计算时间也
越少。例如,对于n个元素的排序问题,当n=1时,不需任何计算。
n=2时,只要作一次比较即可排好序。n=3时只要作3次比较即可,…。
而当n较大时,问题就不那么容易处理了。要想直接解决一个规模
较大的问题,有时是相当困难的。     分治法的设计思想是,将一个难以直接解决的大问题,分割成一
些规模较小的相同问题,以便各个击破,分而治之。     分治策略是:对于一个规模为n的问题,若该问题可以容易地解决
(比如说规模n较小)则直接解决,否则将其分解为k个规模较小的
子问题,这些子问题互相独立且与原问题形式相同,递归地解这些
子问题,然后将各子问题的解合并得到原问题的解。这种算法设计
策略叫做分治法。     如果原问题可分割成k个子问题,1<k≤n ,且这些子问题都可解
并可利用这些子问题的解求出原问题的解,那么这种分治法就是可行
的。由分治法产生的子问题往往是原问题的较小模式,这就为使用递
归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问
题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容
易直接求出其解。这自然导致递归过程的产生。分治与递归像一对孪
生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。     分治法所能解决的问题一般具有以下几个特征:
1) 该问题的规模缩小到一定的程度就可以容易地解决
2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子
   结构性质。
3) 利用该问题分解出的子问题的解可以合并为该问题的解;
4) 该问题所分解出的各个子问题是相互独立的,即子问题之间不包含公
   共的子子问题。     上述的第一条特征是绝......

阅读全文(5725) | 评论:0

文件加密器(2007-03-20 10:27:00)

摘要:加密器说明                          点击下载原码 概    序:  常常有一些重要的信息需要记录,这些信息我们 
     不希望别人知道,比如 QQ密码,邮箱密码,银行
     帐号,重要算法的原代码,写给女朋友的情书等等。
     有点安全意识的人都不会将所有的密码设成相同。
     但是这么多的密码常常容易忘记,我就丢失了好
     几个密码。就冲这点我应该为自己写一个,现在
            终于出炉了,呵呵 …… 加密算法:  本程序对文件内容加密,首先由用户输入原始密码
      然后通过 DES 算法(替换+排序) 将该密码转换为
     128(可以更长) 位的 DES 密文,该密文放在加密后的
     文件中,供解密时用,任何人可以看到该密文,但是
     想要通过该密文获取原始密码那是不可能的 !然后
     由原始密码和 DES 密文产生第一个加密因子passKey
     passKey用作随机数种子产生一个数机数 temp 作为
     第二个加密因子。将temp异或passKey后的结果存入
 &n......

阅读全文(3937) | 评论:0

用C绘制正弦函数图(2007-03-20 10:19:00)

摘要:/*  好久没上博客了,最近在学 STL 和 MFC 他们让我有点手忙脚乱
尤其是 MFC ,以前用 C 写界面发好几个小时写出来的也不能令
人满意,而用 MFC 发不到一分钟就可以弄出一个大家都熟悉的
东西。C 不是用来弄界面的,C是用来写高效程序,是用来写 MFC
搞不出来的东西的,我应该这样想。学了一年多的面向过程方法
现在忽然要转到面向对象真的有点不自然。本来不想再搞C,一心
一意用面向对象解决问题,这学期开了计算机图形学,于是我又
弄TC了。象放不下旧情人,我真的放不下C,喜欢她的灵活,喜欢
她的指针,外面都是招 JAVA / C++ / C# / .NET …… 一大堆令
人眼发撩乱的东西,也许C的时代过去了,不过我放不下,我仍将
继续学C,学C更高级的东西,甚至学点汇编,搞混合编程。不为
饭碗,不问将来 ,只因为自己喜欢……  欢迎加入 编程爱好者群 : 28011342        
    AUTHOR : 江南孤峰  
    以下程序在 TC 下编译,在屏幕上绘制正弦曲线
*/
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <graphics.h> void DrawCoordinate(void){
    char text[6];  outtextxy(50,50,"Draw math function sin as followed : ");
 line(100,100,100,380);
 line(99,100,99,380);
 sprintf(text,"%c",24); /* 向上的箭头 */
 outtextxy(96,100,text);
 strcpy(text,......

阅读全文(5390) | 评论:0

网络黑话词典(2007-03-20 09:51:00)

摘要:偶:我
kick your ass:踢你的PP
FT,分特:faint的简称,晕倒。
统一:刷墙,扫楼的同义词。也就是整个版面都是你的回复,一种被谴责的行为.XXXX的说:一种动词后置,比如吃饭的说
XXXXing:XXXX进行中,正在XXXX。比如上网ing MM:妹妹
GG:哥哥
DD:弟弟
JJ:姐姐 鸡鸡
PLMM:漂亮美眉,浮云
XDJM:兄弟姐妹
PFPF:佩服佩服
PP:照片,但如果是说打PP,那就是kick your ass的意思了
BT:变态。和SOHU的其他版块相比,校园版是个BT出没的地方扁他(她、它)
SL:色狼。SOHU的特点是,狼多也MM多
BL:玻璃,不是指一种易碎品,而是同性恋
BC:白痴
YW:阳痿,不举
RY:人妖
LM:流氓
YY:意淫
PG:屁股
GF:girl friend,女友
BF:boy friend,男友
kao,靠,拷:粗口,慎用
MD:妈的,粗口,特别慎用!
TMD:, *** ,粗口,特别慎用!
TNND:他奶奶的,粗口,特别慎用!
JJWW:唧唧歪歪,指人说话的样子
SJB:神经病
PMP:拍马屁
MPJ:马屁精
kick:扁
slap:打耳光
KH:葵花,就是练葵花宝典的高手,SOHU某高手已练至化境,人皆不呼其名,而直呼KH。
KHBD:葵花宝典
PXJF:辟邪剑法,源于KHBD,KH专用的剑法
SM:Sadism & Masochism的缩写,性虐待或指(被)虐待狂
JS:奸商
SP:support,支持
的微:一种语气助词,KH专用
呼呼,猪猪:睡觉
稀饭:喜欢
果酱:过奖
BXCM:冰雪聪明
LOL:Laugh Out Loud,大笑
KFC:Kxxx & Fxxx & Cxx,要是和某人有仇,就KFC他吧
PK:player kill,砍人,攻击,也可解释为先批后K
btw:by the way,顺便说一......

阅读全文(2330) | 评论:0

xp帐户管理的设计失误(2007-03-20 09:47:00)

摘要:一般来说修改密码是需要提供正确的旧密码,否则是不允许修改的,XP中如果从控制面版里的用户帐户更改密码则要求提供旧密码,但如果从计算机管理的“本地用户和组”修改密码则不需要提供旧密码,这是XP设计上的一个失误,不知道其它版本的Window系统是不是一样,以下是截图
......

阅读全文(3044) | 评论:0