本文目錄一覽:
C語言實訓心得
通過這次C語言實訓,提高了我掌握和利用C語言進行程設計的能力, 而且進一步理解和運用結構化程設計的思想和方法。初步掌握了開發一個小型實用系統的基本方法。學會了調試一個較長程序的基本方法。學會了利用流程圖或N-S圖表示算法。掌握了書寫程設計開發文檔的能力.為以後的實訓打下堅實的基礎。
c語言程序設計題。實驗報告。高分。
車票系統,與你的第2題要求略有不同,你自己修改吧
#includestdio.h
#includestdlib.h
#includedos.h
#includetime.h
#includeconio.h
#includestring.h
const int MAX=20;
const int N=50;
const int MAXFILENAME=100;
enum {FALSE,TRUE};
struct time
{
int hour;
int minutes;
};
struct ticket
{
int SerialNumber;
struct time SetOut;
char DeparturePoint[MAX];
char TerminalPoint[MAX];
float LastTime;
int FixNumber;
int FixedNumber;
}car[N];
int RecordNumber;
int FLAG=FALSE;
/**********************************************/
int ShowMessage(void); //載入原始數據
void mainmenu(void); //主菜單
void InsertMessage(void); //錄入班次信息
void SearchMenu(void); //查詢路線子菜單
void SearchByNumber(void); //按班次號查詢
void SearchByAddress(void); //按終點站查詢
void TicketManagement(void); //車票售出與退回
void TicketOrder(void); //售票
void TicketDelete(void); //退票
void exit(void); //退出該系統
/********************************************/
int main(void)
{
RecordNumber=ShowMessage();
if(1)
do{
mainmenu();
}while(FLAG==FALSE);
return 0;
}
void mainmenu(void)
{
system(“color 1f”);
system(“mode con: cols=140 lines=130”);
char functionNumber;
printf(” 車票管理系統\n\n”);
printf(” 製作:hmm182007\n”);
printf(” 日期:2007/11/25/19:57\n”);
printf(“============================================================================\n”);
printf(” 1.錄入班次信息\t\n”);
printf(” 2.瀏覽班次信息\t\n”);
printf(” 3.查詢行車路線\t\n”);
printf(” 4.售票與退票系統\t\n”);
printf(” 5.退出該系統\t\n”);
printf(“============================================================================\n”);
printf(“請選擇你所需要的功能:”);
scanf(“%c”,functionNumber);
switch(functionNumber)
{
case ‘1’:
{
InsertMessage();
printf(“\n按任意鍵回主菜單……\n”);
getchar();
getchar();
}
break;
case ‘2’:
{
ShowMessage();
printf(“\n按任意鍵回主菜單……\n”);
getchar();
getchar();
}
break;
case ‘3’:
{
SearchMenu();
printf(“\n按任意鍵回主菜單……\n”);
getchar();
getchar();
}
break;
case ‘4’:
{
TicketManagement();
getchar();
getchar();
}
break;
case ‘5’:FLAG=TRUE;exit();break;
default:
{
printf(“輸入錯誤,請確保你的輸入為1–5.\n”);
printf(“按任意鍵回主菜單……\n”);
getchar();
getchar();
}
}//switch ends
FLAG=FALSE;
}
void InsertMessage(void)
{
FILE *fp;
char filename[MAXFILENAME];
int i;
printf(“請輸入文件名或者文件路徑名:”);
scanf(“%s”,filename);
if((fp=fopen(filename,”r”))==NULL)
{
printf(“文件%s不可讀,請確認文件%s存在或者文件路徑正確.\n\n”,filename,filename);
mainmenu();
}
for(i=RecordNumber;!feof(fp)!ferror(fp);i++)
{
fscanf(fp,”%d%d%d”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
fscanf(fp,”%s%s%f%d%d”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
int count=i;
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
for(i=0;icount;i++)
{
printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
fclose(fp);
}
int ShowMessage(void)
{
int i;
FILE *fp;
if((fp=fopen(“add.txt”,”r”))==NULL)
{
printf(“讀取數據失敗,請檢查文件add.txt是否存在.\n”);
exit(-1);
}
for(i=0;!feof(fp)!ferror(fp);i++)
{
fscanf(fp,”%d%d%d”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
fscanf(fp,”%s%s%f%d%d”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
int count=i;
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
for(i=0;icount;i++)
{
printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
return count;
}
void SearchMenu(void)
{
system(“color 1f”);
system(“mode con: cols=140 lines=130”);
char functionNumber;
printf(” 查詢子菜單\n”);
printf(“============================================================================\n”);
printf(” 1.按班次號查詢\t\n”);
printf(” 2.按終點站查詢\t\n”);
printf(” 3.返回主菜單\t\n”);
printf(“============================================================================\n”);
printf(“請選擇你所需要的功能:”);
scanf(“%*c%c”,functionNumber);
switch(functionNumber)
{
case ‘1’:SearchByNumber();break;
case ‘2’:SearchByAddress();break;
case ‘3’:
getchar();
mainmenu();
break;
default:
printf(“輸入錯誤,請確保你的輸入為1–3.\n”);
printf(“按任意鍵回查詢子菜單……\n”);
getchar();
getchar();
SearchMenu();
}
}
void SearchByNumber(void)
{
int SearchNumber;
printf(“請輸入要查詢的班次號:”);
scanf(“%d”,SearchNumber);
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
printf(“%d\t%d:%d\t\t”,car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber);
}
void SearchByAddress(void)
{
int i;
char Address[MAX];
printf(“請輸入終點站的名稱:”);
scanf(“%s”,Address);
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
for(i=0;iRecordNumber;i++)
{
//對比終點站記錄,找到並輸出
if((strcmp(Address,car[i].TerminalPoint))==0)
{
printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);
}
}
}
void TicketManagement(void)
{
char functionNumber;
system(“color 1f”);
system(“mode con: cols=140 lines=130”);
printf(” 訂票與退票菜單\n”);
printf(“============================================================================\n”);
printf(” 1.訂票\t\n”);
printf(” 2.退票\t\n”);
printf(” 3.返回主菜單.\n”);
printf(“============================================================================\n”);
printf(“選擇你需要的功能:”);
scanf(“%*c%c”,functionNumber);
switch(functionNumber)
{
case ‘1’:
{
TicketOrder();
//getchar();
//getchar();
}
break;
case ‘2’:TicketDelete();break;
case ‘3’:
{
getchar();
mainmenu();
}
break;
default:
{
printf(“輸入錯誤,請確保你的輸入為1–3.\n”);
printf(“按任意鍵回主菜單……\n”);
getchar();
getchar();
mainmenu();
}
}
}
void TicketOrder(void)
{
int i;
printf(“請輸入要訂購的車票的班次:”);
scanf(“%d”,i);
if(i0||iRecordNumber)
{
printf(“對不起,今天沒有這趟車,請明天再來,謝謝使用!\n”);
printf(“按任意鍵回主菜單……\n”);
getchar();//getchar();
TicketManagement();
}
time_t tval;
struct tm *now;
tval = time(NULL);
now = localtime(tval);
if((now-tm_hour==car[i].SetOut.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[i].SetOut.hour))
{
if(car[i].FixedNumbercar[i].FixNumber)
{
car[i].FixedNumber++;
printf(“你的訂票成功,請按時上車,謝謝使用!\n”);
}
else printf(“對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作!\n”);
}
else printf(“對不起,今天的這趟車已發出,請明天再來,謝謝合作!\n”);
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
printf(“%d\t%d:%d\t\t”,car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);
//printf(“按任意鍵回主菜單……\n”);
//getchar();getchar();
}
void TicketDelete(void)
{
int i;
printf(“請輸入要退購的車票的班次:”);
scanf(“%d”,i);
if(i0||iRecordNumber)
{
printf(“對不起,今天沒有這趟車,無法完成退票.謝謝使用!\n”);
getchar();
//getchar();
TicketManagement();
getchar();
}
time_t tval;
struct tm *now;
tval = time(NULL);
now = localtime(tval);
if((now-tm_hour==car[i].SetOut.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[i].SetOut.hour))
{
if(car[i].FixedNumber=1)
{
car[i].FixedNumber–;
printf(“退訂車票成功,謝謝使用!\n”);
}
else printf(“對不起,今天的這趟車的票尚未賣出,無法完成退票!\n”);
}
else printf(“對不起,今天的這趟車已發出,無法完成退票!\n”);
printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);
printf(“%d\t%d:%d\t\t”,car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);
printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);
getchar();//getchar();
}
void exit(void)
{
printf(“\n\n*********************謝謝使用本系統,歡迎下次繼續使用***********************\n”);
exit(0);
}
計算機實訓報告範文5篇
實訓 報告 是對實訓的收穫和成長的一種 總結 性報告,那麼計算機實訓報告應該怎麼寫呢?我精選了一些計算機實訓 報告 範文 _計算機基礎實訓報告,一起來看看吧。希望能夠幫助到您!
↓↓↓點擊下方鏈接獲取“計算機實訓報告”相關內容↓↓↓
★★ 計算機實習報告範文3000字 ★★
★★ 計算機專業實習報告範文 ★★
★★ 計算機實習心得2000字3篇 ★★
★★ 計算機專業學生畢業工作實習 ★★
★★ 計算機畢業實習日記10篇 ★★
計算機基礎實訓報告1
實訓時間:__年12月26日—12月28日
實訓目的:通過上機操作形式,潛移默化地進行綜合操作素質的訓練,增強學 生綜合運用所學知識解決實際問題的能力。
實訓內容:word文檔與e_cel表格的編輯與操作。
短短三天的計算機實訓結束了,通過這三天的實訓,我學到了很多的知識,我深深體會到計算機辦公的神奇和奧妙;也掌握了許多的計算機辦公技能。
老師布置了一些的作業給我們操練,在老師精心的指導下我已把E_cel,word,等操作的很好了!現在我們已步入大學,經過半年的在校學習,對計算機的一些相關操作還只是初步的認識和理解,在這學期期間,一直忙於理論知識的學習,雖然我是計算機系的學生,但我們的專業課程也只是學習了C語言的程序編輯,所以在實訓之前,計算機辦公對我們來說是比較抽象的,但通過這次實訓,我們揭開了她神秘的面紗,離我們不再遙遠!據我了解,大多數同學都以前接觸過電腦,也有玩過一些遊戲,卻不懂操作一些對我們以後工作有用的辦公軟件。對於我們所學的計算機知識滲透較少,之前都是老師操作為主。此次實訓就不同了,同學們都作了充分準備,在活動中同學們都提前來到教室上課,每位同學都認真的操作、練習;聽着“嗒嗒”的打字聲,心裡真的不亦樂乎!指導我們實訓的是卞老師,卞老師在實訓中給我們做了充分的指導,並且做詳細的講解,這次實訓活動十分成功,除了各位同學的充分準備,還要感謝卞老師的授業解惑和系裡領導的大力支持。
通過這次實訓,我們對電腦有了更深刻的認識,做二十一世紀現代人不但要有過硬的理論知識,良好的心理素質,健康的體魄,還要有超強的電腦操作能力,正所謂“秀才不出門,便知天下事”為一名計算機專業學生來說,更應掌握更多的計算機操作技能,所以要把電腦作為一個重點來抓!
開始我以為實訓只是應付了事,走馬觀花之作。然而,在我參加培訓的第一天,我就發現自己錯了,此次的電腦培訓與以前參加過的培訓大相徑庭。以前的培訓都是應付考試的,實用性不強,而且那時學的東西,在工作中用的不多,時間長了不用也就忘記了。而這次培訓的內容最顯著的特點,就是實用性和工具性很強,都是平時工作中經常用到的。參加培訓的第一課時,我就專心致志地聽講,把學習內容與以前操作不規範或不熟練的地方進行對比,感覺學習效果很好,受益匪淺。特別是E_CEL的學習,因為平時用得比較少,掌握的也不多,不想去進一步的學習,所以對E_CEL的操作不熟悉。這一次正好幫我解決了這一問題。通過次培訓,使我的E_CIL的操作有了新的認識,也掌握了幾種 方法 。還有幻燈片的製作,原來從沒有製作過,通過這次學習發現也不是想象中的那麼難。簡單的製作我已經基本上掌握。現在想起來這種培訓是必要的,正所謂“磨刀不誤砍柴工”。
正因為學習上有所收穫,思想上也就豁然開朗起來。說實話,近幾年,覺得自已也不再年輕了,還學什麼啊?得過且過吧。雖然對待工作還是盡心儘力地去做,但對於學習的態度則是能應付就應付,不想應付就是偷點懶吧。因為這種思想的存在,在學習上的動力就不足了。通過這次培訓,我覺得要改變這一錯誤的思想,想把各項工作做好,就必需要不斷的學習,不斷的充電,也只有不斷的學習、充電,才能提高自已的工作能力。古人云,“活到老、學到老”,這句話是很有道理的。
計算機辦公實訓暫告一個段落,閑暇之餘,我開始靜靜地長思。由於組織的信任,我從本學期中段到自律會工作。儘管我全力以赴,不辭辛苦,做了很多的工作,但我知道自已離“出色”還有很大的一段距離,離組織對我的期望還相去甚遠。固然有能力、水平、 經驗 、性格等原因,但是最重要的原因還是思想上的對學習不重視,導致了有的工作不能出色的完成。由於自律會工作的特殊性,要求工作人員思維嚴密、靈活應付,要能夠迅速理解組織,領導的意圖,沉着應對複雜的局面,為廣大同學提供更優質的服務,這樣才不致於在完成工作時,總是手忙腳亂、丟三落四。通過這次培訓,我認識到只有沉下身來,靜下心來認真學習,踏實做事,多用心,多動腦,才能讓工作有好的起色。為我系的發展奉獻我微薄的一份力量 社會的競爭是激烈的,我想我們應該好好把握住大學學習的時間,充實、完善自我,全面發展,攻破電腦,爭取做一名出色的現代人!
計算機基礎實訓報告2
時間過得真快,轉眼間為期一周的實訓已經結束。經過這一周的實訓練習讓我們學到了許多知識,回頭想想實訓這幾天我們確實是有很大收穫的。
一周,看似很簡短的時間,實際上按小時計算120小時卻是個不小的數字,也許有些牽強。但是簡短的時間仍是有效的,因為在這一周中我們學到了很多東西,並且接觸了從沒有製作過的文件和一些演示文稿。這一周我們在學習的同時,也進一步懂得了操作的重要性,實訓過程中自己有很多的不懂,很多的問題,都是通過老師或同學的幫助完成的,這次實訓讓我明白了實訓的主要目的是讓我們同過不斷的實習來積累經驗,進而才能把書本的知識轉換為技能。實踐出真理,在這一周的實訓確實有些累,不知從哪開始入手,但是累的有價值。學海無涯,有很多很多的東西在向我們招手,等待我們去努力的學習。在以後的工作、生活和學習中,發展自己的優勢,彌補自己的不足和缺陷。
我們興高采烈的進入到我們實訓的計算機機房,打開各自的實訓電腦,老師發來我們當天的實訓內容。在操作中才知道自己會的只有書本上的知識,到實際操作時什麼都不會。自己慢慢的從書上找,結果不是操縱不對就是做不出來結果不對,這些問題我和同學還有老師說過,在老師和同學的幫助下我知道自己的不足之處,並且我改正自己的不足並牢記它。
就這樣,我們實訓了一周,但是收穫不小,在實訓中改正自己操作中的不足之處,讓我知道實際操作並不是那麼簡單,實際操作是需要牢固的基礎知識,兩者是不可分開的。
老師布置了一些的作業給我們操練,在老師精心的指導下我已把E_cel,word,網絡,powerpoint等操作的很好了!現在我們已步入大學,經過半年的在校學習,對電腦還只是初步的認識和理解,但在這學期期間,一直忙於理論知識的學習,沒能有機會放開課本,真正切身感受計算機魅力,所以在實訓之前,電腦對我們來說是比較抽象的,但通過這次實訓,我們揭開了她神秘的面紗,離我們不再遙遠!據我了解,大多數同學都以前接觸過電腦,也有玩過一些遊戲,卻不懂操作一些對我們以後工作有用的系統。對於我們所學的計算機知識滲透較少,之前都是老師操作為主。此次實訓就不同了,同學們都作了充分準備,在活動中同學們都提前來到教室上課,每位同學都認真的操作、練習;聽着“嗒嗒”的打字聲,心裡真的不亦樂乎!和我們一同參與實訓的還有張尼奇老師和趙志茹老師,在實訓中也分別給予了我們指導,並且做詳細的講解,這次實訓活動十分成功,除了各位同學的充分準備,還要感謝學院和國際 教育 交流中心繫的各位領導及專業老師,沒有他們做出努力,給學生手操的平台。
經過這次的實訓,我領悟到了任何東西都要“學以致用”,學習了還不行還要看自己掌握了沒,掌握了還不行還要看自己熟練沒,熟練了還不行還要作出一定的成果。這次的實訓,讓我們對電腦有了更深刻的認識,做二十一世紀現代人不但要有過硬的理論知識,良好的心理素質,健康的體魄,還要有超強的電腦操作能力、較廣的社交圈和開闊的知識面,所以要把電腦作為一個重點來抓! 讓我認識到靜下心來認真學習,踏實做事,多用心,多動腦,才能讓工作有好的起色。為教育事業奉獻我微薄的一份力量
社會的競爭是激烈的,我想我們應該好好把握住大學學習的時間,充實、完善自我,全面發展,攻破電腦,爭取做一名出色的現代人! 在此再次感謝學院領導和國際教育交流中心繫的各位領導及專業老師給我們這次實訓的機會,我們會再接再勵,更努力的學習!
計算機上機實訓的總結
一.實習目的:
本次CAD上機實習是為了利用計算機繪圖軟件autoCAD進行工程製圖,把握auto CAD用於工程製圖的基本操作,掌握該軟件的基本使用方法,提高學生運用所學知識解決問題的能力,達到嚴謹工作科學素質的培養。
二、實習任務:
通過老師的講解、演示及學生自己的實際上機操作,學生能夠掌握AutoCAD的一些基本操作方法繪圖命令、編輯方法、標註類型,具有一般工程製圖的能力。
本次實習要求掌握以下幾個方面:
1) 基本繪圖方法
2) 基本編輯方法
3) 尺寸標註
4) 基本3D操作練習
三、實習時間:2013年12月30號——2014年1月3號
四、實習內容:
要點一:基本繪圖方法
1、繪製直線(Line):
執行畫線命令Line一次可畫一條線段,也可以連續畫多條線段。直線段是由起點和終點坐標來確定的,可以通過鼠標或鍵盤來決定起點和終點。
啟動Line命令,可通過繪圖工具欄中直線圖標或在命令窗口輸入 “Line”(或簡稱L)命令等方法。Line命令啟動後,操作過程為:
第一步指定第一點(起點),然後指定第二點(或放棄),指定下一點(或放棄),指定下一點(閉合或放棄)指定下一點(閉合或放棄)。
從操作過程中可以看出,第一點給定後,只要輸入下一點坐標,則可以連續劃線;當開始畫第三條線時,系統會增加提示閉合選項,這時如選擇“C”,則最後一條線終點與第一點重合,構成一個閉合圖形;如果過程中按下回車鍵(或取消鍵),則命令結束。
繪製直線時,點可以通過光標選定,也可以給出點的坐標。
2、繪製圓(Circle):
AutoCAD提供了幾種畫圓方式,圓心和半徑(直徑)定圓;兩點(三點)定圓;相切、相切、半徑定圓。這些是根據圓心、半徑、直徑和圓上的點等參數來控制的。
畫圓的命令為Circle,下面簡單地介紹圓心直徑畫圓和圓心半徑畫圓兩種方法,Circle(簡稱C)命令啟動後,操作過程為:
指定圓心;指定圓的半徑[或直徑]。
第一步指定圓心,若使用圓心半徑畫圓,則直接輸入半徑值,然後圓繪製完成,命令自動結束。第一步指定圓心後,若想使用直徑畫圓,則需輸入“D”,然後提示指定圓的直徑後,輸入直徑,則繪製圓,命令自動結束。
3、繪製圓弧 (Arc):
三點方式畫弧:三點;起點、圓心、端點;起點、圓心、角度;起點、圓心、長度;
4、繪製橢圓(Ellipse):
中心和兩軸端點方式;兩軸方式;同樣利用該命令可以指定任意角度的橢圓弧。
5、繪製多邊形(Polygon):
內接方式;外切方式;邊長個數。
6、繪製點(Point):
除了用point命令、用鼠標在坐標系中選點或輸入坐標值畫點之外,還可以在格式/點樣式菜單項設置所畫點的樣式和大小。
要點二:基本編輯方法
對已經繪製的圖形進行編輯,既可先選圖形再進行編輯,也可先選命令再選擇編輯目標,操作時可通過修改菜單、編輯工具欄、輸入命令等方式。
圖形編輯:
與手工繪圖相比,採用AutoCAD繪圖最突出的優點就是圖形修改、增減十分方便,AutoCAD提供了強大的圖形編輯工具,以便用戶靈活快捷地修改、編輯圖形。
下面對這些編輯命令的使用進行簡單說明。
偏移命令一般是對指定的直線、圓弧、圓等對象作同心偏移複製, 其它 圖形編輯命令名稱與功能基本一致,在使用時根據提示操作,一
般不會出錯。編輯命令的啟動可通過點擊按鈕或輸入命令名稱等方法。下面對修剪、拉伸等命令的使用只做簡要介紹。
AutoCAD提供了修剪命令,使得用戶可以方便快速地利用邊界對圖形實體進行修剪。該命令要求用戶首先定義一個剪切邊界,然後再用此邊界剪去實體的一部分。剪切邊界可以使用窗口或交叉方式選擇多個。
而拉伸命令則使用戶可對圖形進行拉伸(或壓縮)。該命令要求用戶首先選擇實體目標,然後確定基點和終點,基點表示AutoCAD將實體目標從什麼位置開始拉伸,終點表明選擇的實體目標拉伸到什麼新位置處。這裡基點和終點是一個相對位置,拉伸(或壓縮)實體時,必須使用交叉選擇方式。
鏡像命令一般是對對稱圖形進行快速操作的,選擇鏡像對象後,再選擇鏡像點即對稱線,即可完成鏡像命令。
旋轉命令則是對已完成圖形進行修改的命令,它可以對方向做錯的圖形快速修正或者對不易控制的角度進行調節,可以精確達到作圖目標。
要點三:尺寸標註
尺寸標註的基礎知識:
一個完整的尺寸應包括尺寸界線、尺寸線和尺寸數字三個基本要素。
計算機實訓報告
一、實驗目的
1. 熟悉Office軟件的編輯製作環境;熟練掌握 PowerPoint演示文稿圖形程序,掌握課件基本動態的設置和交互創建方法。
2.熟悉多媒體課件的開發流程,形成初步的多媒體課件的設計、開發能力; 提高學生的合作意識,培養學生創新能力。
二、實驗環境
多媒體計算機; Windows _P 操作系統
三、實驗內容
實驗內容:利用PowerPoint程序設計與製作一個內容相對完整的自學演示型課件。結合自己的專業,選擇了比較合適的教學內容,有利於讓學生更好的接受該課程,更好的理解該課程教學的重難點,學習更多的知識。
四、操作步驟
1.首先準備好要做成模版的圖片,打開PowerPoint並新建一個空白的文檔。
2.視圖→母版→幻燈片母版,進入母版編輯狀態。??點擊繪圖工具欄上的“插入圖
片”按鈕(或按“插入→圖片→來自文件”),選中要做為模版的圖片,確定。並調整圖片大小,使之與母版大小一致。 ??
3.在圖片上點擊鼠標右鍵,疊放次序→置於底層,使圖片不能影響對母版排版的編輯。
4.幻燈片版式選擇只有標題,然後進行文字編輯,再插入一張圖片調整大小,然後疊放層次—置於頂層
5.插入新幻燈片,插入圖片,在圖片上點擊鼠標右鍵,疊放次序→置於底層,選擇標題和文本版式,進行文字編輯
6.插入新幻燈片,插入圖片,在圖片上點擊鼠標右鍵,疊放次序→置於底層,選擇標題和兩欄文本版式,進行文字編輯
7.插入新幻燈片,插入圖片,在圖片上點擊鼠標右鍵,疊放次序→置於底層,選擇標題和文本版式,進行文字編輯
8.觀看放映
9.保存
五、實驗體會與總結
通過這次的實驗操作,使我學會了利用Office軟件的PowerPoint演示文稿
圖形程序設計與製作一個內容相對完整的自學演示型課件,熟練掌握PowerPoint演示文稿圖形程序的幾種常用演示的製作方法;如何處理文字,圖片,聲音,動畫及視頻等,熟悉演示課件的開發流程,形成初步的多媒體課件的設計、開發能力;提高同伴之間的合作意識,培養自我的創新能力。
計算機實訓報告範文
一、實訓目的
1、 貫徹堅強實踐環節和理論聯繫實際的教學原則,增加學生對專業感性認識的深廣度,運用所學知識和技能為後續課程奠定較好的基礎。
2、通過實習,開闊學生眼界和知識面,獲得計算機硬件安裝和系統維護的感性認識。與此同時安排適量的講課或講座,促進理論同實踐的結合,培養學生良好的學風。
3、實習中進行專業思想與職業道德教育,使學生了解專業、熱愛專業,激發學習熱情,提高專業適應能力,初步具備職業道德觀念。
4、通過對專業、行業、社會的了解,認識今後的就業崗位和就業形式,使學生確立學習方向,努力探索學習與就業的結合點,而發揮學習的主觀能動性。
二、實訓內容
實習的主要內容為計算機硬件組裝,故障檢測, BIOS 系統的設置,簡單硬件故障的排除,硬件工作原理的了解,系統的安裝與備份,系統還原,軟件的安裝與調試,系統維護等,並撰寫實訓報告。此次實訓由專業教師陳莉莉、梁金宏同志負責。此次實訓主要安排以下幾個方面的任務:
1、 計算機硬件工作原理的了解,硬件之間的相互協調性了解。
2、 計算機硬件組裝,故障檢測與排除。
3、 BIOS系統設置
4、 硬盤的分區與格式化
5、 系統的安裝、備份、還原
6、 常用軟件的安裝與調試,系統維護。
7、 撰寫實訓報告。
第一節:計算機組裝維修
1.1計算機系統的基本組成及各部件的主要功能
1.1.1 計算機系統的基本組成
一個完整的計算機系統是由計算機硬件系統和計算機軟件系統兩部分組成。硬件是計算機的實體,又稱為硬設備,是所有固定裝置的總稱。它是計算機實現其功能的物質基礎,其基本配置可分為:主機、鍵盤、 顯示器 、光驅、硬盤、軟盤驅動器、打印機、鼠標等。軟件是指揮計算機運行的程序集,按功能分系統軟件和應用軟件。如圖1.2.1所示。
1.1.2 存儲程序控制的基本概念
“存儲程序控制”的概念,是美籍匈牙利數學家馮 · 諾伊曼等,如圖1.2.2所示。於1946年提出的設計電子數字計算機的一些基本思想,概括起來有如下一些要點:
1. 由運算器、控制器、存儲器、輸入裝置和輸出裝置五大基本
部件組成計算機,並規定了這五個部分的基本功能。
2. 採用二進制形式表示數據和指令。
3. 將程序和數據事先放在存儲器中,使計算機在工作時能夠自動
高速地從存儲器中取出指令加以執行。這就是存儲程序概念。
這樣一些概念奠定了現代計算機的基本結構,並開創了程序設計的時代。半個多世紀以來,雖然計算機結構經歷了重大的變化,性能也有了驚人的提高,但就其結構原理來說,至今佔有主流地位的仍是以存儲程序原理為基礎的馮 · 諾依曼型計算機。如圖1.2.3所示。
圖1.2.2 馮 · 諾伊曼結構計算機
輸入設備
控制器
運算器
存儲器
輸出設備
程序數據
結果
1.1.3 計算機硬件各部件的主要功能
計算機系統的硬件主要是由運算器、控制器、存儲器、輸入、輸出設備等幾部分組成。由於運算器、控制器、存儲器三個部分是信息加工、處理的主要部件,所以把它們合稱為“主機”,而輸入、輸出設備及存儲器則合稱為“外部設備”。又因為運算器和控制器不論在邏輯關係上或是在結構工藝上都有十分緊密的聯繫,往往組裝在一起,所以將這兩個部分稱為“中央處理機”(CPU)。
下面對計算機硬件的幾個基本部分作簡單介紹。
1. 運算器
運算器是一個用於信息加工的部件,它用來對二進制的數據進行算術運算和邏輯運算,所以也叫做“算術邏輯運算部件”(ALU)。
它的核心部分是加法器。因為四則運算加、減、乘、除等算法都歸結為加法與移位操作,所以加法器的設計是算術邏輯線路設計的關鍵。
2. 控制器
控制器產生各種控制信號,指揮整個計算機有條不紊地工作。它的主要功能是根據人們預先編製好的程序,控制與協調計算機各部件自動工作。控制器按一定的順序從主存儲器中取出每一條指令並執行,執行一條指令是通過控制器發出相應的控制命令串來實現的。因此,控制器的工作過程就是按預先編好的程序,不斷地從主存儲器取出指令、分析指令和執行指令的過程。
3. 存儲器
存儲器是用來存放指令和數據的部件。對存儲器的要求是不僅能保存大量二進制信息,而且能快速讀出信息,或者把信息快速寫入存儲器。一般對計算機存儲系統劃分為兩級,一級為內存儲器(主存儲器),如半導體存儲器,它的存取速度快,但容量小;另一級為外存儲器(輔助存儲器),如磁盤存儲器,它的存儲速度慢,但容量很大。在運算過程中,內存直接與CPU交換信息,而外存不能直接與 CPU交換信息,必須將它的信息傳送到內存後才能由CPU進行處理,其性質和輸入輸出設備相同,所以一般把外存儲器歸屬於外部設備。
4. 輸入輸出設備
輸入輸出設備是實現人與計算機之間相互聯繫的部件。其主要功能是實現人—機對話、輸入與輸出以及各種形式的數據變換等。
如前所述,計算機要進行信息加工,就要通過輸入設備把原始數據和程序存入計算機的存儲器中。輸入設備的種類很多,如鍵盤、軟磁盤、U盤、光盤等等。
輸出設備是將計算機中的二進制信息轉換為用戶所需要的數據形式的設備。它將計算機中的信息以十進制、字符、圖形或表格等形式顯示或打印出來,也可記錄在磁盤或光盤上。輸出設備可以是打印機、CRT顯示器、繪圖儀、磁盤、光盤等等。它們的工作原理與輸入設備正好相反,它是將計算機中的二進制信息轉換為相應的電信號,以十進制或其它形式記錄在媒介物上。許多設備既可以作為輸入設備,又可以作為輸出設備。
1.2 計算機軟件
從廣義上說,軟件是指為運行、維護、管理、應用計算機所編製的所有程序合數據的總和。通常按功能分為系統軟件和應用軟件。
1.2.1 系統軟件
所謂系統軟件,就是用來擴大計算機的功能,提高計算機的工作效率以及方便用戶使用計算機的軟件,如操作系統、故障診斷程序、語言處理程序等。
操作系統是維持計算機運行的必備軟件,它具有三大功能:管理計算機硬、軟件資源,使之能有效地被應用;組織協調計算機各組成部分的運行,以增強系統的處理能力;提供各種實用的人機界面,為用戶操作提供方便。操作系統軟件包括進程管理、存儲管理、設備管理、文件管理和作業管理等五個部分。
故障診斷程序負責對計算機設備的故障及對某個程序中的錯誤進行檢測、辨認和定位,以便操作者排除和糾正。
編譯程序將高級語言編寫的源程序翻譯成由機器語言組成的目標程序。高級語言是一種通用的程序設計語言,它不依賴於具體的計算機,具有較好的可移植性。但高級語言必須配置了相應的編譯程序後才能在計算機上使用,例如C語言等。
事實上,系統軟件正在迅速發展且日趨豐富,因此,計算機的功能越來越強,人機界面也更加友好。
計算機實訓報告範文相關 文章 :
★ 計算機實訓報告範文精選5篇
★ 計算機實習報告範文精選5篇
★ 計算機實習報告範文5篇
★ 計算機實訓報告範文3篇
★ 計算機專業實習報告範文5篇
★ 2020計算機專業實習報告3000字範文5篇精選
★ 計算機實訓總結5篇精選
★ 計算機實踐報告優秀範文3篇
★ 計算機專業實習報告800字範文5篇
★ 大學生計算機專業實習報告範文5篇
var _hmt = _hmt || []; (function() { var hm = document.createElement(“script”); hm.src = “”; var s = document.getElementsByTagName(“script”)[0]; s.parentNode.insertBefore(hm, s); })();
C語言課程設計實習報告 投票程序系統
#include iostream.h
main()
{int x,j,i,a2=0,b2=0,c2=0; //x投票人數 a b c分別代表三個候選人 a2 b2 c2分別是他們的得分
int max,p=0; // p作廢票數
char m[100][4],w;
cout”請輸入投票人數”endl;
cinx;
cout”請參加投票的人開始投票”endl;
for(i=0;ix;i++)
{
cout”第”i+1″個:”;
for(j=0;j3;j++)
cinm[i][j];
}
for(i=0;ix;i++)
{
if(m[i][0]==m[i][1]||m[i][0]==m[i][2]||m[i][1]==m[i][2])
{
p++;
continue;
}
if(m[i][0]==’a’) a2+=5;
else if(m[i][1]==’a’) a2+=3;
else if(m[i][2]==’a’) a2+=2;
if(m[i][0]==’b’) b2+=5;
else if(m[i][1]==’b’) b2+=3;
else if(m[i][2]==’b’) b2+=2;
if(m[i][0]==’c’) c2+=5;
else if(m[i][1]==’c’) c2+=3;
else if(m[i][2]==’c’) c2+=2;
}
max=a2;
w=’a’;
if(maxb2) {max=b2; w=’b’;}
if(maxc2) {max=c2; w=’c’;}
cout”今年足球先生是”wendl;
cout”得了”max”分,祝賀獲得冠軍”endl;
cout”作廢票數為”pendl;
return 0;
}
我測試了 已經通過了
不好意思 我看了你的題目後 跟我剛才回答的題類似 就稍微的改動了一下給你
我按你的要求重寫了一個 如何你的要求了 你看看
#include iostream.h
main()
{int x,j,i,a2=0,b2=0,c2=0; //x投票人數 a b c分別代表三個候選人 a2 b2 c2分別是他們的得分
int max;
char m[100][4],w;
cout”請輸入投票人數”endl;
cinx;
cout”請參加投票的人開始投票”endl;
for(i=0;ix;i++)
{
cout”第”i+1″個:”;
for(j=0;j3;j++)
cinm[i][j];
}
for(i=0;ix;i++)
if(m[i][0]==m[i][1]||m[i][0]==m[i][2]||m[i][1]==m[i][2])
{
cout”輸入有誤,請重新輸入”endl;
cout”第”i+1″個:”;
cinm[i][j];
}
for(i=0;ix;i++)
{
if(m[i][0]==’a’) a2+=5;
else if(m[i][1]==’a’) a2+=3;
else if(m[i][2]==’a’) a2+=2;
if(m[i][0]==’b’) b2+=5;
else if(m[i][1]==’b’) b2+=3;
else if(m[i][2]==’b’) b2+=2;
if(m[i][0]==’c’) c2+=5;
else if(m[i][1]==’c’) c2+=3;
else if(m[i][2]==’c’) c2+=2;
}
max=a2;
w=’a’;
if(maxb2) {max=b2; w=’b’;}
if(maxc2) {max=c2; w=’c’;}
cout”今年足球先生是”wendl;
cout”得了”max”分,祝賀獲得冠軍”endl;
return 0;
}
C語言實習報告
C語言實習報告
一、實習目的
1。掌握在集成環境中編輯、編譯、連接和運行C程序的方法。
(1)運行TC
(2)啟動TC集成環境,輸入一個源程序,編譯並運行。
2。掌握單步執行、設置/去除斷點,觀察變量或表達式的值。
(3)在該程序中按CTRL+F7單步招待並在觀察窗口中查看變量和表達式的值。
(4)設置/去除斷點,繼續調試。1、熟練掌握if.switch分支語句的使用。
2、熟練掌握for.while.do.while循環語句的使用。
3、熟練掌握函數的定義、說明、參數傳遞及嵌套和遞歸調用方法。
4、熟練掌握一維數組、二維數組、字符數組的定義、說明和使用方法。
熟練掌握結構體和指針的綜合應用鏈表的操作
二、實習地點
北京交通幹部管理學院計算機系機房十三號.
三、實習成果
熟練掌握TC集成環境的使用方法。認真編寫實習報告和實習總結,描述實習操作和心得體會,總結在這次實習中的業務收穫,作出自我評價。熟練掌握並應用TC程序設計的各個知識點。掌握結構體和指針的聯合使用,學會鏈表的構造和常用操作方法,認真編寫實習日誌和實習體會。並通過各種途徑查找所需資料,拓寬視野,培養自學能力。
四、實習心得
在短短一周的實習期間使我獲取了不少新知識也鞏固了許多老知識。我體會到了老師和同學們的熱心幫助,無論面對學習中多大的困難,同學們都會幫助你,老師也會幫助你,大家就像兄弟姐妹一樣。老師安排我們有具有的分工:
首先,在計算機機房裡同學們積極的對C語言進行鞏固與實習,老師熱心的講解同學們提出的問題和實習過程中應該注意的事項和同學們的任何。老師把我們分為幾組,每一組十一個人,並且分配了具體的任務,在我們實習結束後每一組的同學都把自己組裡的成果展示給大家一起分享,告訴大家編程的原理、方法等,使同學們既有動手能力,又能提高語言表達能力。
然後同學們把自到自己的小組裡,大家具體分工,你編這道題,我編這道題……我們不會的地方就去問學習比較好一些的同學,或者去問老師,老師和同學們總是那麼的熱心,只要你還不明白,不論你問多少次,老師和同學們都會耐心地給你細心的講解,直到講會為止。
最後我們把每天收穫到的知識和心得都以實習日誌的形式寫好,最後交給老師。我們把自己的成果交給老師,就這樣,這次實習圓滿結束。
這次實習是有益的,它不僅讓我們學習到了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==0x%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日星期算法(百年%40)
其公式為:
某年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==0x%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;im;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;iy;i++)
sum+=numofYear(i);
for(i=1;im;i++)
sum+=numofMonth(y,i);
/* ++sum;*/
i=sum%7;
week=(week+i)%7;
return week;}
void empty(int n){
int i;
for(i=0;in;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;iy2;i++)
sum+=numofYear(i);
if(y1==y2){ sum-=d1;
for(i=m1;im2;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(sm0||sm3);
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=(inkey0xFF00)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;I5;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(ab);
printf(“a is larger than b\n”);
for(i=0;i10;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;i10;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〕大連理工大學出版
原創文章,作者:WRNA,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/137761.html