Tag: 代码预览模式: 普通 | 列表

入门篇:Javascript

上一篇日志里,提到许多专业技术名称。而其实,熟悉它们并不难,只要你有了一定的编程思想,学习新的技术非常容易入门。

今天介绍Javascript。
为了减少多余的工作量,这里不再赘述各种概念。

首先,Javascript是网络的脚本语言(脚本语言是一种轻量级的编程语言)。
它不同于Java,Java(由太阳微系统公司开发)很强大,同时也是更复杂的编程语言,就像同级别的 C 和 C++。

Javascript在HTML页面中的位置

位于 head 部分的脚本:

当脚本被调用时,或者当事件被触发时,脚本就会被执行。当你把脚本放置到 head 部分后,就可以确保在需要使用脚本之前,它已经被载入了。

XML/HTML代码
  1. <html>  
  2. <head>  
  3. </head>  
  4.   
  5. <body>  
  6. <script type="text/javascript">  
  7. ....   
  8. </script>  
  9. </body>  
  10. </html>  

位于 body 部分的脚本:

在页面载入时脚本就会被执行。当你把脚本放置于 body 部分后,它就会生成页面的内容。

XML/HTML代码
  1. <html>  
  2. <head>  
  3. </head>  
  4.   
  5. <body>  
  6. <script type="text/javascript">  
  7. ....   
  8. </script>  
  9. </body>  
  10. </html>  


知道了放置Javascript的位置之后,我们可以体验一下简单的Javascript!

XML/HTML代码
  1. <html>  
  2. <head>  
  3. </head>  
  4.   
  5. <body>  
  6. <script type="text/javascript">  
  7. document.write("你好,我是Matrixkey!");   
  8. </script>  
  9. </body>  
  10. </html>  

根据 Javascript 标准,分号是可选的,浏览器把行末作为语句的结尾。
不过大多数人都认为在每行语句的结尾加上一个分号,是一个好的编程习惯。

Javascript 注释

和C#一样,单行的注释以 // 开始,多行注释以 /* 开头,以 */ 结尾。

XML/HTML代码
  1. <html>  
  2. <head>  
  3. </head>  
  4.   
  5. <body>  
  6. <script type="text/javascript">  
  7. // 这行代码输出Matrixkey:   
  8. document.write("Matrixkey");   
  9. /* 第一行输出1798   
  10.    第二行输出4772 */   
  11. document.write("<p>This is a paragraph</p>");   
  12. document.write("<p>This is another paragraph</p>");   
  13. </script>  
  14. </body>  
  15. </html>  

查看更多...

Tags: Javascri&#112;t 代码 程序 脚本

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 33

凌晨3点54分。

刚刚发过一遍,很傻X地消失了。

整个晚上,完成了工作指导报告和三级联动。昨天跟李老头没白聊啊,教授果然是有墨水的,经他一提点,居然真拿下了三级联动,纯C#版本哦。虽然无法实现无刷新,但依旧很爽。陈可哇,上学期我们的作品就差一个三级联动,不然就满分了。

先放图,睡觉,白天醒来补日志。武侠半夜醒来看视频版唐朝兴与亡,武媚娘……

三级联动效果图

 

 

 

 

 

****************************************俺醒了****************************************

省市区数据库文件日志结尾会放出。现在补日志。
3个DropDownList控件分别对应省市区……

******************************哈哈大笑庆祝IIS终于完整******************************

在写完“3个DropDownList控件分别对应省市区”这句后,准备贴上相关HTML代码。发现PJBlog的代码高亮一如既往地很2B,难看以及灵活性低得令人发指。于是发生了以下事件。

发现PJBlog系统原代码高亮太2太难看   ===》   想下个代码高亮又好看的插件
可能更新的PJBlog版本可以顺手点   ===》   去官网查看PJBlog版本有无更新
果然有更新,看了回复更新后出事故者不少   ===》   不敢随便把更新文件覆盖到服务器
想在本地先更新试试   ===》   自大2重装系统后IIS一直无法安装成功
利用IIS包重装IIS   ===》   不成功
看到“必须在IIS详细信息里选中FromPage组建”的建议   ===》   尝试,不成功2
坚信是RP问题,卸载重装   ===》   尝试,不成功3
照着一帖子设置并不成功的IIS信息   ===》设置完成,测试,不成功4
看到“检查world wild web publishing 服务是否启动”的建议   ==》没启动,尝试启动,失败
搜索无法启动原因   ===》   找到罪魁祸首

