第一篇:帶星號的程序代碼總結(jié)[范文]
3輸入三個(gè)數(shù)逆序顯示
m=thisform.text1.value a=int(m/100)b=int(mod,100)/10)c=mod(m,10)n=100*c+10*b+a thisform.label2.caption=“結(jié)果為:”+str(n,3)
4求圓面積顯示在標(biāo)簽中
r=thisform.text1.value s=pi()*r*r thisform.label2.caption=“該圓的面積為:”+str(s,3)5逆序顯示加messagebox m=thisform.text1.value a=int(m/100)b=int(mod,100)/10)c=mod(m,10)n=100*c+10*b+a thisform.label2.caption=“結(jié)果為:”+str(n,3)
5逆序顯示加messagebox
x=thisform.text1.value if x>=100 and x<=999 and int(x)=x
x1=int(x/100)
x2=int(mod(x,100)/10)
x3=mod(x,10)
y=x3*100+x2*10+x1
thisform.label2.caption=“結(jié)果為:”+str(y,3)
else
messagebox(“入的不是一個(gè)三位自然數(shù),請重新輸入!”)
thisform.text1.value=0
thisform.text1.setfocus
endif
6圓面積messagebox顯示
r=thisform.text1.value s=pi()*r*r messagebox(“圓面積=”+str(s,3),0)
8判斷能否構(gòu)成三角形
a=thisform.text1.value b=thisform.text2.value c=thisform.text3.value if a+b>c and a+c>b and b+c>a l=(a+b+c)/2 area=sqrt(l*(l-a)*(l-b)*(l-c))thisform.text4.value=round(area,1)else messagebox(“不能構(gòu)成三角形,請重新輸入!”)thisform.text1.value=0 thisform.text2.value=0 thisform.text3.value=0 thisform.text4.value=0 thisform.text1.setfocus endif
9判斷是否是閏年
D=thisform.text1.value Y=year(d)If y/4=int(y/4)and y/100<>int(y/100)or int(y/400)=y/400 Y1=”是” Else Y1=”不是” Endif
Thisform.label2.caption=y1
10比較大小雙分支
a=thisform.text1.value b=thisform.text2.value if a>b thisform.text3.value=a else thisform.text3.value=b endif
11單分支
A=thisform.text1.value B=thisform.text2.value If a
case m=3 or m=4 or m=5
s=“春季” case m=6 or m=7 or m=8
s=“夏季”
case m=9 or m=10 or m=11
s=“秋季”
case m=12 or m=1 or m=2
s=“冬季”
endcase
thisform.label1.caption=“該季節(jié)為: 15計(jì)算1+100 s=0 i=1 do while i<=100 s=s+i i=i+1 enddo Thisform.text1.value=s 16計(jì)算N!P=1
”+s FOR I=1 T0 THISFORM.TEXT1.VALUE
P=p*i Endfor Thisform.text2.value=P 18算K=1+2^2+..n^2 s=0 for i=1 to val(thisform.text1.value)s=s+i^2 endfor
thisform.text2.value=s 17計(jì)算奇數(shù)和 s=0 for i=1to 100 step 2
s=s+i
endfor
thisform.text1.value=s 19計(jì)算e的近似值 s=0 i=1 n=1 m=1 do while m>=0.000001 n=n*i m=1/n i=i+1 s=s+m enddo
thisform.text1.value=s 20求出所有的水仙花數(shù) for i=100 to 999 x1=int(i/100)x2=int(mod(i,100)/10)x3=mod(i,10)if x1^3+x2^3+x3^3=i thisform.label1.caption=thisform.label1.caption+str(i,5)endif endfor 22輸入字符串逆序顯示 x=alltrim(thisform.text1.value)c=“" for i=len(x)to 1 step-1 c=c+substr(x,i,1)endfor thisform.label1.caption=c 23顯示ASSIC字符中的數(shù)字字符串 a=alltrim(thisform.text1.value)c=” “ for i=1 to len(a)step 1 b=substr(a,i,1)if asc(b)>=asc(”0“)and asc(b)<=asc(”9“)c=c+b endif
endfor thisform.label1.caption=c 24顯示ASSIC字符中的大寫字母串 a=alltrim(thisform.text1.value)c=” “ for i=1 to len(a)step 1 b=substr(a,i,1)if asc(b)> asc(”A“)and asc(b)<=asc(”Z“)c=c+b endif
endfor thisform.label1.caption=c 25求圓面積,迎獲得焦點(diǎn)即計(jì)算
Text2 gotfocus 事件
程序不變
26求圓面積,text1失去焦點(diǎn),即輸完字后敲回車即計(jì)算
Text1 的valid事件或者lostfocus事件 27修改label1 的相應(yīng)字體command group do case
case this.value=1
thisform.label1.fontname=”宋體“
case this.value=2
thisform.label1.fontname=”黑體“
case this.value=3
thisform.label1.fontname=”楷體“
case this.value=4
thisform.label1.fontname=”隸書“
case this.value=5
thisform.release Endcase
28x=thisform.text1.value y=thisform.text2.value do case
case thisform.optiongroup1.value=1
z=x+y case thisform.optiongroup1.value=2
z=x-y case thisform.optiongroup1.value=3
z=x*y case thisform.optiongroup1.value=4 z=x/y endcase thisform.text3.value=z
29在list中輸入*的直角三角形
y=”*“ for i=1 to 5 thisform.list1.additem(y)y=y+”*“ endfor 30列表框中顯示斐波拉契數(shù)列 f1=1 f2=1 thisform.list1.addlistitem(”
1“,1,1)thisform.list1.addlistitem(”
1“,1,2)x=1
&& x表示行號 y=3
&& y表示列號 for i=3 to 20
f3=f1+f2 thisform.list1.addlistitem(str(f3,5),x,y)f1=f2 f2=f3 y=y+1 if y=6 x=x+1
&& x+1即行號加1,換行 y=1
&& 換行后列號回1 endif endfor 31 將100到150中第一個(gè)能被3整除的數(shù)找出來。EXIT跳出當(dāng)前循環(huán)
For n=100 to 150
if n%3=0
thisform.text1.value=n
exit
endif Endfor 32用編輯框顯示1到100的奇數(shù) k=0 for i=1 to 100 step 2
k=k+1 thisform.edit1.value=thisform.edit1.value+str(i,5)if k%8=0 thisform.edit1.value=thisform.edit1.value+ chr(13)endif Endfor 33 用編輯框輸出大寫字母表 n=0 for i=asc(”A“)to asc(”Z“)
thisform.edit1.value=thisform.edit1.value+ chr(i)+space(2)
n=n+1
if n%6=0
thisform.edit1.value=thisform.edit1.value+ chr(13)
endif endfor 34查詢圖書表中包含程序二字的圖書信息
select * from 圖書 where 書名 like ”%程序%“ into cursor temp thisform.grid1.recordsource=”temp“ 35查詢圖書表中圖書的價(jià)格在28到30之間的圖書。
select * from 圖書 where 價(jià)格 between 28 and 30 into cursor temp thisform.grid1.recordsource=“temp ” 第二類
select * from 圖書 where 價(jià)格>=28 and 價(jià)格<=30 into cursor temp thisform.grid1.recordsource=“temp” 36按辦證日期先后順序顯示讀者表中的讀者信息。select * from 讀者 order by 辦證日期 into cursor temp thisform.grid1.recordsource=“temp ” 37在借閱表中按讀者編號從大到小的順序,讀者編號相同時(shí)按借閱日期的先后順序顯示讀者編號、書號及借閱日期。
select 讀者編號,書號,借閱日期 from 借閱
order by 讀者編號 desc, 借閱日期 asc into cursor temp thisform.grid1.recordsource=“temp ”
注:
通過ORDER BY子句可以實(shí)現(xiàn)查詢結(jié)果的排序輸出,允許按一列或多列排序。
格式:
ORDER BY <排序選項(xiàng)1>[ASC|DESC][,< 排序選項(xiàng)2>[ASC|DESC]?]
其中,ASC表示升序排序(缺省方式),DESC表示降序排序。
38顯示圖書表中數(shù)量最多的兩種圖書信息。表單Form1的Init事件代碼如下:
select top 2 * from 圖書 order by 數(shù)量 desc ;
into cursor temp thisform.grid1.recordsource=“temp “ 注:
使用TOP <數(shù)值表達(dá)式> [PERCENT]短語顯示部分結(jié)果。注意:TOP短語要與ORDER BY短語同時(shí)使用才有效。
【例】顯示價(jià)格最低的20%圖書的信息。
SELECT * TOP 20 PERCENT FROM 圖書 ORDER BY 價(jià)格 39計(jì)算圖書表中圖書的平均價(jià)格,保存在數(shù)組DJ中。select avg(價(jià)格)from 圖書 into array dj thisform.label1.caption=”圖書的平均價(jià)格 為:“+ str(dj(1),5,2)+”元“ 注:使用INTO ARRAY <數(shù)組名>將查詢結(jié)果存放到數(shù)組中。40將圖書表中最高單價(jià)和最低單價(jià)分別顯示在文本框text1和text2中。
其SQL語句改為: select max(價(jià)格)as 最高單價(jià),min(價(jià)格)as 最低單價(jià) from 圖書 into array cj thisform.text1.value=cj(1)thisform.text2.value=cj(2)41將圖書表中最高單價(jià)和最低單價(jià)分別顯示在文本框text1和text2中。其SQL語句改為:
select max(價(jià)格)as 最高單價(jià),min(價(jià)格)as 最低單價(jià) from 圖書
into array x Thisform.label3.caption=str(x(1),4,1)Thisform.label4.caption=str(x(2),4,1)42 計(jì)算圖書表中每個(gè)出版社的圖書數(shù)量。注: 通過GROUP BY子句可以實(shí)現(xiàn)分組查詢。
格式:
GROUP BY <分組字段名1>[,<分組字段名2>?]
[HAVING <過濾條件>]
其中,<分組字段名>可以是表的字段名、字段函數(shù)名或標(biāo)識列的數(shù)值型表達(dá)式;[HAVING <過濾條件>]子句進(jìn)一步限定分組的條件。表單Form1的Init事件代碼如下:
select
出版社,sum(數(shù)量)as 數(shù)量 from 圖書
group by 出版社
into cursor temp thisform.grid1.recordsource=”temp”
43在借閱表中統(tǒng)計(jì)每本圖書的借閱次數(shù)。
Select 書號,count(*)as 借閱次數(shù) from 借閱 group by 書號 into cursor temp
Thisform.grid1.recordsource=”temp”
44查詢至少被借閱了2次的圖書的書號及書名。注,此方法可以運(yùn)行
select 書號, 書名 from 圖書 where 書號 in(select 書號 from 借閱 group by 書號 having count(*)>=2)into cursor lsb thisform.grid1.recordsource=“l(fā)sb” 方法2(運(yùn)行故障,)select 圖書.書號,書名 from 圖書,借閱;
where 圖書.書號=借閱.書號
group ;
by圖書.書號 having count(*)>=2;
into cursor temp thisform.grid1.recordsource=“temp “ 方法3(運(yùn)行故障)Select 圖書.書號,書名 from 圖書 inner join;
借閱
on 圖書.書號=借閱.書號;
group by 圖書.書號;
having count(*)>=2;
into cursor temp thisform.grid1.recordsource=“temp ” 45輸入圖書編號,查詢借閱該圖書的讀者姓名、單位、聯(lián)系電話。方法1: “查詢”按鈕的Click事件代碼如下: bh=alltrim(thisform.text1.value)
select ;
讀者姓名,單位,聯(lián)系電話;
from 讀者,借閱
;
where 讀者.讀者編號=借閱.讀者編號;
and 書號=bh;
into cursor temp thisform.grid1.recordsource= “temp “ 方法2: “查詢”按鈕的Click事件代碼如下: bh=alltrim(thisform.text1.value)
select 讀者姓名,單位,聯(lián)系電話 from 讀者;
inner join 借閱 on 讀者.讀者編號=;
借閱.讀者編號 where 書號=bh;
into cursor temp thisform.grid1.recordsource=“temp ” 方法3: “查詢”按鈕的Click事件代碼如下: bh=alltrim(thisform.text1.value)
select 讀者姓名,單位,聯(lián)系電話 from 讀者 where 讀者編號 in(select 讀者編號 from 借閱
where 書號=bh)into cursor temp thisform.grid1.recordsource=“temp “ 46輸入讀者編號,查詢該讀者的姓名、單位、借閱的圖書的書名及借閱日期。
bh=alltrim(thisform.text1.value)
select 讀者姓名,單位,書名,借閱日期 from 讀者,借閱, 圖書 where 讀者.讀者編號= 借閱.讀者編號 and 借閱.書號= 圖書.書號 and 讀者.讀者編號=bh into cursor temp thisform.grid1.recordsource=”temp" 51Edit 編輯框的interactivechange代碼 zy=thisform.combo1.value
select 學(xué)號,姓名,成績 from xs,cj where 專業(yè)=zy into array ca select avg(成績),count(成績< 60)from ca into array cb thisform.texy1.value=cb(1)thisform.text2.value=cb(2)退出 Quit 52
第二篇:中海火星號[推薦]
2012年3月21日,在上海海事大學(xué)商船學(xué)院老師的帶領(lǐng)下,商船學(xué)院研究生參觀了停靠在洋山港的超級巨輪——中海火星號。晨風(fēng)習(xí)習(xí),旭日東升,商船學(xué)院今天早上迎來了一張張興奮地面孔。同學(xué)們懷著迫不及待的心情早早就在商船學(xué)院集合了,等候老師們前來領(lǐng)隊(duì)。早上八點(diǎn)半,大家準(zhǔn)時(shí)向洋山港出發(fā)。參觀的人員都配備了一副防滑手套和安全帽,大家在路上激動不已,期待一睹巨輪的風(fēng)采。
車輛駛過全場32公里的東海大橋進(jìn)入洋山島。上午十點(diǎn)鐘,車輛按計(jì)劃準(zhǔn)時(shí)到達(dá)碼頭。一下車,大家都驚嘆碼頭上繁忙的景象:數(shù)不清的集裝箱整整齊齊的擺放在碼頭上,繁忙的龍門吊車有條不紊的裝卸集裝箱,裝卸集裝箱的卡車來來往往。“中海火星號”長360多米,寬50多米,載重噸15萬多噸。迄今為止,同等規(guī)模的船舶全世界僅有7艘。遠(yuǎn)遠(yuǎn)望去,中海火星號像一條巨龍橫臥在岸邊。雄偉的結(jié)構(gòu)讓人肅然起敬。
同學(xué)們跟隨老師登上了舷梯,受到了船上工作人員的熱情接待。在相關(guān)船員的陪同下,同學(xué)們先參觀了機(jī)艙。中海火星號由新加坡著名的V-SHIP公司管理,機(jī)艙衛(wèi)生特別清潔,相關(guān)設(shè)備的維護(hù)保養(yǎng)工作做得非常到位。同學(xué)們在機(jī)艙依次參觀了主機(jī),配電板,船舶鍋爐,造水機(jī),分油機(jī),生活污水處理裝置,物料間等。船上工作人員為我們耐心詳細(xì)地介紹了機(jī)艙里先進(jìn)的機(jī)械設(shè)備,解答了同學(xué)們提出了各種疑問,使同學(xué)們受益匪淺。接下來,在駕駛員的陪同下同學(xué)們參觀了駕駛臺的相關(guān)設(shè)備。大家興致勃勃地聽駕駛員講解駕駛室里高端的通訊導(dǎo)航設(shè)備的操作步驟,海圖的繪制等相關(guān)知識。站在羅經(jīng)甲板瞭望中海火星號,幾十臺龍門吊在同時(shí)向裝貨,次序井然,船上的集裝箱裝的整整齊齊的。據(jù)船長介紹,這艘巨輪可以裝載13,,000個(gè)標(biāo)準(zhǔn)的集裝箱。參觀完駕駛臺,同學(xué)們在老師的帶領(lǐng)下依依不舍的離開了氣勢宏偉的巨輪,向船上的工作人員道別。
通過此次參觀,同學(xué)們感受很深,收獲非淺。大家的的確確開闊了眼界,更加解放了思想,更新了觀念,增強(qiáng)了責(zé)任意識,競爭意識。同學(xué)們切實(shí)的感受到了船舶領(lǐng)域科技的先進(jìn)性,管理的規(guī)范性和發(fā)展的前瞻性。
同學(xué)們一致認(rèn)為:當(dāng)今科技飛速發(fā)展,這次參觀拓寬了視野,解放了思想,增強(qiáng)了危機(jī)意識。我們在以后的學(xué)習(xí)中要刻苦學(xué)習(xí)理論知識,為科技創(chuàng)新打下堅(jiān)實(shí)的基礎(chǔ)。另一方面要積極關(guān)注科技發(fā)展動態(tài),把握發(fā)展趨勢,抓住機(jī)遇,理論聯(lián)系實(shí)際,通過各種活動來提高實(shí)踐創(chuàng)新能力和科研能力,將科技成果轉(zhuǎn)化為生產(chǎn)力,服務(wù)于我國的社會主義建設(shè)。
第三篇:程序代碼注釋編寫規(guī)范
程序代碼注釋編寫規(guī)范
為提高控制程序的閱讀性與可理解性,現(xiàn)制定相關(guān)代碼程序代碼注釋編寫的編寫規(guī)范。一般情況下,源程序有效注釋量必須在20%以上,注釋的原則是有助于對程序的閱讀理解,在該加的地方都加了,注釋不宜太多也不能太少,注釋語言必須準(zhǔn)確、易懂、簡潔。常規(guī)注釋有以下兩種方式。
單行:以“//”符號開始,任何位于該符號之后的本行文字都視為注釋。
多行:以“/*”符號開始,以“*/”結(jié)束。任何介于這對符號之間的文字都視為注釋。
一、說明性文件
說明性文件(如頭文件.h文件、.inc文件、.def文件、編譯說明文件.cfg等)頭部應(yīng)進(jìn)行注釋,注釋必須列出:版權(quán)說明、版本號、生成日期、作者、內(nèi)容、功能、與其它文件的關(guān)系、修改日志等,頭文件的注釋中還應(yīng)有函數(shù)功能簡要說明。
示例:下面這段頭文件的頭注釋比較標(biāo)準(zhǔn),當(dāng)然,并不局限于此格式,但上述信息建議要包含在內(nèi)。
/************************************************* COPYRIGHT(C), MicTiVo International.Co., Ltd.File NAME: // 文件 Author: Version: Date:
// 作者、版本及完成日期
DESCRIPTION: // 用于詳細(xì)說明此程序文件完成的主要功能,與其他模塊
// 或函數(shù)的接口,輸出值、取值范圍、含義及參數(shù)間的控
// 制、順序、獨(dú)立或依賴等關(guān)系 Others:
// 其它內(nèi)容的說明
Function List: // 主要函數(shù)列表,每條記錄應(yīng)包括函數(shù)名及功能簡要說明 1....History: // 修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改
// 者及修改內(nèi)容簡述 1.Date: Author: Modification: 2...*************************************************/
二、源文件頭
源文件頭部應(yīng)進(jìn)行注釋,列出:版權(quán)說明、版本號、生成日期、作者、模塊目的/功能、主要函數(shù)及其功能、修改日志等。
示例:下面這段源文件的頭注釋比較標(biāo)準(zhǔn),當(dāng)然,并不局限于此格式,但上述信息建議要包含在內(nèi)。
/************************************************************ COPYRIGHT(C), MicTiVo International.Co., Ltd.FileName: Author: Version : Date: DESCRIPTION: // 模塊描述,描述本文件的內(nèi)容、功能、內(nèi)部各部分之間的關(guān)系及
//本文件與其它文件關(guān)系等 Version:
// 版本信息
Function List:
// 主要函數(shù)及其功能 1.-------History:
// 歷史修改記錄
**********************************************************/
三、函數(shù)
函數(shù)頭部應(yīng)進(jìn)行注釋,列出:函數(shù)的目的/功能、輸入?yún)?shù)、輸出參數(shù)、返回值、調(diào)用關(guān)系(函數(shù)、表)等。
示例:下面這段函數(shù)的注釋比較標(biāo)準(zhǔn),當(dāng)然,并不局限于此格式,但上述信息建議要包含在內(nèi)。
/************************************************* Function:
// 函數(shù)名稱
DESCRIPTION: // 函數(shù)功能、性能等的描述 Calls:
// 被本函數(shù)調(diào)用的函數(shù)清單 Called By:
// 調(diào)用本函數(shù)的函數(shù)清單
Table Accessed: // 被訪問的表(此項(xiàng)僅對于牽扯到數(shù)據(jù)庫操作的程序)Table Updated: // 被修改的表(此項(xiàng)僅對于牽扯到數(shù)據(jù)庫操作的程序)Input:
// 輸入?yún)?shù)說明,包括每個(gè)參數(shù)的作
// 用、取值說明及參數(shù)間關(guān)系。OUTPUT:
// 對輸出參數(shù)的說明。Return:
// 函數(shù)返回值的說明 Others:
// 其它說明
*************************************************/
四、變量寄存器
標(biāo)志變量要有較詳細(xì)的注釋,包括對其功能、取值范圍、哪些函數(shù)或過程存取它以及存取時(shí)注意事項(xiàng)等的說明。示例:
Unsigned char receive_floag;//接收標(biāo)志;
/* 0—接收失敗, 1—接收成功, 2—…….*/
/*
receive _process()
*/
//調(diào)用函數(shù)
Unsigned char receive_data[10];//數(shù)據(jù)接收存儲器;
/*在 receive _bit()中對其賦值*/
//調(diào)用函數(shù)
五、控制寄存器
在對控制器控制寄存器進(jìn)行操作時(shí),需注明該寄存器功能,配置參數(shù)作用,以及配置時(shí)的注意事項(xiàng)等的說明。示例:(PIC單片機(jī)定時(shí)器控制)void time0_init(void){ T0CON=0X09;
//設(shè)定TMR0工作于16位定時(shí)器方式,內(nèi)部時(shí)鐘,不分頻 INTCON=INTCON|0X20;//TMR0中斷允許
INTCON=INTCON&0Xfb;//清除TMR0的中斷標(biāo)志
INTCON=INTCON|0xc0;//* 開總中斷、開外圍接口中斷
TMR0H= 0xaa;
TMR0L= 0xaa;}
// 對TMR0寫入初值.注意:與溢出中斷寫初值不同
第四篇:單純形法C語言程序代碼
長 春 工 業(yè) 大 學(xué)
課程設(shè)計(jì)程序代碼
課程設(shè)計(jì)名稱 運(yùn)籌學(xué)課程設(shè)計(jì) 專 業(yè) 信息管理與信息系統(tǒng) 班 級 130506班 學(xué) 生 姓 名 于松南、張鑫蕊、趙改玲、趙海潮
指 導(dǎo) 教 師
王亞君、王忠吉
2015年7月3日
#include
int m;//記錄約束條件方程組的個(gè)數(shù) int n;//記錄未知量的個(gè)數(shù) float M=1000000.0;float A[100][100];
//用于記錄方程組的數(shù)目和系數(shù)
float C[100];
//用于存儲目標(biāo)函數(shù)中各個(gè)變量的系數(shù) float b[100];
//用于存儲常約束條件中的常數(shù) float CB[100];
//用于存儲基變量的系數(shù) float seta[100];
//存放出基與入基的變化情況 float cn[100];
//存儲檢驗(yàn)數(shù)矩陣 float x[100];int num[100];
//用于存放出基與進(jìn)基變量的情況 float Z=0;
//記錄目標(biāo)函數(shù)值
void shuru();void print();int mincz();int find_line(int a);void exchange(int a,int b);int main(){
int i,j=0;
int p,q,temp;//q:換入,p:換出
shuru();
printf(“n------------n”);
printf(“ tCBtXBtbt”);
for(i=0;i printf(“ X(%d)t”,i+1); for(i=0;i x[i]=0; printf(“n”); while(1){ q=mincz(); if(q==-1){ print(); printf(“n所得解已經(jīng)是最優(yōu)解!n”); printf(“n最優(yōu)解為:n”); for(j=0;j temp=num[j]-1; x[temp]=b[j]; } for(i=0;i printf(“x%d=%.2f ”,i+1,x[i]); Z=Z+x[i]*C[i]; } printf(“Z=%.2f”,Z); break; } print(); p=find_line(q); printf(“np=%d,q=%d”,p,q); if(q==-1)break; exchange(p,q); } return 0;} int mincz(){ int i,k=0; int flag=0;//檢驗(yàn)數(shù)標(biāo)記 float min=0; for(i=0;i if(cn[i]>=0) flag=1; else { flag=0; break; } if(flag==1) return-1; //進(jìn)行到此處,說明存在<0的檢驗(yàn)數(shù) //找到最小的檢驗(yàn)數(shù),作為換入變量 for(i=0;i if(min>cn[i]){ min=cn[i]; k=i; } } return k;} int find_line(int a){ int i,k,j; int flag=0; float min; k=a; for(i=0;i if(A[i][k]<=0) flag=1; else { flag=0; break; } if(flag==1){ printf(“n該線性規(guī)劃無最優(yōu)解!n”); return-1; } for(i=0;i if(A[i][k]>0) seta[i]=b[i]/A[i][k]; else seta[i]=M; } min=M; for(i=0;i if(min>=seta[i]){ min=seta[i]; j=i; } } num[j]=k+1; CB[j]=C[k]; return j;} void exchange(int p,int q){ int i,j,c,l; float temp1,temp2,temp3; c=p;//行號,換出 l=q;//列號,換入 temp1=A[c][l];//A[c][l]主元 b[c]=b[c]/temp1; for(j=0;j A[c][j]=A[c][j]/temp1;//主元化為1 for(i=0;i if(i!=c) if(A[i][l]!=0){ temp2=A[i][l]; b[i]=b[i]-b[c]*temp2; //主元所在列,其余元素化為0 for(j=0;j A[i][j]=A[i][j]-A[c][j]*temp2; } } temp3=cn[l]; for(i=0;i cn[i]=cn[i]-A[c][i]*temp3;} void print(){ int i,j=0; printf(“n------------n”); for(i=0;i printf(“%8.2ftX(%d)%8.2f ”,CB[i],num[i],b[i]); for(j=0;j printf(“%8.2f ”,A[i][j]); printf(“n”); } printf(“n------------n”); printf(“ttt”); for(i=0;i printf(“ %8.2f”,cn[i]); printf(“n------------n”);} void shuru(){ int i,j;//循環(huán)變量 int k; printf(“請輸入線性規(guī)劃問題的約束條件個(gè)數(shù)M:”); scanf(“%d”,&m); printf(“請輸入線性規(guī)劃問題的決策變量個(gè)數(shù)N:”); scanf(“%d”,&n); printf(“n請輸入方程組的系數(shù)矩陣A(%d行%d列):n”,m,n); for(i=0;i for(j=0;j scanf(“%f”,&A[i][j]); printf(“n請輸入初始基變量的數(shù)字代碼矩陣:n”); for(i=0;i scanf(“%d”,&num[i]); printf(“n請輸入方程組右邊的值矩陣b:n”); for(i=0;i scanf(“%f”,&b[i]); printf(“n請輸入目標(biāo)函數(shù)各個(gè)變量的系數(shù)所構(gòu)成的系數(shù)陣C:n”); for(i=0;i scanf(“%f”,&C[i]); for(i=0;i cn[i]=-C[i]; for(i=0;i k=num[i]-1; CB[i]=C[k]; } } C語言 程序代碼編寫規(guī)范 (初級程序員 討論版) 前言 一個(gè)好的程序編寫規(guī)范是編寫高質(zhì)量程序的保證。清晰、規(guī)范的源程序不僅僅是方便閱讀,更重要的是能夠便于檢查錯(cuò)誤,提高調(diào)試效率,從而最終保證軟件的質(zhì)量和可維護(hù)性。 說明 此文擋還在完善改進(jìn)中,如有不足,歡迎指正。本文檔主要適用于剛剛開始接觸編程的初學(xué)者。 對于具有一定工程項(xiàng)目開發(fā)經(jīng)驗(yàn)的程序員,建議學(xué)習(xí)C語言程序代碼編寫規(guī)范—高級版。 目錄 代碼書寫規(guī)范 2 注釋書寫規(guī)范 3 命名規(guī)范內(nèi)容代碼書寫規(guī)范 1.1函數(shù)定義 每個(gè)函數(shù)的定義和說明應(yīng)該從第1列開始書寫。函數(shù)名(包括參數(shù)表)和函數(shù)體的花括號(“{”和“}”)應(yīng)該各占一行。在函數(shù)體結(jié)尾的括號(“}”)后面應(yīng)該加上注釋,注釋中應(yīng)該包括函數(shù)名,這樣比較方便進(jìn)行括號配對檢查,也可以清晰地看出來函數(shù)是否結(jié)束。 范例1:函數(shù)的聲明 void matMyFunction(int n){ …… } /* matMyFunction*/ 1.2空格的使用 使用空格分割所有演算符號和操作數(shù)。 這條規(guī)則的例外是“->”,““.”, “()”和“[]”,這些操作符和操作數(shù)之間不空格。當(dāng)需要把一個(gè)程序行的內(nèi)容分成幾行寫時(shí),操作符號應(yīng)該放在行末,而不是下一行的開頭。 1.3縮進(jìn)的設(shè)置 代碼書寫應(yīng)該遵從結(jié)構(gòu)化的要求,采用縮進(jìn)的格式。最小縮進(jìn)量為4個(gè)空格,整個(gè)文件內(nèi)部應(yīng)該統(tǒng)一,不要混用Tab鍵和4個(gè)空格這兩種情況,因?yàn)椴煌木庉嬈鲗ab鍵的處理方法不同。 1.4折行的使用 每行的長度不要超過80個(gè)字符,當(dāng)程序行太長時(shí),應(yīng)該分行書寫。分行時(shí)應(yīng)該按照自然的邏輯關(guān)系進(jìn)行,例如:不要把一個(gè)簡單的邏輯判斷寫在兩行上。 分行后的縮進(jìn)應(yīng)該按照程序的邏輯關(guān)系進(jìn)行對齊。例如:參數(shù)表折行后,下面的行應(yīng)該在參數(shù)表左括號的下方。 范例2:折行的格式dwNewShape = matAffineTransform(coords, translation,rotation); if(((new_shape.x > left_border)&& (new_shape.x < right_border))&& ((new_shape.y > bottom_border)&& (new_shape.y < top_border))){ draw(new_shape);} 1.5嵌套語句(語句塊)的格式 對于嵌套式的語句--即語句塊(如,if、while、switch等)應(yīng)該包括在花括號中。花括號的左括號應(yīng)該單獨(dú)占一行,并與關(guān)鍵字對齊。建議即使語句塊中只有一條語句,也應(yīng)該使用花括號包括,這樣可以使程序結(jié)構(gòu)更清晰,也可以避免出錯(cuò)。建議對比較長的塊,在末尾的花括號后加上注釋以表明該語言塊結(jié)束。 范例3:嵌套語句格式 if(value < max){ if(value!= 0) { func(value); } } } else { error(“The value is too big.”);} /* if(value < max)*/ 注釋書寫規(guī)范 注釋必須做到清晰,準(zhǔn)確地描述內(nèi)容。對于程序中復(fù)雜的部分必須有注釋加以說明。注釋量要適中,過多或過少都易導(dǎo)致閱讀困難。 2.1注釋風(fēng)格 語言中使用一組(/* … */)作為注釋界定符。注釋內(nèi)容盡量用英語方式表述。 注釋的基本樣式參考范例4。 注釋應(yīng)該出現(xiàn)在要說明的內(nèi)容之前,而不應(yīng)該出現(xiàn)在其后。 除了說明變量的用途和語言塊末尾使用的注釋,盡量不使用行末的注釋方式。 范例4:幾種注釋樣式 /* * ************************************************* 強(qiáng)調(diào)注釋 * ************************************************ */ /* * 塊注釋 */ /* 單行注釋 */ int i;/*行末注釋*/ 2.2何時(shí)需要注釋 如果變量的名字不能完全說明其用途,應(yīng)該使用注釋加以說明。 如果為了提高性能而使某些代碼變得難懂,應(yīng)該使用注釋加以說明。對于一個(gè)比較長的程序段落,應(yīng)該加注釋予以說明。如果設(shè)計(jì)文檔中有流程圖,則程序中對應(yīng)的位置應(yīng)該加注釋予以說明。 如果程序中使用了某個(gè)復(fù)雜的算法,建議注明其出處。 如果在調(diào)試中發(fā)現(xiàn)某段落容易出現(xiàn)錯(cuò)誤,應(yīng)該注明。命名規(guī)范 3.1常量、變量命名 用#define定義的符號常量全部采用大寫。 變量命名的基本原則: 可以選擇有意義的英文(小寫字母)組成變量名,使人看到該變量就能大致清 楚其含義。 不要使用人名、地名和漢語拼音。 如果使用縮寫,應(yīng)該使用那些約定俗成的,而不是自己編造的。 多個(gè)單詞組成的變量名,每個(gè)單詞的首字母應(yīng)該大寫。如:dwUserInputValue。 3.2函數(shù)命名 函數(shù)命名原則與變量命名原則基本相同。對于初學(xué)者,函數(shù)命名可以采用 “FunctionName”的形式。第五篇:C語言 程序代碼編寫規(guī)范