新學(xué)期開始柒爸,第一堂的軟件工程課,拿到書本看了下陈肛,感覺神一般得迷揍鸟,就覺得很難學(xué)。以下是我上完第一次課得理解:
一.什么是軟件工程句旱?
1.軟件工程
是把系統(tǒng)得阳藻、有序得、可量化得方法應(yīng)用到軟件得開發(fā)谈撒、運(yùn)營和維護(hù)上得過程腥泥。
2.軟件工程包括下列領(lǐng)域
軟件需求分析、軟件設(shè)計(jì)啃匿、軟件構(gòu)建蛔外、軟件測試和軟件維護(hù)。
3.軟件工程和下列學(xué)科相關(guān)
計(jì)算機(jī)科學(xué)溯乒、計(jì)算機(jī)工程夹厌、管理學(xué)學(xué)、數(shù)學(xué)裆悄、項(xiàng)目管理學(xué)矛纹、質(zhì)量管理、軟件人體工學(xué)光稼、系統(tǒng)工程或南、工業(yè)設(shè)計(jì)和用戶界面設(shè)計(jì)。
二.軟件工程和軟件開發(fā)流程
1.人們在開發(fā)艾君、運(yùn)營采够、維護(hù)軟件得過程中有很多技術(shù)、做法冰垄、習(xí)慣和思想體系蹬癌。軟件工程把這些相關(guān)的技術(shù)和過程統(tǒng)一到一個(gè)體系中,叫“軟件開發(fā)流程”播演。
2.軟件開發(fā)流程得目的是為了提高軟件開發(fā)冀瓦、運(yùn)營、維護(hù)效率写烤,并提高軟件得質(zhì)量、用戶滿意度拾徙、可靠性和軟件得可維護(hù)性洲炊。
三.軟件工程得組成
程序=數(shù)據(jù)結(jié)構(gòu)+算法
軟件=程序+軟件工程
軟件公司=軟件工程+商業(yè)模式
四.軟件得特性
復(fù)雜性
不可見性
易變性
服從性
非連續(xù)性
五.課后練習(xí)
課上一道題目感覺充分得解釋了什么是軟件工程。用代碼實(shí)現(xiàn)每天隨機(jī)產(chǎn)生300道四則運(yùn)算得小學(xué)題。
看到這題我首先想到了隨機(jī)數(shù)暂衡,因?yàn)閿?shù)不固定而且300道询微,只能用隨機(jī)數(shù)來隨機(jī)產(chǎn)生數(shù)來給出題目,而四則運(yùn)算(即+狂巢,-撑毛,*,/)唧领,那我想到用數(shù)組來存儲藻雌,課后突然老師點(diǎn)播說可以用case語句,我覺得這個(gè)看上去更名了斩个,所以可以用C語言來完成這個(gè)題目胯杭,畢竟python太菜。我覺得這個(gè)程序主要有3個(gè)地方需要注意受啥。首先是隨機(jī)生成問題做个,只使用rand()是不對的,這樣生成的數(shù)是偽隨機(jī)數(shù)滚局,上網(wǎng)查了一下得知最簡單的解決方法是應(yīng)該在主函數(shù)里加上一句srand(time(0))居暖,這里我最初是在每個(gè)rand()前都加上了srand(time(0)),導(dǎo)致產(chǎn)生的隨機(jī)數(shù)都一樣藤肢,應(yīng)該只要在主函數(shù)里加一句就行了太闺。這是個(gè)值得注意的地方。其次是關(guān)于如何保證結(jié)果都是非負(fù)數(shù)谤草,由于是四則運(yùn)算跟束,因此只有出現(xiàn)“-”號的時(shí)候才會有這種可能。我是這樣解決的:用x和y來表示整數(shù)題目時(shí)2個(gè)運(yùn)算數(shù)丑孩,當(dāng)出現(xiàn)“-”時(shí)(if(op==‘-’))冀宴,通過while(x-y<0)語句來循環(huán)進(jìn)行重新隨機(jī),知道產(chǎn)生x大于等于y為止温学。當(dāng)遇到分?jǐn)?shù)題目時(shí)候略贮,采用a/b,c/d形式,同理通過while(a*d-b*c<=0)語句來循環(huán)進(jìn)行重新隨即仗岖。最后關(guān)于真分?jǐn)?shù)的問題逃延,并不難,真分?jǐn)?shù)簡單來講就是分母比分子大的分?jǐn)?shù)轧拄,因此只要保證a>b且c>d就好了揽祥。
char Operator()
{
? ? char op;
? ? int a;
? ? a=rand()%4+1;
? ? switch(a)
? ? {
? ? ? ? case1:return'+';
? ? ? ? case2:return'-';
? ? ? ? case3:return'x';
? ? ? ? case4:return'/';
? ? }
}void integer()
{
? ? int x,y;
? ? char op;
? ? x=rand()%100+1;
? ? y=rand()%100+1;
? ? op=Operator();
? ? if(op=='-')
? ? ? ? while(x
? ? ? ? {
? ? ? ? ? ? x=rand()%100+1;
? ? ? ? ? ? y=rand()%100+1;
? ? ? ? }
? ? cout<
}void fraction()
{
? ? int a,b,c,d;
? ? a=rand()%100+1;
? ? b=rand()%100+1;
? ? c=rand()%100+1;
? ? d=rand()%100+1;
? ? char op;
? ? while(a<=b||c<=d)
? ? {
? ? ? ? a=rand()%100+1;
? ? ? ? b=rand()%100+1;
? ? ? ? c=rand()%100+1;
? ? ? ? d=rand()%100+1;
? ? }
? ? op=Operator();
? ? if(op=='-')
? ? ? ? while((b*c-a*d)<0)
? ? ? ? {
? ? ? ? ? ? a=rand()%100+1;
? ? ? ? ? ? b=rand()%100+1;
? ? ? ? ? ? c=rand()%100+1;
? ? ? ? ? ? d=rand()%100+1;
? ? ? ? }
? ? cout<
}+void main()
{
? ? srand(time(0));
? ? int a,n,m;
? ? cout<<"請輸入出題類型"<
? ? cout<<"1.整數(shù)四則運(yùn)算"<
? ? cout<<"2.分?jǐn)?shù)四則運(yùn)算"<
? ? cin>>a;
? ? cout<<"請輸入出題數(shù)目"<
? ? cin>>n;
? ? for(m=1;m<=n;m++)
? ? {
? ? ? ? if(a==1)
? ? ? ? ? ? integer();
? ? ? ? else? ? ? ? ? ? fraction();
? ? }
}