演算法報告
『壹』 什麼叫C++的核心演算法啊,報告中要求寫核心演算法
就是主要演算法。
『貳』 演算法課程設計報告
題目中要求的功能進行敘述分析,並且設計解決此問題的數據存儲結構,(有些題目已經指定了數據存儲的,按照指定的設計),設計或敘述解決此問題的演算法,描述演算法建議使用流程圖,進行演算法分析指明關鍵語句的時間復雜度。
給出實現功能的一組或多組測試數據,程序調試後,將按照此測試數據進行測試的結果列出來 。
對有些題目提出演算法改進方案,比較不同演算法的優缺點。
如果程序不能正常運行,寫出實現此演算法中遇到的問題,和改進方法;
2 對每個題目要有相應的源程序(可以是一組源程序,即詳細設計部分):
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
程序能夠運行,要有基本的容錯功能。盡量避免出現操作錯誤時出現死循環;
3 最後提供的主程序可以象一個應用系統一樣有主窗口,通過主菜單和分級菜單調用課程設計中要求完成的各個功能模塊,調用後可以返回到主菜單,繼續選擇其他功能進行其他功能的選擇。最好有窗口展示部分。
4 課程設計報告:(保存在word 文檔中,文件名要求 按照"姓名-學號-課程設計報告"起名,如文件名為"張三-001-課程設計報告".doc )按照課程設計的具體要求建立的功能模塊,每個模塊要求按照如下幾個內容認真完成;
其中包括:
a)需求分析:
在該部分中敘述,每個模塊的功能要求
b)概要設計
在此說明每個部分的演算法設計說明(可以是描述演算法的流程圖),每個程序中使用的存儲結構設計說明(如果指定存儲結構請寫出該存儲結構的定義。
c)詳細設計
各個演算法實現的源程序,對每個題目要有相應的源程序(可以是一組源程序,每個功能模塊採用不同的函數實現)
源程序要按照寫程序的規則來編寫。要結構清晰,重點函數的重點變數,重點功能部分要加上清晰的程序注釋。
d)調試分析
測試數據,測試輸出的結果,時間復雜度分析,和每個模塊設計和調試時存在問題的思考(問題是哪些?問題如何解決?),演算法的改進設想。
5. 課設總結: (保存在word 文檔中)總結可以包括 : 課程設計 過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對C課程的認識等內容;
6.實驗報告的首頁請參考如下格式:
課程設計實驗
起止日期:20 -20 學年 學期
系別 班級 學號 姓名
實驗題目 □設計性 □綜合性
自我評價
教師評語 能夠實現實驗要求的功能 □全部 □部分演算法有新意 □有 □一般程序運行通過 □全部 □部分 演算法注釋說明 □完善 □僅有功能說明介面參數說明 □有 □無按期上交列印文檔資料及源程序 □所有 □部分綜合設計說明報告結構 □合理 □不合理用戶使用說明 □完整 □不全現場演示操作有準備 □有 □無問題解答流暢 □流暢 □不流暢獨立完成實驗 □能 □不能體現團隊合作精神。 □能夠 □不能
成績
這是張表格,過來時沒調整好,不過應該看得明白。我們是這樣寫的,你可以參考一下。
『叄』 在C語言中怎樣報告一個演算法的運行時間
#include <time.h> //頭文件
void main()
{
clock_t t1,t2,t3,t4;
t1=clock();
QuickSort(data,N);
t2=clock();
cout<<"快速排序用的時間:"<<t2-t1<<"毫秒"<<endl;
t3=clock();
Bubble(data);
t4=clock();
cout<<"冒泡排序用的時間:"<<t4-t3<<"毫秒"<<endl;
}
這是我在做快排和冒泡比較時用到的一段代碼,看完你應該很清楚了O(∩_∩)O~
『肆』 高級演算法與數據結構實踐的結課報告怎麼寫
#include<fstream>
#include<iostream>
#include<string>
#include<stdio.h>
#include<iomanip>
#define SIZE_view 50
#define SIZE_line 100
#define SIZE_way 300
#define MAXNODE 30 //定義最多的頂點數
#define MAXCOST 1000
//自己寫的頭文件
//#include<addview.h>// //
using namespace std;
struct view_info /*城市信息結構*/
{
int id;
char name[20];
int code;
char shortname[20];
char LName[100];// 經過此車站的鐵路線名稱
} views[SIZE_view];
struct line_info //鐵路線信息結構
{
int Lid;
char LName[20];
int start_id; //始發站id
int end_id; //終點站id
int dist; //鐵路線長度
int sign;//通行標志
}lines[SIZE_line];
struct way_info //鐵路度的信息結構
{
int station1;
int station2;
int dist;
}ways[SIZE_way];
struct path_info //用於最短路徑的查詢
{
int count;
int path[SIZE_view];
};
int view_count,line_count,way_count;//用來存儲文件中有多少條記錄
void readviews()
{
int i;
ifstream infile("views.txt",ios::in); //打開文件
infile >>view_count ; //把文件中的記錄賦值給view_count
if(!infile) //打開文件失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
//infile>>view_count; // 先讀入文件個數
for(i=0;i<view_count;i++)
{
infile>>views[i].id>>views[i].name>>views[i].code>>views[i].shortname>>views[i].LName;
}
//view_count=i;//給出原文件中車站的個數
infile.close();
cout<<" "<<"id"<<" "<<"name"<<" "<<"code"<<" "<<"shortname"<<" "<<"LName"<<endl;
for(i=0;i<view_count;i++)
cout<<" "<<views[i].id<<" "<<views[i].name<<" "<<views[i].code
<<" "<<views[i].shortname<<" "<<views[i].LName<<endl;
}
void readways() //讀文件ways.txt
{
int i;
ifstream infile("ways.txt",ios::in); //打開文件
infile>>way_count; ////把文件中的記錄賦值給way_count
if(!infile) //打開文件失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<way_count;i++)
infile>>ways[i].station1>>ways[i].station2>>ways[i].dist;
infile.close();
//測試用,輸出路段的信息
cout<<" "<<"station1"<<" "<<"station2"<<" "<<"dist"<<endl;
for(i=0;i<way_count;i++)
cout<<" "<<ways[i].station1<<" "<<ways[i].station2<<" "<<ways[i].dist<<endl ;
}
void readlines() //讀文件lines.txt
{
int i;
ifstream infile("lines.txt",ios::in); //打開文件
infile>>line_count; //把文件中的記錄賦值給line_count
if(!infile) //打開文件失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
for(i=0;i<line_count;i++)
infile>>lines[i].Lid>>lines[i].LName>>lines[i].start_id>>lines[i].end_id>>lines[i].dist>>lines[i].sign;
infile.close();
/*
cout<<" "<<"Lid"<<" "<<"LName"<<" "<<"start_id"<<" "<<"end_id"<<" "<<"dist"<<" "<<"sign"<<endl;
for(i=0;i<view_count;i++)
cout<<" "<<lines[i].Lid<<" "<<lines[i].LName<<" "<<lines[i].start_id
<<" "<<lines[i].end_id<<" "<<lines[i].dist<<" "<<lines[i].sign<<endl;
*/ //這里是輸出文件中的信息
}
void search () //查詢車站信息(所在的鐵路線)
{
cout<<"please enter the station name:";
char sta_name[20];
cin>>sta_name; //輸入要查詢的名字
cout<<endl;
ifstream infile("views.txt ",ios::in); //讀文件
infile >>view_count ; //讀出文件記錄的個數
if(!infile) //打開文件失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
int i,mark;
for(i=0;i<view_count;i++)
infile>>views[i].id>>views[i].name>>views[i].code>>views[i].shortname>>views[i].LName;
infile.close();
for(i=0;i< view_count;i++)
{
if(strcmp(sta_name,views [i].name)==0) //找到車站
{
cout<<"the station's informations is:\n"<<endl;
cout<<" "<<"id"<<" "<<"name"<<" "<<"code"<<" "<<"shortname"<<" "<<"LName"<<endl;
cout<<" "<<views[i].id<<" "<< views[i].name<<" "<< views [i].code
<<" "<< views [i].shortname<<" "<< views [i].LName <<endl;
break;
}
mark=i;
}
if(mark==( view_count -1)) //若沒有找到,輸出提示
{
cout<<"sorry,the station is not in here"<<endl;
}
}
void addview()
{
cout<<"please enter the new view's informations:"<<endl; //輸入新車站信息
cout<<"id:";
cin>>views[view_count].id;
cout<<"name:";
cin>>views[view_count].name;
cout<<"code:";
cin>>views[view_count].code;
cout<<"shortname:";
cin>>views[view_count].shortname;
cout<<"LName:";
cin>>views[view_count].LName;
ofstream outfile("views.txt",ios::app); //打開views文件,並且寫入數據
outfile<<view_count<<endl;
if(!outfile) //文件打開失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<views[view_count].id<<" "<<views[view_count].name<<" "<<views[view_count].code
<<" " <<views[view_count].shortname<<" "<<views[view_count].LName<<endl;
//在文件末尾添加
view_count=view_count+1;
outfile.close(); //關閉文件
cout<<"successfully! the new station is added"<<endl;
cout<<"now station number is:"<<view_count<<endl;
}
void addway()
{
cout<<"please enter the new way's informations:"<<endl; //輸入新車站信息
cout<<"station1:";
cin>>ways[way_count].station1; // station1的id
cout<<"station2:";
cin>>ways[way_count].station2; //station2的id
cout<<"dist:";
cin>>ways[way_count].dist; //路段的長度
ofstream outfile("ways.txt",ios::app); //打開way.txt文件
outfile<<way_count<<endl;
if(!outfile) //文件打開失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<ways[way_count].station1<<" "<<ways[way_count].station2<<" "<<ways[way_count].dist;
//在文件末尾添加
outfile.close(); //關閉文件
cout<<"successfully! the new station is added"<<endl;
way_count=way_count+1;
cout<<"now station number is:"<<view_count<<endl;
}
void addline()
{
cout<<"please enter the new line's informations:"<<endl; //輸入新鐵路線信息
cout<<"Lid:";
cin>>lines[line_count].Lid;
cout<<"LName:";
cin>>lines[line_count].LName;
cout<<"start_id:";
cin>>lines[line_count].start_id;
cout<<"end_id:";
cin>>lines[line_count].end_id;
cout<<"dist:";
cin>>lines[line_count].dist;
cout<<"sign:";
cin>>lines[line_count].sign;
ofstream outfile("lines.txt",ios::app); //打開文件
outfile <<line_count << endl;
if(!outfile) //文件打開失敗
{
cerr<<"open error!"<<endl;
exit(1);
}
outfile<<lines[line_count].Lid<<" "<<lines[line_count].LName<<" "<<lines[line_count].start_id
<<" " <<lines[line_count].end_id<<" "<<lines[line_count].dist<<lines[line_count].sign<<endl;
//在文件末尾添加
outfile.close(); //關閉文件
cout<<"successfully! the new line is added"<<endl;
line_count=line_count+1;
cout<<"now line number is:"<<line_count<<endl;
}
//-----------------------------------------------------------------------------------
void floyed() //弗洛伊德(Floyed)演算法
{
int i, j, k, m, start_num, end_num; //i,j用來表示起始點和終點
int dist_list[SIZE_view][SIZE_view]; //定義了一個數組
view_count=view_count+1;
struct path_info path_list[SIZE_view][SIZE_view]; //定義了一個path_info結構的變數,包含著count和path[]用來存儲經過的路徑
for(i=1;i<=view_count;i++) //這里開始讀文件,先讓所有的線都為最大值
for(j=1;j<=view_count;j++)
dist_list[i][j]=MAXCOST;
for(int t=0;t<=way_count;t++)
{
i=ways[t].station1;
j=ways[t].station2;
dist_list[i][j]=ways[t].dist;//把文件中的數據賦值給dist_list[i][j]=ways[t].dist;形式
}
for (i =0; i< view_count; i++)
{
for (j= 0; j<view_count; j++)
{
if (i == j)
{
dist_list[i][j] = 0;
continue;
}
dist_list[i][j] = -1;
path_list[i][j].count = 0;
for (k = 0; k< way_count; k++) //
{
if (ways[k].station1 == i && ways[k].station2 == j) //把起始點和終點分別給予i,j
{
dist_list[i][j] = ways[k].dist;
path_list[i][j].count = 2;
path_list[i][j].path[0] = i;
path_list[i][j].path[1] = j;
break;
}
}
}
}
for (k = 0; k<= view_count-1; k++)
{
for (i = 0; i < view_count; i++)
for (j = 0; j< view_count; j++)
{
if (i == k || j == k || i == j)
continue;
if (dist_list[i][k] == -1 || dist_list[k][j] == -1)
continue;
if ( (dist_list[i][j] == -1) ||
((dist_list[i][j] != -1) &&(dist_list[i][k] + dist_list[k][j] < dist_list[i][j])))
{
dist_list[i][j] = dist_list[i][k] + dist_list[k][j];
// shortest[i][j]=shortest[i][k]+shortest[k][j];
path_list[i][j].count = path_list[i][k].count + path_list[k][j].count - 1;
// path[i][j]=k;
for (m = 0; m < path_list[i][k].count; m++)
path_list[i][j].path[m] = path_list[i][k].path[m];
for (m = 0; m < path_list[k][j].count; m++)
path_list[i][j].path[m+path_list[i][k].count] = path_list[k][j].path[m+1];
}
}
}
cout<<" Floyed table:\n";
cout<<" All views in the school:\n";
for (i = 0; i < view_count-1; i++)
cout<<" "<<i+1<<":"<<views[i].name<<endl;
cout<<" Please input the start number: ";
cin>>start_num;
cout<<" Please input the end number: ";
cin>>end_num;
cout<<endl<<endl;
cout<<"From"<<views[start_num-1].name<<"to"<<views[end_num-1].name;
if (dist_list[start_num][end_num] == -1)
cout<<"no way."<<endl;
else
{
cout<<"distance is "<<dist_list[start_num][end_num]<<", and path is :";//dist_list[][]用來表示兩點間的長度
k = path_list[start_num][end_num].path[0]-1; //path_list[][]用來保存路徑path[m]在這里表明是通過的那個車站的
cout<<views[k].name;
for (m = 1; m < path_list[start_num][end_num].count; m++)
{
k = path_list[start_num][end_num].path[m]-1; //這里應該也是int型,k是經過的路徑的id
cout<<"->"<<views[k].name;
}
}
cout<<endl<<endl;
}
void main()
{
readviews();
readlines() ;
readways();
while(1)
{
int menu;
cout<<endl<<endl<<endl<<endl;
cout<<" 全國鐵路運輸網最佳經由系統 "<<endl;
cout<<"**********************************************************"<<endl;
cout<<" 1:增加車站信息 "<<endl;
cout<<" 2:增加鐵路線信息 "<<endl;
cout<<" 3:查詢車站信息 "<<endl;
cout<<" 4:查詢最短路徑 "<<endl;
cout<<" 5:退出界面 "<<endl;
cout<<"**********************************************************"<<endl;
cout<<"輸入要進行的操作的代碼(1--5):"<<endl;
cin>>menu;
while(menu<1||menu>5)
{
cout<<"error!please enter again:";
cin>>menu;
}
switch(menu)
{
case 1:
while(1)
{
addview();
while (1)
{
addway();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addway();
else
break;
}
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addview();
else
break;
}
break;
case 2:
while(1)
{
addline();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
addline();
else
break;
}
break;
case 3:
while(1)
{
search ();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
search ();
else
break;
}
break;
case 4:
while(1)
{
floyed();
cout<<"do you want to continue (y/n) "<<endl;
char con ;
cin>>con;
if(con=='y')
floyed();
else
break;
}
break;
case 5:
{
cout<<"謝謝使用,再見!"<<endl;
exit(1);
}
}
}
}
這也是我借鑒別人的,大家分享一下
『伍』 求份 貪心演算法報告 用C,C++ 或JAVA
同學啊,明天就要交了,如果真的不知道怎麼寫,我給你個及格分吧。不用來這里求助的啦
『陸』 關於計算機演算法的讀書報告,任意一個演算法都行
計算機zip壓縮演算法
『柒』 什麼叫演算法描述啊
演算法描述(AlgorithmDescription)是指對設計出的演算法,用一種方式進行詳細的描述,以便與人交流。演算法可採用多種描述語言來描述,各種描述語言在對問題的描述能力方面存在一定的差異,可以使用自然語言、偽代碼,也可使用程序流程圖,但描述的結果必須滿足演算法的五個特徵。
演算法可採用多種描述語言來描述,例如,自然語言、計算機語言或某些偽語言。各種描述語言在對問題的描述能力方面存在一定的差異。例如,自然語言較為靈活,但不夠嚴謹。而計算機語言雖然嚴謹,但由於語法方面的限制,使得靈活性不足。
因此,許多教材中採用的是以一種計算機語言為基礎,適當添加某些功能或放寬某些限制而得到的一種類語言。這些類語言既具有計算機語言的嚴謹性,又具有靈活性,同時也容易上機實現,因而被廣泛接受。目前,許多「數據結構」教材採用類PASCAL語言、類C++或類C語言作為演算法描述語言。
(7)演算法報告擴展閱讀:
演算法的特徵
1、輸入:一個演算法必須有零個或以上輸入量。
2、輸出:一個演算法應有一個或以上輸出量,輸出量是演算法計算的結果。
3、明確性:演算法的描述必須無歧義,以保證演算法的實際執行結果是精確地符合要求或期望,通常要求實際運行結果是確定的。
4、有限性:依據圖靈的定義,一個演算法是能夠被任何圖靈完備系統模擬的一串運算,而圖靈機器只有有限個狀態、有限個輸入符號和有限個轉移函數(指令)。而一些定義更規定演算法必須在有限個步驟內完成任務。
5、有效性:又稱可行性。能夠實現,演算法中描述的操作都是可以通過已經實現的基本運算執行有限次來實現。
『捌』 寫報告中演算法基本原理是什麼意思
MATLAB的變數名必須是不包括空格的單個詞,且區分大小寫