国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

從一個(gè)輿論調(diào)查的制作談面向?qū)ο蟮木幊趟悸罚ㄒ唬?/h1>
2024-07-21 02:16:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
  • 網(wǎng)站運(yùn)營(yíng)seo文章大全
  • 提供全面的站長(zhǎng)運(yùn)營(yíng)經(jīng)驗(yàn)及seo技術(shù)!
  •     一般的web程序員剛剛轉(zhuǎn)到.net或jsp時(shí),往往編程觀念轉(zhuǎn)不過(guò)來(lái),還是按照以前那種結(jié)構(gòu)化的編程思

    路來(lái),而不從面向?qū)ο蟮慕嵌瓤紤],造成業(yè)務(wù)邏輯與頁(yè)面html代碼混雜在一起,一旦頁(yè)面原型改變,相應(yīng)

    的程序也要修改,這樣造成代碼的可重用性太低。而asp.net或jsp比asp最大的一個(gè)進(jìn)步就是面向?qū)ο螅?br>
    使代碼可重用性達(dá)到最高。作為一個(gè)典型的web程序來(lái)說(shuō),一般把它分為三層比較理想,業(yè)務(wù)層,數(shù)據(jù)層

    和頁(yè)面顯示層。下面以一個(gè)輿論調(diào)查的例子來(lái)講一下。
        讓我們先來(lái)看一下如果一個(gè)輿論調(diào)查從面向?qū)ο蟮慕嵌葋?lái)考慮應(yīng)該是怎樣的。首先,從數(shù)據(jù)方面來(lái)說(shuō)

    ,一個(gè)輿論調(diào)查應(yīng)該有一個(gè)調(diào)查主題,然后應(yīng)該有幾個(gè)調(diào)查項(xiàng),最后還應(yīng)該有參加調(diào)查的用戶以及比如調(diào)

    查起止時(shí)間等等;其次,從輿論調(diào)查的方法來(lái)說(shuō),很簡(jiǎn)單,一個(gè)投票的方法,然后就是顯示調(diào)查結(jié)果的方

    法。知道了上面這些,我們就可以這樣來(lái)構(gòu)造一個(gè)調(diào)查類(lèi):

    namespace myclass.util
    {
        using system;
        using system.collections ;
        using system.drawing ;
        using myclass.util ;

        /// <summary>
        ///    一個(gè)通用的調(diào)查類(lèi)
        /// </summary>
        public class survey : object
        {
            /// <summary>
            /// 調(diào)查編號(hào)
            /// </summary>
            /// <remarks>
            /// 在數(shù)據(jù)庫(kù)中是varchar型,20字節(jié)
            /// </remakrs>
            protected string m_strid ;

            /// <summary>
            /// 調(diào)查標(biāo)題
            /// </summary>
            protected string m_strtitle ;

            /// <summary>
            /// 調(diào)查開(kāi)始時(shí)間
            /// </summary>
            protected datetime m_datbegintime ;

            /// <summary>
            /// 調(diào)查截止時(shí)間
            /// </summary>
            protected datetime m_datendtime ;

            /// <summary>
            /// 點(diǎn)擊數(shù)
            /// </summary>
            /// <remarks>
            /// 瀏覽人數(shù)
            /// </remarks>
            protected int m_inthits ;

            /// <summary>
            /// 調(diào)查項(xiàng)
            /// </summary>
            protected arraylist m_arritems ;

            //屬性
            /// <summary>
            /// 調(diào)查標(biāo)題
            /// </summary>
            public string title
            {
                get
                {
                    return m_strtitle ;
                }
                set
                {
                    m_strtitle = value ;
                }
            }

            /// <summary>
            /// 總共點(diǎn)擊數(shù)
            /// </summary>
            public int hits
            {
                get
                {
                    return m_inthits ;
                }
                set
                {
                    m_inthits = 0 ;
                }
            }

            /// <summary>
            /// 調(diào)查開(kāi)始時(shí)間屬性
            /// </summary>
            public datetime begintime
            {
                get
                {
                    return m_datbegintime ;
                }
                set
                {
                    m_datbegintime = value ;
                }
            }

            /// <summary>
            /// 調(diào)查截止時(shí)間屬性
            /// </summary>
            public datetime endtime
            {
                get
                {
                    return m_datendtime ;
                }
                set
                {
                    m_datendtime = value ;
                }
            }

            /// <summary>
            /// 調(diào)查項(xiàng)集合
            /// </summary>
            /// <remarks>是一個(gè)surveyitem類(lèi)的集合</remarks>
            public arraylist items
            {
                get
                {
                    return m_arritems ;
                }
                set
                {
                    m_arritems = value ;
                }
            }
            
            /// <summary>
            /// 調(diào)查編號(hào)
            /// </summary>
            public string surveyid
            {
                get
                {
                    return m_strid ;
                }
                set
                {
                    m_strid = value ;
                }
            }


            /// <summary>
            /// 構(gòu)造函數(shù)
            /// </summary>
            public survey()
            {
                //
                // todo: add constructor logic here
                //
                m_strtitle = "" ;
                m_arritems = new arraylist() ;
            }


            /// <summary>
            /// 重載構(gòu)造函數(shù)
            /// </summary>
            /// <param name="a_strtitle">調(diào)查標(biāo)題 </param>
            /// <remarks>適用于沒(méi)有截止時(shí)間的調(diào)查</remarks>
            public survey(string a_strtitle)
            {
                m_strtitle = a_strtitle ;
                m_datbegintime = datetime.today ;
                m_datendtime = datetime.today ;
                m_arritems = new arraylist() ;
            }

            /// <summary>
            /// 重載構(gòu)造函數(shù)
            /// </summary>
            /// <param name="a_strtitle">調(diào)查標(biāo)題 </param>
            /// <param name="a_datbegintime">開(kāi)始時(shí)間 </param>
            /// <param name="a_datendtime">結(jié)束時(shí)間 </param>
            /// <remarks>適用于有截止時(shí)間的調(diào)查</remarks>
            public survey(string a_strtitle , datetime a_datbegintime , datetime

    a_datendtime)
            {
                m_strtitle = a_strtitle ;
                m_datbegintime = a_datbegintime ;
                m_datendtime = a_datendtime ;
            }

            /// <summary>
            /// 增加調(diào)查項(xiàng)
            /// </summary>
            /// <param name="a_objitem"> </param>
            public void additem(object a_objitem)
            {
                if (a_objitem is surveyitem)
                {
                    m_arritems.add(a_objitem) ;
                }
            }

            /// <summary>
            /// 虛函數(shù)
            /// </summary>
            /// <param name="a_intid">該項(xiàng)編號(hào) </param>
            public virtual void vote(int a_intid)
            {
                
            }
            /// <summary>
            /// 虛函數(shù),保存到數(shù)據(jù)庫(kù)
            /// </summary>
            /// <param name="a_objitem"> </param>
            public virtual void saveitem(object a_objitem)
            {
                
            }


            /// <summary>
            /// 虛函數(shù),保存調(diào)查到數(shù)據(jù)庫(kù)
            /// </summary>
            public virtual void savetodatabase(string m_strsurveyid)
            {
                throw(new exception("基類(lèi)函數(shù)不能直接使用")) ;
            }

            /// <summary>
            ///  從數(shù)據(jù)庫(kù)中取得調(diào)查及調(diào)查項(xiàng)
            /// </summary>
            /// <param name="a_intid">對(duì)應(yīng)數(shù)據(jù)庫(kù)中的id </param>
            public virtual void loadfromdatabase(string a_strid)
            {
                
            }

            /// <summary>
            /// 查找調(diào)查項(xiàng)
            /// </summary>
            /// <param name="a_intid">調(diào)查項(xiàng)編號(hào) </param>
            public surveyitem getitem(int a_intid)
            {
                if (a_intid > 0 && a_intid < m_arritems.count)
                {
                    return (surveyitem)(m_arritems[a_intid]) ;
                }
                else
                {
                    throw(new exception("調(diào)查項(xiàng)下標(biāo)越界")) ;
                }
            }

            
            /// <summary>
            /// 查找調(diào)查項(xiàng)
            /// </summary>
            /// <param name="a_strtext">調(diào)查項(xiàng)標(biāo)題 </param>
            /// <remarks>根據(jù)標(biāo)題查找調(diào)查項(xiàng),找到就返回它的序號(hào),否則就返回-1</remarks>
            public int indexof(string a_strtext)
            {
                for (int i = 0 ; i < m_arritems.count ; i ++)
                {
                    if (a_strtext == ((surveyitem)m_arritems[i]).text)
                    {
                        return i ;
                    }
                }

                return -1 ;
            }

            /// <summary>
            /// 查找調(diào)查項(xiàng)
            /// </summary>
            /// <param name="a_intid">調(diào)查項(xiàng)編號(hào) </param>
            /// <remarks>
            ///  根據(jù)調(diào)查項(xiàng)標(biāo)號(hào)來(lái)查找調(diào)查項(xiàng),如果找到返回序號(hào),否則返回-1</remarks>
            public int indexof(int a_intid)
            {
                for ( int i = 0 ; i < m_arritems.count ; i ++)
                {
                    if (a_intid == ((surveyitem)m_arritems[i]).id)
                    {
                        return i ;
                    }
                }

                return - 1 ;
            }


            /// <summary>
            /// 顯示結(jié)果
            /// </summary>
            /// <param name="a_strfilename">生成圖片的保存位置 </param>
            public void createresultimage(string a_strfilename , mychart.charttype

    a_intcharttype ,
                                    int a_intwidth , int

    a_intheight , color a_objbackcolor)
            {

                //定義一個(gè)顏色數(shù)組
                arraylist itemcolors = new arraylist() ;
                itemcolors.add(color.red) ;
                itemcolors.add(color.black) ;
                itemcolors.add(color.blue) ;
                itemcolors.add(color.deepskyblue) ;
                itemcolors.add(color.firebrick) ;
                itemcolors.add(color.orange) ;
                itemcolors.add(color.green) ;
                itemcolors.add(color.whitesmoke) ;
                itemcolors.add(color.tan) ;
                itemcolors.add(color.darkseagreen) ;
                itemcolors.add(color.fuchsia) ;
                itemcolors.add(color.goldenrod) ;

                mychart mychart = new mychart(m_strtitle , a_objbackcolor ,

    a_intwidth ,
                                    a_intheight , a_intcharttype

    , "人次") ;
                for (int i = 0 ; i < m_arritems.count ; i++)
                {
                    //調(diào)查項(xiàng)
                    surveyitem item = (surveyitem)m_arritems[i] ;

                    //圖表項(xiàng)
                    mychart.additem(new chartitem(item.text , item.count ,

    (color)itemcolors[i])) ;

                }

                try
                {
                    mychart.create(a_strfilename) ;
                }
                catch(exception e)
                {
                    throw(new exception(e.tostring())) ;
                }

            }
            
        }

        /// <summary>
        /// 調(diào)查項(xiàng)類(lèi)
        /// </summary>
        public class surveyitem : object
        {

            /// <summary>
            /// 調(diào)查項(xiàng)編號(hào),對(duì)應(yīng)將來(lái)數(shù)據(jù)庫(kù)中的id
            /// </summary>
            protected int m_intid ;

            /// <summary>
            /// 調(diào)查項(xiàng)標(biāo)題
            /// </summary>
            protected string m_strtext ;

            /// <summary>
            /// 調(diào)查項(xiàng)描述
            /// </summary>
            protected string m_strdescription ;

            /// <summary>
            /// 調(diào)查項(xiàng)數(shù)量
            /// </summary>
            protected int m_intcount ;

            public int id
            {
                get
                {
                    return m_intid ;
                }
                set
                {
                    m_intid = value ;
                }
            }

            /// <summary>
            /// 構(gòu)造函數(shù)
            /// </summary>
            public surveyitem()
            {
                m_strtext = "" ;
                m_strdescription = "" ;
                m_intcount = 0 ;
            }

            //屬性
            /// <summary>
            /// 調(diào)查項(xiàng)標(biāo)題屬性
            /// </summary>
            public string text
            {
                get
                {
                    return m_strtext ;
                }
                set
                {
                    m_strtext = value ;
                }
            }

            /// <summary>
            /// 調(diào)查項(xiàng)描述屬性
            /// </summary>
            public string description
            {
                get
                {
                    return m_strdescription ;
                }
                set
                {
                    m_strdescription = value ;
                }
            }

            /// <summary>
            /// 調(diào)查項(xiàng)數(shù)量屬性
            /// </summary>
            public int count
            {
                get
                {
                    return m_intcount ;
                }
                set
                {
                    m_intcount = value ;
                }
            }


            //函數(shù)
            /// <summary>
            /// 重載構(gòu)造函數(shù)
            /// </summary>
            /// <param name="a_intid">調(diào)查項(xiàng)編號(hào) </param>
            /// <param name="a_strtext">調(diào)查項(xiàng)標(biāo)題 </param>
            /// <param name="a_strdescription">調(diào)查項(xiàng)描述 </param>
            /// <param name="a_intcount">調(diào)查項(xiàng)數(shù)量 </param>
            public surveyitem(int a_intid , string a_strtext ,
                            string a_strdescription , int a_intcount)
            {
                m_intid = a_intid ;
                m_strtext = a_strtext ;
                m_strdescription = a_strdescription ;
                m_intcount = a_intcount ;
            }

            public surveyitem(string a_strtext)
            {
                m_strtext = a_strtext ;
            }


        }
    }

    一個(gè)基本的調(diào)查類(lèi)就做好了,這個(gè)可以作為業(yè)務(wù)層。但是你可以發(fā)現(xiàn)實(shí)際上這個(gè)類(lèi)現(xiàn)在什么都做不了,原

    因很簡(jiǎn)單,因?yàn)闆](méi)有同數(shù)據(jù)庫(kù)掛接。眾所周知,沒(méi)有數(shù)據(jù)庫(kù)的支持什么都是白搭,那么,我們現(xiàn)在如何來(lái)

    掛接數(shù)據(jù)庫(kù),也就是做數(shù)據(jù)層呢?
    發(fā)表評(píng)論 共有條評(píng)論
    用戶名: 密碼:
    驗(yàn)證碼: 匿名發(fā)表

    主站蜘蛛池模板: 武定县| 山西省| 长丰县| 盘山县| 确山县| 黄大仙区| 文山县| 措勤县| 聂拉木县| 扶风县| 礼泉县| 达州市| 申扎县| 崇信县| 文化| 延寿县| 义乌市| 盘锦市| 宁陕县| 满洲里市| 武穴市| 盘锦市| 崇阳县| 得荣县| 辽源市| 信宜市| 达日县| 丹江口市| 锦屏县| 达州市| 华容县| 双辽市| 云林县| 新津县| 高要市| 华阴市| 静宁县| 高陵县| 沙河市| 新巴尔虎左旗| 仁寿县|