第一篇:Matlab課設
武漢理工大學《Matlab課程設計》課程設計說明書
目錄
摘要.............................................................................................2
一、Matlab運算與應用............................................................3 1.1..........................................................................................3 1.2..........................................................................................3
二、Matlab運算與應用設計題目分析....................................4 2.1..........................................................................................4 2.2..........................................................................................5 2.3..........................................................................................6 2.4..........................................................................................7 2.5........................................................................................13 2.6........................................................................................14 2.7........................................................................................15 2.8........................................................................................17 2.9........................................................................................19 2.10......................................................................................22
三、matlab課程設計心得體會..............................................23 參考文獻...................................................................................23
武漢理工大學《Matlab課程設計》課程設計說明書
摘要
MATLAB是矩陣實驗室(Matrix Laboratory)的簡稱,是美國MathWorks公司出品的商業(yè)數(shù)學軟件,用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析以及數(shù)值計算的高級技術(shù)計算語言和交互式環(huán)境,主要包括MATLAB和Simulink兩大部分。
Matlab和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。Matlab可以經(jīng)行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
本次課程設計主要通過學習了解Matlab,熟悉Matlab界面、進行簡單操作,并運用此款軟件完成安排的相關(guān)題目。
關(guān)鍵字:Matlab、課程設計、矩陣實驗室
武漢理工大學《Matlab課程設計》課程設計說明書
一、Matlab運算與應用
1.1理論分析
Matlab是MathWorks公司的產(chǎn)品,是一個為科學和工程計算而專門設計的高級交互式放的軟件包。Matlab環(huán)境集成了圖示與精確的數(shù)值計算,是一個可以完成各種計算和數(shù)據(jù)處理可視化的、強有力的、易于使用和理解的工具。Matlab已被證明是為解決數(shù)學、物理、化學、工程、醫(yī)藥、金融和其他涉及復雜數(shù)值計算的應用領域的一個十分靈活的、便于使用的工具,也是數(shù)學、數(shù)值分析和工程等課程教學的一個優(yōu)秀的教育工具。這個程序被世界各地高等學院廣泛使用,在工業(yè)應用中也很流行,Matlab使用于PC到超級計算機以及大多數(shù)諸如PC、Macintosb和UNIX等平臺。
Matlab中有大量的命令集和可用函數(shù)集,也通稱為Matlab M文件,這是應用更加容易。因此,在Matlab中求解問題通常比傳統(tǒng)編程快得多,由于是采用自然表示法,因而使代碼清晰和自釋。因為多數(shù)M文件是公開的,因此,易于修改這些函數(shù)。
Matlab中有一些命令可以用來控制Matlab語句的執(zhí)行,如條件語句、循環(huán)語句和支持用戶交互的命令。Matlab是一種高級的程序設計語言,能幫助用戶解決矩陣戶或其它問題。
1.2歸納與總結(jié)
Matlab的主要特點是:
(1)有高性能數(shù)值計算的高級算法,特別適合矩陣代數(shù)領域;(2)有大量事先定義的數(shù)學函數(shù),并具有用戶自定義函數(shù)的能力;(3)繪圖和顯示數(shù)據(jù),并具有教育、科學和藝術(shù)學的圖解和可視化的二維、三 維圖;
(4)基于HTML的完全幫助系統(tǒng);
(5)適合個人應用的強有力的面向矩陣/向量的高級程序設計語言;(6)與用其他語言編寫的程序結(jié)合和輸入輸出格式化的能力;
武漢理工大學《Matlab課程設計》課程設計說明書
(7)有在多個應用領域解決難題的工具箱。
MATLAB 的應用范圍非常廣,包括信號和圖像處理、通訊、控制系統(tǒng)設計、測試和測量、財務建模和分析以及計算生物學等眾多應用領域。附加的工具箱(單獨提供的專用 MATLAB 函數(shù)集)擴展了 MATLAB 環(huán)境,以解決這些應用領域內(nèi)特定類型的問題。
二、Matlab運算與應用設計題目分析
2.1已知t=linspace(0,2*pi,6),求t的正弦和正弦的絕對值。
2.1.1理論分析
由題目已知分析知,linspace(a,b,n)為線性分割函數(shù),在a與b之間均勻地產(chǎn)生n個點值,行成n維向量。Matlab中求解正弦的函數(shù)為sin(),求取絕對值和復數(shù)模值的函數(shù)為abs()。
2.1.2程序代碼
>> t=linspace(0,2*pi,6)%創(chuàng)建線性間隔向量t,范圍從0到2pi,元素 個數(shù)為6 >> a=cos(t)%對向量t求得余弦向量a >> b=abs(a)%對余弦向量a求絕對值得絕對值向量b 2.1.3運行結(jié)果
a =
1.0000 0.3090-0.8090-0.8090 0.3090 1.0000 b =
1.0000 0.3090 0.8090 0.8090 0.3090 1.0000
武漢理工大學《Matlab課程設計》課程設計說明書
2.1.4題目總結(jié)
為了方便給大量元素賦值,Matlab提供了一些基本矩陣,Linspace()就是其中的均分向量函數(shù)命令,大部分的Matlab函數(shù)都適用于做元素群運算,只有專門的幾個除外,那就是*、/、、^運算符和sqrtm、expm、logm三個函數(shù)。題目中用到的正弦函數(shù)sin()和取絕對值函數(shù)abs()均可用于元素群運算,也即其自變量都可以是任意階的矩陣。
2.2繪制余弦曲線y=cos(x)和指數(shù)函數(shù)y=x^2曲線。
2.2.1理論分析
本題是畫函數(shù)的曲線圖,可以利用plot,ezplot等命令進行繪圖。也可以用funtool命令直接繪制函數(shù)圖象。由于plot要設置自變量的范圍,而ezplot不需要設置,所以本題采用ezplot進行畫圖。
2.2.2程序代碼:
syms x;%聲明變量
y1=cos(x);%將cos(s)賦值給y1 y2=x^2;% 將x^2賦值給y2 ezplot(y1);%畫函數(shù)1圖 hold on
grid on %保持圖形 %畫方格
ezplot(y2)%畫函數(shù)2圖
2.2.3運行結(jié)果
武漢理工大學《Matlab課程設計》課程設計說明書
圖2.2.3 2.2.4題目總結(jié)
ezplot功能簡介:
EZPLOT即:Easy to use function plotter。它是一個易用的一元函數(shù)繪圖函數(shù)。特別是在繪制含有符號變量的函數(shù)的圖像時,ezplot要比plot更方便。因為plot繪制圖形時要指定自變量的范圍,而ezplot無需數(shù)據(jù)準備[2],直接繪出圖形。要將兩個函數(shù)繪制到同一個圖上要使用hold on 命令。
2.3利用for...end循環(huán)語句,求 2+4+6…+100 的值。
2.3.1理論分析
for語句作用是按照預先設定的循環(huán)步驟重復執(zhí)行某語句段, 其語法: for 循環(huán)控制變量=存儲著該變量依次所取值的一個向量。
循環(huán)語句塊, 本塊重復執(zhí)行的次數(shù)由上方向量的長度決定, 每次執(zhí)行, 循
武漢理工大學《Matlab課程設計》課程設計說明書
環(huán)控制變量依次取該向量中的值.end
2.3.2程序代碼
sum=0;%賦初值sum為0
for i=2:2:100 %變量i變化范圍為2到100,以2步進 sum=sum + i;%累加求和 end %結(jié)束for循環(huán)
2.3.3運行結(jié)果
>> sum sum =
2550 2.3.4題目總結(jié)
matlab的for 循環(huán)語句有其獨有的特點, 它使用一個向量來控制循環(huán), 循環(huán)次數(shù)由向量的長度來決定, 而每次循環(huán)都依次從向量中取值.這使得Matlab循環(huán)更靈活多樣, 其循環(huán)變量取值可以不按照特定的規(guī)律;但是另一方面, Matlab 的for循環(huán)也有獨特的限制, 當次循環(huán)中改變循環(huán)變量賦值, 不會代入下次循環(huán), 所以除非在其中用break提前退出, Matlab循環(huán)的次數(shù)是預先定好的.舉個例子: for a=1:2:7 , 將循環(huán)4次, a的取值依次是1, 3, 5, 7.2.4分析下面每條指令的功能并運行,觀察執(zhí)行結(jié)果。
(1)X=0:0.25:3;Y=X.*exp(-X);plot(X,Y),xlabel(‘x’),武漢理工大學《Matlab課程設計》課程設計說明書
ylabel(‘y’),title(‘y=x*exp(-x)’);
(2)A=zeros(3,5)A(:)=-4:5 L=abs(A)>4 islogical(L)X=A(L)
(3)A=[1:5;6:10] pow2(A)
(4)A=zeros(3,2)A(:)=1:6 A=A*(1+i)A1=A.’;B1=A’;(5)A=ones(2,3)B=ones(2)C=eye(4)D=diag(C)E=repmat(C,1,3)2.4.1程序分析
? X=0:0.25:3;%變量x的取值范圍為0 ~3,以0.25增加 Y=X.*exp(-X);%函數(shù)y=xe?x的表達式
plot(X,Y),xlabel(‘x’), ylabel(‘y’),title(‘y=x*exp(-x)’);
%繪制y=xe?x的圖線,橫坐標為x,縱坐標為y,標題為
y=x*exp(-x)? A=zeros(3,5)%創(chuàng)建一個3*5的零矩陣A A(:)=-4:5 %為矩陣A賦值,得到列向量范圍為-4到5,步進為1 L=abs(A)>4 %判斷矩陣A的絕對值是否大于4
武漢理工大學《Matlab課程設計》課程設計說明書
islogical(L)%判斷L是否為邏輯值
X=A(L)%X為邏輯數(shù)組L對應為1的位置的數(shù)據(jù)為列向量 ? A=[1:5;6:10] %創(chuàng)建一個2*5的矩陣A,范圍為1到10,步進為1 pow2(A)%返回數(shù)組X,依次計算A中元素以2為底的冪 ? A=zeros(3,2)%創(chuàng)建一個3*2的零矩陣 A(:)=1:6 %為矩陣A賦值,范圍為1到6,步進為1 A=A*(1+i)%將矩陣A中的每一個元素乘以(1+i)A1=A.' %對A進行數(shù)組轉(zhuǎn)置生成矩陣A1 B1=A' %對A進行矩陣轉(zhuǎn)置生成矩陣B1 ? A=ones(2,3)%創(chuàng)建一個2*3的1矩陣A B=ones(2)%創(chuàng)建一個2*2的1矩陣B C=eye(4)%創(chuàng)建一個4*4的單位矩陣C D=diag(C)%獲取單位矩陣C的對角線元素矩陣D E=repmat(C,1,3)%將矩陣C生成為1*3的新矩陣E
2.4.2運行結(jié)果
2.4.2.1程序運行結(jié)果一
圖2.4.2.1
2.4.2.2程序運行結(jié)果二
A =
武漢理工大學《Matlab課程設計》課程設計說明書
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
A =
-4-1 2 5 8-3 0 3 6 9-2 1 4 7 10
L =
0 0 0 1 1 0 0 0 1 1 0 0 0 1 1
ans = 1
X = 5 6
武漢理工大學《Matlab課程設計》課程設計說明書
8 9 10
2.4.2.3程序運行結(jié)果三
>> pow2(A)
ans =
64 128 256 512 1024 2.4.2.4程序運行結(jié)果四
>> A1=A.'
A1 =
0 + 2.0000i 0 + 4.0000i 0 + 6.0000i
0 + 8.0000i 0 +10.0000i 0 +12.0000i >> B1=A'
B1 =
04.0000i 08.0000i 0-10.0000i 0-12.0000i 11
武漢理工大學《Matlab課程設計》課程設計說明書
2.4.2.5程序運行結(jié)果五
>> A=ones(2,3)A =
1 1 1 1 1 >> B=ones(2)B =
1 1 1 >> C=eye(4)C =
0 0 0
0 1 0 0
0 0 1 0 0 0 0 1 >> D=diag(C)D =
1
武漢理工大學《Matlab課程設計》課程設計說明書
>> E=repmat(C,1,3)E = 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 2.4.3題目總結(jié)
對于實數(shù)矩陣,矩陣轉(zhuǎn)置和數(shù)組矩陣計算結(jié)果是一樣的,但是對于復數(shù)矩陣,數(shù)組轉(zhuǎn)置和矩陣轉(zhuǎn)置的計算結(jié)果不一致。所以,對于數(shù)組轉(zhuǎn)置運算也被稱為非共軛轉(zhuǎn)置,矩陣轉(zhuǎn)置運算則被稱為共軛矩陣。數(shù)組的運算是指數(shù)組對應元素之間的運算,也稱點運算。
2.5計算多項式p(x)= x3+15x2+8x在x=3和x=0:1:8時的值。
2.5.1理論分析
由題目已知的條件分析可知是運用MATLAB計算多項式。這里運用到的是polyval()命令。通過polyval()命令可以快速的計算出在相應值下的多項式的值。
2.5.2程序代碼
x=3;y= x^3+15.*x^2+8.*x 式
%賦初值3給x %寫出函數(shù)表達
武漢理工大學《Matlab課程設計》課程設計說明書
? clear all %清除所有變量 >> syms x;%聲明變量x >> y=x^3+15.*x^2+8.*x;%寫出函數(shù)表達式
>> x=0:1:8;%生成一個0到8的數(shù)組,每相鄰兩數(shù)間間隔為1 >> p=[1 15 8];%將函數(shù)表達式的系數(shù)放在數(shù)組P中 >> polyval(p,x)%用polyval函數(shù)求得表達式的值
2.5.3運行結(jié)果
X=3時
186 X=0:1:8時 y =
2.5.4題目總結(jié)
Matlab為用戶提供了解決多項式運算的和插值的函數(shù)庫,ployval()就是其中的多項式求值函數(shù)。在表達多項式系數(shù)中要把缺少的自變量系數(shù)0補充到系數(shù)矩陣中。
2.6隨機生成一個10000×3的矩陣,并繪制其柱狀圖
2.6.1理論分析
隨機生成矩陣函數(shù)可以用rand(M,N),表示隨機產(chǎn)生一個M*N的矩陣。柱狀繪圖函數(shù)可以用bar,此函數(shù)是在平面內(nèi)繪制柱狀圖,如果要繪制立體的,用bar3。
武漢理工大學《Matlab課程設計》課程設計說明書
2.6.2程序代碼
arry=rand(10000,3);
%隨機生成一個10000*3的矩陣
bar(arry)%bar函數(shù)用于繪制柱狀圖 %畫出柱狀圖
2.6.3運行結(jié)果
圖2.6.3
2.7利用switch…case編寫以下程序:
某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示):
price<200 無折扣 200?price<500 5%折扣 500?price<1000 10%折扣 Price?1000 15%折扣 輸入所售商品的價格,求其實際銷售價格。
武漢理工大學《Matlab課程設計》課程設計說明書
2.7.1理論分析
MATLAB語言為解決多分支判斷選擇提供了switch-case語句。switch-case語句的一般表達形式為: switch〈選擇判斷量〉 Case 選擇判斷值1 選擇判斷語句1 case 選擇判斷值2 選擇判斷語句2 …… otherwise 判斷執(zhí)行語句
2.7.2程序代碼
price = input();
%輸入商品價格
switch fix(price/100)%價格除以100后取整 case {0,1} price=price*1;case {2,3,4} price=price*0.95;case {5,6,7,8,9} price=price*0.9;case others price=price*0.85;end 16
武漢理工大學《Matlab課程設計》課程設計說明書
2.7.3運行結(jié)果
2.7.4題目總結(jié)
與其他的程序設計語言的switch-case語句不同的是,在MATLAB語言中,當其中一個case語句后的條件為真時,switch-case語句不對其后的case語句進行判斷,也就是說在MATLAB語言中,即使有多條case判斷語句為真,也只執(zhí)行所遇到的第一條為真的語句。這樣就不必像C語言那樣,在每條case語句后加上break語句以防止繼續(xù)執(zhí)行后面為真的case條件語句。
2.8編程將表達式
10(s?3)s(s-6)(s-16)進行部分分式展開
2.8.1理論分析
計算模型
10(s?3)s(s-6)(s-16)=k1s?k2s?6?k3s?16
武漢理工大學《Matlab課程設計》課程設計說明書
k1?10(s?3)(s?6)(s?16)10(s?3)s(s?16)10(s?3)s(s?6),s=0;k2?,s=6;k3?,s=16。
2.8.2程序代碼
clear,close all;syms x,x=0;syms s;
while x<20 %判斷當x<20 時 switch x
case 0
%清除所以變量和關(guān)閉所有打開的圖像框
k1=10*(x+3)/((x-6)*(x-16));
x=6;
case 6
k2=10*(x+3)/(x*(x-16));
x=16;
case 16
k3=10*(x+3)/(x*(x-6));
x=20;end end
y=k1/s+k2/(s-6)+k3/(s-16);
%將計算出的k1、k2、k3帶入表達式
武漢理工大學《Matlab課程設計》課程設計說明書
2.8.3運行結(jié)果
2.8.4題目總結(jié)
本題主要在于數(shù)學運算模型建立和計算表達式的書寫,利用while…end語句對其
進行三次循環(huán)條件判斷并計算三個常數(shù),通過switch…end語句分別給出三個常數(shù)的計算表達式,最后再將計算出的三個常數(shù)帶入到
10(s?3)s(s-6)(s-16)=
k1s?k2s?6?k3s?16中即可。
2.9已知y?e出曲線圖-1cos(t),其中t的范圍是[0 10],計算y的微分和積分并給2.9.1理論分析
已知函數(shù)方程和自變量t的變化范圍,對于積分,可以利用函數(shù)quad()對確定自變量變化范圍進行計算,格式如quad('函數(shù)名',初值,終值)所示。對于微分,可以利用函數(shù)diff()對確定自變量變化范圍進行計算。函數(shù)圖象可用funtool指令得到。
2.9.2程序代碼
2.9.2.1積分運算 yt='exp(-1)*cos(t)'
%寫出函數(shù)表達式
Ic=quad(yt,0,10,1e-8)%用quad函數(shù)求積分 Funtool %進行畫圖 2.9.2.2微分運算
syms t y
武漢理工大學《Matlab課程設計》課程設計說明書
y=(exp(-1)*cos(t)dydt=diff(y,t)%用diff函數(shù)求解微分 funtool %進行畫圖
2.9.3運行結(jié)果
2.9.3.1積分運算
2.10.3.1.1 程序運行結(jié)果
Ic =
-0.2001
2.10.3.1.2積分圖形
圖 2.10.3.1.2 20
武漢理工大學《Matlab課程設計》課程設計說明書
2.9.3.2微分運算
2.10.3.2.1程序運行結(jié)果
dydt =
-(****sin(t))/***8 2.10.3.2.2微分圖形
圖2.10.3。2.2
2.9.4題目總結(jié)
繪制函數(shù)圖像時還可以借助Matlab提供的專門繪制函數(shù)圖象的指令flot(),格式如flot('函數(shù)名',[初值,終值])。
武漢理工大學《Matlab課程設計》課程設計說明書
2.10 用fminbnd求解函數(shù)f(x)?x?1/x?5在區(qū)間(1,10)上的最小值
2.10.1理論分析
用于求某個給定函數(shù)的最小值點。使用方法是: x=fminbnd(func,x1,x2)func是函數(shù)句柄,然后x1和x2就是函數(shù)的區(qū)間,得到的結(jié)果就是使func取最小值的x值
當然也可以使用[x,fv]=fminbnd(func,x1,x2)的方式,這個時候fv就是函數(shù) 的最小值,即有:fv=f(x)2.10.2程序代碼
f=@(x)x-1/x+5;%確定函數(shù) [x,fv]=fminbnd(f,1,10)
%求區(qū)間1到10中函數(shù)的最小值
2.10.3運行結(jié)果
x =
1.0001
fv =
5.0001 2.10.4題目總結(jié)
本題主要在于fminbnd函數(shù)的使用方法,它有兩種方式,一種是 x=fminbnd(func,x1,x2);另一種是[x,fv]=fminbnd(func,x1,x2)。運用時隨便選哪種都可以,但是如果在某個區(qū)間上是單調(diào)的,結(jié)果就有點意思了,例如clear
>> f=@(x)x^-2*x-3;
武漢理工大學《Matlab課程設計》課程設計說明書
>> [x,fv]=fminbnd(f,2,3)
x = 2.9999
fv =-2.6667 看樣子MATLAB是使用了定長小區(qū)間的方式計算的,而且結(jié)果也是錯誤的,這不免
讓人對這個函數(shù)的可靠性產(chǎn)生懷疑…
三、matlab課程設計心得體會
這次Matlab課程設計使用了Matlab2010版本,雖然對它熟悉不過短短一個月左右時間,但也感受和學習到它的功能強大、可擴展性強和智能化程度高。它提供了豐富的操作指令,還有強大而又簡單的作圖功能。而且軟件本身還提供了演示(demo)和求助(help)的命令,讓用戶更好的學習到軟件的功能。此次課程設計學習到的不僅僅是軟件運用操作的知識,還學到了更多的學習方法。為了做好這次的課程設計,我查閱了大量的資料,并上網(wǎng)搜索了很多Matlab程序應用的教程和詳解,這個過程使我受益匪淺,發(fā)現(xiàn)了很多關(guān)于Matlab的論壇和學習網(wǎng)站,網(wǎng)上提供了很多關(guān)于Matlab學習的方法及其自學的方法,相信這些論壇和網(wǎng)站對于將來繼續(xù)學習Matlab及其他方面的知識也都有很大的幫助。
雖然在規(guī)定的時間內(nèi)完成了老師所布置的所有題目,但還是覺得不免有些不足,由于時間的限制,對許多Matlab所運用到的只有僅僅只是有所了解,而并沒有完全掌握,甚至可以說是只知其然,而不知其所以然。這是我認識到對于Matlab的學習任務還很艱巨,還有許多知識需要去了解,去深研。
參考文獻
【1】陳懷身.吳大正.高西全.Matlab及在電子信息課程中的應用[M].電子工業(yè)出版社 【2】朱習軍.張賓.劉尊年.隋思連.Matlab信號與圖像處理中的應用[M].電子工業(yè)出版社 【3】羅建軍.Matlab教程[M].電子工業(yè)出版社.2005
武漢理工大學《Matlab課程設計》課程設計說明書
【4】陳懷琛.Matlab及其在理工課程中的應用指南.2000 【5】張威.Matlab基礎與編程入門.西安電子科技大學出版社
【5】 周開立.MATLAB基礎及其應用教程.北京:北京大學出版社,2007.【5】 張智星.MAYLAB程序設計及應用.北京:清華大學出版社,2002.【5】 陳懷琛,吳大正,高西全.MATLAB及在電子信息課程中的應用.北京:電子工業(yè)出版社,2006.【5】 張琨.MATLAB 2010
從入門到精通.北京:電子工業(yè)出版社,2011.
第二篇:數(shù)據(jù)結(jié)構(gòu)課設
數(shù)據(jù)結(jié)構(gòu)課設 大整數(shù)計數(shù)器 1.問題描述
實現(xiàn)大整數(shù)(200位以內(nèi)的整數(shù))的加、減、乘、除運算。2.設計要求
設計程序?qū)崿F(xiàn)兩個大整數(shù)的四則運算,輸出這兩個大整數(shù)的和、差、積、商及余數(shù)。
3.數(shù)據(jù)結(jié)構(gòu)
本課程設計采用順序串來實現(xiàn)。4.問題分析
由于整數(shù)數(shù)據(jù)存儲位數(shù)有限,因此引入串的概念,將整型數(shù)據(jù)用字符串進行存儲,利用字符串的一個字符存儲大整數(shù)的一位數(shù)值,然后根據(jù)四則運算規(guī)則,對相應位依次進行相應運算,同時保存進位,從而實現(xiàn)大整數(shù)精確的運算。具體設計思路如下:
(1)計算大整數(shù)加法時,采用數(shù)學中列豎式的方法,從個位(即字符串的最后一個字符)開始逐位相加,超過或達到10則進位,同時將該位計算結(jié)果存到另一個字符串中,直至加完大整數(shù)的所有位為止。
(2)計算大整數(shù)減法時,首先調(diào)用庫函數(shù)strcmp判斷這兩個大整數(shù)是否相等,如果相等則結(jié)果為0,否則用compare函數(shù)判斷被減數(shù)和減數(shù)的大小關(guān)系,進而確定結(jié)果為正數(shù)還是負數(shù),然后對齊位依次進行減法,不夠減則向前借位,直至求出每一位減法之后的結(jié)果。
(3)計算大整數(shù)乘法時,首先讓乘數(shù)的每一位都和被乘數(shù)進行乘法運算,兩個乘數(shù)之積與進位相加作為當前位乘積,求得當前位的同時獲取進位值,進而實現(xiàn)大整數(shù)的乘法運算。
(4)計算大整數(shù)除法時,類似做減法,基本思想是反復做減法,從被除數(shù)里最多能減去多少次除數(shù),所求得的次數(shù)就是商,剩余不夠減的部分則是余數(shù),這樣便可計算出大整數(shù)除法的商和余數(shù)。
需求分析(1)任何一個表達式都是由操作數(shù)、運算符和界限符組成的,我們稱之為單詞.(2)表達式求值首先要符合四則運算規(guī)則: ① 先乘除,后加減 ② 從左到右進行運算 ③ 先括號內(nèi),后括號外(3)功能實現(xiàn): ① 若當前單詞為數(shù)字串,則壓入數(shù)值棧 ② 若當前單詞為運算符并大于運算棧的棧頂符號,則進棧 ③ 若當前單詞為運算符并等于運算棧的棧頂符號,去括號,輸出 ④ 若當前單詞為運算符并小于運算棧的棧頂符號,則進行運算
課程設計的目的 通過課程設計全面掌握《C語言程序設計》關(guān)鍵知識點,掌握C語言中數(shù)組、指針、結(jié)構(gòu)體、文件等方面的基本知識。
通過課程設計了解并掌握C語言程序設計的方法,熟悉C程序設計的開發(fā)環(huán)境及C程序的
調(diào)試過程。
培養(yǎng)學生查閱參考資料、手冊的自學能力,通過獨立思考深入鉆研有關(guān)問題,學會自己分析、解決問題的方法。
課程設計的任務和要求 任務: 編程求出輸入的兩個正整數(shù)之和,這兩個正整數(shù)的可能達到200位。
要求:
輸入:
共有兩行,第一行為第1個正整數(shù);第二行為第2個正整數(shù)。
輸出:
2個正整數(shù)之和。
主要參與成員
姓 名 學 號
系 別 班 級 主要作用(分工)
成果形式
設計 軟件 作品 其他:
完成情況及以后的拓展設想 通過用C語言編寫函數(shù)基本實現(xiàn)了大整數(shù)相加這個程序,但該程序仍存在一些不足,還可以加上一些語句使程序具有容錯功能,并且可以正確計算一個負數(shù)和一個正數(shù)相加。
課 程 設 計 鑒 定 情 況 表 小組鑒定意見
小組長簽名:
年 月 日
指導教師意見
教師簽名:
****年**月**日
課程設計成績 優(yōu) 良 及格 不及格 教研室意見
年 月 日 備注 《C語言程序設計》課程設計報告書 作者:廖 序 課程設計概述 課程設計名稱
大整數(shù)相加 任務要求: 編程求出輸入的兩個正整數(shù)之和,這兩個正整數(shù)的可能達到200位。
輸入:
共有兩行,第一行為第1個正整數(shù);第二行為第2個正整數(shù)。
輸出:
2個正整數(shù)之和。開發(fā)環(huán)境: C語言。C語言是目前世界上流行、使用最廣泛的高級程序設計語言。1972年,C語言在美國貝爾實驗室里問世,后來又被多次改進,并出現(xiàn)了多種版本。80年代初,美國國家標準化協(xié)會(ANSI),根據(jù)C語言問世以來各種版本對C語言的發(fā)展和擴充,制定了ANSIC標準。
目前,在微機上廣泛使用的C語言編譯系統(tǒng)有MicrosoftC、Turbo C、Borland C等。這些C語言版本不僅實現(xiàn)了ANSIC標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
C語言的特點: C語言是一種結(jié)構(gòu)化語言。它層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護。C語言的表現(xiàn)能力和處理能力極強。它不僅具有豐富的運算符和數(shù)據(jù)類型,便于實現(xiàn)各類復雜的數(shù)據(jù)結(jié)構(gòu)。它還可以直接訪問內(nèi)存的物理地址,進行位(bit)一級的操作。
由于C語言實現(xiàn)了對硬件的編程操作,因此C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應用軟件的開發(fā)。
此外,C語言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C語言。
參考資料
李錚、葉艷冰、汪德俊,C語言程序設計基礎與應用,清華大學出版社,2005 [2]CSDN技術(shù)中心
二、概要設計
為了實現(xiàn)大整數(shù)相加這個程序,將程序劃分為了三個模塊: 輸入數(shù)據(jù)。運算。輸出結(jié)果。
首先定義了子函數(shù)Input()來存儲用戶輸入的兩個加數(shù),為了滿足任意位數(shù)的兩個大整數(shù)相加,在子函數(shù)Input()中嵌套調(diào)用子函數(shù)Init()使sum數(shù)組里面存放的數(shù)初始化為”0”。
然后定義子函數(shù)Long_Add()使兩個大整數(shù)作加法運算,從后面往前面相加,附帶進位。定義子函數(shù)Output()實現(xiàn)輸出結(jié)果。
最后如下圖所示,在主函數(shù)main中調(diào)用Input(),Long_Add(),Output()三個子函數(shù)實現(xiàn)程序。
三、詳細設計
程序的流程圖:
四、調(diào)試過程 第一次 測試數(shù)據(jù)a=***7,b=111111 編譯運行后不能輸出結(jié)果,檢查函數(shù)后編譯正確。再次分析,發(fā)現(xiàn)如果直接把a,b,sum定義為unsigned int型的話,計算出來的和的范圍只能在0~65535之間,否則就會出現(xiàn)錯誤。嘗試將a,b,sum存放到字符數(shù)組中,從個位開始,一位一位相加。
第二次 測試數(shù)據(jù)a=***7,b=111111 編譯運行后仍不能輸出結(jié)果。分析原因,在用于輸出的子函數(shù)Output()中,輸出數(shù)組字符數(shù)組sum[]前未確定和的最高非零位。
嘗試加入for(i=0;i 第三次 測試數(shù)據(jù)a=99999919,b=99 編譯運行后發(fā)現(xiàn)計算出來結(jié)果不正確。經(jīng)過分析,函數(shù)中沒有對最后 一個進位進行處理。 嘗試加入while(carry > 0)語句,再次進行調(diào)試。 { tempsum = sum[i]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;i--;} 第四次 測試數(shù)據(jù)a=99999919,b=99 編譯運行后得到正確結(jié)果。 第五次 隨意輸入幾組數(shù)據(jù)進行測試,結(jié)果都是正確的。程序得到實現(xiàn)。 五、結(jié)論與體會 通過不斷的調(diào)試、修改,本課程設計最終實現(xiàn)了200位以內(nèi)的兩個大整數(shù)相加,但程序還 可以進一步完善,程序中仍存在一些不足之處,比如缺少容錯功能,不能準確計算負整數(shù)加正整數(shù),等等問題 雖然C語言程序設計在上學期做為我們的必修課已經(jīng)學習過了,但書到用時方恨少,這次課程設計的學習程序設計中暴露出的我自身的問題更是非常明顯。 一開始看到題目認為非常簡單,直接將兩個數(shù)都定義為整型。編寫程序并運行后發(fā)現(xiàn)并不能達到題目的要求,計算出來的和只能小于等于65535,否則就會出現(xiàn)錯誤。分析后,將數(shù)據(jù)作為字符串來處理,用for循環(huán)語句從存數(shù)的字符數(shù)組中一位一位的取數(shù)出來,按照數(shù)位對齊,從個位開始,按位相加,逢十進一的運算規(guī)則進行運算。最后用字符輸出函數(shù)putchar()輸出計算出來的結(jié)果。由于程序偏大且較復雜,將程序劃分為了輸入數(shù)據(jù)、運算、輸出數(shù)據(jù)三個子程序。數(shù)次編譯調(diào)試后,最終使程序得以實現(xiàn)。 經(jīng)過三個星期的上機實踐學習,使我對C語言有了更進一步的認識和了解,讓我能夠進一步的掌握和運用C語言來編寫程序。要想學好C語言要重在實踐,要通過不斷的上機操作才能更好地學習它,通過實踐,我也發(fā)現(xiàn)我的好多不足之處和薄弱環(huán)節(jié)。 首先,基礎掌握不牢固,對于C語言中的許多基本語法尚沒有熟練掌握,在設計過程中仍需請教其它同學,查閱課本,設計效率很低。 其次,經(jīng)典算法掌握不牢。在完成作業(yè)的過程中還需查閱書籍和借鑒他人。 再次,程序量過大的時候,頭緒理不清。雜亂無章,無系統(tǒng)性,不便調(diào)試和閱覽,自己也易于出錯。 并且對C語言中經(jīng)常出現(xiàn)的錯誤也不了解,通過實踐,使我在這幾個方面的認識有所提高。 通過實踐的學習,我認到學好計算機要重視實踐操作,不僅僅是學習C語言,還是其它的語言,以及其它的計算機方面的知識都要重在實踐,所以后在學習過程中,我會更加注視實踐操作,使自己便好地學好計算機。 六、源程序清單 #include t;string.h> #define Max 1000 char sum[Max+1];/*和*/ char a[Max],b[Max];/*兩個加數(shù)*/ int len1,len2;void Input(char a[],char b[]){ int i,len;void Init(char a[]);/*對Init()函數(shù)進行聲明*/ printf(“Please enter two integer:n”);scanf(“%s %s”,a,b);len1=strlen(a);len2=strlen(b);Init(sum);len=strlen(a);for(i=len-1;i>=0;i--)sum[Max+i-len] = a[i];} void Init(char a[]) { int i;for(i=0;i void Long_Add(char sum[],char new[]){ int i,j;int len;int tempsum;int carry = 0;/*進位*/ len = strlen(new);/*從個位開始,按位相加,逢十進一*/ for(i=Max-1,j=len-1;i>=0,j>=0;i--,j--){ tempsum = sum[i]-'0'+new [j]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;} while(carry > 0)/*處理最后一個進位*/ { tempsum = sum[i]-'0'+carry;sum[i] = tempsum%10+'0';carry = tempsum/10;i--;} return;} void Output(char sum[]){int i,n;/*尋找和的最高非零位*/ for(i=0;i Long_Add(sum,b);Output(sum);getch();return 0; 計算機網(wǎng)絡應用課程設計 報告 系(院): 計算機科學學院 專業(yè)班級: 計科11511 姓 名: 鐘燦均 學 號: 201503687 指導教師: 余紹文 設計時間: 2017.6.12-2017.6.23 設計地點: 12教1樓機房 一、課程設計目的和意義 計算機網(wǎng)絡課程設計的目的,是為了讓我們更深入地掌握計算機網(wǎng)絡的核心內(nèi)容,實現(xiàn)理論與實踐相結(jié)合。讓學生用具體的實踐成果,體現(xiàn)對理論知識的掌握程度。有利于學生提高計算機網(wǎng)絡的實踐能力,加深對計算機網(wǎng)絡理論知識的理解。其基本目的是: 1. 培養(yǎng)學生理論聯(lián)系實際的設計思想,訓練綜合運用所學的基礎理論知識,結(jié)合生產(chǎn)實際分析和解決網(wǎng)絡應用中問題的能力,從而使基礎理論知識得到鞏固和加深。2. 學習掌握網(wǎng)絡應用工程的一般設計過程和方法。 二、設計題目和要求 1.編寫程序,實現(xiàn)系統(tǒng)的基本功能; 2.要有用戶界面:要求至少采用文本菜單界面;鼓勵采用圖形菜單界面; 3.寫課程設計報告,內(nèi)容包括: ? 封面(參見附錄I) ? 需求分析:以無歧義的陳述說明程序設計的任務,強調(diào)的是程序要做什么?給出功能模塊圖和流程圖。同時明確規(guī)定:輸入的形式和輸出值的范圍;輸出的形式;程序所能夠達到的功能;測試數(shù)據(jù),包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果。? 概要設計:包括程序設計組成框圖,程序中使用的存儲結(jié)構(gòu)設計說明(如果指定存儲結(jié)構(gòu)請寫出該存儲結(jié)構(gòu)的定義)。 ? 詳細設計:包括模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等),每個模塊的算法設計說明(可以是描述算法的流程圖)。其中源程序要按照寫程序的規(guī)則來編寫,結(jié)構(gòu)清晰,重點函數(shù)的重點變量,重點功能部分要加上清晰的程序注釋。? 運行結(jié)果:包括典型的界面、輸入和輸出數(shù)據(jù)等; ? 總結(jié):包括課程設計中遇到的問題,解決問題的過程及體會、收獲、對課程設計的認識與思考等。 ? 附錄:包括主要程序清單,要有適當?shù)淖⑨?,使程序容易閱讀。? 開發(fā)環(huán)境:windows 10 ? 開發(fā)工具: vs2008 題目3:基于UDP協(xié)議的簡易聊天機器人 設計目標: 1.了解Socket通信的原理,在此基礎上編寫一個聊天程序; 2.理解upd原理;課程設計系統(tǒng)組成及模塊功能: 此課程設計實現(xiàn)了基于UDP的客戶/服務器通信程序,需要實現(xiàn)以下一些基本功能: 1.客戶端連接聊天機器人服務器; 2.消息發(fā)送:客戶端發(fā)送消息給機器人服務器。 3.消息接收:客戶端接收到機器人服務器發(fā)送給他的消息。4.可以有多個客戶端同時連接 5.智能回復功能:根據(jù)用戶發(fā)送的消息內(nèi)容,稍微有點智能回復。 運行效果: 服務器端和客戶端截圖 三、設計內(nèi)容 1、UDP傳送數(shù)據(jù)前并不與對方建立連接,即UDP是無連接的,在傳輸數(shù)據(jù)前,發(fā)送方和接收方相互交換信息使雙方同步。 2、UDP不對收到的數(shù)據(jù)進行排序,在UDP報文的首部中并沒有關(guān)于數(shù)據(jù)順序的信息(如TCP所采用的序號),而且報文不一定按順序到達的,所以接收端無從排起。 3、UDP對接收到的數(shù)據(jù)報不發(fā)送確認信號,發(fā)送端不知道數(shù)據(jù)是否被正確接收,也不會重發(fā)數(shù)據(jù)。 4、UDP傳送數(shù)據(jù)較TCP快速,系統(tǒng)開銷也少。 5、由于缺乏擁塞控制(congestion control),需要基于網(wǎng)絡的機制來減小因失控和高速UDP流量負荷而導致的擁塞崩潰效應。換句話說,因為UDP發(fā)送者不能夠檢測擁塞,所以像使用包隊列和丟棄技術(shù)的路由器這樣的網(wǎng)絡基本設備往往就成為降低UDP過大通信量的有效工具。數(shù)據(jù)報擁塞控制協(xié)議(DCCP)設計成通過在諸如流媒體類型的高速率UDP流中增加主機擁塞控制來減小這個潛在的問題。 從以上UDP協(xié)議特點可知,UDP提供的是無連接的、不可靠的數(shù)據(jù)傳送方式,是一種盡力而為的數(shù)據(jù)交付服務。 1.服務端 1.2.3.4.5.加載協(xié)議棧; 創(chuàng)建套接字; 將套接字綁定到一個本地地址和端口bind; 等待接收數(shù)據(jù)recvfrom;關(guān)閉套接字; 2.客戶端 1.2.3.4.加載協(xié)議棧; 創(chuàng)建套接字socket; 向服務器發(fā)送數(shù)據(jù)sendto;關(guān)閉套接字; 3.相關(guān)代碼顯示:(客戶端) int main(int argc, char* argv[]){ system(“@color 0e”);WORD socketVersion = MAKEWORD(2, 2);WSADATA wsaData;if(WSAStartup(socketVersion, &wsaData)!= 0){ } sockaddr_in sin;sin.sin_family = AF_INET;sin.sin_port = htons(8888);sin.sin_addr.S_un.S_addr = inet_addr(m);int len = sizeof(sin);return 0;以上代碼為相關(guān)版本信息及熱啟動的一些操作;; 結(jié)構(gòu)體端口號及相關(guān)地址信息以及轉(zhuǎn)化函數(shù),將輸入的信息轉(zhuǎn)化為計算機可識別的二進制代碼,進行相關(guān)構(gòu)造 char * sendData = new char[255];cout << “主人:”;cin >> sendData;while(strcmp(sendData, “#”)!= 0){ sendto(sclient, sendData, strlen(sendData), 0,(sockaddr *)&sin, len);char recvData[255];int ret = recvfrom(sclient, recvData, 255, 0,(sockaddr *)&sin, &len);if(ret > 0){ } recvData[ret] = 0x00;cout << “機器人:”;printf(recvData);4.相關(guān)代碼展示:(服務端) SOCKET serSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);if(serSocket == INVALID_SOCKET){ } printf(“socket error!”);return 0;3 if(bind(serSocket,(sockaddr *)&serAddr, sizeof(serAddr))== SOCKET_ERROR){ } sockaddr_in remoteAddr;int nAddrLen = sizeof(remoteAddr);char * sendData = new char[255];char recvData[255];while(true){ int ret = recvfrom(serSocket, recvData, 255, 0,(sockaddr *)&remoteAddr, //printf(recvData);if(ret > 0){ } struct Ro { char recv[255];char send[255];recvData[ret] = 0x00;printf(“接受到一個連接:%s rn”, inet_ntoa(remoteAddr.sin_addr));cout << “主人:”;printf(recvData);printf(“bind error!”);closesocket(serSocket);return 0;以上為對套接字的綁定及判斷綁定是否成功,以及對于相關(guān)信息的初始化 &nAddrLen);}Ro;FILE *fp;fp = fopen(“G:機器人問答機制.txt”, “r”);while(!feof(fp)){ } fscanf(fp, “%s %s”, Ro.recv, Ro.send);if(strcmp(recvData, Ro.recv)== 0){ } else { } strcpy(sendData, Ro.send);break;strcpy(sendData, “對不起,我不知道”);4 fclose(fp);cout << endl;cout << “機器人:” << sendData << endl;sendto(serSocket, sendData, strlen(sendData), 0,(sockaddr *)&remoteAddr, nAddrLen); 四、設計成果以及心得 1.成果 2.心得 通過對課設的相關(guān)的操作,加強了對于相關(guān)知識的理解,對于知識的應用也得以加強,在課設過程中,聊天機器人制作較為有趣,對于TCP與UDP的通信方式有了進一步的理解和加強,對于socket編程的相關(guān)基礎也得以進一步的理解和學習。在今后的學習過程中希望可以將所學知識應用于實際,學以致用。而且對于課設中存在的問題和不足,以及通過老師的講解,對一些算法加以分析和改進,從而不斷完善課設內(nèi)容,對內(nèi)容的理解得以加深。 指導老師意見: 成績: 教師簽名: 2017年6月23日 本次課程設計我們小組順利的完成了鍋爐內(nèi)膽水溫與循環(huán)水流量串級控制系統(tǒng)。我們通過討論對過程參數(shù)方面的知識有了更加深入的了解。我負責的是傳模擬量采集模塊。 和以前做過的課程設計一樣,經(jīng)過兩周的課程設計和學習鞏固過程,我充分認識到理論聯(lián)系實際能力的重要性。另外還讓我知道設計過程中應自始至終持有嚴謹?shù)目茖W態(tài)度,不能存有一絲的僥幸心理。首先設計中發(fā)現(xiàn)自己的理論知識掌握的不牢固。其次就是在設計過程中出現(xiàn)了很多問題,但是自己不會具體情況具體分析。本次工程實踐就是利用THJ-4型過程控制實驗裝置為硬件基礎做鍋爐內(nèi)膽水溫控制系統(tǒng)實驗分析,采用MCGS組態(tài)軟件在上位機實現(xiàn)顯示和控制。通過本次工程實踐,來熟悉工業(yè)過程控制的控制流程以及其控制原理。 同學的幫助在為期一周的課設候中有至關(guān)重要的作用。因為一個人的能力是有限的。在同學的點滴幫助下不斷的自我完善,從而達到目的。 我覺得作為一名自動化專業(yè)的學生,傳感器的課程設計是很有意義的。更重要的是如何把自己平時所學的東西應用到實際中。雖然自己對于這門課懂的并不多,很多基礎的東西都還沒有很好的掌握,覺得很難,也沒有很有效的辦法通過自身去理解,但是靠著這一個禮拜的“學習”,在小組同學的幫助和講解下,漸漸對這門課逐漸產(chǎn)生了些許的興趣,自己開始主動學習并逐步從基礎慢慢開始弄懂它。我認為這個收獲應該說是相當大的。覺得課程設計反映的是一個從理論到實際應用的過程,但是更遠一點可以聯(lián)系到以后畢業(yè)之后從學校轉(zhuǎn)到踏上社會的一個過程。小組人員的配合﹑相處,以及自身的動腦和努力,都是以后工作中需要的。 電 子 工 程 學 院 課程設計報告格式及要求 一、封面:單獨1頁(見樣件) 二、摘要、關(guān)鍵詞:中文(250~300字)、英文;單獨1頁 中文摘要前加:“摘要:”,英文摘要前加“Abstract:”。 關(guān)鍵詞一般是3-6個,中英文關(guān)鍵詞一一對應,中文前冠以“關(guān)鍵詞:”,英文前冠以“Key words:”。 三、目錄:內(nèi)容必要對應頁碼號。目錄包括設計總結(jié)報告的章節(jié)標題、附錄的內(nèi)容所對應的頁碼。章節(jié)標題的排列如下格式進行: 1.........................................................................(第1級) 1.1………………………………………………(第2級) 1.1.1………………………………………(第3級) (1)……………………………………(第4級) ①……………………………………….(第5級) a……………………………………….(第6級) 四、正文:正文是設計總結(jié)報告的核心。設計總結(jié)報告正文的主要內(nèi)容包含有:系統(tǒng)設計、單元電路設計、軟件設計、系統(tǒng)測試、結(jié)論等。 字體要求: 設計報告統(tǒng)一用A4紙打印,設計報告正文內(nèi)容用小四號宋體。報告從正文開始統(tǒng)一編頁碼。左側(cè)裝訂。 一級標題:小二號黑體,居中占5行,標題與題目之間空一個漢字的空。二級標題:三號標宋,居中占三行,標題與題目之間空一個漢字的空。三級標題:四號黑體,頂格占兩行,標題與題目之間空一個漢字的空。四級標題:小四號粗楷體,頂格占一行,標題與題目之間空一個漢字的空。 標題中的英文字母均采用“Times New Roma”體,字號同標題字號。四級標題下的分級標題的標題字號為五宋。 所有文中圖和表要先說明再有圖表。圖要清晰、并與文中的敘述要一致,對圖中內(nèi)容的說明盡量放在文中。圖序、圖題(必須有)為小五號宋體,居中排與圖的正下方。表序、表題為小五號黑體,居中排于表的正上方;圖和表中的文字為六號宋體;表格四周封閉,表跨越時另起表頭。 圖和表的注釋、注腳為六號宋體;數(shù)學公式居中排,公式中字母正斜體和大小寫前后要統(tǒng)一。 公式另行居中,公式末不加標點,有編號時可靠右側(cè)頂邊線;若公式前有文字,例 如、解等,文字頂格寫,公式任居中;公式中的外文字母之間、運算符號與各量符號之間應空半個數(shù)字的間距;若對公式有說明,可接排,如式中,A-XX(雙字線);B-XX;當說明較多時另起行頂格寫“式中A-XX”;回行與A對齊寫“B-XX”;公式中矩陣要居中且行列上下左右對齊。 物理量及技術(shù)術(shù)語全文要統(tǒng)一,要采用國際標準。 五、參考文獻:參考文獻部分應列出在設計過程中參考的主要書籍、刊物、雜志等。參考文獻的格式如下: (1)專著、論文集、學術(shù)論文、報告 [序號]主要責任者(.)文獻提名[專著([ M ].);論文集([C].);學術(shù)論文([ D].);報告([ R].)](.)出版地(:)出版者(,)出版年(.)起止頁碼(.) (2)期刊文章 [序號]主要責任者(.)文獻提名([ J ].)刊名(,)年(,)卷(期)(:)起止頁碼(.) (3)國際、國家標準 [序號]標準編號(,)標準名稱([ S ]) 六、附錄:附錄包括元器件明細表、儀器設備清單、電路圖圖紙、設計的程序清單、系統(tǒng)(作品)使用說明等。 設計要求:單獨1頁(由指導教師給出)1. 設計報告正文: 一、前言: 總體方案設計: 包括方案比較、方案論證、方案選擇(以方框圖的形式給出各方案)單元模塊設計: 各單元模塊功能介紹及電路設計; 電路參數(shù)的計算及元器件的選擇; 特殊器件的介紹; 各單元模塊的聯(lián)接。軟件設計: ① 說明軟件設計原理及設計所用工具; 畫出軟件設計結(jié)構(gòu)圖、說明其功能; 畫出主要軟件設計流程框圖。系統(tǒng)調(diào)試: 包括系統(tǒng)硬件及軟件調(diào)試,說明調(diào)試方法與調(diào)試內(nèi)容。系統(tǒng)功能、指標參數(shù): ①說明系統(tǒng)能實現(xiàn)的功能;②系統(tǒng)指標參數(shù)測試,說明測試方法,要求有測試參數(shù)記錄表;③系統(tǒng)功能及指標參數(shù)分析(與設計要求對比進行)。設計總結(jié): 包括:①對設計的小結(jié);②設計收獲體會;③對設計的進一步完善提出意見或建議。第三篇:計算機網(wǎng)絡課設
第四篇:課設小結(jié)
第五篇:課設規(guī)范