卧了个槽,罪魁祸首是360。准确地说,是曾经用360自动更新补丁时安装的一个XP安全补丁:KB939373补丁。它会强制禁用world wild web publishing 服务。
删除它,测试IIS,成功。

还记得为什么要装IIS不?为了在本地尝试更新PJBlog,希望代码高亮可以完美些。
用FlashFXP下载服务器所有文件,遇到下载高峰,频繁断开连接。
……
……
等好了再说。生活就是这样充满了挑战啊[127]


****************************************随便写几句****************************************

又是一个忙到凌晨3点多的夜晚。
空闲时一天能谁18小时,兴致上来时两天都不睡。
这样的生活会很没有安全感吧,对我而言,有更多的存在感。

凌晨3点半,在本地测试完对PJBlog的版本更新和测试后,终于放心地在服务器端更新PJBlog版本至V3.2.8.352 。
梦想成真哦,最新的版本做了很多对BUG的修正,更要紧的则是人性化的完善,比如代码高亮,不仅简便了,而且漂亮了!

****************************************三级联动正文****************************************
3个DropDownList控件,分别用来绑定省,市,区。
主要特别注册的是,因为当选中“省”,要触发加载“市”的事件,选中“市”则触发加载“区”事件,所以“省”和“市”下拉控件的AutoPostBack属性必须设置为True。

XML/HTML代码
  1. <td>  
  2.     <asp:DropDownList ID="Sheng" runat="server" AutoPostBack="True" OnSelectedIndexChanged="Sheng_SelectedIndexChanged">  
  3.     </asp:DropDownList>  
  4.       省   
  5.      <asp:DropDownList ID="Shi" runat="server" AutoPostBack="True" OnSelectedIndexChanged="Shi_SelectedIndexChanged">  
  6.     </asp:DropDownList>  
  7.       市   
  8.      <asp:DropDownList ID="Qu" runat="server">  
  9.     </asp:DropDownList>  
  10.       区   
  11. </td>  

 

 

分别为加载省,加载市,和加载区编写绑定事件。

C#代码
  1. /// <summary>   
  2. /// 三级联动,绑定省   
  3. /// </summary>   
  4. public void mat()   
  5. {   
  6.     myconn.Open();   
  7.     string sql_sheng = "select name from province";   
  8.     SqlCommand cmd = new SqlCommand(sql_sheng,myconn);   
  9.     SqlDataReader dr = cmd.ExecuteReader();   
  10.     while(dr.Read())   
  11.     {   
  12.         Sheng.Items.Add(dr["name"].ToString());   
  13.     }   
  14.     dr.Close();   
  15.     myconn.Close();   
  16. }   
  17. /// <summary>   
  18. /// 省选定,加载市   
  19. /// </summary>   
  20. public void rix()   
  21. {   
  22.     string sql_shi = "select city.code,city.name from city,province where province.code = city.provinceID and province.name = '"+Sheng.SelectedItem.Text+"'";   
  23.     SqlCommand cmd = new SqlCommand(sql_shi,myconn);   
  24.     SqlDataReader dr = cmd.ExecuteReader();   
  25.     while(dr.Read())   
  26.     {   
  27.         Shi.Items.Add(dr["name"].ToString());   
  28.     }   
  29.     dr.Close();   
  30. }   
  31. /// <summary>   
  32. /// 市选定,加载区   
  33. /// </summary>   
  34. public void key()   
  35. {   
  36.     string sql_qu = "select area.name from area,city where city.code = area.cityid and city.name = '" + Shi.SelectedItem.Text + "'";   
  37.     SqlCommand cmd = new SqlCommand(sql_qu, myconn);   
  38.     SqlDataReader dr = cmd.ExecuteReader();   
  39.     while (dr.Read())   
  40.     {   
  41.         Qu.Items.Add(dr["name"].ToString());   
  42.     }   
  43.     dr.Close();   
  44. }  

 

