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 實習報告 1,從1到100面積,面積大於100跳出 周一上午 include define pai 3.14164 巨集定義乙個pai main 主函式 getch 結果 2,九九乘法表 周一下午 include main 主函式 printf n 換行 getch 結果 3,1 100不被5和7整... c程式設計實習報告 名稱 建築工地資訊管理系統 學院 機電學院 專業 機械設計製造及其自動化 姓名 許文祥 班級學號 20091003791 指導老師 薛思清 2011年7 月3 日 根據題目要求,由於資訊是存放在檔案中的,所以應提供檔案的輸入,輸出操作 在程式中要能刪除資訊,因此要有刪除操作 同時... c語言課程實習報告 所在院系數理學院 班級學號 121091 13 姓名程式已存檔 指導老師 評分二零一零年七月十五 目錄 一.題目要求3 二.需求分析3 三.總體設計3掌握 四.詳細設計4 1.主函式4 1 流程圖4 2 主函式程式5 2.各功能模組7 1 查詢模組7 1 流程圖7 2 程式8 2...c語言實習報告
c語言實習報告
c語言實習報告