狠狠干影院/欧美午夜电影在线观看/高黄文/国产精品一区二区在线观看完整版

北航計(jì)軟實(shí)驗(yàn)報(bào)告一

| 瀏覽次數(shù):

 計(jì)算機(jī)軟件基礎(chǔ) 上機(jī)實(shí)驗(yàn)報(bào)告(一)

 XXXXXX 班 XXX

 1. 實(shí)驗(yàn)?zāi)康?掌握線性表在順序分配下的插入與刪除運(yùn)算;掌握線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu);掌握插入排序的方法;并掌握一種產(chǎn)生隨機(jī)數(shù)的方法。

 2. 實(shí)驗(yàn)內(nèi)容 1. 產(chǎn)生 1000 個(gè) 0 至 999 間的隨機(jī)整數(shù),并以產(chǎn)生的次序存入一個(gè)數(shù)據(jù)文件中。

 2. 編制一個(gè)程序,依次實(shí)現(xiàn)以下功能:

 (1) 定義一個(gè)有序(非遞減)線性表,其最大容量為 1000,初始時(shí)為空。

 (2) 從由 1 產(chǎn)生的數(shù)據(jù)文件中依次取前 N 個(gè)隨機(jī)整數(shù),陸續(xù)插入到此線性表中,并要求在每次插入后保持線性表的有序性。最后將此有序線性表打印輸出。

 (3) 在由(2)產(chǎn)生的線性表中,依在 1 中產(chǎn)生的次序逐個(gè)將元素刪除,直至表空為止。

 3. 以 N=100 及 N=400 分別運(yùn)行 2 的程序,并比較它們的運(yùn)行時(shí)間。

 4. 編寫一個(gè)程序,用插入排序依次將 1 中產(chǎn)生的 1000 個(gè)隨機(jī)整數(shù)鏈接成有序鏈表(不改變?cè)S機(jī)數(shù)在存儲(chǔ)空間中的順序)。

 3. 源代碼與運(yùn)行結(jié)果 #include<stdio.h> #include<stdlib.h> #include<time.h>

 /** 1_1 產(chǎn)生 1000 個(gè) 0 至 999 間的隨機(jī)整數(shù),并以產(chǎn)生的次序存入一個(gè)數(shù)據(jù)文件(1_1.txt)中。

 **/

 main() {

  FILE *fo=fopen("1_1.txt","w");

  int i,j;

  srand((unsigned)time(0));

  for (i=0;i<=999;i++) fprintf(fo,"%d\n",rand()%1000);

 fclose(fo);

  printf("1000 個(gè)隨機(jī)數(shù)已輸出至目錄下 1_1.txt 文件\n");

 system("pause"); } 輸出文件 1_1.txt 如下:(因輸出文本長(zhǎng)度緣故,此處只截了一幅圖)

  #include<stdio.h> #include<stdlib.h> #include<time.h>

 /** 1_2 從數(shù)據(jù)文件(1_1.txt)中讀取數(shù)據(jù),進(jìn)行插入排序,然后屏幕輸出。

 再依序刪除。

 1_3 以 N=100 及 N=400 分別運(yùn)行 2 的程序,并比較它們的運(yùn)行時(shí)間。

 **/

 #define N 1000

 main() {

  int a[N]={0};

  int i,j,m,w,num=0;

  FILE *fi=fopen("1_1.txt","r");

 clock_t start,finish;

 double duration;

 //Part 1 :

  start=clock();

  m=0;

  fscanf(fi,"%d",&num);

  a[0]=num;

  w=m;

 for (j=1;j<=N-1;j++)

  {

  w=m;

  fscanf(fi,"%d",&num);

  while ((a[w]>num)&&(w>=0)) w--;

  w++;

  for(i=m;i>=w;i--) a[i+1]=a[i];

  a[w]=num;

  m++;

  }

 finish=clock();

  duration=(double)(finish - start)/CLOCKS_PER_SEC;

  printf("執(zhí)行 %d 個(gè)數(shù)據(jù)插入操作完成!用時(shí):%f 秒,得到線性表如下:\n",m+1,duration);

  for (i=0;i<N;i++) printf("%d ",a[i]);

  fclose(fi);

  //Part 2 :

  start=clock();

 for (j=0;j<=N-1;j++)

  {

  w=0;

  fscanf(fi,"%d",&num);

  while (a[w]<num) w++;

  for(i=m;i<m;i++) a[i]=a[i+1];

  a[m]=0;

  m--;

  }

 finish=clock();

  duration=(double)(finish - start)/CLOCKS_PER_SEC;

  printf("\n\n 刪除操作完成!用時(shí):%f 秒,得到線性表如下:\n",duration);

  for (i=0;i<N;i++) printf("%d ",a[i]);

 printf("\n");

 fclose(fi);

  system("pause"); }

 程序運(yùn)行輸出結(jié)果如下:(因輸出文本長(zhǎng)度緣故,此處只截了兩幅圖)

 #include<stdio.h> #include<stdlib.h>

 /**

 1_4 編寫一個(gè)程序,用插入排序依次將 1_1.txt 中的 1000 個(gè)隨機(jī)整數(shù)鏈接成有序鏈表 (不改變?cè)S機(jī)數(shù)在存儲(chǔ)空間中的順序)

 **/

 #define N 1000 main() {

 struct data

 {

  int num;

  struct data *next;

  };

  struct data *n, *head, *temp;

  FILE *fi=fopen("1_1.txt","rt");

 int i,a=0;

  n=(struct data*)malloc(sizeof(struct data));

  n->next=NULL;

 fscanf(fi,"%d",&a);

 n->num=a;

 head=n;

 for (i=1;i<=N-1;i++)

 {

  n=(struct data*)malloc(sizeof(struct data));n->next=NULL;

  fscanf(fi,"%d",&a);

  n->num=a;

  temp=head;

  if ((n->num)<=(temp->num)) // n 為目前最小值

  {

 n->next=temp;

 head=n;

  }

  else

  {

 while ( ((temp->next)!=NULL) && ((n->num) > ((temp->next)->num)) )

 temp=temp->next;

 if (temp->next==NULL) temp->next=n; // n 為目前最大值

 else // n 插入鏈表

 {

  n->next=temp->next;

  temp->next=n;

 }

 }

  }

  printf("插入排序完成\n");

  printf("數(shù)據(jù)最小元素:%d\n",head->num);

 printf("完整數(shù)據(jù)輸出:\n");

 temp=head;

 while (temp->next!=NULL) {printf("%d ",temp->num); temp=temp->next;}

 fclose(fi);

  system("pause");

  }

 程序運(yùn)行輸出結(jié)果如下:(因輸出文本長(zhǎng)度緣故,此處只截了一幅圖)

 4. 實(shí)驗(yàn)總結(jié) 通過(guò)本次試驗(yàn),我熟練掌握了線性表在順序分配下的插入與刪除運(yùn)算,還有鏈表的存儲(chǔ)結(jié)構(gòu)、插入排序的方法,并且學(xué)習(xí)了產(chǎn)生隨機(jī)數(shù)、文件數(shù)據(jù)輸入輸出、取得當(dāng)前系統(tǒng)時(shí)間的方法。

 ? srand 函數(shù)用來(lái)將系統(tǒng)隨機(jī)種子設(shè)定為當(dāng)前時(shí)間(強(qiáng)制轉(zhuǎn)化為 unsigned),否則得到的偽隨機(jī)數(shù)每次都相同,而 rand()%1000 則用來(lái)產(chǎn)生 1-999 的偽隨機(jī)數(shù)。

 ? 在添加 time.h 庫(kù)函數(shù)后,可以使用 clock_t 類型變量和 clock()函數(shù)獲取當(dāng)前時(shí)間,從而進(jìn)行程序運(yùn)行時(shí)間計(jì)算(但精度貌似較低)。到每過(guò)千分之一秒,clock()函數(shù)的返回值就會(huì)增加 1,而常量CLOCKS_PER_SEC,它用來(lái)表示一秒鐘有多少個(gè)時(shí)鐘計(jì)時(shí)單元,故 duration=(double)(finish - start)/CLOCKS_PER_SEC 即可得到程序運(yùn)行的時(shí)間(秒)。

 ? 文件讀取輸出可以通過(guò)以下語(yǔ)句簡(jiǎn)單完成:

 FILE *fi=fopen("fi.txt","r");

 FILE *fo=fopen("fo.txt","w");

 fscanf(fi,"%d",int);

 fprintf(fo,"文件輸出\n");

 fclose(fi); fclose(fo);

