Ⅰ C語言實驗報告總結
你只需要按那個模版就行,那些內容就改成你的作業
班級: 學號: 姓名:
實驗 指針
一、實驗目的
(1)掌握指針概念,並定義與使用它。
(2)使用數組的指針和指向數組的指針變數。
(3)使用字元串的指針和指向字元串的指針變數。
二、實驗內容
1. 將一個3*3的矩陣轉置,用函數實現。
2. 有n個人圍成一圈,順序排號。從第一個人開始報數(1~3),凡報到3的人退出,問第幾號的人能留下。
三、實驗環境
硬體:(1)學生用微機
(2)多媒體實驗教室
軟體:(1)Windows XP 中文操作系統
(2)VC++ 6.0
四、實驗結果
程序1:
#include<stdio.h>
void main()
{
void move(int *pointer);
int a[3][3],*p,i;
printf("input marix:\n");
for(i=0;i<3;i++)
scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
p=&a[0][0];
move(p);
printf("matrix:\n");
for(i=0;i<3;i++)
printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);
}
void move(int *pointer)
{
int i,j,t;
for(i=0;i<3;i++)
for(j=i;j<3;j++)
{
t=*(pointer+3*i+j);
*(pointer+3*i+j)=*(pointer+3*j+i);
*(pointer+3*j+i)=t;
}
}
程序2:
#include<stdio.h>
void main()
{
int i,k,m,n,num[50],*p;
printf("input num of person:");
scanf("%d",&n);
p=num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i=0;
k=0;
m=0;
while(m<n-1)
{
if(*(p+i)!=0)k++;
if(k==3)
{
*(p+i)=0;
k=0;
m++;
}
i++;
if(i==n)i=0;
}
while(*p==0)p++;
printf("the last num is %d\n",*p);
}
結果1:(就是程序運行之後出現的框,截圖後粘貼這里)
結果2:
五、總結:
通過這個實驗的學習, 基本掌握了指針的基本用法。
Ⅱ c語言實驗報告總結怎麼寫
c語言實驗報告總結這樣寫:
在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助於我們更好的了解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。
在這個星期里,我們專業的學生在專業老師的帶領下進行了c語言程序實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對裡面的好多東西還是很陌生,的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。
由於時間的關系,我們的這次實踐課程老師並沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理.簡單界面程序.高級界面程序.程序的添加修改.用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。
上機實驗是學習程序設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對於程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。
學習c程序設計語言除了課堂講授以外,必須保證有不少於課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今後的繼續學習打下一個良好的基礎。
為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:
1、加深對課堂講授內容的'理解
課堂上要講授許多關於c語言的語法規則,聽起來十分枯燥無味,也不容易記住,死記硬背是不可取的。然而要使用c語言這個工具解決實際問題,又必須掌握它。
通過多次上機練習,對於語法知識有了感性的認識,加深對它的理解,在理解的基礎上就會自然而然地掌握c語言的語法規定。對於一些內容自己認為在課堂上聽懂了,但上機實踐中會發現原來理解的偏差,這是由於大部分學生是初次接觸程序設計,缺乏程序設計的實踐所致。
學習c語言不能停留在學習它的語法規則,而是利用學到的知識編寫c語言程序,解決實際問題。即把c語言作為工具,描述解決實際問題的步驟,由計算機幫助我們解題。只有通過上機才能檢驗自己是否掌握c語言、自己編寫的程序是否能夠正確地解題。
通過上機實驗來驗證自己編制的程序是否正確,恐怕是大多數同學在完成老師作業時的心態。但是在程序設計領域里這是一定要克服的傳統的、錯誤的想法。因為在這種思想支配下,可能你會想辦法去"掩蓋"程序中的錯誤,而不是盡可能多地發現程序中存在的問題。
自己編好程序上機調試運行時,可能有很多你想不到的情況發生,通過解決這些問題,可以逐步提高自己對c語言的理解和程序開發能力。
2、熟悉程序開發環境、學習計算機系統的操作方法
一個c語言程序從編輯、編譯、連接到運行,都要在一定的外部操作環境下才能進行。所謂"環境"就是所用的計算機系統硬體、軟體條件,只有學會使用這些環境,才能進行程序開發工作。
通過上機實驗,熟練地掌握c語言開發環境,為以後真正編寫計算機程序解決實際問題打下基礎。同時,在今後遇到其它開發環境時就會觸類旁通,很快掌握新系統的使用。
3、學習上機調試程序
完成程序的編寫,決不意味著萬事大吉。你認為萬無一失的程序,實際上機運行時可能不斷出現麻煩。如編譯程序檢測出一大堆錯誤。有時程序本身不存在語法錯誤,也能夠順利運行,但是運行結果顯然是錯誤的。
開發環境所提供的編譯系統無法發現這種程序邏輯錯誤,只能靠自己的上機經驗分析判斷錯誤所在。程序的調試是一個技巧性很強的工作,對於初學者來說,盡快掌握程序調試方法是非常重要的。有時候一個消耗你幾個小時時間的小小錯誤,調試高手一眼就看出錯誤所在。
通過這次為數不多的幾天計算機實踐學習,我們了解了一些關於c語言的知識,理解鞏固了我們c語言的理論知識,著對我們將來到社會工作將會有莫大的幫助。同時它讓我知道,只要你努力,任何東西都不會太難!
Ⅲ 實驗報告怎樣寫啊
一, 程序功能
本程序利用指針,鏈表,文件,以及字元串等各種操作,實現程序功能:字典管理。
二, 題目分析
與前兩題不同,本題需大量利用指針和鏈表操作。這無形中增加了題目的難度。由於指針這部分知識掌握得不牢固,加上鏈表和文件都是新學的內容,編程過程遇到了一些困難,調試與查錯一度成為課設的主要工作。
為了更好的完成設計,我復習了指針這部分內容,鞏固了鏈表和文件兩部分知識。
在完成課設過程中,我發現困擾我的地方不是編寫插入,刪除,查找這些函數,而是建立初始鏈表。
我首先編了三個函數:creat,insert_a_word,list,和一個main函數。調試時發現調用list函數輸出除了原來insert的字元串,還有一些亂碼,這就說明以上三個函數的某個或幾個有問題。後來我把目標放在creat函數上。我本來是想模仿書上的creat 函數,但是要從文件上讀取字元串,就要用到fscanf,由於操作的不純熟,空間的分配出現了問題,在初始鏈表的時候帶進了一些亂碼。後來我重新編了creat函數,解決了這個問題。
解決了初始鏈表的問題以後,遇到的問題無非是指針上的操作錯誤,往往一編譯就出現很多警告和錯誤,於是一個一個找,一個一個調。這些花費了我很長時間,以至於一看到藍屏下的出錯信息就想逃。這些錯誤後來都被我解決了。
在完成課設過程中,我是一邊出錯一邊改錯,一邊調試一邊翻書,進展緩慢。不過也是因為出了錯,翻了書,我發現了自己知識體系中的不足之處,鞏固了薄弱的地方。
大體編完了以後,我又對程序進行了完善。比如說增加了全局變數n,在輸出插入單詞成功時輸出插入單詞的個數。經過這個程序設計的編寫,我覺得作為一個編程者,首先,必須有嚴謹的作風:因為一個程序中小小的一點不足在最後的運行時都會對整個程序產生不可忽視的影響,甚至使程序終止,不能運行下去;其次,還必須有足夠的耐心去觀察解決出現的一系列問題;當然,還必須有較強的邏輯思維能力,因為程序出現錯誤不是光有耐心就能解決的,必須利用邏輯思維能力,一步步地排除錯誤
三、源程序
或者;
一. 程序功能
設計一個單向鏈表類,完成一個通訊錄的簡單管理工作。通訊錄是一個簡單的資料庫庫表,每個結點包含一個人的所有通訊信息。
程序的執行過程為:循環顯示主菜單,用戶在Choice處輸入選項,即按照功能列表輸入1-9的任意一個數字,按回車後,執行響應的功能。
各菜單項功能如下:
1、 Add Record (增加記錄)
提示輸入各欄位。一次輸入一個人的數據。
2、 Delete Record (刪除記錄)
輸入待刪除記錄的姓名,顯示該姓名下的所有信息,讓用戶再次確認是否要刪除
3、 Display All Record(顯示所有記錄)
按順序顯示庫中所有記錄,每屏顯示10條記錄。每顯示10條,用戶按<Enter>鍵繼續顯示下一屏。
4、 Query(按姓名查找並顯示一個記錄)
輸入姓名,顯示該姓名下的所有信息
5、 Modify Record(按姓名查找,修改一個記錄)
輸入姓名,顯示該姓名下的所有信息。然後,在子菜單中提示修改哪個數據。
6、 Add from a Text File(從正文文件中添加數據到庫表中)
用戶可事前建立一個正文文件,存放待加入的數據,然後從該文件中一次性導入多個人員的數據。程序運行時,提示輸入正文文件的文件名。
7、 Write to a Text File
將庫表中的數據寫入一個正文文件中。
8、 Sort(排序庫表)
首先顯示當前排序關鍵字,然後 提示是否需要改變,用戶根據需要回答是否需要改變。系統中有兩種排序方式,一種是按姓名排序,一種是按辦公室電話排序。改變排序的方式
的意義是在兩種排序方式之間的切換。
9、 Quit(退出系統)
二. 添加的一些功能
1.程序設計過程中我添加了報錯系統,例如我定義了int isnumber(char a[])和int ischar(char a[])2個函數,分別用於判斷用戶輸入的字元串是否為數字或非數字字元串。
2.我還添加了清屏功能,在適當的地方添加此功能可以方便用戶使用。
3.在void add(Addrlist &addrlist)函數中我還添加了提示「已經添加同名聯系人,是否需要修改新聯系人的各項記錄?(y/n)並確認」的功能。
4.在void del(Addrlist &addrlist)函數中我添加了確認2次輸入的待刪除姓名一致的功能,而且提示用戶確認刪除。
5.在void modify(Addrlist &addrlist)函數中我還添加了可以一次修改多個信息,可以隨時返回的功能,更方便用戶使用。
6.在void addfromtxtfile(Addrlist &addrlist)函數中,導入數據時系統顯示重名信息並自動過濾重名信息。
三.程序設計過程中的一些感想
剛開始接到設計題目的時候感覺很是幸運,因為我知道強化班他們也學過C++,而且也做過課程設計。他們的題目是要做一個圖書館的管理系統,那可是很艱巨的任務呀!大家選擇比較多的應該是我的這個通訊錄了,一看好多函數書上都有,就算是我最頭疼的鏈表書上也有詳細的過程。好象事情從來就是想起來容易做起來難,當我開始要做這個課程設計的時候,我竟然不知道如何下手。也可能是人天生的惰性在起作用,一開始我確實想找強化班的兄弟幫我設計一下,畢竟他們有經驗,可以幫我開個好頭。後來還是決定自己來做,雖然做得可能會稍微差一點。既然學習了就應該自己去實現。
在做的過程中遇到了很多麻煩,雖然我早有心理准備,但還是令我傷透了腦筋。只怪自己平時看書太少,其實有很多東西在書上都可以找到答案的。可是還是有一些問題我實在沒有辦法解決。
我開始只是想自己做一套程序,這會讓我有一種自豪感,沒想到到了最後時期,仍然有些問題沒有解決。只好求助同學。在同學的幫助之下,總算是解決了最後的問題。但由於水平有限,和其他同學比起來,我的程序顯得那麼笨拙。
通過這次的課程設計使我更深刻地體會到事情從來都不像你想像的那麼簡單,只有去做,才會真正感到它的困難。同時也使我明白了,什麼時候都不要忘記最基礎的東西。因為平時沒有注意看書,使我在設計的過程中吃盡了苦頭,浪費了不少時間。
雖然一開始雄心勃勃要自己獨立完成程序,可是最後還是要求助於別人。這與最開始的想法有些違背。有的時候的確不應該自己鑽牛角尖,每個同學都可以成為自己的老師,虛心請教是必不可少的。
三、源程序
Ⅳ C語言程序設計實驗報告
題目2:
#include <stdio.h>
#include <stdlib.h>
main()
{
int a;
printf("ÇëÊäÈë³É¼¨£º\n");
scanf("%d",&a);
if(90<=a&&a<=100) printf("A");
if(80<=a&&a<=89) printf("B");
if(70<=a&&a<=79) printf("C");
if(60<=a&&a<=69) printf("D");
if(0<=a&&a<=59) printf("E");
if(a>100||a<0) printf("ÊäÈëÊý¾Ý³ö´í");
getch();
}
switch:
#include<stdio.h>
main2()
{
int a;
printf("ÇëÊäÈë³É¼¨:\n");
scanf("%d",&a);
switch(a/10)
{
case 10:printf("A!\n");
break;
case 9:printf("A!\n");
break;
case 8:printf("B!\n");
break;
case 7:printf("C!\n");
break;
case 6:printf("D!\n");
break;
case 5:printf("E!\n");
break;
case 4:printf("E!\n");
break;
case 3:printf("E!\n");
break;
case 2:printf("E!\n");
break;
case 1:printf("E!\n");
break;
case 0:printf("E!\n");
break;
default:
printf("ÊäÈëÊý¾ÝÓдí\n") ;
}
getch();
}
還有你第一題是什麼意思呢
題目3 :
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
main
()
{
int a,g,s,b,q,w,x,p,x1,x2,x3,x4;
printf("ÇëÊäÈ룺\n");
scanf("%d",&a);
/*ÅжÏλÊý*/
if(a<0||100000<a) printf("Êý¾Ý³¬³ö·¶Î§£¡£¡£¡");
else if(a/10000!=0){ printf("5λÊý\n");p=5;}
else if(a/1000!=0){ printf("4λÊý\n");p=4;}
else if(a/100!=0) {printf("3λÊý\n"); p=3;}
else if(a/10!=0) {printf("2λÊý\n");p=2;}
else if(a/1!=0) {printf("1λÊý\n");p=1;}
/*·Ö±ð´òÓ¡³öÿһλÊý×Ö*/
w=a/10000;
printf("ÍòλΪ%d\n",w);
q=(a-w*10000)/1000;
printf("ǧλΪ%d\n",q);
b=(a-10000*w-1000*q)/100;
printf("°ÙλΪ%d\n",b);
s=(a-10000*w-1000*q-b*100)/10;
printf("ʮλΪ%d\n",s);
g=(a-w*10000-q*1000-b*100-10*s) ;
printf("¸÷λΪ%d\n",g);
/*°´ÄæÐò´òÓ¡³ö¸÷λÊý*/
if(p==5) {x=g*10000+s*1000+b*100+q*10+w; printf("µ¹ÐòÊýΪ%d\n:",x);}
else
if(p==4) {x1=g*1000+s*100+b*10+q; printf("µ¹ÐòÊýΪ%d\n:",x1); }
else
if(p==3) {x2=g*100+s*10+b; printf("µ¹ÐòÊýΪ%d\n:",x2);}
else
if(p==2) {x3=g*10+s; printf("µ¹ÐòÊýΪ%d\n:",x3);}
else
if(p==1) {x4=g; printf("µ¹ÐòÊýΪ%d\n:",x4);}
getch();
}
題目4:
#include <stdio.h>
#include <stdlib.h>
main()
{
int a[8],i,b,j,swap;
printf("ÇëÊäÈëÊý¾Ý£º\n");
for(i=0;i<8;i++) scanf("%d",&a[i]);
for(i=0;i<7;i++)
{
swap=0;
for(j=0;j<8-i-1;j++)
{
if(a[j]>a[j+1])
{
swap=1;
b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}
}
if(!swap) break;
}
for(i=0;i<8;i++) printf(" %d ",a[i]);
printf("\n");
getch();
}
Ⅳ java實驗報告總結
源代碼:
public class Exe1_1 {
public static void main (String args[]){
byte a1=127;
int a2=12345;
long a3=123456789L;
float a4=1.23e-5f;
double a5=1.4567e3;
char a6=65;
boolean a7=true;
System.out.println("a1="+a1+"\na2="+a2+"\na3="+a3+"\na4="+a4+"\na5="+a5+"\na6="+a6+"\na7="+a7);
}
}運行結果:
2.編寫Java小應用程序,輸出兩行字元串:「Java很有趣。」和「努力學習Java編程。」,輸出的起點坐標是(20,20),行距是50像素。源程序代碼:
import java.awt.Graphics;
import java.applet.Applet;
public class Exe1_2 extends Applet{
public void paint(Graphics g){
g.drawString("Java很有趣。",20,20);
g.drawString("努力學習Java編程。",20,70);
}
}運行情況:
3.使用算術運算符得到一個4位十進制數的各位數字並輸出,然後輸出該數的逆序數和各位數字平方後相加的和。
源程序代碼:
public class Exe1_3 {
public static void main (String args[]){
int n=3756,a,b,c,d,n1;
a=n/1000;
b=(n-1000*a)/100;
d=n%10;
c=(n%100-d)/10;
System.out.println("3756的逆序數為:"+d+" "+c+" "+b+" "+a);
System.out.print("各位數字平方後相加的和為:");
System.out.print(a*a+b*b+c*c+d*d);
}
}
運行結果:
三、實驗總結(是否完成實驗、實驗過程中的問題以及解決方法分析等)
本次是我第一次使用JAVA來進行編程,感覺很是不一樣,在前兩節課中我們學習了有關Java的一些簡單知識。然後這次的實驗是對最初的一種練習。
在第一題中,我們重要是認識java的運行環境,並且了解各種變數的數據類型。只要通過簡單的語句就可以通過運行。其中出現了一些單詞的拼寫錯誤,這些是可以修改正確的。第二題我們練習的十一個小的applet應用程序,需要設置一個網頁來顯示,這是一個很不一樣的地方,最後成功測試,裡面需要注意的是顯示位置的問題。第三題我們做的是一個有演算法要求的解決問題,在測試中出現了一點小問題,程序的演算法出了錯。還有一個問題是有關於顯示問題,最後的數據輸出需要用到兩行分別顯示字元和數據,這樣才不會出錯。
Ⅵ C語言程序設計實驗報告怎麼寫
通過本試驗初步培養計算機邏輯解題能力。熟練掌握賦值語句和if語句的應用;掌握switch多路分支語句和if嵌套語句的使用