C語言實習報告

2021-09-28 23:51:00 字數 3230 閱讀 8290

c語言課程設計報告

姓名:劉烽博

班號:075103

學號:20101003524

院系:機電學院

專業:通訊工程

指導教師:吳傑

成績:_______

2011 年 7 月

目錄題目

1.1題目

1.11問題分析與演算法分析

1.12資料結構設計

1.13程式設計

1.14源程式

1.15程式執行結果

2.1題目

2.11問題分析與演算法分析

2.12程式設計

2.13資料結構設計

2.14源程式

2.15程式執行結果

3.1題目

3.11問題分析與演算法分析

3.12資料結構設計

3.13程式設計

3.14源程式

3.15程式執行結果

題目一:分配房間

題目內容:

假定文字檔案a1.txt中是某高校所有參加住宅小區挑房職工的資訊,請編寫程式,讀出檔案中的內容,再按挑房的先後次序排隊後將排序號和姓名以文字方式存放到檔案a2.txt中。

排隊原則:

先按職稱排,同職稱按分房工齡排,同工齡按年齡排。

職稱編號:

校級幹部 0

教授、正處級 1

副教授、副處級 2

講師、科級 3

其他41.11問題分析與演算法分析

在此演算法中,我們主要需要注意怎樣將所有人進行排隊的問題,而在這個問題中,我們需要首先按照職稱排隊,如果職稱相同,則按照分房工齡排隊,工齡相同,則按照年齡排隊,要一步一步的利用迴圈語句和交換排序。最後,要程式設計將執行結果完好的儲存在另乙個檔案中。

1.12資料結構設計

1.13程式設計

1.14執行

1.15源程式

#include

typedef struct

tea;

void sort(teac*a,int n)

main()

fclose(fp);

sort(a,n);

fp=fopen("a2.txt","w");

for(i=0;i fclose(fp);

printf("已完成排序,結果已存入文件a2中\n");

}題目二:幸運方陣

題目內容:

所謂「幸運方陣」問題是這樣的,任意指定乙個階數,例如3;再任意選定乙個「幸運數」,例如100,要求生成乙個3階方陣。從方陣中任意劃去一行與一列,記下交叉點的數值;再從方陣剩餘部分任意劃去一行一列,再記下交叉點數值;繼續這一過程,當方陣已不剩任何元素時,所有記下的元素值之和恰好為100。如下面的方陣即為所需結果

51 43 63

17 9 29

28 20 40

注意:實際上給定乙個階數n與乙個幸運數lucky,可以有無數多個解。如果不希望多出現負數,lucky相對於n不應過小。

2.11問題分析與演算法計算

記幸運數為m 方陣n階1.先隨便找n個數,使n個數的和為m(例如題中:51,9,40);2..

拆分上面的n個數,分為2n個數(例如:51=17+34,9=9+0,40=29+11);3.於是例子可以拆分為一下形式:

17 9 29

34 51 43 61

0 17 9 29

11 28 20 40

這便是所求結果。那麼我們應該採用古代經典的數學演算法作為我們本題的演算法。

2.12程式設計

本程式運用了乙個主函式,在主函式中,應運了srand 隨機種子數,srand是種下隨機種子數,你每回種下的種子不一樣,用rand得到的隨機數就不一樣。

為了每回種下乙個不一樣的種子,所以就選用time(0),time(0)是得到當前時時間值(因為每時每刻時間是不一樣的了)。

因此在這個程式中可以產生很多組解。在本設計中,最主弄清楚srand的含義,搞懂演算法,這就設計出了。

2.13資料結構設計

2.14執行

2.15源程式

#include

#include

#include

#define num 100

void main()

} for(j=0;j

} row[m-1]=n-sum;

for(i=0;i

printf("\n"); }}

題目三:歌唱比賽

題目內容:

在歌唱大獎賽的半決勝賽現場,有一批選手參加比賽,比賽的規則是最後得分越高,名次越低。當半決決賽結束時,要在現場按照選手的出場順序宣布最後得分和最後名次,獲得相同分數的選手具有相同的名次,名次連續編號,不用考慮同名次的選手人數。例如:

選手序號: 1,2,3,4,5,6,7

選手得分: 5,3,4,7,3,5,6

則輸出名次為:3,1,2,5,1,3,4

請程式設計幫助大獎賽組委會完成半決賽的評分和排名工作。

3.11問題分析與演算法分析

通過分析發現實現要求功能需要四個方面,選擇、輸入、排序以及退出介面。選擇可以利用switch,輸入利用到了for迴圈,排序運用了for迴圈的巢狀,退出主要是if語句的判斷。

3.12程式設計

通過分析發現實現要求功能需要四個方面要利用函式呼叫,因此設計三個子程式:輸入、排序以及退出。主函式的選擇選擇利用switch語句,資料輸入利用到了for迴圈,排序運用了for迴圈的巢狀以及if語句,退出主要是if語句的判斷。

3.13資料結構設計

3.14執行

3.15源程式

#include

#include

#include

#define maxsize 100

int n=0,a[maxsize];

void insert()

printf("錄入完成!\n");

}void sort()

; for(i=0;i<=n-1;i++)

if(s==a[max]) b[max]=q;

else

b[max]=i+1;

q=b[max];

s=a[max];

a[max]=0;

} printf(" 選手序號:");

for(i=1;i<=n;i++)

printf("%4d,",i);

printf("\n");

printf("輸出名次為:");

for(i=0;i

c語言實習報告

實習報告 1,從1到100面積,面積大於100跳出 周一上午 include define pai 3.14164 巨集定義乙個pai main 主函式 getch 結果 2,九九乘法表 周一下午 include main 主函式 printf n 換行 getch 結果 3,1 100不被5和7整...

c語言實習報告

c程式設計實習報告 名稱 建築工地資訊管理系統 學院 機電學院 專業 機械設計製造及其自動化 姓名 許文祥 班級學號 20091003791 指導老師 薛思清 2011年7 月3 日 根據題目要求,由於資訊是存放在檔案中的,所以應提供檔案的輸入,輸出操作 在程式中要能刪除資訊,因此要有刪除操作 同時...

c語言實習報告

c語言課程實習報告 所在院系數理學院 班級學號 121091 13 姓名程式已存檔 指導老師 評分二零一零年七月十五 目錄 一.題目要求3 二.需求分析3 三.總體設計3掌握 四.詳細設計4 1.主函式4 1 流程圖4 2 主函式程式5 2.各功能模組7 1 查詢模組7 1 流程圖7 2 程式8 2...