推薦訪問: 北航 實(shí)驗(yàn) 報(bào)告

【北航計(jì)軟實(shí)驗(yàn)報(bào)告一】相關(guān)推薦

工作總結(jié)最新推薦

NEW
  • 同志們:今天這個(gè)大會(huì),是市委全面落實(shí)黨要管黨、從嚴(yán)治黨要求的一項(xiàng)重大舉措,也是對(duì)縣市區(qū)委書記履行基層黨建工作第一責(zé)任人情況的一次集中檢閱,同時(shí)是對(duì)全市基層黨建工作的一次再部署、再落實(shí)的會(huì)議。前面,**

  • ***年,我認(rèn)真履行領(lǐng)班子、帶隊(duì)伍、抓黨員、保穩(wěn)定的基層黨建工作思路,以學(xué)習(xí)貫徹習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想和黨的十九大歷次全會(huì)精神為主線,以市局基層黨建工作考核細(xì)則為落腳點(diǎn),落實(shí)全面從嚴(yán)治黨主體

  • 根據(jù)會(huì)議安排,現(xiàn)將2022年履行抓基層黨建工作職責(zé)情況報(bào)告如下:一、履職工作特色和亮點(diǎn)1 突出政治建設(shè),著力在思想認(rèn)識(shí)上提高。牢固樹立抓黨建就是抓政績(jī)的理念,以“黨建工作抓引領(lǐng)、社區(qū)治理求突破,為民服

  • 2022年以來(lái),在**黨委的正確領(lǐng)導(dǎo)下,堅(jiān)持以習(xí)近平新時(shí)代中國(guó)特色社會(huì)主義思想為指導(dǎo),深入學(xué)習(xí)宣傳貫徹黨的二十大精神,以黨建工作為統(tǒng)領(lǐng),扎實(shí)開展夯實(shí)“三個(gè)基本”活動(dòng),以“四化四力”行動(dòng)為抓手,聚力創(chuàng)建

  • 各位領(lǐng)導(dǎo),同志們:根據(jù)會(huì)議安排,現(xiàn)就2022年度抓基層黨建工作情況匯報(bào)如下:一、主要做法及成效(一)強(qiáng)化政治引領(lǐng)。一是不斷強(qiáng)化理論武裝。堅(jiān)持通過(guò)黨組會(huì)、中心組學(xué)習(xí)會(huì)和“三會(huì)一課”,第一時(shí)間、第一議題學(xué)

  • 2022年度抓基層黨建工作述職報(bào)告按照黨委工作部署,現(xiàn)將本人2022年度抓基層黨建工作情況報(bào)告如下:一、2022年度抓基層黨建工作情況(一)旗幟鮮明講政治將旗幟鮮明講政治放在全局發(fā)展首要位置,積極開展

  • 2022年,是我在數(shù)計(jì)系黨總支書記這個(gè)新崗位上度過(guò)的第一個(gè)完整的工作年度。回首一年來(lái)在校黨委的正確領(lǐng)導(dǎo)下,與數(shù)計(jì)系領(lǐng)導(dǎo)班子和全體師生共同走過(guò)的日子,艱辛歷歷在目,收獲溫潤(rùn)心田。作為黨總支書記,我始終牢

  • 按照考核要求,現(xiàn)將本人一年來(lái),作為統(tǒng)戰(zhàn)部長(zhǎng)履行職責(zé)、廉潔自律等方面情況報(bào)告如下:一、著眼增強(qiáng)政治素質(zhì),不斷深化理論學(xué)習(xí)堅(jiān)持把旗幟鮮明講政治作為履職從政的第一位要求,帶領(lǐng)統(tǒng)戰(zhàn)系統(tǒng)干部堅(jiān)決擁護(hù)“兩個(gè)確立”

  • **年,緊緊圍繞黨工委、管委會(huì)的決策部署,全體人員團(tuán)結(jié)協(xié)作、凝心聚力,緊扣黨工委“**”基本工作思路,全力開拓進(jìn)取,認(rèn)真履職盡責(zé),圓滿完成各項(xiàng)工作任務(wù)。一、個(gè)人思想政治狀況檸檬文苑www bgzjy

  • 按照縣委關(guān)于開展抓基層黨建述職評(píng)議會(huì)議的有關(guān)要求,經(jīng)請(qǐng)示縣委組織部同意,今天,我們?cè)诖苏匍_2022年度基層黨組織書記抓基層黨建述職評(píng)議會(huì)議。1 首先,請(qǐng)**黨委書記,**同志述職。**黨委能夠主動(dòng)研究