第一篇:WEB的書(shū)店項(xiàng)目總結(jié)報(bào)告(個(gè)人)
項(xiàng)目個(gè)人報(bào)告
---Web的網(wǎng)上書(shū)店
在大三下學(xué)期,通過(guò)學(xué)習(xí)軟件工程這門(mén)課程,使自己更加系統(tǒng)的認(rèn)識(shí)到了在項(xiàng)目開(kāi)發(fā)階段,并通過(guò)作為擔(dān)任項(xiàng)目組組長(zhǎng),各個(gè)環(huán)節(jié)都有其必要性和重要性,每個(gè)階段的工作都是項(xiàng)目的必要組成部分。
在整個(gè)項(xiàng)目開(kāi)發(fā)過(guò)程中,通過(guò)作為擔(dān)任項(xiàng)目組組長(zhǎng),讓自己有了更多對(duì)項(xiàng)目實(shí)施過(guò)程中,各個(gè)環(huán)節(jié)、各個(gè)組織人員相互協(xié)調(diào)、統(tǒng)一意見(jiàn)與認(rèn)識(shí)的體會(huì)。
比如:在開(kāi)始階段,增進(jìn)每個(gè)成員之間的認(rèn)識(shí),并統(tǒng)一項(xiàng)目的方向,培養(yǎng)每個(gè)人對(duì)項(xiàng)目本身的興趣,增強(qiáng)每個(gè)人對(duì)自己任務(wù)的責(zé)任感。
開(kāi)發(fā)階段,協(xié)調(diào)、同于各個(gè)人員的工作與安排,并監(jiān)督項(xiàng)目的實(shí)施的進(jìn)度。在遇見(jiàn)問(wèn)題,組織人員對(duì)問(wèn)題的針對(duì)性的解決。
和認(rèn)識(shí)到了在開(kāi)發(fā)項(xiàng)目時(shí),不是單純的編寫(xiě)代碼,而是整個(gè)開(kāi)發(fā)過(guò)程中,各個(gè)環(huán)節(jié)的重要性,尤其是跟進(jìn)開(kāi)發(fā)進(jìn)度時(shí),文檔的編寫(xiě)也是必不可少的。
通過(guò)學(xué)習(xí)軟件工程、并在寫(xiě)項(xiàng)目時(shí),認(rèn)識(shí)到了,每個(gè)成員之間的交流很重要,并逐漸學(xué)會(huì)了在遇到問(wèn)題時(shí),自己解決問(wèn)題的能力。和在項(xiàng)目開(kāi)發(fā)過(guò)程中,在每個(gè)階段所做工作的意義,而且體會(huì)到了項(xiàng)目經(jīng)理的責(zé)任,和其主導(dǎo)作用。我相信,通過(guò)這次自己作為項(xiàng)目經(jīng)理,所學(xué)到的東西和感受會(huì)影響自己對(duì)軟件開(kāi)發(fā)的理解,并在以后的項(xiàng)目開(kāi)發(fā)過(guò)程中,更好的去寫(xiě)項(xiàng)目。
第二篇:web項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告
唐詩(shī)宋詞學(xué)習(xí)網(wǎng)站項(xiàng)目總結(jié)
1引言
當(dāng)下人們生活節(jié)奏飛快,能夠在緊張的工作之余細(xì)細(xì)品讀幾首唐詩(shī)宋詞,亦不失為一件美事。作為一個(gè)具有特色的學(xué)習(xí)網(wǎng)站,網(wǎng)站提供了頗具特色的唐詩(shī)宋詞的學(xué)習(xí)功能,使用戶(hù)能夠在輕松的狀態(tài)中學(xué)習(xí)。
1.1編寫(xiě)目的
本次項(xiàng)目總結(jié)主要是對(duì)唐詩(shī)宋詞網(wǎng)站項(xiàng)目的總結(jié),希望通過(guò)總結(jié)我們?cè)陂_(kāi)發(fā)過(guò)程中遇到的問(wèn)題和采取的方法,對(duì)以后的項(xiàng)目開(kāi)發(fā)起到一定的指導(dǎo)性的意義。從而提高我們組以后開(kāi)發(fā)項(xiàng)目的效率和規(guī)范我們的過(guò)程。從客戶(hù)的需求中提取項(xiàng)目應(yīng)該實(shí)現(xiàn)的功能要求,為后期的構(gòu)建提供指導(dǎo)。
1.2背景
鑒于當(dāng)前互聯(lián)網(wǎng)的快速發(fā)展,以及國(guó)家對(duì)中國(guó)傳統(tǒng)文化的提倡,希望建設(shè)一個(gè)學(xué)習(xí)唐詩(shī)宋詞的網(wǎng)站,幫助推動(dòng)對(duì)傳統(tǒng)文化的傳播和繼承。
2實(shí)際開(kāi)發(fā)結(jié)果
2.1產(chǎn)品
唐詩(shī)宋詞學(xué)習(xí)網(wǎng)站
2.2主要功能和性能
● 普通的游客,以未登錄的狀態(tài)瀏覽網(wǎng)站的網(wǎng)頁(yè),本網(wǎng)站只提供搜索和在線(xiàn)閱讀功能;
● 詩(shī)詞搜索:用戶(hù)可以根據(jù)詩(shī)名、詞名、詞牌名、內(nèi)容關(guān)鍵字等詞條進(jìn)行搜索;
● 作者搜索:用戶(hù)根據(jù)喜愛(ài)的詩(shī)人或者詞人的名字進(jìn)行搜索; ● 用戶(hù)根據(jù)以上的搜索的結(jié)果,選擇查看;
本網(wǎng)站為注冊(cè)的會(huì)員提供了除以上的服務(wù)外,更具有吸引力的功能:
收藏列表:
● Favorite list:用戶(hù)可以將自己喜愛(ài)的詩(shī)和詞加入到Favorite list 中;
● New poem list:用戶(hù)可以將自己喜愛(ài)的新詩(shī)詞加入此列表,此表中的詩(shī)詞是以后在線(xiàn)學(xué)習(xí)和復(fù)習(xí)的內(nèi)容;
● 在線(xiàn)學(xué)習(xí),并完成測(cè)試的詩(shī)詞會(huì)被自動(dòng)加入到Favorite list中; 收藏列表的管理:用戶(hù)擁有對(duì)自己列表自主管理的權(quán)利,如增加新的詩(shī)詞、刪除等操作 ● 分享到微博:用戶(hù)可以將喜愛(ài)的時(shí)、詞分享到微博,推薦給好友閱讀;
● 在線(xiàn)學(xué)習(xí):用戶(hù)通過(guò)在線(xiàn)學(xué)習(xí)的板塊可以記憶自己喜愛(ài)的詩(shī)詞。
學(xué)習(xí)分為三個(gè)難度等級(jí):初等、中等、高等。網(wǎng)站同時(shí)為在線(xiàn)用戶(hù)提供記憶提醒,為用戶(hù)推薦最佳的復(fù)習(xí)時(shí)間、安排復(fù)習(xí)的內(nèi)容。
2.3基本流程
同概要設(shè)計(jì)流程
2.4進(jìn)度
系統(tǒng)規(guī)劃階段 需求分析階段 項(xiàng)目功能實(shí)現(xiàn) 系統(tǒng)測(cè)試階段 系統(tǒng)界面美化 項(xiàng)目驗(yàn)收階段
標(biāo)志性事件 開(kāi)始到完成
系統(tǒng)需求說(shuō)明書(shū)完成 11.20-11.30 基本代碼的生成 測(cè)試文檔產(chǎn)生 接受公開(kāi)的測(cè)試 對(duì)項(xiàng)目功能的演示
12.1-12.16 12.17-12.23 12.24-12.30 12.31-1.5 3開(kāi)發(fā)工作評(píng)價(jià)
3.1對(duì)生產(chǎn)效率的評(píng)價(jià)
本次項(xiàng)目中,由于組員之前缺少默契,對(duì)項(xiàng)目的了解程度不是很 好。所以前期的時(shí)候,小組的效率非常低,對(duì)自己能力的高估和對(duì)項(xiàng)目的工作量不清楚是造成效率低的主要原因。同時(shí),隨著項(xiàng)目的進(jìn)展,采用的結(jié)對(duì)編程使組員之間形成了一種默契。鑒于對(duì)以前SSH框架的初步了解和對(duì)項(xiàng)目的深入理解,中后期的生產(chǎn)效率還是有一定的提高。但是與程序員的真實(shí)水平相差很遠(yuǎn)。
3.2對(duì)產(chǎn)品質(zhì)量的評(píng)價(jià)
1.對(duì)于網(wǎng)站初期的規(guī)劃的唐詩(shī)宋詞的增刪改查功能。2.詩(shī)詞作者信息的增刪改查功能。
3.收藏列表的增刪改查和添加刪除詩(shī)詞功能。4.生詩(shī)詞庫(kù)的建立和考核測(cè)評(píng)功能。5.用戶(hù)的注冊(cè)登陸功能。
上述的各項(xiàng)基本功能均已經(jīng)實(shí)現(xiàn),可以總體運(yùn)行。但是每一個(gè)功能還有很多工作要做,完善。各項(xiàng)功能還是有些bug,完善這些功能還需要一部分時(shí)間。同時(shí)由于我們組員對(duì)用戶(hù)的需求認(rèn)識(shí)不足,造成了很多反復(fù),導(dǎo)致生產(chǎn)率效率低下。
3.3對(duì)技術(shù)方法的評(píng)價(jià)
1、使用數(shù)據(jù)庫(kù)建模工具:PowerDesigner 工具來(lái)建立系統(tǒng)數(shù)據(jù)庫(kù)模型,以方便程序員很好的理解業(yè)務(wù)流和掌握系統(tǒng)架構(gòu)者的架構(gòu)思想,更好的滿(mǎn)足客戶(hù)的功能需求。在今后的項(xiàng)目開(kāi)發(fā)中,我們要更好的來(lái)完成系統(tǒng)的前期數(shù)據(jù)庫(kù)模型的建立,最大的來(lái)優(yōu)化系統(tǒng)功能。
2、系統(tǒng)開(kāi)發(fā)框架:此系統(tǒng)的框架使用的是SSH結(jié)構(gòu),此框架在開(kāi)發(fā)一些中小軟件是比較實(shí)用的。使得程序員能夠隨心所欲的使用對(duì)象編程思維來(lái)操縱數(shù)據(jù)庫(kù)。但是我們要是可以開(kāi)發(fā)出自己的框架,把一些通用的功能開(kāi)發(fā)到框架中。這樣以來(lái),在以后的系統(tǒng)開(kāi)發(fā)中,針對(duì)系統(tǒng)中一些通用的功能就不需要再開(kāi)發(fā),從而也可以很好的提高我們的開(kāi)發(fā)效率;減少很多維護(hù)費(fèi)用。使我們的技術(shù)不斷的更加成熟。
3.4出錯(cuò)原因的分析
主要有以下幾個(gè)方面的原因需要我們可以以后注意:
1、對(duì)軟件開(kāi)發(fā)的流程不是很熟悉。因?yàn)檫@方面知識(shí)的獲取只是停留在理論層面,缺乏理論經(jīng)驗(yàn)。
2、組員之間的交流還有待提高。因?yàn)樵谧詈蟮囊欢螘r(shí)間,由于課程學(xué)習(xí)和復(fù)習(xí)的原因,大家能夠集中在一塊進(jìn)行編程的時(shí)間不多。對(duì)項(xiàng)目的關(guān)注程度有所降低。
3、對(duì)web開(kāi)發(fā)技術(shù)了解面不夠,目前只是會(huì)對(duì)SSH框架熟悉。而且其中的框架使用細(xì)節(jié)流程也不是很清楚。
4經(jīng)驗(yàn)與教訓(xùn)
項(xiàng)目歷時(shí)兩個(gè)月時(shí)間,在這兩個(gè)月的時(shí)間里,使我們組對(duì)于項(xiàng)目有了更深刻的理解。
首先是對(duì)軟件工程課程的更進(jìn)一步學(xué)習(xí),理解。此次的綜合訓(xùn)練是緊跟課程同時(shí)進(jìn)行的。在課程進(jìn)行的同時(shí),老師對(duì)其用到的知識(shí)進(jìn) 行了詳細(xì)的講述。包括團(tuán)隊(duì)的建立,題目的選擇,團(tuán)隊(duì)中各個(gè)組員之間的關(guān)系和整個(gè)項(xiàng)目選擇的過(guò)程模型等。
第一階段:需求分析階段。只有充分了解了用戶(hù)的需求才能開(kāi)發(fā)功能完整、性能良好的項(xiàng)目。在這個(gè)階段,我們小組聽(tīng)取了梁丹同學(xué)對(duì)于這個(gè)網(wǎng)站各個(gè)功能模塊的描述,并做詳細(xì)的記錄,這個(gè)為我們后面項(xiàng)目的度量提供了可靠的材料。
第二階段:項(xiàng)目分析設(shè)計(jì)階段。整個(gè)項(xiàng)目在這個(gè)階段的工作要多一點(diǎn),它直接關(guān)系到后一階段的編碼,所以它起到了承上啟下的作用。這一階段的主要任務(wù)包括分析項(xiàng)目中對(duì)象,再根據(jù)對(duì)象設(shè)計(jì)數(shù)據(jù)庫(kù),在此包括其建模設(shè)計(jì),在完成數(shù)據(jù)庫(kù)后就是數(shù)據(jù)流程圖了,它大體上描述了程序走的流程,以及大體的一個(gè)架構(gòu)。完成上述工作后就是類(lèi)的設(shè)計(jì)了,它是根據(jù)數(shù)據(jù)流圖的設(shè)計(jì)來(lái)設(shè)計(jì)的,寫(xiě)好每個(gè)模塊的每一個(gè)類(lèi),為下一階段做好準(zhǔn)備。在此,我們就完成了整個(gè)系統(tǒng)的一個(gè)架構(gòu)。
第三階段:編碼階段。在整個(gè)項(xiàng)目周期中只占到了1/4的時(shí)間,用代碼將整個(gè)系統(tǒng)的業(yè)務(wù)邏輯表達(dá)出來(lái)。其中和遇到好多問(wèn)題:對(duì)java中的好多現(xiàn)有的類(lèi)不熟悉,使得編寫(xiě)的代碼質(zhì)量不高,代碼的復(fù)用性不高,好多問(wèn)題還都沒(méi)有解決。
第四階段:測(cè)試和發(fā)布。這一階段是我們項(xiàng)目的最后一個(gè)階段了,主要是對(duì)項(xiàng)目所涉及的功能進(jìn)行功能測(cè)試。發(fā)現(xiàn)問(wèn)題及時(shí)解決。
同時(shí)鑒于我們采用的是Scrum敏捷開(kāi)發(fā)模型,并采用了結(jié)對(duì)編程。下邊介紹下關(guān)于團(tuán)隊(duì)建設(shè)方面的總結(jié)。團(tuán)隊(duì)的個(gè)體成員為實(shí)現(xiàn)一個(gè)共同目標(biāo)而協(xié)同工作。團(tuán)隊(duì)工作就是團(tuán)隊(duì)成員為實(shí)現(xiàn)這一共同目標(biāo)而共同努力。項(xiàng)目團(tuán)隊(duì)工作是否有成效會(huì)直接影響項(xiàng)目的成敗,盡管計(jì)劃以及項(xiàng)目經(jīng)理的工作技能是必要的,但人員——項(xiàng)目經(jīng)理和項(xiàng)目團(tuán)隊(duì)——才是項(xiàng)目成功的關(guān)鍵。項(xiàng)目成功需要一個(gè)有效的項(xiàng)目團(tuán)隊(duì)。
我們組每位成員都精心付出了自己的努力,相互依賴(lài),齊心協(xié)力地進(jìn)行工作,已保證項(xiàng)目目標(biāo)的成功實(shí)施.同時(shí)我們組也做到了以下的關(guān)鍵幾點(diǎn):
1、對(duì)項(xiàng)目目標(biāo)的清晰理解。
2、對(duì)每位成員角色和職責(zé)的明確期望。
3、目標(biāo)導(dǎo)向。
4、高度的合作互助。
5、高度信任。
這些都是以后我們?cè)谧鲰?xiàng)目設(shè)計(jì)時(shí)候必須借鑒的。一個(gè)績(jī)效良好的項(xiàng)目團(tuán)隊(duì)很有必要管理好時(shí)間,為有效管理時(shí)間,團(tuán)隊(duì)成員要明確每周的目標(biāo),每天制定一個(gè)做事表,集中精力完成當(dāng)天的做事表。要控制干擾,謝絕參加那些對(duì)實(shí)現(xiàn)目標(biāo)沒(méi)有意義的活動(dòng)。團(tuán)隊(duì)成員也要有效利用等待的時(shí)間,一次性處理好文件工作,并要為實(shí)現(xiàn)目標(biāo)獎(jiǎng)勵(lì)自己。我們組的每位成員都盡心盡力地為這個(gè)項(xiàng)目付出,期待項(xiàng)目最后成功的實(shí)施。
通過(guò)此次項(xiàng)目的學(xué)習(xí)和實(shí)踐,使得我們組對(duì)于軟件過(guò)程和項(xiàng)目管理這門(mén)課程有了更深入的了解,對(duì)其中所涉及的方法和工具有新的認(rèn) 識(shí),我們組會(huì)在以后的學(xué)習(xí)中繼續(xù)摸索,靈活運(yùn)用各種方法,熟練對(duì)各種工具的掌握,努力提高我們組的知識(shí)水平和業(yè)務(wù)能力!同時(shí)也認(rèn)識(shí)到我們組在實(shí)際的代碼編寫(xiě)階段出現(xiàn)了許多無(wú)法解決的bug,需要我們利用下來(lái)的時(shí)間進(jìn)行完善,真正做到學(xué)習(xí)無(wú)止境。也使我們認(rèn)清了我們現(xiàn)在的編程水平還很低下,對(duì)知識(shí)的掌握還不夠。距成為一名合格的軟件工程師還有很長(zhǎng)的一段距離。
第三篇:網(wǎng)上書(shū)店項(xiàng)目總結(jié)報(bào)告
數(shù)據(jù)庫(kù)代碼:
/*================*/ /* DBMS name:
Microsoft SQL Server 2008
*/ /* Created on:
2011-11-2 9:27:06
*/ /*================*/
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Administrators')and o.name = 'FK_ADMINIST_REFERENCE_USERS')alter table Administrators
drop constraint FK_ADMINIST_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('Re_status')and o.name = 'FK_RE_STATU_REFERENCE_ADMINIST')alter table Re_status
drop constraint FK_RE_STATU_REFERENCE_ADMINIST go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('books')and o.name = 'FK_BOOKS_REFERENCE_BOOKTYPE')alter table books
drop constraint FK_BOOKS_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('books')and o.name = 'FK_BOOKS_REFERENCE_PUBLISH')alter table books
drop constraint FK_BOOKS_REFERENCE_PUBLISH go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('booktype')and o.name = 'FK_BOOKTYPE_REFERENCE_BOOKTYPE')alter table booktype
drop constraint FK_BOOKTYPE_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('leaveWords')and o.name = 'FK_LEAVEWOR_REFERENCE_USERS')alter table leaveWords
drop constraint FK_LEAVEWOR_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('limite')and o.name = 'FK_LIMITE_REFERENCE_ADMINIST')alter table limite
drop constraint FK_LIMITE_REFERENCE_ADMINIST go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('model')and o.name = 'FK_MODEL_REFERENCE_LIMITE')alter table model
drop constraint FK_MODEL_REFERENCE_LIMITE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_SHIPPED')alter table orders
drop constraint FK_ORDERS_REFERENCE_SHIPPED go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_BOOKS')alter table orders
drop constraint FK_ORDERS_REFERENCE_BOOKS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('orders')and o.name = 'FK_ORDERS_REFERENCE_USERS')alter table orders
drop constraint FK_ORDERS_REFERENCE_USERS go if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('sales')and o.name = 'FK_SALES_REFERENCE_ORDERS')alter table sales
drop constraint FK_SALES_REFERENCE_ORDERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shipped')and o.name = 'FK_SHIPPED_REFERENCE_SALES')alter table shipped
drop constraint FK_SHIPPED_REFERENCE_SALES go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_BOOKTYPE')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_BOOKTYPE go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_BOOKS')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_BOOKS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('shoppingcar')and o.name = 'FK_SHOPPING_REFERENCE_USERS')alter table shoppingcar
drop constraint FK_SHOPPING_REFERENCE_USERS go
if exists(select 1
from sys.sysreferences r join sys.sysobjects o on(o.id = r.constid and o.type = 'F')
where r.fkeyid = object_id('users')and o.name = 'FK_USERS_REFERENCE_LIMITE')alter table users
drop constraint FK_USERS_REFERENCE_LIMITE go
if exists(select 1
from sysobjects
where id = object_id('Administrators')
and
type = 'U')
drop table Administrators go
if exists(select 1
from sysobjects
where id = object_id('Re_status')
and
type = 'U')
drop table Re_status go
if exists(select 1
from sysobjects
where id = object_id('books')
and
type = 'U')
drop table books go
if exists(select 1
from sysobjects
where id = object_id('booktype')
and
type = 'U')
drop table booktype go
if exists(select 1
from sysobjects
where id = object_id('booktype2')
and
type = 'U')
drop table booktype2 go
if exists(select 1
from sysobjects
where id = object_id('discount')
and
type = 'U')
drop table discount go
if exists(select 1
from sysobjects
where id = object_id('leaveWords')
and
type = 'U')
drop table leaveWords go
if exists(select 1
from sysobjects
where id = object_id('limite')
and
type = 'U')
drop table limite go
if exists(select 1
from sysobjects
where id = object_id('model')
and
type = 'U')
drop table model go
if exists(select 1
from sysobjects
where id = object_id('orders')
and
type = 'U')
drop table orders go
if exists(select 1
from sysobjects
where id = object_id('publish')
and
type = 'U')
drop table publish go
if exists(select 1
from sysobjects
where id = object_id('sales')
and
type = 'U')
drop table sales go
if exists(select 1
from sysobjects
where id = object_id('shipped')
and
type = 'U')
drop table shipped go
if exists(select 1
from sysobjects
where id = object_id('shoppingcar')
and
type = 'U')
drop table shoppingcar go
if exists(select 1
from sysobjects
where id = object_id('users')
and
type = 'U')
drop table users go
/*================*/ /* Table: Administrators
*/ /*================*/ create table Administrators(Administrator_id
varchar(50)
not null,Username
varchar(20)
null,Administrator_name
varchar(20)
not null,Administrator_password varchar(50)
not null,“Administrator_e-mall” varchar(30)
null,constraint PK_ADMINISTRATORS primary key(Administrator_id))go
/*================*/ /* Table: Re_status
*/ /*================*/ create table Re_status(Administrator_id
varchar(50)
not null,Username
varchar(10)
not null,Re_status_date
datetime
not null,Subject
varchar(10)
not null,re_ststus_texe
varchar(2000)
null,Re_status
varchar(2)
not null,constraint PK_RE_STATUS primary key(Administrator_id))go
/*================*/ /* Table: books
*/ /*================*/ create table books(bookID
varchar(50)
not null,Smalltype_id
varchar(50)
null,Pub_id
varchar(50)
null,title
varchar(80)
not null,price
double precision
not null,author
varchar(10)
not null,Version
varchar(20)
null,Publishdate
datetime
null,introduction
varchar(2000)
null,type
varchar(50)
not null,stock_qty
int
null,constraint PK_BOOKS primary key(bookID))go
/*================*/ /* Table: booktype
*/ /*================*/ create table booktype(Smalltype_id
varchar(50)
not null,Bigtype_id
varchar(50)
not null,Bigtype_name
varchar(50)
not null,constraint PK_BOOKTYPE primary key(Smalltype_id))go
/*================*/ /* Table: booktype2
*/ /*================*/ create table booktype2(Smalltype_id
varchar(50)
not null,Smalltype_name
varchar(50)
not null,Bigtype_id
varchar(50)
not null,constraint PK_BOOKTYPE2 primary key(Smalltype_id))go
/*================*/ /* Table: discount
*/ /*================*/ create table discount(datetime
varchar(10)
not null,discount
double precision
not null,remark
datetime
not null,constraint PK_DISCOUNT primary key(datetime))go
/*================*/ /* Table: leaveWords
*/ /*================*/ create table leaveWords(Lword_id
varchar(50)
not null,use_Username
varchar(20)
null,Username
varchar(6)
not null,Subject
varchar(6)
not null,Submit_date
datetime
null,Lword_texe
varchar(4000)
null,Re_status
varchar(10)
null,constraint PK_LEAVEWORDS primary key(Lword_id))go
/*================*/ /* Table: limite
*/ /*================*/ create table limite(username
varchar(20)
not null,Administrator_id
varchar(50)
null,user_limite
varchar(2)
not null,constraint PK_LIMITE primary key(username))go
/*================*/ /* Table: model
*/ /*================*/ create table model(model_id
varchar(10)
not null,username
varchar(20)
null,modelname
varchar(20)
not null,remark
varchar(20)
not null,constraint PK_MODEL primary key(model_id))go
/*================*/ /* Table: orders
*/ /*================*/ create table orders(Order_id
varchar(50)
not null,bookID
varchar(50)
null,Username
varchar(20)
null,Ship_id
varchar(50)
null,shipaddress
varchar(50)
not null,Order_date
datetime
not null,Book_id
varchar(50)
not null,quantity
int
not null,status
varchar(2)
not null,constraint PK_ORDERS primary key(Order_id))go
/*================*/ /* Table: publish
*/ /*================*/ create table publish(Pub_id
varchar(50)
not null,Pub_name
varchar(50)
not null,Pub_phone
varchar(15)
not null,Pub_add
varchar(50)
not null,constraint PK_PUBLISH primary key(Pub_id))go
/*================*/ /* Table: sales
*/ /*================*/ create table sales(Sale_id
varchar(50)
not null,Order_id
varchar(50)
null,Sale_date
datetime
null,Saler
varchar(20)
not null,Sale_status
varchar(2)
null,constraint PK_SALES primary key(Sale_id))go
/*================*/ /* Table: shipped
*/ /*================*/ create table shipped(Ship_id
varchar(50)
not null,Sale_id
varchar(50)
null,receive_name
varchar(10)
not null,receive_address
varchar(50)
not null,Ship_date
datetime
not null,Ship_man
varchar(10)
not null,receive_postcode
varchar(6)
not null,receive_telephone
varchar(20)
not null,constraint PK_SHIPPED primary key(Ship_id))go
/*================*/ /* Table: shoppingcar
*/ /*================*/ create table shoppingcar(shoppingcarid
varchar(10)
not null,Smalltype_id
varchar(50)
null,bookID
varchar(50)
null,Username
varchar(20)
null,totalprice
double precision
not null,constraint PK_SHOPPINGCAR primary key(shoppingcarid))go
/*================*/ /* Table: users
*/ /*================*/ create table users(Username
varchar(20)
not null,lim_username
varchar(20)
null,Password
varchar(10)
not null,degree
varchar(2)
not null,Phone
varchar(15)
null,“E-mall”
varchar(30)
null,Address
varchar(100)
not null,True_name
varchar(10)
not null,Postcode
varchar(6)
not null,constraint PK_USERS primary key(Username))go
alter table Administrators
add constraint FK_ADMINIST_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table Re_status
add constraint FK_RE_STATU_REFERENCE_ADMINIST foreign key(Administrator_id)
references Administrators(Administrator_id)go
alter table books
add constraint FK_BOOKS_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype(Smalltype_id)go
alter table books
add constraint FK_BOOKS_REFERENCE_PUBLISH foreign key(Pub_id)
references publish(Pub_id)go
alter table booktype
add constraint FK_BOOKTYPE_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype2(Smalltype_id)go
alter table leaveWords
add constraint FK_LEAVEWOR_REFERENCE_USERS foreign key(use_Username)
references users(Username)go
alter table limite
add constraint FK_LIMITE_REFERENCE_ADMINIST foreign key(Administrator_id)
references Administrators(Administrator_id)go
alter table model
add constraint FK_MODEL_REFERENCE_LIMITE foreign key(username)
references limite(username)go
alter table orders
add constraint FK_ORDERS_REFERENCE_SHIPPED foreign key(Ship_id)
references shipped(Ship_id)go
alter table orders
add constraint FK_ORDERS_REFERENCE_BOOKS foreign key(bookID)
references books(bookID)go
alter table orders
add constraint FK_ORDERS_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table sales
add constraint FK_SALES_REFERENCE_ORDERS foreign key(Order_id)
references orders(Order_id)go
alter table shipped
add constraint FK_SHIPPED_REFERENCE_SALES foreign key(Sale_id)
references sales(Sale_id)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_BOOKTYPE foreign key(Smalltype_id)
references booktype2(Smalltype_id)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_BOOKS foreign key(bookID)
references books(bookID)go
alter table shoppingcar
add constraint FK_SHOPPING_REFERENCE_USERS foreign key(Username)
references users(Username)go
alter table users
add constraint FK_USERS_REFERENCE_LIMITE foreign key(lim_username)
references limite(username)go
DB類(lèi):
using System;using System.Collections.Generic;using System.Text;
namespace DBLib { ///
/// 提供訪(fǎng)問(wèn)SQL Server的基本方法
/// public class DB { public DB(){ }
//connStr為訪(fǎng)問(wèn)SQL Server2000的連接字符串
//下面是臨時(shí)調(diào)試使用的方法,直接設(shè)置聯(lián)接字符串。
string connStr = “server=.;database=bookstore;integrated security=SSPI”;
#region 獲取查詢(xún)結(jié)果,DataSet GetSqlDataSet(string sqlString)///
/// public DataSet GetSqlDataSet(string sqlString){ //定義返回變量
//實(shí)例化數(shù)據(jù)集DataSet,對(duì)象名為ds DataSet ds = new DataSet();try { //實(shí)例化連接對(duì)象SqlConnection,對(duì)象名為sqlConn SqlConnection sqlConn = new SqlConnection(connStr);
//用查詢(xún)的SQL(sqlString)語(yǔ)句和連接對(duì)象sqlConn實(shí)例化數(shù)據(jù)接口SqlDataAdapter //對(duì)象名為da SqlDataAdapter da = new SqlDataAdapter(sqlString, sqlConn);
//da.Fill(ds)是數(shù)據(jù)接口(SqlDataAdapter)提供的方法
//具體作用為:
//打開(kāi)與數(shù)據(jù)庫(kù)的連接
//將查詢(xún)的SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器 //接受返回的查詢(xún)結(jié)果
//并將結(jié)果填充到數(shù)據(jù)集對(duì)象ds中
//關(guān)閉與數(shù)據(jù)庫(kù)的連接 da.Fill(ds);} catch(Exception e){ //拋出捕捉到的異常
throw(e);} //返回查詢(xún)到的結(jié)果
return ds;} #endregion
#region 執(zhí)行增、刪或改的SQL語(yǔ)句 int ExecuteSql(string sqlString)///
/// 返回值為受影響的行數(shù)(記錄數(shù))
/// sqlString 參數(shù)為增、刪或改的SQL語(yǔ)句
/// public int ExecuteSql(string sqlString){ int i = 0;try { ////實(shí)例化連接對(duì)象SqlConnection,對(duì)象名為sqlConn SqlConnection sqlConn = new SqlConnection(connStr);
//用查詢(xún)的SQL(sqlString)語(yǔ)句和連接對(duì)象sqlConn實(shí)例化SqlCommand //對(duì)象名為sqlCmd SqlCommand sqlCmd = new SqlCommand(sqlString, sqlConn);
//打開(kāi)與數(shù)據(jù)庫(kù)的連接 sqlConn.Open();
//將增、刪或改的SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器
//并接受返回的結(jié)果,返回的結(jié)果為受影響的行數(shù)(記錄數(shù))i = sqlCmd.ExecuteNonQuery();
//關(guān)閉與數(shù)據(jù)庫(kù)的連接 sqlConn.Close();} catch(Exception e){ Exception ee = new Exception(sqlString + e.Message);throw(ee);} return i;} #endregion
} }
Administrators類(lèi): using System;using System.Collections.Generic;using System.Text;
namespace DBlib { class Administrators { string Administrator_id;public string Administrator_Id { get { return Administrator_id;} set { Administrator_id = value;} } string Username;public string UserName { get { return Username;} set { Username = value;} } string Administrator_name;public string Administrator_Name { get { return Administrator_name;} set { Administrator_name = value;} } string Administrator_password;public string Administrator_Password { get { return Administrator_password;} set { Administrator_password = value;} } string Administrator_e_mall;public string Administrator_E_Mall { get { return Administrator_e_mall;} set { Administrator_e_mall = value;} } DB db = new DB();public bool Insert(){ try { string sql = “insert into Administrators(Administrator_id ,Username,Administrator_name,Administrator_password,Administrator_e_mall)values('” + this.Administrator_id + “','” + this.Username + “','” + this.Administrator_name + “','” + this.Administrator_password + “','” + this.Administrator_e_mall + “')”;db.ExecuteSql(sql);return true;} catch { return false;} } public bool Delete(){ try { string sql = “delete from Administrators where Administrator_id='” + this.Administrator_id + “'”;db.ExecuteSql(sql);return true;} catch { return false;} } public bool Update(){ try { string sql = “update Administrators set Administrator_id='” + this.Administrator_id + “',Username='” + this.Username + “',Administrator_name='” + this.Administrator_name + “',Administrator_password='” + this.Administrator_password + “',Administrator_e_mall='” + this.Administrator_e_mall + “'”;db.ExecuteSql(sql);return true;} catch { return false;} } public DataSet SelectAll(){
string sql = “select * from Administrators”;DataSet ds = db.GetSqlDataSet(sql);return ds;} public DataSet Select(){
string sql = “select * from Administrators where Administrator_name like '%” + this.Administrator_name + “%'”;DataSet ds = db.GetSqlDataSet(sql);return ds;}
public bool IsExist(){ string sql = “select * from Administrators where Administrator_id='” + this.Administrator_id + “'”;DataSet ds = db.GetSqlDataSet(sql);if(ds.Tables[0].Rows.Count == 1){ return true;} else { return false;} } } }
第四篇:web項(xiàng)目總結(jié)
Web項(xiàng)目總結(jié)
轉(zhuǎn)眼間,已經(jīng)完成了四周的web電信項(xiàng)目??傮w上來(lái)說(shuō)在這段時(shí)間里還是學(xué)習(xí)了許多平時(shí)沒(méi)有學(xué)到的東西,對(duì)項(xiàng)目的理解也不象以前那么膚淺了。下面就在這段時(shí)間的收獲與大家分享一下:
這次項(xiàng)目與前一個(gè)java項(xiàng)目可以說(shuō)有很大的不同。整個(gè)實(shí)施上也不象java項(xiàng)目那么盲目,全都是按照標(biāo)準(zhǔn)化流程走下去的,這是前一個(gè)項(xiàng)目所沒(méi)有經(jīng)歷的階段。對(duì)于一個(gè)程序員樹(shù)立這種模式體系也是非常重要的。
第一階段:需求分析階段。其實(shí)我們以后在企業(yè)去,拿到一個(gè)項(xiàng)目都是從需求分析開(kāi)始的,只有充分了解了用戶(hù)的需求才能開(kāi)發(fā)出功能完整,性能良好的項(xiàng)目。然而對(duì)于這樣一個(gè)項(xiàng)目的開(kāi)發(fā)來(lái)說(shuō)不是一件容易的事情,必須作好這個(gè)階段。了解客戶(hù)需求就必須從客戶(hù)的需求說(shuō)明書(shū)開(kāi)始分析,而我們這次就是在次基礎(chǔ)上來(lái)作界面原形的,其實(shí)做界面原形也是一個(gè)有效了解需求的方式,這就是所謂的界面原型法。在完成界面原型后就得編寫(xiě)測(cè)試文檔,以保證整個(gè)流程大體正確。現(xiàn)在我們都是在用面向?qū)ο蟮乃季S去設(shè)計(jì)程序的,那么就得把客戶(hù)的需求以模塊化的形式轉(zhuǎn)化為一個(gè)一個(gè)的對(duì)象,總體上以模塊化的形式把握整個(gè)大的項(xiàng)目。
第二階段:項(xiàng)目分析設(shè)計(jì)階段。在整個(gè)項(xiàng)目中就是這個(gè)階段的工作要多一點(diǎn),它也直接關(guān)系到后一階段的編碼,所以它在總體上起到了承上啟下的作用。這一階段的主要任務(wù)包括分析項(xiàng)目中對(duì)象,再根據(jù)對(duì)象設(shè)計(jì)數(shù)據(jù)庫(kù),在此包括其建模設(shè)計(jì),在完成數(shù)據(jù)庫(kù)后就是數(shù)據(jù)流圖了,它大體上描述了程序走的流程,以及大體的一個(gè)架構(gòu)。完成上述工作后就是類(lèi)的設(shè)計(jì)了,它是根據(jù)數(shù)據(jù)流圖的設(shè)計(jì)來(lái)設(shè)計(jì)的,寫(xiě)出每一個(gè)模塊的每一個(gè)類(lèi),為下一個(gè)階段做好準(zhǔn)備。在此,我們就完成了整個(gè)系統(tǒng)的一個(gè)架構(gòu)。
第三階段:編碼階段。在整個(gè)項(xiàng)目中它不象java項(xiàng)目那么注重編碼與算法,相反它注重的是設(shè)計(jì)思想以及其中的業(yè)務(wù)邏輯。一些大型項(xiàng)目之所以難其實(shí)也就是在業(yè)務(wù)邏輯上難以理解。所以編碼階段所占用的時(shí)間其實(shí)是很少的,對(duì)于我們開(kāi)發(fā)這個(gè)項(xiàng)目總共用了整個(gè)項(xiàng)目時(shí)間的四分之一,其實(shí)在 實(shí)際工作中編碼也是差不多的,重點(diǎn)在分析設(shè)計(jì)與后期的維護(hù)與調(diào)試。
第四階段:測(cè)試及發(fā)布。這一階段差不多也就是我們整個(gè)項(xiàng)目的最后一個(gè)階段了,因?yàn)樗鼪](méi)有涉及到具體的維護(hù)。不過(guò)在項(xiàng)目中我們對(duì)此項(xiàng)目的后期維護(hù)也還是作了一些考慮,比如多個(gè)用戶(hù)并發(fā)時(shí)用到的事物,區(qū)域與級(jí)別在數(shù)據(jù)庫(kù)中的讀取,都能很好的適應(yīng)客戶(hù)的操作,同時(shí)也很大程度上提高了代碼的可重用性,使得后期的維護(hù)更加簡(jiǎn)單方便。
到此,這四周我們就經(jīng)歷了這四個(gè)階段,體會(huì)了一個(gè)項(xiàng)目開(kāi)發(fā)從需求分析到試用的整個(gè)過(guò)程,同時(shí)也對(duì)前面所學(xué)的知識(shí)得到了全面的鞏固與復(fù)習(xí),學(xué)到了一些以后經(jīng)常用到的技術(shù)(比如文件的上傳,過(guò)濾器,分頁(yè)技術(shù)),在此我也不做詳細(xì)說(shuō)明。
總之,經(jīng)過(guò)這次項(xiàng)目讓我受益非淺,思維也得到了鍛煉。我想這就是所謂的工作經(jīng)歷吧!
周毅
10.30
第五篇:web項(xiàng)目總結(jié)
第二階段項(xiàng)目總結(jié)
這是第二次做項(xiàng)目了,雖然每次做的并不是什么很大的項(xiàng)目,但做項(xiàng)目的過(guò)程中卻真正體會(huì)了其中的艱辛與快樂(lè)。一個(gè)個(gè)問(wèn)題解決時(shí)的快意,一個(gè)個(gè)問(wèn)題產(chǎn)生后的迷茫,都讓我回味無(wú)窮。亂七八糟的講呢也不知道從哪講起,所以總結(jié)了以下幾點(diǎn)心得:
1.對(duì)于網(wǎng)站開(kāi)發(fā),是離不開(kāi)數(shù)據(jù)庫(kù)的,數(shù)據(jù)庫(kù)的結(jié)構(gòu)設(shè)計(jì)也是重中之重。我們團(tuán)隊(duì)在做的過(guò)程中對(duì)表進(jìn)行了一些修改,導(dǎo)致很多不必要的問(wèn)題。因?yàn)閿?shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的更改,有時(shí)會(huì)導(dǎo)致一定程度的返工,這時(shí)修改代碼所消耗的時(shí)間會(huì)讓我們得不償失的,數(shù)據(jù)庫(kù)結(jié)構(gòu)設(shè)計(jì)的好壞在很大程度上決定了軟件設(shè)計(jì)的速度。
2.代碼書(shū)寫(xiě)的問(wèn)題。程序代碼都具有嚴(yán)格的規(guī)范性,所以有時(shí)一個(gè)不起眼的問(wèn)題,在造成問(wèn)題的同時(shí)我們也很難發(fā)現(xiàn),我在讀取數(shù)據(jù)庫(kù)的資料時(shí)就犯了這樣的問(wèn)題。還有就是代碼的精簡(jiǎn)度,是衡量一個(gè)優(yōu)秀軟件的重要指標(biāo),對(duì)于這方面我很少做考慮。
3.整體性能與用戶(hù)需求。事實(shí)確實(shí)如此,我們會(huì)被很多習(xí)慣限制自己的思維,在項(xiàng)目中我們根本沒(méi)有考慮到并發(fā)和吸引用戶(hù)等問(wèn)題,我想這是當(dāng)下要慢慢去想的。
4.對(duì)學(xué)過(guò)的知識(shí)的掌握。做項(xiàng)目肯定會(huì)用到以前的一些知識(shí)點(diǎn),我平常很少花時(shí)間去復(fù)習(xí)學(xué)過(guò)的知識(shí),就是等到哪里用到了就去找,最后才發(fā)現(xiàn)已經(jīng)忘了這個(gè)知識(shí)點(diǎn)是出現(xiàn)在那一次課了。所以對(duì)學(xué)過(guò)的知識(shí)有一個(gè)復(fù)習(xí)和很好的歸納是有必要的。
5.分工與合作。項(xiàng)目完成以后,我體會(huì)到任務(wù)分配的好的話(huà),會(huì)帶來(lái)很多好處,任務(wù)分配下去,不同的人要做不相干的模塊,這樣在整合項(xiàng)目的時(shí)候也會(huì)省事很多。
這次項(xiàng)目已經(jīng)是告一段落了,但不管是項(xiàng)目也好個(gè)人也好,都存在很多要改進(jìn)的地方,希望通過(guò)不斷地總結(jié)經(jīng)驗(yàn)、吸取教訓(xùn),我們都能收獲滿(mǎn)意的自己。