第一篇:上機實習報告—停車場管理
實習報告
題目:停車場管理
班級:計算機學院12052313 姓名:盧魏旭 學號:12051521 完成日期:2012年10月
一、需求分析
以棧模擬停車場,以隊列模擬停車場以外的便道,每一組輸入的數據包括三個數據項:汽車“到達”或“離去”的信息,汽車牌照號碼以及到達或者離去的時刻,對每一組數據進行操作后的輸出信息為:若是車輛到達,則輸出汽車在停車場內或便道上的停車位置;若是車輛離去,則輸出汽車在停車場內停留的時間和應繳納的費用(在便道上不計費),棧以順序結構實現,隊列以鏈表結構實現。
附加要求,便道上的車可以直接開走,此時排在它前面的汽車先讓開,再一次排到隊尾。
二、概要設計
為實現上述程序功能,以順序存儲結構實現棧的功能,也就是停車場,棧的抽象數據類型定義為: ADTStack {
數據對象:D={a|ai<-ElemSet,i=1,2,3?n} 數據關系:R1={
操作結果:將車牌號及時間入棧,返回位置pos Popstack($S,num,&time)初始條件:棧S存在
操作結果:取出棧內元素
}
此外以鏈式存儲結構實現隊列的功能,也就是便道 隊列的抽象數據類型定義為: ADT Quene { 數據對象:D={a|ai<-ElemSet,i=1,2,3?n} 數據關系:R1={
基本操作:
creatquene(&Q)
操作結果:建立一個空隊列
Pushquene(&Q,num)
初始條件:隊列Q存在
操作結果:將一個元素入隊列 Popquene(&Q,num)
初始條件:隊列Q存在
操作結果:從隊列中取出一個元素 }
三、詳細設計
#include
S.top--;
printf(“number=%d time=%dn”,S.top->number,S.top->time);} } void showquene(linkquene &Q){ Quene *q;if(Q.front!=Q.rear){
q=Q.front->next;
while(q->next!=NULL)
{
printf(“number=%d time=%dn”,q->number,q->time);
q=q->next;
}
printf(“number=%d time=%dn”,q->number,q->time);} else
printf(“便道上沒有車輛!n”);}
int Pushstack(linkstack &S,int num,int time,int &pos)//入停車場 { if(S.top-S.base>=stacksize)
return 0;else {
S.top->number=num;
S.top->time=time;
S.top++;
pos=S.top-S.base;
return 1;} }
void stacktostack(linkstack &outS,linkstack &inS)/*出停車場時先把后進來的車開到一個臨時棧內*/ { inS.top->number=outS.top->number;inS.top->time=outS.top->time;}
int Popstack(linkstack &S,int num,int &time0)//出停車場 { int flag=0,i,m=S.top-S.base;linkstack S1;creatstack(S1);S.top--;for(i=0;i stacktostack(S,S1); if(S.top->number==num) { flag=1; break; } i++;} if(flag){ time0=S.top->time;//找到后將剛進來的時候的時間賦值給time0 while(S1.top!=S1.base) { S1.top--; stacktostack(S1,S); S.top++; } stacktostack(S1,S); return 1;} else S.top=m+S.base; return 0;} void Pushquene(linkquene &Q,int num,int time,int &pos)//停車場滿后入便道 { Quene *p;linkquene q=Q;p=(Queneptr)malloc(sizeof(Quene));p->number=num;p->time=time;p->next=NULL;Q.rear->next=p;Q.rear=p;p->next=NULL;pos=0;while(q.front->next!=NULL){ pos++; q.front=q.front->next;} } void Popquenetostack(linkquene &Q)//將便道上的車開出來開進停車場,其實就是刪除隊列中的對頭元素 { Quene *p;p=Q.front->next;Q.front->next=p->next;if(Q.rear==p) Q.rear=Q.front;} int Popquene(linkquene &Q,int num)//直接將車從便道上開走 { Quene *q,*p;q=Q.front->next;int flag=0,temp;temp=q->number;while(q->number!=num){ Q.rear->next=q; Q.rear=q; q=q->next; if(temp==q->number) { flag=1; break; } } Q.rear->next=NULL;if(flag) return 0;//未找到 else { Q.front->next=q->next; if(Q.front->next==NULL) Q.front=Q.rear; return 1;} } void Input(linkstack &S,linkquene &Q,char ch,int num,int time){ int pos,time0;switch(ch){ case 'A': if(Pushstack(S,num,time,pos)) { printf(“%d號汽車停在停車場里的第%d個車位上n”,num,pos); break; } else { Pushquene(Q,num,time,pos); printf(“%d號汽車停在便道上的第%d個車位上n”,num,pos); break; } case 'D': if(Popstack(S,num,time0)) { printf(“%d號汽車出停車場,”,num); printf(“n停車時間:o%d分鐘n停車費用為%g元an”,time-time0,(time-time0)*0.05); if(Q.front!=Q.rear) { Quene *q; q=Q.front->next; while(Pushstack(S,q->number,q->time,pos)&&Q.front!=Q.rear)//當停車場沒停滿時 { S.top--; S.top->time=time;//進停車場再計時 printf(“%d號汽車出便道進入停車場,停在第%d個車n”,S.top->number,pos); S.top++; Popquenetostack(Q);//讓便道上的車出列進入停車場 } } // showstack(S); } else { if(Q.front!=Q.rear&&Popquene(Q,num)) printf(“便道上的號車開走了n”,num); else printf(“停車場和便道上均無此車n”); } break; case 'E':break;} printf(“n”);} void main(){ char c='X';char cs[10];int number,time;linkstack S;linkquene Q;creatstack(S);creatquene(Q);while(c!='E'){ printf(“輸入操作數n”); scanf(“%c%d%d”,&c,&number,&time); gets(cs); if(c!='A'&&c!='D'&&c!='E') { printf(“輸入有誤!n”); continue; } printf(“n”); Input(S,Q,c,number,time);} printf(“結束!n”);showstack(S);system(“pause”);} 四、調試分析 1、本次作業是一個簡單的停車場管理,涉及到停車場停車開車以及便道上停車的問題,在Input()函數中調用根據輸入的信息調用各個函數進行相應的分析,剛開始遇到很多問題,比如在出棧和入棧時,由于棧內存放的是結點的指針,而我當時直接是用S.top=p來賦值,導致在從停車場開車走時找不到車輛的車牌號和對應的時間,返回給我的是一串地址,后來明白是要對S.top所指結點的各個元素分別賦值才可以。 2、本次程序沒有太多出色的算法,基本上就是要對棧和隊列的熟練使用,明白其用法,程序中的stacktostack()比較重要,在停車場中開車走時要使用一個臨時的棧來存放場內的車,然后再按順序放回去。 3、對指針的掌握熟悉了一點,棧和隊列都采用指針來操作,每一個棧內存放一個車輛結點的地址信息,使用起來非常的方便。 4、本程序中除了基本操作的算法以外,只有一個Input()函數,其時間復雜度 2在停車場開車后從便道入場這里最大為O(n),其他算法都是對棧或者隊列的遍歷,為O(n); 5、經驗體會,這種程序不復雜,就是需要仔細,在入隊和出隊以及入棧和出棧時很容易出錯,當數據出現錯誤的時候,可以用一個遍歷函數來檢測棧內或隊列內的數據。 五、用戶手冊 1、本程序的運行環境為DOS操作系統,執行文件為:停車場管理.exe。 2、進入演示程序后即顯示文本方式的界面 3、按照A 1 1的形式輸入信息A代表停車,D代表開車走,E代表結束輸入,第一個數字代表車牌好,第二個數字代表停車或者開車走的時刻。回車即確定輸入。每次輸入后,若是停車,則顯示停車的位置,若是開車走,則會顯示車是從停車場內開走還是從便道上開走,若是從停車場內開走,顯示停了多長的時間,以及相關的停車費用。 六、測試結果 如圖所示 七、附錄 源程序文件名清單: 停車場管理.c++ //主程序 八、驗收過程 1、驗收時間:周一晚上機時間,6:00—9:00; 2、驗收地點:一教115機房; 3、驗收教師:王立波; 4、流程概要: 1)第一次驗收時老師讓我把“從便道上直接開車走”這個功能實現。2)第二次驗收時,在從便道上直接開車走這個功能上出了點問題,我是創建了一個新的結點來保存要插入到隊尾的車輛信息,而老師認為應該直接把結點鏈接到隊尾就行不需要創建新結點,這樣可以節省空間,經過一番修正,達到了老師的要求,學會了如何鏈接隊列元素。 3)學生解答結束后,老師對本程序給出評分。4)驗收結束。 文獻檢索實習報告(參考格式) 課程名稱:文獻檢索日期: 學院:班號:姓名:學號: 實驗名稱:電子圖書等資源檢索。 實驗目的:掌握圖書資源如何檢索和利用,熟悉人名錄或機構名錄的檢索。實驗內容: 1、用CALIS檢索你們自己任課教師的編著發表情況。 2、用超星檢索自己所在專業的某一方面的圖書出版情況,并采集某一本書的一段文字,一個圖。(以超星為例) (1).登陸四川理工學院圖書館主頁。 (2).找到電子資源,點擊進入圖書館電子資源界面。 (3).找到熱門資源中的“超星數字圖書館”,并點擊“本地”,進 入超星數字圖書館。 (4).找到“瀏覽器”,點擊并下載超星星瀏覽器。 (5).下載好“超星星瀏覽器”后就可以瀏覽圖書了。 (6).例如查 3、利用物競化學品數據庫檢索某一具體化學物質的相關數據。 4、用萬方數據庫檢索我國某一位院士/科學家/某學科領域著名學者的名錄。 實習報告要求:用自己姓名作為文件名稱,將作業發送給各班指定的同學。 實習報告 題目:停車場管理 一. 需求分析 1. 用棧來表示停車場,用隊列來表示停車道。 2. 用戶需輸入車輛的必要信息,如車輛的到達或離開,汽車牌號以及到達或離去的時刻。停車場的容量及單位時間的停車費由編程序者自行設置,結構需輸出車輛停車所需繳納的費用。 3. 本程序要求對車輛的動態能夠輸出具體的信息內容,包括停車或離開的時間,位置,及所需繳納的停車費。4. 測試數據為: N=2,輸入數據為:(’A’,1,5),(‘A’,2.,10),(‘D’,1,15),(‘A’,3,20),(‘A’,4,25),(‘A’,5,30),(‘D’,2,35),(‘D’,4,40),(‘E’,0,0).其中:’A’表示到達,’D’表示離去,’E’表示輸入結束。5.程序執行的命令為: 1.創建棧和隊列。2.對車輛的行為進行相應的處理。3.輸出車輛的信息。 二. 概要設計 1.設定棧的抽象數據類型定義: ADT Stack{ 數據對象:D={ai|ai屬于Elem,i=1,2……,n, n>=0} 數據關系:R1={ 基本操作: InitStack(&S) 操作結果:構造一個空棧S.pop(&S,&e) 初始條件:棧S已存在。 操作結果:刪除S的棧頂元素,并以e返回其值。 push(&S,&e) 初始條件:棧S已存在。 操作結果:在棧S的棧頂插入新的棧頂元素e。 EmptyStack(S) 初始條件:棧S已存在。 操作結果:若棧為空,則返回TRUE,否則,返回FALSE }ADT Stack;2.設定隊列的抽象數據類型定義: ADT Queue{ 數據對象:D={ai| ai屬于Elem, i=1,2,……,n, n>=0} 數據關系:R1={ 基本操作: InitQueue(&Q) 操作結果:構造一個空隊列Q.Append(&Q, e) 初始條件:隊列Q已存在。 操作結果:插入元素e為Q的新的隊尾元素。 Remove(&Q, &e) 初始條件:Q為非空隊列。 操作結果:刪除Q的對頭元素,并用e返回其值。 EmptyQueue(Q) 初始條件:隊列Q已存在。 操作結果:若隊列為空,則返回TRUE,否則,返回FALSE }ADT Queue 3.本程序主要包括三個模塊 1.主程序模塊; int main(){ 初始化; do{ 接受命令; 處理命令; }while(命令!=退出); } 2.處理車輛到達模塊; 3.處理車輛離開模塊; 各模塊之間的調用關系如下: 處理車輛到達模塊?主程序模塊?處理車輛離開模塊 三. 詳細設計 設計程序如下: 1.棧的頭文件 #ifndef _SQSTACK_H_ #define _SQSTACK_H_ struct Car { int plate, arrive_t;};class SqStack { public: int top;Car *base;int size;void InitStack(int m=100);bool EmptyStack()const;bool Push(Car &c);bool Pop(Car &c);};void SqStack::InitStack(int n){ base = new Car[n];top =-1;size = n;} bool SqStack::EmptyStack()const { if(top ==-1) return true;else return false;} bool SqStack::Push(Car &c){ if(top == sizec.arrive_t;if(timelong < 0){ cout << “the input is false,please do it again”< packing.Push(c); while(!temp.EmptyStack()) { temp.Pop(c); packing.Push(c); } return 0;} cout << “car ” << pla << “ was departed from packing lot” << endl;cout << “停留時間:” << timelong << endl;cout << “繳納金額:” << timelong*price << endl;while(!temp.EmptyStack()){ temp.Pop(c); packing.Push(c);} if(!sevice_road.EmptyQueue()) { sevice_road.Remove(c); map[c.plate] = 0; c.arrive_t = tim; packing.Push(c); cout << “car ” << c.plate << “ in packing lot” << endl; } } return 0;} int main(){ cout << “請輸入停車場規模” << endl;cout << “xxxxxxxxxx” << endl;int n;cin >> n;cout << “xxxxxxxxxx” << endl;SqStack packing, temp;LinkQueue sevice_road;packing.InitStack(n);temp.InitStack();sevice_road.InitQueue();cout << “請輸入指令:A-arrive、D-depart、E-exit cout << ”xxxxxxxxxx“ << endl;char command;cin >> command;while(command!= 'E'){ if(command == 'A') { Arrive(packing, sevice_road); cout << ”xxxxxxxxxx“ << endl; } if(command == 'D') { Depart(packing, temp, sevice_road); cout << ”xxxxxxxxxx“ << endl; } cin >> command;} } 車牌號時間” << endl; 四. 調試與驗收 1.本次作業是設計停車場的管理系統,就需要判斷車牌號,及時間的輸入的正確性,輸入的數據有比較嚴格的要求,必須符合實際。因此對數據需要多次判斷。2.處理車輛到達模塊和處理車輛離開模塊其空間復雜度為O(m*n);3.本程序循環用的很多,找車,排隊,等等。 4.在驗收時,老師提出一些當輸入為不正常輸入的時候的情況,而我沒有考慮到,所以又做了一定的修改。 5.驗收時,老師提到所加map破壞了程序整體結構的完好性,是有待改進的地方。 五 用戶手冊 1.按屏幕提示輸入停車場規模和車輛信息; 2.回車顯示車輛在停車場或停車道的信息; 3.輸入E退出。 六. 測試結果 七 附錄 源程序文件名清單: LinkQueue.cpp LinkQueue.h SqStack.cpp SqStack.h 停車場管理.cpp 計算機上機實習報告 姓名:張陸浩 班級:高材11001 學號:201001978 老師:張老師 熊老師 時間:2011年12月24日 一.實驗目的: 1.熟悉VB 6.0的開發環境,掌握基本的編程方法,熟悉用VB語言完成一個應用程序的設計過程,掌握有關編輯和調試程序的方法和技巧;2.主要掌握VB語言中的標準模塊的建立﹑數據文件的讀出與寫入、數組與選擇結構的運用,圖形操作等內容 3.了解開發簡單應用程序的全過程,包括:分析﹑設計﹑編程﹑調試和編寫報告.二.實習要求: (一)。用記事本新建一個文本文件,將本班M名學生N門考試課的成績輸入到這個文件中,建議按如下形式存放(注:20=M<=50,5<=N<=8,下文以M=4,N=3為例): 學號 姓名 英語 數學 物理 化學 VB 1 張陸浩 2 林丹 3 李宗偉 4 李永波 (二)。將N門考試課以及其分數輸入到另一個數據文件(文件類型同上題)中,建議以下列形式存放: 編號 課程名稱 課程學分 1 英語 5.0 2 數學 4.5 3 物理 5.0 4 化學 4.5 5 VB 4.5 (三)。請編寫一個簡單的學生成績管理程序,以完成以下功能: 1.根據以上兩文件內容分別計算每個學生N門課程的加權平均分(保留兩位小數,四舍五入),按平均分排列名次,平均分相同則名 次并列。用VB創建一個數據文件,存放班級的成績表。 2.分別統計全班每門課的平均分,并計算各分數段(90分以上;80~89;70~79;60~69;60分以下)的學生數。.3.打印每名學生成績條(并將結果存放到用VB創建的一個新的數據文件中)。 4.顯示所有存在不及格課程的學生的名單(含學號,不及格課程名稱,課程的學分及成績)。 5.屏幕顯示優等生名單及打印每門課程成績分布圖。優等生條件(只要滿足三個中任一個就可以): a)平均分>=90分 b)名次在本班位于前四名 c)平均分>=85分,并且至少有一門課的成績>=95分 三、實習步驟 1、用記事本新建一個學生成績文本文件(其中包括學生學號,成績,姓名,課程及成績)。 2、用記事本新建一個課程學分文本文件。 3、編輯菜單編輯器:編輯四個可拉式菜單,包括學生成績、成績處理、成績編輯、畫圖。 4、編輯代碼:分別編輯打印學生成績和學分代碼,編輯加權平均分、各科平均分、分數段、成績條、排名、優等生、差等生的代碼,還有畫各科目成績人數圖的代碼。 5、調試程序代碼并保存。 6、打印代碼。 三.相關數據列表: (一)。源文件 (1)成績 學號 姓名 英語 數學 物理 化學 VB 1 張陸浩 97 98 97 97 98 2 林丹 92 87 79 91 84 3 李宗偉 75 96 83 75 73 4 李永波 89 93 83 86 82 5 王儀涵 92 79 89 86 80 6 汪鑫 93 65 86 68 84 7 付海峰 94 91 89 92 80 8 湛龍 86 83 88 80 92 9 蓋德 68 79 54 72 71 10 陶菲克 69 76 59 81 75 11 佐佐木 85 83 68 57 71 12 李娜 94 63 62 65 53 13 陳金 86 79 89 94 83 14 蘭洋 91 93 92 89 75 15 小志 95 89 93 86 87 16 棃一名 92 86 83 67 59 17 吳凱飛 67 75 57 82 62 18 江方 93 80 73 76 84 19 胡艷 74 68 58 63 71 20 張繼原 68 95 68 84 93(2).學分 編號 課程名稱 課程學分 1 英語 5.0 2 數學 4.5 3 物理 5.0 4 化學 4.5 5 VB 4.5 四.運行效果: (一).學生管理 (1)打開課程成績及學分 (2)打開計算的加權平均分﹑排名及各科平均分 (三).編輯 (1)打開計算的各科人數分布 (2)打開按學號查找每個學生的成績 a)輸入要查找學生的學號 b)得到該生的成績條 (3)打開查找到的優等生信息 (4)打開不及格學生的分布 (四).成績分布圖 五.實習小結 通過兩個星期的上機實習,我體會頗深,不僅表現在VB語言程序設計中,而且表現在與人交流和獨立自主完成任務的決心中。 本次上機在VB程序設計中我學會了很多以前不會或根本一點都不懂的東西。比如,在程序設計過程中,剛開始我弄不清楚怎樣把編輯的文件讀到VB中,但是通過詢問老師和同學討論,終于弄清了思路,即先將文件打開,再將數據分別放入若干個數組中,最后再將它讀出來。除此之外,我還明白了變量的作用域對編程的重要性和子過程,函數過程數據處理的幫助。而對以前學的,像選擇結構,循環結構等也進行了鞏固和運用。在數據處理和打印的時候進行了大量運用。為了使程序更人性化化,我還運用了msgbox,inputbox等方法,使我對所學的知識進行了綜合的運用。 我相信通過這次實習,我對VB和計算機語言都有了更深刻的認識。雖然在實習的過程中,我發現了自己在編寫程序中的不足,像思維不夠嚴密等,但我相信,只要認真、努力就一定會有收獲 六.程序代碼 (一).創建標準模塊 Type student “定義變量:student” number As String * 9 name As String * 3 score(1 To 5)As Single average As Single rank As Integer End Type Type class “定義變量:class” num As String * 9 nam As String * 3 scor As Single End Type Public stu()As student, cla()As class, sumscor As Integer, subj()As class Public q(5)As Integer, t(5)As Integer, x(5)As Integer, y(5)As Integer, h(5)As Integer “定義刪除空格函數” Public Function deletespace(str As String)As String Dim i% i = InStr(str, “ ”)Do While i <> o str = Replace(str, “ ”, “ ”)i = InStr(str, “ ”)Loop deletespace = str End Function Public Sub addave(stu()As student, cou()As course)“定義計算加 For i = 1 To UBound(stu)權平均分 Dim jqpj!, x!, y!的子過 程 x = 0 y = 0 For j = 1 To 5 x = x + cou(j).score y = y + stu(i).score(j)* cou(j).score Next j stu(i).jqpj = y / x Next i End Sub Public Sub mc(stu()As student)“定義計算排名的子過程” For i = 1 To UBound(stu)stu(i).rank = 0 For j = 1 To UBound(stu)If stu(i).jqpj <= stu(j).jqpj Then stu(i).rank = stu(i).rank + 1 End If Next j Next i End Sub(二).讀取考試成績和課程學分(1).打開文件 Private Sub studentscore_Click()CommonDialog1.Filter = “文本文件|*.txt” CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 Line Input #1, str1 Print str1 Do While Not EOF(1)Line Input #1, str str = deletespace(Trim(str))a = Split(str, “ ”)n = n + 1 ReDim Preserve stu(n)stu(n).number = a(0)stu(n).name = a(1)For i = 1 To 5 stu(n).score(i)= a(i + 1)Next i Loop For i = 1 To n Print stu(i).number;Spc(1);stu(i).name;Spc(3);For j = 1 To 5 Print stu(i).score(j);Spc(3);Next j Print Next i Close #1 End Sub Private Sub classrank_Click()CommonDialog2.Filter = “文本文件|*.txt” CommonDialog2.ShowOpen Open CommonDialog2.FileName For Input As #2 Line Input #2, str2 Print str2 sumscor = 0 Do While Not EOF(2)Line Input #2, str3 str3 = deletespace(Trim(str3))b = Split(str3, “ ”)m = m + 1 ReDim Preserve cla(m)cla(m).num = b(0)cla(m).nam = b(1)cla(m).scor = b(2)sumscor = sumscor + Val(cla(m).scor)Loop For k = 1 To m Print cla(k).num;Spc(2);cla(k).nam;Spc(3);cla(k).scor;Spc(3)Next k End Sub(2).分數處理 Private Sub ran_Click()“加權平均分及名次” Form1.Cls For n = 1 To 20 sum = 0 For i = 1 To 5 sum = sum + stu(n).score(i)* cla(i).scor Next i stu(n).average = Format(sum / sumscor, “##.##”)Next n For n = 1 To 20 stu(n).rank = 1 For j = 1 To 20 If stu(n).average < stu(j).average Then stu(n).rank = stu(n).rank + 1 End If Next j Next n Print “學號”;Spc(6);“姓名”;Spc(4);“英 語”;Spc(2);“數 學”;Spc(2);“ 物 理”;Spc(3);“化 學”;Spc(2);“V B”;Spc(2);“加權平均分”;Spc(2);“名次” For n = 1 To 20 Print stu(n).number;Spc(1);stu(n).name;Spc(3);For i = 1 To 5 Print stu(n).score(i);Spc(3);Next i Print stu(n).average;Spc(3);stu(n).rank Next n End Sub Private Sub eaverage_Click()“ 課程平均分” Print Spc(7);“英 語”;Spc(1);“數 學”;Spc(1);“ 物 理”;Spc(1);“化 學”;Spc(1);“V B” Print “平均分”;For i = 1 To 5 sum = 0 For n = 1 To 20 sum = sum + stu(n).score(i)Next n j = Format(sum / 20, “00.00”)Print Spc(2);j;Next i End Sub(3).編輯 Private Sub scor_Click()“計算打印個分數段人數” Form1.Cls Print “范圍”;“英 語”;Spc(3);“數 學”;Spc(3);“ 物 理”;Spc(3);“化 學”;Spc(3);“V B” For i = 1 To 5 For n = 1 To 20 Select Case stu(n).score(i)Case 90 To 100 q(i)= q(i)+ 1 Case 80 To 89 x(i)= x(i)+ 1 Case 70 To 79 t(i)= t(i)+ 1 Case 60 To 69 h(i)= h(i)+ 1 Case Else y(i)= y(i)+ 1 End Select Next n Next i Print “>90”;For i = 1 To 5 Print Spc(4);q(i);Next i Print Print “80_89”;For i = 1 To 5 Print Spc(4);x(i);Next i Print Print “70_79”;For i = 1 To 5 Print Spc(4);t(i);Next i Print Print “60_69”;For i = 1 To 5 Print Spc(4);h(i);Next i Print Print “<60”;For i = 1 To 5 Print Spc(4);y(i);Next i End Sub Private Sub stuscolist_Click()“打印成績條” Form1.Cls n = InputBox(“請輸入學號”)Print “學號”;Spc(5);“姓名”;Spc(3);“英 語”;Spc(3);“數 學”;Spc(3);“ 物 理”;Spc(3);“化 學”;Spc(3);“V B” Print stu(n).number;Spc(1);stu(n).name;Spc(3);For i = 1 To 5 Print stu(n).score(i);Spc(3);Next i End Sub Private Sub excellent_Click()“打印優等生” Form1.Cls Dim t As Integer Print “姓名”;Spc(4);“學號”;Spc(8);“英 語”;Spc(4);“數 學”;Spc(3);“ 物 理”;Spc(3);“化 學”;Spc(4);“V B”;Spc(6);“平均分”;Spc(4);“名次” For i = 1 To 20 t = 0 For j = 1 To 5 If stu(i).score(j)>= 95 Then t = t + 1 End If Next j If stu(i).average >= 85 And t >= 2 Or stu(i).average >= 90 Or stu(i).rank <= 3 Then Print stu(i).name;Spc(2);stu(i).number;Spc(3);For j = 1 To 5 Print stu(i).score(j);Spc(5);Next j Print stu(i).average;Spc(5);stu(i).rank End If Next i End Sub Private Sub ugstulist_Click()“打印不及格學生” Form1.Cls For n = 1 To 20 For i = 1 To 5 If stu(n).score(i)< 60 Then Print stu(n).number;stu(n).name;stu(n).score(i);cla(i).nam;cla(i).scor End If Next i Next n End Sub(5).成績分布圖 Private Sub Command1_Click()“新建窗體form2” For i = 0 To 4 Picture1(i).Scale(0, 14)-(100, 0)Picture1(i).Line(10, 2)-(92, 2), vbRed Picture1(i).Print “分數段” Picture1(i).Line(10, 2)-(10, 14), vbRed Picture1(i).Print “人數” For j = 2 To 10 Step 2 Picture1(i).CurrentY = j + 2 Picture1(i).CurrentX = 4 Picture1(i).Print j Next j Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Line(10, 2)-(26, 2 + q(1 + i)), vbGreen, BF Picture1(i).CurrentX = 26 Picture1(i).CurrentY = 2 Picture1(i).Line(26, 2)-(42, 2 + x(i + 1)), vbRed, BF Picture1(i).CurrentX = 42 Picture1(i).CurrentY = 2 Picture1(i).Line(42, 2)-(58, 2 + t(i + 1)), vbGreen, BF Picture1(i).CurrentX = 58 Picture1(i).CurrentY = 2 Picture1(i).Line(58, 2)-(74, 2 + h(i + 1)), vbRed, BF Picture1(i).CurrentX = 74 Picture1(i).CurrentY = 2 Picture1(i).Line(74, 2)-(90, 2 + y(i + 1)), vbGreen, BF Picture1(i).Line(10, 2)-(26, 2), vbGreen Picture1(i).Line(26, 2)-(42, 2), vbRed Picture1(i).Line(42, 2)-(58, 2), vbGreen Picture1(i).Line(58, 2)-(74, 2), vbRed Picture1(i).Line(74, 2)-(90, 2), vbGreen Picture1(i).CurrentX = 10 Picture1(i).CurrentY = 2 Picture1(i).Print “ >=90 80-89 70-79 60-69 <=60” Next i End Sub CAD 班級:電子質檢1101班 姓名:郭利智 學號:2011110902 指導老師:潘慶杰 上機實習報告 CAD上機實習報告 1.實習任務 用一周的時間對AUTOCAD軟件練習的同時,完成機自教研室發的二維圖例以及6個練習圖,并完成相應的實習報告,并將繪制圖形的各個步驟在實習報告中體現出來,將在實習過程中遇到的問題和繪圖的關鍵步驟更具體的按要求寫。 2.實習任務圖(見附頁) 3.實習任務圖分析: 在老師所給的這些圖中,基本包含了所有AUTOCAD經常使用的畫圖命令,并且能夠進行熟練的操作,為以后的學習和工作打下堅定的基礎。因此,畫好這些圖很有意義。 4.CAD上機實習總結 我們在此CAD培訓中,不僅掌握了一些畫圖命令,更加熟悉了CAD環境和CAD桌面系統操作并且能夠熟練的進行操作,進而畫出一些簡單二維圖形,還學會了一些畫圖的快捷命令,使我的畫圖速度有所提高,也為我以后的學習和工作提供了有利的條件。 對于AUTOCAD,在繪圖過程中,通過老師的講解和自己的摸索以為自己以前所學的知識,我能熟練的運用有關快捷的命令,比起以前手繪圖快了許多。更重要的是掌握了有關字母類的快捷命令,更方便了繪圖。第二篇:上機實習報告格式
第三篇:數據結構-停車場管理-實習報告
第四篇:計算機上機實習報告
第五篇:CAD上機實習報告