设计加载省,市,和区的时间先后顺序。注意,两行“//标记”的代码,是为了防止“省”被改变后,“市”控件上原先有的数据依旧存在。例如,已经选定 浙江省,杭州市,下沙区;当把浙江省修改成北京市,在“市”控件中,“杭州市”仍存在。加上这两行代码,这个问题得到解决。

C#代码
  1. /*在页面加载时,从数据库载入省列表到“省”下拉控件*/  
  2. protected void Page_Load(object sender, EventArgs e)   
  3.     {   
  4.         if (!IsPostBack)   
  5.         {   
  6.              mat();   
  7.         }   
  8.     }   
  9.   
  10.   
  11. /*在选定“省”之后,即“省”被改变后*/  
  12. /*从数据库载入市列表到“市”下拉控件*/  
  13. protected void Sheng_SelectedIndexChanged(object sender, EventArgs e)   
  14.     {   
  15.         Shi.Items.Clear();  //标记   
  16.         myconn.Open();   
  17.         rix();   
  18.         myconn.Close();   
  19.     }   
  20.   
  21.   
  22. /*在选定“市”之后,即“市”被改变后*/  
  23. /*从数据库载入区列表到“区”下拉控件*/  
  24. protected void Shi_SelectedIndexChanged(object sender, EventArgs e)   
  25.     {   
  26.         Qu.Items.Clear();  //标记   
  27.         myconn.Open();   
  28.         key();   
  29.         myconn.Close();   
  30.     }  

 

排版有点乱哈,将就着看了。附上数据库文件。

点击下载此文件

Tags: 毕业设计 网站 三级联动 代码 数据库 小敏 C# ASP.NET IIS

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 98

实验13(文件更新)

俩个下午,8节课
回寝室折腾到10点
丁帅老师布置的实验13所要求的功能全部完成
至此,深刻体会了公共类和CONFIG文件的牛B之处
我靠要是晓得还能这样写程序我还至于傻傻一句一句琢磨么
再次膜拜,并且!
浅显地认识到了写代码之前流程和结构的规划的重要性
什么叫面向对象?
李三,李二,李曼祖孙三代
面向对象就是修改了李三的姓氏比如改成奥特
李二,李曼自动变成奥特二,奥特曼
可见公安局户籍管理工作全是面向过程操作啊
改了爷爷的姓氏,还得改老爸和儿子的姓氏

恩,今天这个比喻很有模范作用

不断地忙,忙到累忙到困,累了困了就睡觉。
不思考,不发呆,不给上帝发笑的机会。
也不给自己痛的机会。

PS,经蒋梁提醒,订单管理部分界面不符要求,重做上传

查看更多...

Tags: 程序 代码 ASP.NET 此去经年,雨水滂沱。

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 131

JAVA实现:螺旋输出矩阵

30号的那篇<-----螺旋输出二维数组----->日志,很粗略地尝试了一圈圈从外到内农村包围城市的思路,但是由于对象是二维数组里的元素,行数和列数可相等也可不等的不定因素直接让题目很抽象地难了很多。红字的意思是我很主观的描述,意思大致是你需要双重考虑行数和列数,而这俩个元素又不一定相等,你会下意识地觉得麻烦,生活中的实例就是正方形的面积算法肯定比长方形的面积算法来的简单,前者只需要边长1个参数,而后者需要长和宽2个参数。
那天写完日志后想了想,觉得实现某方法通用于任意数组螺旋输出可能并不成立。上午上课的时候蒋梁同学说题目应该是矩阵,不是数组。
这立马让题目简单了很多,事实上我那时还不确定,是否存在这样一个函数,能够让任意数组螺旋输出。但是矩阵的话,我非常的确定,肯定存在这样一个函数。
课堂上。
我们以一个4阶矩阵作为实例来模拟...

查看更多...

Tags: 程序 JAVA 代码 趣题

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 226

JAVA实现:螺旋输出二维数组

