Ⅰ C語言編程 課程設計 數學游戲
我先編一編哦,代碼寫好了我會放在我的網路空間的文章里邊的,到時候你到那裡去找吧
你最好也自己編一編吧,編程這東西是越編越會的,不編永遠也不會的,加油啦!
Ⅱ C語言課程設計報告要求
一 、 設計題目
萬年歷的設計
二 、設計要求
1、能夠顯示星期;
2、能夠顯示年月日;
3、能夠修改;
4、當系統時間變動時,能自動跳到相應的時間。
三 、 設計目的
1. 通過本項課程設計,可以培養獨立思考、 綜合運用所學有關相應知識的能力,能更好的鞏固《C語言程序設計》課程學習的內容,掌握 工程軟體設計的基本方法,強化上機動手編程能力,闖過理論與實踐相結合的難關!更加了解了c語言的好處和其可用性!同時增加了同學之間的團隊合作精神!更加也體會到以後在工作中團隊合作的重要性和必要性!
2. 通過C語言課程設計,使學生了解高級程序設計語言的結構,掌握基本的程序設計過程和技巧,掌握基本的分析問題和利用計算機求解問題的能力,具備初步的高級語言程序設計能力。為後續各門計算機課程的學習和畢業設計打下堅實基礎。
四 、設計思想及過程
【一】由於萬年歷具有以下特點:
1。平年365天(52周+1天),閏年366天(52周+2天)。平年2月28天,閏年2月29天。
由於公元1月1日設為星期六,故3月1日為星期三。 ——注意這個「三」
為使演算法達到最簡,故本演算法以「星期」為計算單位。且選3月1日為基月。
2。每400年整一閏,或每4年且不為百年的一閏。(原因:地球繞太陽一周的時間是365天5小時46秒,為了使一年的天數為整數,將一年的天數定為365天,餘下的時間積累起來,四年就是23小時15分4秒,將近一天,把這一天加在某年的二月而成29天,該年稱為閏年,其它年稱為平年。但四年加一天又多用了44分56秒,這個數積滿400年為三天。因此400年中只能有97個閏年,所以凡能被400整除,或不能被100整除但能被4整除的年份為閏年。)
所以百年%4=0閏或(年%4=0並且年<>0)閏。
3。每 4年(3個平年+1個閏年)共208周+5天 ——注意這個「5天」
每百年共100*(208周+5天)-1天=5217周+5天 ——注意這個「5天」(整百年暫設為平年)
每400年共4*(5217周+5天)+1天(整400年閏)=20871周+0天——注意這個「0天」和
「1天」(4個整百年只有一個閏年)
即400年一輪回!(原來萬年歷400年前是一家)
【二】根據萬年歷以上特點進行編寫:
首先對萬年歷年、月、日進行編寫,編寫程序先定義每月的天數為28天,如月份為1、3、5、7、8、10、12就定義天數為31天反之如果月份為4、6、9、11就輸出天數為30天,由上可見2月份為28天但是如果為閏年就有29天就要定義另一個函數#define Year(x) (x%4==0&&x%100!=0||x%400==0) ? 1:0當為閏年時可得1加上該程序便可得到每月的天數。 具體程序見(五、萬年歷程序)
再對其中的星期進行編寫:由於公元1月1日設為星期六,故3月1日為星期三,可以用萬年3月1日星期演算法(特別是那個三)
由於其公式為:
某年3月1日星期幾=(3天+百年%4*5天+年/4*5天+年%4+月星期表+日-1天)%7
某年3月1日星期幾=(百年%4*5天+年/4*5天+年%4+月星期表+日+2天)%7
或 某年3月1日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7
閏4百年3月1日星期演算法(百年%4=0)
其公式為:
某年3月1日星期幾=(年+年/4+月星期表+日+2天)%7
例:0000年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三
1600年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三
2000年3月1日星期幾=(0+0/4+0+1+2)%7=3%7=星期三
2001年3月1日星期幾=(1+1/4+0+1+2)%7=4%7=星期四
2004年3月1日星期幾=(4+4/4+0+1+2)%7=8%7=星期一
2008年3月1日星期幾=(8+8/4+0+1+2)%7=13%7=星期六
2042年3月1日星期幾=(42+42/4+0+1+2)%7=55%7=星期六
平4百年3月1日星期演算法(百年%4<>0)
其公式為:
某年3月1日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7
例:1700年3月1日星期幾=(17%4*5+0+0/4+0+1+2)%7=8%7=星期一(注意:1700年是平年)
1800年3月1日星期幾=(18%4*5+0+0/4+0+1+2)%7=13%7=星期六(注意:1800年是平年)
1900年3月1日星期幾=(19%4*5+0+0/4+0+1+2)%7=18%7=星期四(注意:1900年是平年)
1901年3月1日星期幾=(19%4*5+1+1/3+0+1+2)%7=19%7=星期五
1918年3月1日星期幾=(19%4*5+18+18/4+0+1+2)%7=(15+22+3)%7=40%7=星期五
1958年3月1日星期幾=(19%4*5+58/4*5+58%4+3)%7=(15+70+2+3)%7=90%7=星期六
1988年3月1日星期幾=(19%4*5+88/4*5+88%4+3)%7=(15+110+0+3)%7=128%7=星期二
1999年3月1日星期幾=(19%4*5+99/4*5+99%4+3)%7=(15+120+3+3)%7=141%7=星期一
2100年3月1日星期幾=(21%4*5+0/4*5+0%4+3)%7=(5+0+0+3)%7=8%7=星期一(注意:2100年是平年)
2101年3月1日星期幾=(21%4*5+1/4*5+1%4+3)%7=(5+0+1+3)%7=9%7=星期二
2102年3月1日星期幾=(21%4*5+2/4*5+2%4+3)%7=(5+0+2+3)%7=10%7=星期三
2103年3月1日星期幾=(21%4*5+3/4*5+3%4+3)%7=(5+0+3+3)%7=11%7=星期四
2104年3月1日星期幾=(21%4*5+4/4*5+4%4+3)%7=(5+1+0+3)%7=9%7=星期二(注意:2104年是閏年)
9999年3月1日星期幾=(99%4*5+99/4*5+99%4+3)%7=(120+15+3+3)%7=141%7=星期一
註:按400年一輪回!(400年前是一家)的說法
1600年,2000年是一樣的;
1700年,2100年是一樣的;
1800年,2200年是一樣的;
1900年,2300年是一樣的。
其中萬年某日星期演算法
其公式為:
某日星期幾=(百年%4*5天+年+年/4+月星期表+日+2天)%7
通同星期偏差表
閏年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
天數 31 29 31 30 31 30 31 31 30 31 30 31
星期 3 6 0 3 5 1 3 6 2 4 0 2
平年 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
天數 31 28 31 30 31 30 31 31 30 31 30 31
星期 4 0 0 3 5 1 3 6 2 4 0 2
為對以上的萬年歷星期的演算法是正確的對其進行了以下的計算:
⒈對於二十世紀任意日期可以用公式某日星期幾=(百年%4*5天+年+年/4+平年月星期表+日+2天)%7=(19%4*5天+年+年/4+平年月星期表+日+2天)%7=(15天+年+年/4+平年月星期表+日+2天)%7以下就是根據上面對其進行的計算:
1900年元旦 1日=(0/4*5+0%4+1+3)%7=(0+0+4)%7=4
1月表=4(平年) 故 4+4=1 即1900年元旦是星期一
1949年國慶 1日=(49/4*5+49%4+1+3)%7=(60+1+4)%7=2
10月表=4(平年) 故 4+2=6 即1949年國慶是星期六
1999年12月31日 31日=(99/4*5+99%4+31+3)%7=(120+3+34)%7=3
12月表=2(平年) 故 2+3=5 即1999年12月31日是星期五
⒉對於二十一世紀新前年蟲演算法(20%4*5=0)可以用公式:某日星期幾=(百年%4*5天+年+年/4+閏年月星期表+日+2天)%7 =(20%4*5天+年+年/4+閏年月星期表+日+2天)%7以下就是根據上面對其進行的計算:
2000年元旦 1日=(0+0/4+1+2)%7=(0+0+1+2)%7=3
1月表=3(閏年) 故 3+3->6 即2027年元旦是星期六
2018年春節 16日=(18+18/4+16+2)%7=(18+4+16+2)%7=5
2月表=0(平年) 故 0+5=5 即2018年春節是星期五
2099年12月31日 31日=(99/4*5+99%4+31+2)%7=(120+3+33)%7=2
12月表=2(平年) 故 2+2=4 即2099年12月31日是星期四
對於上面的分析以及公式的推論和計算證明可以對萬年歷中的星期進行了編寫具體編寫程序見(五 、萬年歷程序)中。
五 、萬年歷源程序
#include"stdio.h"
#include"dos.h"
#include"conio.h"
#include"stdlib.h"
#define Year(x) (x%4==0&&x%100!=0||x%400==0) ? 1:0 /*判斷閏年*/
int numofMonth(int y,int m){
int day,t=28;
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
day=31; /*定義以上月份為31天*/
else if(m==4||m==6||m==9||m==11)
day=30; /*定義以上月份為30天*/
else{t+=Year(y);
day=t;} /*閏年二月29天,平年28天*/
return day;}
int numofYear(int y){
int t=365; /*平年365天*/
t+=Year(y);/*閏年366天*/
return t;}
int numofbeforeDays(int y,int m,int d){
int sum=d,i;
for(i=1;i<m;i++)
sum+=numofMonth(y,i);
return sum;}
int numofafterDays(int y,int m,int d){
int sum=0,i;
for(i=m;i<=12;i++)
sum+=numofMonth(y,i);
sum-=d;
return sum;}
int isDay(int y,int m,int d){
int year=1900,month=1,week=1,i; /*定義萬年歷是從1900年開始*/
long sum=0;
for(i=year;i<y;i++)
sum+=numofYear(i);
for(i=1;i<m;i++)
sum+=numofMonth(y,i);
/* ++sum;*/
i=sum%7;
week=(week+i)%7;
return week;}
void empty(int n){
int i;
for(i=0;i<n;i++)
printf("%*c",6,' ');}
void OutPutCalender(int y,int m,int d)/*計算x年x月x是星期幾*/{
int week,i,num,t;
week=isDay(y,m,1);
printf("%6d/%02d/%02d\n",y,m,d);
printf("%6s%6s%6s%6s%6s%6s%6s\n","Sun","Mon","Tue","Wed","Thu","Fri","Sat");
empty(week);
num=numofMonth(y,m);
for(i=1;i<=num;i++){
printf("%6d",i);
t=(week+i)%7;
if(t==0)
printf("\n");} /*游標移到下一行*/
printf("\n");}
long numBTDays(int y1,int m1,int d1,int y2,int m2,int d2)/*定義兩個不同日期*/{
int i;
long sum=0;
for(i=y1+1;i<y2;i++)
sum+=numofYear(i);
if(y1==y2){ sum-=d1;
for(i=m1;i<m2;i++)
sum+=numofMonth(y1,i);
sum+=d2;}
else{sum+=numofafterDays(y1,m1,d1);
sum+=numofbeforeDays(y2,m2,d2);}
return sum;}
int Select_mean(){
int sm;
printf("1. OutPut Calender\n"); /*輸出當前月份的日歷*/
printf("2. Help\n"); /*幫助*/
printf("0. Quit\n"); /*退出*/
printf("Please enter choose(0--2):"); /*從0-2中選擇*/
do
scanf("%d",&sm); /*輸入sm*/
while(sm<0||sm>3);
return sm;}
void Help()/*輸出幫助欄的內容*/{
printf(" 1. OutPut Calender\n");
printf(" 2. System Help\n");
printf(" 0. Quit\n");
printf("Page Up: Up year\n"); /*上一年*/
printf("Page Down: next year\n"); /*下一年*/
printf(" --> : next month\n"); /*上一月*/
printf(" <-- : Up month\n");/*下一月*/}
main(){
int year=2006,year1=2006,month,day,y1,m1,d1,y2,m2,d2,c,t; /*定義運行後的日期是2006年*/
int inkeySCAN,inkey; /*輸入鍵盤操作信息*/
union REGS inregs,outregs;
inregs.h.ah=0x2a;
intdos(&inregs,&outregs);
/* year=outregs.xcx; */
month=outregs.h.dh;
day=outregs.h.dl;
year1=year;
printf("%d/%02d/%02d\n",year,month,day);
while(1)/*當選擇為1時,執行以下語句*/{
switch(Select_mean()){
case 1:
OutPutCalender(year,month,day);
while(1){
inkey=bioskey(0);
inkeySCAN=(inkey&0xFF00)>>8;
if(inkeySCAN==77){
if(month==12){month=1;year1++;
OutPutCalender(year1,month,day);/*輸出日歷*/}
else{month++;
OutPutCalender(year1,month,day);
}}
if(inkeySCAN==75){
if(month==1){month=12;year1--;
OutPutCalender(year1,month,day);}
else{month--;OutPutCalender(year1,month,day);}}
if(inkeySCAN==73){
if(year1==1900) year1=year;
else{year1--;OutPutCalender(year1,month,day);}}
if(inkeySCAN==81){
year1++;OutPutCalender(year1,month,day);}
if(inkeySCAN==28)break;}
break; /*終止循環*/
case 2:
Help();
break;
case 0:
exit(0);
default:
printf("Enter ERROR!\n");
break;} }
}
六 運行過程
1.雙擊TC
1. 當對上面的程序進行了調試後運行會出現下面所示:
第一行所顯示的就是系統時間!滿足了第一條要求「顯示年、月、日」。
而當改變系統時間後!再運行該程序上面的日期也隨系統時間改變,所以滿足第四條「當系統時間變動時,能自動跳到相應的時間。」
2. 在游標處按下「1」後回車,將會顯示:
以上的顯示也證明了條件的第2條可以「顯示星期!」
3. 在游標處按下「2」後回車,將會顯示:
按著幫助所講進行了運行可知:按「 Page Up 」鍵其下面接著會顯示上一年該月的萬年歷,按「 Page Down 」鍵其下面會接著顯示下一年該月的萬年歷;按「 ← 」鍵下面將會接著顯示當年上一個月的萬年歷,按「 → 」鍵將會接著在下面顯示去下一個月的萬年歷。
4.
由上所顯示鍵入「0」後將會退去該程序。
由以上運行的結果可知該c語言所設計的萬年歷滿足設計要求!
七、在C語言編程中常見錯誤
C語言的最大特點是:功能強、使用方便靈活。C編譯的程序對語法檢查並不象其它高級語言那麼嚴格,這就給我們留下「靈活的餘地」,但還是由於這個靈活給程序的調試帶來了許多不便,尤其對我們這些初學C語言的人來說,經常會出一些連自己都不知道錯在哪裡的錯誤。看著有錯的程序,不知該如何改起,我通過這次編程,也積累了一些C編程時常犯的錯誤:
1. 書寫標識符時,忽略了大小寫字母的區別。
編譯程序把a和A認為是兩個不同的變數名,而顯示出錯信息。C語言認為大寫字母和小寫字母是兩個不同的字元。習慣上,符號常量名用大寫,變數名用小寫表示,以增加可讀性。
2.忽略了變數的類型,進行了不合法的運算。
%是求余運算,得到a/b的整余數。整型變數a和b可以進行求余運算,而實型變數則不允許進行「求余」運算。
3.將字元常量與字元串常量混淆。
混淆了字元常量與字元串常量,字元常量是由一對單引號括起來的單個字元,字元串常量是一對雙引號括起來的字元序列。C規定以「\」作字元串結束標志,它是由系統自動加上的,所以字元串「a」實際上包含兩個字元:『a'和『\',而把它賦給一個字元變數是不行的。
4.忽略了「=」與「==」的區別。
在C語言中,「=」是賦值運算符,「==」是關系運算符。如:
if (a==3) a=b;
前者是進行比較,a是否和3相等,後者表示如果a和3相等,把b值賦給a。由於習慣問題,初學者往往會犯這樣的錯誤。
5.忘記加分號。
分號是C語句中不可缺少的一部分,語句末尾必須有分號。
a=1 b=2
編譯時,編譯程序在「a=1」後面沒發現分號,就把下一行「b=2」也作為上一行語句的一部分,這就會出現語法錯誤。改錯時,有時在被指出有錯的一行中未發現錯誤,就需要看一下上一行是否漏掉了分號。
{ z=x+y;
t=z/100;
printf("%f",t);
}
對於復合語句來說,最後一個語句中最後的分號不能忽略不寫(這是和PASCAL不同的)。
6.多加分號。
對於一個復合語句,如:
{ z=x+y;
t=z/100;
printf("%f",t);
};
復合語句的花括弧後不應再加分號,否則將會畫蛇添足。
又如:
if (a%3==0);
I++;
本是如果3整除a,則I加1。但由於if (a%3==0)後多加了分號,則if語句到此結束,程序將執行I++語句,不論3是否整除a,I都將自動加1。
再如:
for (I=0;I<5;I++);
{scanf("%d",&x);
printf("%d",x);}
本意是先後輸入5個數,每輸入一個數後再將它輸出。由於for()後多加了一個分號,使循環體變為空語句,此時只能輸入一個數並輸出它。
7.輸入變數時忘記加地址運算符「&」。
int a,b;
scanf("%d%d",a,b);
這是不合法的。Scanf函數的作用是:按照a、b在內存的地址將a、b的值存進去。「&a」指a在內存中的地址。
8.輸入數據的方式與要求不符。scanf("%d%d",&a,&b);輸入時,不能用逗號作兩個數據間的分隔符,如下面輸入不合法:
3,4
輸入數據時,在兩個數據之間以一個或多個空格間隔,也可用回車鍵,跳格鍵tab。
scanf("%d,%d",&a,&b);C規定:如果在「格式控制」字元串中除了格式說明以外還有其它字元,則在輸入數據時應輸入與這些字元相同的字元。下面輸入是合法的:
3,4
此時不用逗號而用空格或其它字元是不對的。
3 4 3:4
又如:
scanf("a=%d,b=%d",&a,&b);
輸入應如以下形式:
a=3,b=4
9.輸入字元的格式與要求不一致。
在用「%c」格式輸入字元時,「空格字元」和「轉義字元」都作為有效字元輸入。
scanf("%c%c%c",&c1,&c2,&c3);
如輸入a b c
字元「a」送給c1,字元「 」送給c2,字元「b」送給c3,因為%c只要求讀入一個字元,後面不需要用空格作為兩個字元的間隔。
10.輸入輸出的數據類型與所用格式說明符不一致。
例如,a已定義為整型,b定義為實型
a=3;b=4.5;
printf("%f%d\n",a,b);
語法錯
邏輯錯 運行錯
0.忘記定義變數:
main()
{x=3;y=6;
printf(「%d\n」,x+y);
11.C語言的變數一定要先定義才能使用;
12.輸入輸出的數據的類型與所用格式說明符不一致
int a=3;float b=4.5;printf(「%f%d\n」,a,b);
它們並不是按照賦值的規則進行轉換(如把4.5轉換為4),而是將數據在存儲單元中的形式按格式符的要求組織輸出(如b佔4個位元組,只把最後兩個位元組的數據按%d,作為整數輸出)
13.未注意int型數據的數值范圍
int型數據的數值范圍(-32768~32768)
int num=89101;
printf(「%d」,num);
會將超過低16位的數截去從而得到23563
注意:定義了long型,而在輸出時仍用」%d」說明符,仍會出現以上錯誤
14.輸入變數時忘記使用地址符
scanf(「%d%d」,a,b);
15.輸入時數據的組織與要求不符
對scanf函數中格式字元串中除了格式說明符外,對其他字元必須按原樣輸入
16.誤把」=「作為」等於」比較符
「=「為附值運算符
「==「為比較運算符
17.語句後面漏分號
{
t=a;
a=b;
b=t
}
它是pascal的語法
18.不該加分號的地方加了分號
if(a>b);
printf(「a is larger than b\n」);
for(i=0;i<10;i++);
{
scanf(「%d」,&x);
printf(「%d\n」,x*x);
}
19.對應該有花括弧的復合語句,忘記加花括弧
sum=0;
i=1;
while(i<=100)
sum=sum+1;
i++;
20.括弧不配對
while((c=getchar()!=『#』)
putchar(c);
11.在用標識時,忘記了大寫字母和小寫字母的區別
{
int a,b,c;
a=2;
b=3;
C=A+B;
printf(「%d+%d=%D」,A,B,C);
}
12.引用數組元素時誤用發圓括弧
{
int i,a(10);
for(i=0;i<10;i++)
scanf(「%d」,&a(i));
}
13.在定義數組時,將定義的」元素個數」誤認為是」可使用的最大下標值
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=1;i<=10;i++)
printf(「%d」,a[i]);
}
14.對二維或多維數組的定義和引用的方法不對
{
int a[5,4];
…
printf(「%d」,a[1+2,2+2]);
…
}
15.誤以為數組名代表數組中全部元素
{int a[4]={1,2,3,4};
printf(「%d%d%d%d」,a);
}
16.混淆字元數組與字元指針的區別
main()
{
char str[40];
str=「Computer and c」;
printf(「%s\n」,str);
}
17.在引用指針變數之前沒有對它賦予確定的值
{
char *p;
scanf(「%s」,p);
}
{
char *p,c[20];
p=c;
scanf(「%s」,p);
}
18.switch語句的各分支中漏寫 break語句
混淆字元和字元串的表示形式
…
char sex;
sex=「M」;
…
19.使用自加(++)和自減(--)運算符時出的錯誤
{
int *p,a[5]={1,3,5,7,9};
p=a;
printf(「%d」,*p++);
}
注意於*(++p)的區別;
20.所調用的函數在調用語句之後才定義,而又在調用前未加說明
main()
{float x,y,z;
x=3.5;y=-7.6;
z=max(x,y);
printf(「%f」,z);
}
編譯時不給出出錯信息,但運行結果將與原意不符。這種錯誤尤其需要注意。
八、心得體會
1. 目前流行的計算機日歷程序,比較典型的是Windows各版本中的日歷程序以及基礎於該程序所開發的各種應用程序中的日歷程序。然而,這些程序都千篇一律的局限在一個很短的時間范圍內。(Windows各個版本一般都局限在1980年至2099年這一范圍內),但是,在很多情況下,特別是在眾多的科學研究領域中,一個時間跨度較大的日歷程序是很有參考價值的。C程序設計語言充分發揮了其自身無與倫比的優越性,用極短的程序文本填補了這一領域的空白,同時用鐵的事實強有力的告訴世人:C程序設計語言作為計算機語言家族的新生事物,其發展前景是極為廣闊的。
2. 經過上一個學期對《C程序設計》的學習,我們學習了理論知識,了解了C語言程序設計的思想,這些知識都為我們的下一步學習打下了堅實的基礎。通過課程設計,一方面是為了檢查我們一個學期來我們學習的成果,另一方面也是為了讓我們進一步的掌握和運用它,同時也讓我們認清自己的不足之處和薄弱環節,加以彌補和加強。
3. 通過對c語言萬年歷的設計進一步的鞏固了用c語言編寫程序,並且有利於更好的掌握c語言!
4. 在萬年歷的編寫過程中也體會到了做事情一頂要細心、認真。更加知道了要掌握好基礎知識。還有體會到了成功的感覺!在萬年歷的設計過程中更加體會到了團隊合作的重要性,「一個諸葛亮比不上三個臭皮匠。」知道了只有團隊合作才會更好的完成設計!也體會到以後在工作中團隊合作的必要性和重要性!
5. 通過本項課程設計也培養了我獨立思考、 綜合運用所學有關相應知識的能力,掌握 工程軟體設計的基本方法,強化上機動手編程能力,闖過理論與實踐相結合的難關!
6. 由於C語言是近年在國內外得到迅速推廣應用的一種語言。C語言功能豐富,表達能力強,使用靈活方便,應用面廣,目標程序效率高,可移植性好,既具有高級語言的優點,又具有低級語言的許多特點。通過這次的c語言程序設計更加了解了c語言的好處和其可用性!
7. 在這次課程設計中也知道了自己的動手能力不強有待進一部的提高!在設計過程中不能夠把書本上的知識與實踐相結合,這也就增加了設計不好該程序的想法!在設計過程中的一次次設計錯誤增加了我放棄的想法!不過經過大家的努力終於完成了課程設計!完成該程序後想起自己以前的每一次對自己失去信心,就覺得並不是在知識掌握上打敗了,而是自己對自己缺乏信心!只要自己對自己不失去信心相信就可以完成那些以前認為完成不了的事情!也讓我懂得了要想成功首先就必須有很強的自信心!懂得了自己以後要在做任何事情時都要自信!當自己都不相信自己能夠成功時還可能會獲得成功嗎?
8. 在C語言程序設計的過程中也知道了自己在以前的學習中有很大的不足導致在設計過程中出現了很多的問題,有些地方看不懂也不知道怎麼去設計,但是在設計過程中也學習了很多,掌握了自己以前沒有學好的知識,雖然一時可以掌握完以前沒有學好的知識,不過也給自己敲響了警鍾,在學習中不可以伏於表面,要想學好每一門課程都要踏踏實實,做什麼都不是給別人看的!都是要更好的掌握該門知識,提高自己的自身的修養,提高自己的能力!為以後的工作打下良好的知識基礎和技能基礎!
九、參考文獻
⒈譚浩強編著.C程序設計第二版〔M〕.北京:清華大學出版社,1999
⒉陳朔鷹,陳英編著.C語言趣味程序百例精解〔M〕.北京:北京理工大學出版社,1994
⒊電腦知識與技術學術交流版〔J〕2005.2 (備註:來自網路資源)
⒋Herbert Schildit著. 戴健鵬譯. C語言大全 (第二版)〔M〕.北京:電子工業出版社,1994
⒌譚浩強,張基溫,唐永炎編著. C語言程序設計教程.〔M〕北京: 高等教育出版社,1992
⒍秦友淑,曹化工編著. C語言程序設計教程. 〔M〕武漢:華中理工大學出版社,1996
⒎曹衍龍,林瑞仲,徐慧 編著.C語言實例解析精粹 〔M〕北京:人民郵電出版社,2005.3
⒏黃明等編著.21世紀進階輔導C語言程序設計. 〔M〕大連理工大學出版
Ⅲ 兒童編程的步驟。
一般來說,6 -16 歲兒童是學習少兒編程的最佳年齡階段, 在此期間,如何對孩子進行編程教育啟蒙呢?編玩邊學採用基於游戲的互動教學方式,螺旋式上升,無縫銜接課程體系,專業大師們正在全力打造視覺模塊課程,培養國內6 -16 歲兒童的邏輯思維能力、想像力和創造力以及綜合學科能力。今天,資深兒童編程教學專家編玩邊學將談談兒童編程啟蒙路線圖,告訴你在兒童編程學習的重要時期,要採取什麼預防措施和做什麼工作來讓兒童編程學習更加順暢?
第一步:兒童編程只能在他們正確學習幼兒編程以後才能延續學習
兒童編程學習是第一階段,最佳對應年齡: 4 -6 歲的兒童,但它也是幫助年齡較大的兒童接受編程並啟發他們編程的重要階段。學習的目的是激發孩子們對編程的興趣,培養他們的編程基礎能力。在這個階段,兒童通過大量的編程練習逐漸掌握編程知識和編程技能實踐之間的相關性,從而形成基本的編程能力。這有助於兒童形成編程思維。主要學習資源包括適合啟蒙的基本編程視頻或介紹性編程書籍,如《動手玩轉Scratch2. 0 編程》、《Scratch少兒趣味編程2》、《動手玩轉Scratch Jr編程》、《父與子的編程之旅》、《與孩子一起學編程》等。這些書都是供孩子們閱讀的編程書籍。最大的特點是圖文並茂,大量彩色印刷和彩色卡通形象對孩子們來說並不無聊。它們是兒童編程入門的非常好的入門書籍。
第二步:在兒童程序設計系統的學習階段,學科式學習非常重要。
對於 6 歲及以上的兒童,快速啟蒙可以從兒童Scratch編程學習開始。Scratch學習是主要課程,編玩邊學的系統學科編程系統是最有意義的。編玩邊學擁有自主研發+scratch,邏輯性強;獨創模塊/代碼隨時互換,自然過渡,有效銜接從入門模塊編程到實戰代碼編程。編玩邊學學習的概念旨在從本質出發,讓孩子們把編程作為感知世界的工具。一步一步地引導學生逐步突破學習困難,然後潛移默化地形成編程思維,實現獨立編寫代碼的能力。
Ⅳ 怎樣製作,編程碼,寫自己想說的話
怎樣編寫程序代碼(一些簡單的代碼編程)
茉莉花開 • 2023 年 01 月 09 日 am 9:58 • 生活資訊
如果您對創建計算機程序、移動應用程序、網站、游戲或任何其他軟體感興趣,則需要學習如何編程。程序是使用編程語言創建的。在計算機科學飛速發展的今天,編碼能力變得越來越重要。如果您以前從未編程過,請不要驚慌。今天就跟大家聊聊,作為新手,如何學習編程?
注意:本文僅提供學習思路,並非具體的手把手解決方案。
1.選擇語言
1) 確定您感興趣的領域。
您可以從任何編程語言開始學習(盡管有些語言比其他語言「更容易」),因此請先問問自己,您通過學習編程語言想要達到什麼目的?這將幫助您確定應該從事哪種類型的編程,並為您提供一個良好的起點。
2) 考慮從「更簡單」的語言開始。
無論您的決定如何,您都可以考慮從高級、更簡單的語言開始。這些語言對初學者特別有用,因為它們的基本概念和思維過程幾乎可以應用於任何語言。
該類別中的兩種流行語言是 Python 和 Ruby。這兩種語言都是面向對象的 Web 應用程序語言,它們使用非常易讀的語法。 「面向對象」意味著該語言是圍繞「對象」的概念構建的,即數據的集合及其操作。這個概念在C、ja、Objtovi-C和PHP等很多高級編程語言中都有應用。
3) 閱讀各種語言的基礎教程。
如果您不確定應該從哪種語言開始學習,請閱讀一些不同語言的教程。如果一種語言比其他語言更有意義,請嘗試一下,看看它是否適合。網上有很多相關的教程。
Python——一門很好的入門語言,熟悉了就會感受到它的強大。用於許多網路應用程序和許多游戲領域。 Ja – 用於無數類型的程序,從游戲到網路應用程序再到 ATM 軟體。 HTML – 任何網路開發人員的基本起點。在進行任何其他類型的 Web 開發之前,掌握 HTML 是至關重要的。 C 語言 – 一種較舊的語言,C 仍然是一個強大的工具,並且是 C、Objtovi-C 的基礎。
2.從小處著手
1) 學習語言的核心概念。
雖然此步驟的應用部分會根據您選擇的語言而有所不同,但所有編程語言都共享一些對構建程序至關重要的基本概念。及早學習和掌握這些概念將使解決問題和創建強大高效的代碼變得更加容易。以下是一些不同語言的一些核心概念:
變數 – 變數是一種存儲和引用不斷變化的數據的方式。變數可以被操作,通常有定義的類型,如「整數」、「字元」和其他類型,這些類型決定了可以存儲的數據類型。在編碼時,變數通常具有允許讀者以某種方式識別它們的名稱。這使得理解變數如何與其餘代碼交互變得更容易。條件語句- 條件語句是根據語句是否為真執行的操作。條件語句的常見形式是「If-else」語句。如果這個陳述為真(例如 x = 1),那麼會發生一件事。如果該語句為假(例如 x != 1),則會發生其他情況。函數或子常式 – 根據語言的不同,這個概念的名稱也不同。它也可以是「過程」、「方法」或「可調用單元」。這本質上是一個大程序中的一個小程序。一個函數可以被一個程序多次「調用」,允許程序員高效地創建復雜的程序。數據輸入——這是一個廣泛的概念,幾乎在所有語言中都有使用。它包括處理用戶輸入和存儲該數據。如何收集這些數據取決於程序的類型和用戶可用的輸入(鍵盤、文件等)。這與輸出密切相關,輸出是將結果返回給用戶的方式,無論是顯示在屏幕上還是傳遞到文件中。
2) 安裝任何必要的軟體。
許多編程語言都需要編譯器,編譯器是將代碼翻譯成機器可以理解的語言的程序。其他語言,例如 Python,使用無需編譯即可立即執行程序的解釋器。
有些語言有IDE(集成開發環境),通常包含代碼編輯器、編譯器和/或解釋器以及調試器。這允許程序員在一個地方執行任何必要的功能。 IDE 還可能包含對象層次結構和目錄的可視化表示。
網上有各種各樣的代碼編輯器。這些程序提供不同的語法高亮方法,並提供其他對開發人員友好的工具。
3.創建您自己的程序
1) 一次專注於一個概念。
任何語言的開始都是教大家「Hello World」。這是一個非常簡單的程序,它在屏幕上顯示文本「Hello, World」(或其他一些變體)。這個程序是教子程序員如何創建一個基本的、功能性的程序,以及如何處理顯示輸出。通過更改文本,您可以看到程序如何處理底層數據。
2)通過解構網上的例子來學習。
幾乎每種編程語言都有數以千計的代碼示例。使用這些示例來檢查語言的各個方面如何工作以及不同部分如何交互。從各種示例中獲取點點滴滴來創建您自己的程序。
3) 檢查語法。
語法是一種語言的編寫方式,以便編譯器或解釋器能夠理解它。每種語言都有獨特的語法,盡管某些元素可以在多種語言之間共享。學習語法對於學習如何使用一種語言進行編程至關重要。
4)嘗試改變。
修改示常式序並測試結果。通過試驗,您可以比閱讀一本書更快地了解哪些有效,哪些無效。不要害怕破壞你的程序;學習修復 bug 是任何開發過程的重要組成部分,任何新東西第二次幾乎都不會正確運行。所以不要害怕犯錯!
5) 開始練習調試。
在編程的時候,總會遇到bug。這些是幾乎可以出現在任何地方的程序中的錯誤。錯誤可以是程序中無害的異常,也可以是阻止程序編譯或運行的重大錯誤。查找和修復這些錯誤是軟體開發周期中的一個主要過程,因此請盡早習慣。
6) 注釋代碼。
幾乎所有的編程語言都有一個「注釋」功能,可以讓你包含沒有經過解釋器或編譯器處理的文本。這允許您對代碼的作用留下簡短但清晰的語言解釋。這不僅可以幫助您記住您的代碼在大型程序中的作用,而且在協作環境中也是必不可少的實踐,因為它可以幫助其他人理解您的代碼的作用。
4.經常練習
1) 每天敲代碼。
首先掌握一門編程語言是需要時間的。即使是像 Python 這樣簡單的語言,可能只需要一兩天就能理解基本語法,但要真正精通也需要很多時間。與任何技能一樣,練習是變得更加熟練的關鍵。嘗試每天至少花一些時間來編碼,即使在工作和晚餐之間只有一個小時。
2) 為您的計劃設定目標。
通過設定具有挑戰性的目標和解決方案,您可以開始解決問題。試著想一個基本的應用程序,比如計算器,並開發一種方法來實現它。使用您學到的語法和概念並將它們應用到實際應用程序中。
3) 與他人交談。
有許多專門針對特定語言的編程社區。尋找並參與社區可以幫助您的學習。它允許您在學習過程中獲取各種示例和工具。閱讀其他程序員的代碼也可以開悟,幫助你掌握還沒有掌握的概念。
4) 挑戰自己,讓它變得有趣。
嘗試做一些你還不會做的事情。研究完成任務的方法,然後嘗試在您自己的程序中實現它們。盡量避免對「基本上」有效的程序感到滿意。盡你所能確保每個方面都完美無缺。
5.參加一些培訓班,擴充自己的知識面
網上有很多針對性強、質量高的課程,可以提高我們的編程能力。這些對於新程序員來說非常有用,因為您可以從經驗豐富的程序員那裡獲得實踐幫助,並與其他正在學習的程序員建立聯系。下面的C語言課也是專門為0-基礎初學者設計的系統課。課程共有三個視頻,包括軟體和源代碼。互動課堂,邊玩邊練,生動有趣,有老師答疑解惑,不怕學。同時可以參與學習社區交流,收獲志同道合的朋友:
說實話,網上的編程課程真的太多了。有針對性的精品課程可以提高我們的編程能力,讓我們更快的掌握相關技能。但選擇是一門藝術。面對琳琅滿目的編程課程,我們應該如何選擇呢?以時間為代價盲目學習這些混合資源是一種浪費。
6.運用您的技能
1) 參加一些培訓計劃。
雖然不是必須的,但是上面介紹的一些課程可以讓你接觸到各種語言,並且可以在老師的帶領下進行實踐練習,有更明確更有針對性的方向性也能有所幫助你與專業人士和其他學生建立聯系。
2) 創建文件夾。
在您創建程序和擴展您的知識時,請確保將您所有的優秀作品保存在一個文件夾中。您可以向招聘人員和面試官展示您的工作成果。
3) 做一些自由職業。
程序員,尤其是移動應用程序開發人員,有一個非常大的自由市場。做一些小的自由職業並學習商業編程是如何工作的。
4) 開發自己的軟體。
您不必為公司工作。如果你有能力,你可以自己開發軟體並發布。准備好為您發布的任何軟體提供技術支持,因為客戶希望他們購買的軟體能夠真正發揮作用。
關於如何編寫程序代碼的介紹到此結束(初學者100碼)。
文章來源於網路或者作者投稿,若有侵權請聯系刪除,作者:茉莉花開,如若轉載,請註明出處:https://www.laoz.net/6370.html
贊 (0)
0
生成海報
京潤珍珠是哪國品牌(京潤珍珠是什麼牌子)
上一篇2023 年 01 月 09 日 am 9:53
腰有傷可以做平板支撐嗎(做平板支撐會傷腰嗎)
下一篇 2023 年 01 月 09 日 am 10:03
相關推薦
應對極寒天氣的方法(極寒天氣的應急預案)
極寒天氣是很多人熱議的話題。目前新疆天氣很冷,此時需要注意防範。那麼,極寒天氣是什麼現象呢?極端寒冷的天氣應該儲存哪些物資?一起來看看點創網帶來的詳細介紹吧! 什麼是極寒天氣現象 …
生活資訊 2022 年 12 月 17 日
Ⅳ 你會如何設計大學計算機課程
你想問的就是大學里的計算課程應該怎麼學,學些什麼吧?下面我來分享一下我的大學同學的學習計劃吧,,我是沒有的,因為我大學時就沒怎麼學習,確切一些說就沒有學習,所以只能把學霸的學習計劃拿出來和大家分享了。
學習順序
即使你學好了以上課程,我們仍然差得很遠,我們只弄清學什麼了,但是還不知道做什麼。我們的課程設計太小兒科了,別對你在國外的同學說,否則會被笑話,所以我們要盡可能的多做設計,別一個人們悶著頭做,兩三個人合作一個項目,不會交流的計算機人員30歲以後肯定會下崗。題目呢,盡量是一些簡單的底層開發,可以去國外大學網站上搜一搜,要自信你一定能做出來,畢竟不是什麼難題,而是我們應當具備的素質。
Ⅵ C語言程序設計課程講什麼內容
C語言程序設計課程是入門級的程序設計課程,針對沒有或很少具有編回程經驗的在職人答員。課程通過學習C語言編程的基礎語法,對程序設計有一個基本的認識,為後續計算機專業課程以及面向對象程序設計課程的學習打下基礎。 課程主要內容:C語言程序基本結構及相關概念、變數、函數、語句、if條件語句、switch條件語句、for循環語句、while循環語句、數組、指針、字元串、結構體。