中午吃饭的时候蒋梁说到了数组的螺旋输出,帮老雷写完注释后就趁热打铁写了一下。
螺旋输出的意思是:
1 2 3
4 5 6      《===该二维数组输出的方式为 :1 2 3 6 9 8 7 4 5
7 8 9
并不算难,可能在通用性要好好考虑。
机子上只有JDK,在DOS下运行实在不爽,写代码都在记事本里写,部分关键词不会拼还得百度=。=

public class mat
{
    publi...

查看更多...

Tags: 程序 JAVA 代码 趣题

分类:寂寞双生 程序 | 固定链接 | 评论: 1 | 引用: 0 | 查看次数: 192

答案C#版本

设计题目:输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出最高的分数所对应的学生和课程。
要求:定义一函数input( ),用做输入10个学生的成绩;
      定义一函数aver1( ),用做计算每个学生的平均分;
      定义一函数aver2( ),用做计算每门课程的平均分;
      定义一函数highest( ),找出最高分数及对应的学生和课程;
      在main( )函数中调用以上函数。

用普通变量做参数和用数组做参数,特别是二维数组,题目的难度马上就增加了。调试了许久,答案终于出来了,好心的独行侠也把那100分给了我,虽然我是用C#做的。
鉴于我这里无法编译C和C++,他特地发了个Turbo C&C++ 过来,软件很小,界面很DOS。。好在是汉化的,用来也很不错,没有.NET那样的繁琐。先睡一觉,晚上改C。

下午的时候网站服务器出了问题,频繁无法连接,晚上正常了。

static void Main(string[] args)
        {
            input();
           
        }
        /*输入10个学生5门课程的成绩*/
        static void input()
        {
            int[,] info = new int[10, 6];
            for (int i = 0; i < info.GetLength(0); i++)
            {
                Console.Write("输入学号:");
                info[i, 0] = int.Parse(Console.ReadLine());
                for (int j = 1; j < info.GetLength(1); j++)
                {
                    Console.Write("输入第{0}门课程的成绩:", j);
                    info[i, j] = int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine();
            int h = highest(info);
            Console.WriteLine();
            double a1 = aver1(info);
            Console.WriteLine();
            double a2 = aver2(info);
           
        }
        /* 最高分*/
        static int highest(int[,] info)
        {
            int mat = info[0, 1];
            for (int i = 0; i < info.GetLength(0); i++)
            {
                for (int j = 1; j < info.GetLength(1); j++)
                {
                    if (info[i, j] > mat)
                        mat = info[i, j];
                }
            }
            Console.WriteLine("最高分是:{0}", mat);
            return mat;
        }
        /*每个学生的平均分*/
        static double aver1(int[,] info)
        {
            double sum = 0;
            double aver1 = 0;
            for (int i = 0; i < info.GetLength(0); i++)
            {
                for (int j = 1; j < info.GetLength(1); j++)
                {
                    sum = (sum + info[i, j]);
                    aver1 = sum / (info.GetLength(1) - 1);
                }
                Console.WriteLine("学号为{0}的学生,课程平均分为:{1}", info[i, 0], aver1);
                sum = 0;
                aver1 = 0;
            }
            return aver1;
        }
        /*每门课程的平均分*/
        static double aver2(int[,] info)
        {
            double sum = 0;
            double aver2 = 0;
            for (int i = 1; i < info.GetLength(1); i++)
            {
                for (int j = 0; j < info.GetLength(0); j++)
                {
                    sum = info[j, i] + sum;
                    aver2 = sum / info.GetLength(0);
                }
                Console.WriteLine("第{0}门课程的平均分为:{1}", i, aver2);
                sum = 0;
                aver2 = 0;
            }
            return aver2;
        }

一直用FCKeditor 编辑而不是UBB,让我最头疼的是没有代码高亮,晚上尝试一下,动手添加代码高亮功能,如果还能代码折叠,行数显示那就更好了。

Tags: 程序 代码 C# ASP.NET

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 181

趣题:如何把输出赋值给变量

最近迷上百度知道的回答,不得不说,“百度知道”是一个非常成功的板块,就像更加人性化的BBS式的搜索引擎。今天看到一位高达7级的萬裏獨行俠,提了一个比较低端的问题,并且悬赏100分,好事啊,趁着夜深人静赶紧解决了拿分。
但是最后我懂了个道理,简单和复杂就在一线之间啊。。。。

他的题目是:
设计题目:输入10个学生5门课的成绩,分别用函数求:(1)每个学生的平均分;(2)每门课的平均分;(3)找出最高的分数所对应的学生和课程。
要求:定义一函数input( ),用做输入10个学生的成绩;
      定义一函数aver1( ),用做计算每个学生的平均分;
      定义一函数aver2( ),用做计算每门课程的平均分;
      定义一函数highest( ),找出最高分数及对应的学生和课程;
      在main( )函数中调用以上函数。
刚看题目,眼睛一瞟,喜滋滋地想这100分不拿不爽啊。立马在.NET上模拟着写。但是马上出问题了!

static void Main(string[] args)
        {
            input();
        }
       
/*函数input:输入3个学生成绩*/
       
static void input()
        {
            Console.Write(
"输入3个数据:");
           
int a = int.Parse(Console.ReadLine());
           
int b = int.Parse(Console.ReadLine());
           
int c = int.Parse(Console.ReadLine());
            Console.WriteLine(
"{0},{1},{2}",a,b,c);
        }

上面代码片段的运行结果显而易见,在main函数中调用input函数,假设我们输入的是1,3,9,则输出1,3,9。接下来,问题就出现了。当我们自定义了求平均的aver1函数,就会发现在main函数中调用aver1函数时,不知该参数该从哪里获得。意思就是在main函数里的input();之后,如果我们调用aver1()函数,则必须根据定义aver1()函数时的参数表,给出相应的参数。请看:

static void Main(string[] args)
        {
            input();  //成功调用函数input ,输入1 3 9 ,输出1 3 9

            aver1();  //调用函数aver1时,不知道该怎么写入圆括号中的参数
        }
       
/*函数input:输入3个学生成绩*/
       
static void input()
        {
            Console.Write(
"输入3个数据:");
           
int a = int.Parse(Console.ReadLine());
           
int b = int.Parse(Console.ReadLine());
           
int c = int.Parse(Console.ReadLine());
            Console.WriteLine(
"{0},{1},{2}",a,b,c);
        }
        /*函数aver1:求平均成绩*/

       static
void aver1(int x,int y,int z)
        {
           
double m;
           
int a = x;
           
int b = y;
           
int c = z;
            m
= (a + b + c)/3;
            Console.WriteLine(m);
        }

我们知道调用aver1()时应该放入的参数,是调用input()时输出的参数a,b,c,但是由于a,b,c都是input函数体中的局部变量,无法在main函数中使用。所以就想到:如何把输出赋值给变量?
只要把输出的a,b,c赋值给main函数中的变量,那么aver1函数圆括号里需要的参数就有了。

问题是有了,答案还没有找到 =。=  在CSDN论坛上发帖求助,明天应该会有人解决,睡吧~

洗把脸一看论坛,发现问题解决了。

static void Main(string[] args)
        {
            int a, b, c;
            input(out a, out b, out c);
            aver1(a, b, c);

        }

        static void input(out int a, out int b, out int c)
        {
            Console.Write("输入3个数据:");
            a = int.Parse(Console.ReadLine());
            b = int.Parse(Console.ReadLine());
            c = int.Parse(Console.ReadLine());
            Console.WriteLine("{0},{1},{2}",a,b,c);
        }

      void aver1(int x,int y,int z)
        {
            double m;
            int a = x;
            int b = y;
            int c = z;
            m = (a + b + c)/3;
            Console.WriteLine(m);
        }

学习了!另外还多了一种思路:并不是”一件事件“都得拆成“几个函数”来实现
这句话在编写程序过程中最佳体现就是这样:

static void input()
        {
            Console.Write("输入3个数据:");
            int a = int.Parse(Console.ReadLine());
            int b = int.Parse(Console.ReadLine());
            int c = int.Parse(Console.ReadLine());
            Console.WriteLine("{0},{1},{2}",a,b,c);

            aver1(a, b, c);
        }

为了参数的简单化,将aver1函数在input函数中调用,所得结果与前面的一样。好思路!

Tags: C# 程序 代码 ASP.NET

分类:寂寞双生 程序 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 202