c語言程序設計實驗報告的簡單介紹

本文目錄一覽:

C語言實驗報告怎麼寫實驗步驟?高手最好給個樣板啊!

.實驗報告規範

實驗報告內容包括:

1.實驗目的:說明實驗所驗證的知識點。

2.需求分析:以無歧義的陳述說明程序設計的任務、約束條件、輸入輸出要求、對功能的規定及模型。

3.邏輯設計:說明本程序中用到的所有抽象數據類型的定義、主程序的流程以及各程序模塊之間的層次調用關係。

4.詳細設計:邏輯設計中定義的所有數據類型的實現,核心算法的設計描述、人機界面設計、函數之間調用關係的描述,主要功能的算法框架,測試數據設計。

5.測試分析:測試結果的分析與討論,測試過程中遇到的主要問題及採取的解決措施。

6.心得:軟件設計與實現過程中的經驗與體會,進一步改進的設想。

7.程序清單:源程序中應有足夠的注釋。如果提交源程序軟盤,列出程序文件名。

c語言程序設計題。實驗報告。高分。

車票系統,與你的第2題要求略有不同,你自己修改吧

#includestdio.h

#includestdlib.h

#includedos.h

#includetime.h

#includeconio.h

#includestring.h

const int MAX=20;

const int N=50;

const int MAXFILENAME=100;

enum {FALSE,TRUE};

struct time

{

int hour;

int minutes;

};

struct ticket

{

int SerialNumber;

struct time SetOut;

char DeparturePoint[MAX];

char TerminalPoint[MAX];

float LastTime;

int FixNumber;

int FixedNumber;

}car[N];

int RecordNumber;

int FLAG=FALSE;

/**********************************************/

int ShowMessage(void); //載入原始數據

void mainmenu(void); //主菜單

void InsertMessage(void); //錄入班次信息

void SearchMenu(void); //查詢路線子菜單

void SearchByNumber(void); //按班次號查詢

void SearchByAddress(void); //按終點站查詢

void TicketManagement(void); //車票售出與退回

void TicketOrder(void); //售票

void TicketDelete(void); //退票

void exit(void); //退出該系統

/********************************************/

int main(void)

{

RecordNumber=ShowMessage();

if(1)

do{

mainmenu();

}while(FLAG==FALSE);

return 0;

}

void mainmenu(void)

{

system(“color 1f”);

system(“mode con: cols=140 lines=130”);

char functionNumber;

printf(” 車票管理系統\n\n”);

printf(” 製作:hmm182007\n”);

printf(” 日期:2007/11/25/19:57\n”);

printf(“============================================================================\n”);

printf(” 1.錄入班次信息\t\n”);

printf(” 2.瀏覽班次信息\t\n”);

printf(” 3.查詢行車路線\t\n”);

printf(” 4.售票與退票系統\t\n”);

printf(” 5.退出該系統\t\n”);

printf(“============================================================================\n”);

printf(“請選擇你所需要的功能:”);

scanf(“%c”,functionNumber);

switch(functionNumber)

{

case ‘1’:

{

InsertMessage();

printf(“\n按任意鍵回主菜單……\n”);

getchar();

getchar();

}

break;

case ‘2’:

{

ShowMessage();

printf(“\n按任意鍵回主菜單……\n”);

getchar();

getchar();

}

break;

case ‘3’:

{

SearchMenu();

printf(“\n按任意鍵回主菜單……\n”);

getchar();

getchar();

}

break;

case ‘4’:

{

TicketManagement();

getchar();

getchar();

}

break;

case ‘5’:FLAG=TRUE;exit();break;

default:

{

printf(“輸入錯誤,請確保你的輸入為1–5.\n”);

printf(“按任意鍵回主菜單……\n”);

getchar();

getchar();

}

}//switch ends

FLAG=FALSE;

}

void InsertMessage(void)

{

FILE *fp;

char filename[MAXFILENAME];

int i;

printf(“請輸入文件名或者文件路徑名:”);

scanf(“%s”,filename);

if((fp=fopen(filename,”r”))==NULL)

{

printf(“文件%s不可讀,請確認文件%s存在或者文件路徑正確.\n\n”,filename,filename);

mainmenu();

}

for(i=RecordNumber;!feof(fp)!ferror(fp);i++)

{

fscanf(fp,”%d%d%d”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

fscanf(fp,”%s%s%f%d%d”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

int count=i;

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

for(i=0;icount;i++)

{

printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

fclose(fp);

}

int ShowMessage(void)

{

int i;

FILE *fp;

if((fp=fopen(“add.txt”,”r”))==NULL)

{

printf(“讀取數據失敗,請檢查文件add.txt是否存在.\n”);

exit(-1);

}

for(i=0;!feof(fp)!ferror(fp);i++)

{

fscanf(fp,”%d%d%d”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

fscanf(fp,”%s%s%f%d%d”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

int count=i;

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

for(i=0;icount;i++)

{

printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

return count;

}

void SearchMenu(void)

{

system(“color 1f”);

system(“mode con: cols=140 lines=130”);

char functionNumber;

printf(” 查詢子菜單\n”);

printf(“============================================================================\n”);

printf(” 1.按班次號查詢\t\n”);

printf(” 2.按終點站查詢\t\n”);

printf(” 3.返回主菜單\t\n”);

printf(“============================================================================\n”);

printf(“請選擇你所需要的功能:”);

scanf(“%*c%c”,functionNumber);

switch(functionNumber)

{

case ‘1’:SearchByNumber();break;

case ‘2’:SearchByAddress();break;

case ‘3’:

getchar();

mainmenu();

break;

default:

printf(“輸入錯誤,請確保你的輸入為1–3.\n”);

printf(“按任意鍵回查詢子菜單……\n”);

getchar();

getchar();

SearchMenu();

}

}

void SearchByNumber(void)

{

int SearchNumber;

printf(“請輸入要查詢的班次號:”);

scanf(“%d”,SearchNumber);

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

printf(“%d\t%d:%d\t\t”,car[SearchNumber-1].SerialNumber,car[SearchNumber-1].SetOut.hour,car[SearchNumber-1].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[SearchNumber-1].DeparturePoint,car[SearchNumber-1].TerminalPoint,car[SearchNumber-1].LastTime,car[SearchNumber-1].FixNumber,car[SearchNumber-1].FixedNumber);

}

void SearchByAddress(void)

{

int i;

char Address[MAX];

printf(“請輸入終點站的名稱:”);

scanf(“%s”,Address);

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

for(i=0;iRecordNumber;i++)

{

//對比終點站記錄,找到並輸出

if((strcmp(Address,car[i].TerminalPoint))==0)

{

printf(“%d\t%d:%d\t\t”,car[i].SerialNumber,car[i].SetOut.hour,car[i].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i].DeparturePoint,car[i].TerminalPoint,car[i].LastTime,car[i].FixNumber,car[i].FixedNumber);

}

}

}

void TicketManagement(void)

{

char functionNumber;

system(“color 1f”);

system(“mode con: cols=140 lines=130”);

printf(” 訂票與退票菜單\n”);

printf(“============================================================================\n”);

printf(” 1.訂票\t\n”);

printf(” 2.退票\t\n”);

printf(” 3.返回主菜單.\n”);

printf(“============================================================================\n”);

printf(“選擇你需要的功能:”);

scanf(“%*c%c”,functionNumber);

switch(functionNumber)

{

case ‘1’:

{

TicketOrder();

//getchar();

//getchar();

}

break;

case ‘2’:TicketDelete();break;

case ‘3’:

{

getchar();

mainmenu();

}

break;

default:

{

printf(“輸入錯誤,請確保你的輸入為1–3.\n”);

printf(“按任意鍵回主菜單……\n”);

getchar();

getchar();

mainmenu();

}

}

}

void TicketOrder(void)

{

int i;

printf(“請輸入要訂購的車票的班次:”);

scanf(“%d”,i);

if(i0||iRecordNumber)

{

printf(“對不起,今天沒有這趟車,請明天再來,謝謝使用!\n”);

printf(“按任意鍵回主菜單……\n”);

getchar();//getchar();

TicketManagement();

}

time_t tval;

struct tm *now;

tval = time(NULL);

now = localtime(tval);

if((now-tm_hour==car[i].SetOut.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[i].SetOut.hour))

{

if(car[i].FixedNumbercar[i].FixNumber)

{

car[i].FixedNumber++;

printf(“你的訂票成功,請按時上車,謝謝使用!\n”);

}

else printf(“對不起,今天的這趟車的票已賣完,請明天再來,謝謝合作!\n”);

}

else printf(“對不起,今天的這趟車已發出,請明天再來,謝謝合作!\n”);

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

printf(“%d\t%d:%d\t\t”,car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);

//printf(“按任意鍵回主菜單……\n”);

//getchar();getchar();

}

void TicketDelete(void)

{

int i;

printf(“請輸入要退購的車票的班次:”);

scanf(“%d”,i);

if(i0||iRecordNumber)

{

printf(“對不起,今天沒有這趟車,無法完成退票.謝謝使用!\n”);

getchar();

//getchar();

TicketManagement();

getchar();

}

time_t tval;

struct tm *now;

tval = time(NULL);

now = localtime(tval);

if((now-tm_hour==car[i].SetOut.hournow-tm_mincar[i].SetOut.minutes)||(now-tm_hourcar[i].SetOut.hour))

{

if(car[i].FixedNumber=1)

{

car[i].FixedNumber–;

printf(“退訂車票成功,謝謝使用!\n”);

}

else printf(“對不起,今天的這趟車的票尚未賣出,無法完成退票!\n”);

}

else printf(“對不起,今天的這趟車已發出,無法完成退票!\n”);

printf(“班次\t發車時間\t起點\t終點\t行車時間(小時)\t額定載量\t已定票人數\n”);

printf(“%d\t%d:%d\t\t”,car[i-1].SerialNumber,car[i-1].SetOut.hour,car[i-1].SetOut.minutes);

printf(“%s\t%s\t\t%.1f\t %d\t\t%d\n”,car[i-1].DeparturePoint,car[i-1].TerminalPoint,car[i-1].LastTime,car[i-1].FixNumber,car[i-1].FixedNumber);

getchar();//getchar();

}

void exit(void)

{

printf(“\n\n*********************謝謝使用本系統,歡迎下次繼續使用***********************\n”);

exit(0);

}

C語言實驗報告總結

你只需要按那個模版就行,那些內容就改成你的作業

班級: 學號: 姓名:

實驗9 指針

一、實驗目的

(1)掌握指針概念,並定義與使用它。

(2)使用數組的指針和指向數組的指針變量。

(3)使用字符串的指針和指向字符串的指針變量。

二、實驗內容

1. 將一個3*3的矩陣轉置,用函數實現。

2. 有n個人圍成一圈,順序排號。從第一個人開始報數(1~3),凡報到3的人退出,問第幾號的人能留下。

三、實驗環境

硬件:(1)學生用微機

(2)多媒體實驗教室

軟件:(1)Windows XP 中文操作系統

(2)VC++ 6.0

四、實驗結果

程序1:

#includestdio.h

void main()

{

void move(int *pointer);

int a[3][3],*p,i;

printf(“input marix:\n”);

for(i=0;i3;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;i3;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;i3;i++)

for(j=i;j3;j++)

{

t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

程序2:

#includestdio.h

void main()

{

int i,k,m,n,num[50],*p;

printf(“input num of person:”);

scanf(“%d”,n);

p=num;

for(i=0;in;i++)

*(p+i)=i+1;

i=0;

k=0;

m=0;

while(mn-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:

五、總結:

通過這個實驗的學習, 基本掌握了指針的基本用法。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184081.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 05:51
下一篇 2024-11-25 05:51

相關推薦

  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • Python海龜代碼簡單畫圖

    本文將介紹如何使用Python的海龜庫進行簡單畫圖,並提供相關示例代碼。 一、基礎用法 使用Python的海龜庫,我們可以控制一個小海龜在窗口中移動,並利用它的“畫筆”在窗口中繪製…

    編程 2025-04-29
  • 學堂雲Python語言程序設計答案

    學堂雲Python語言程序設計是一門重要的計算機專業課程。它涵蓋了Python語言及其應用,包括基礎語法、函數、文件處理、數據結構、圖形界面和網絡編程等內容。在學習中,我們經常會需…

    編程 2025-04-29
  • Python櫻花樹代碼簡單

    本文將對Python櫻花樹代碼進行詳細的闡述和講解,幫助讀者更好地理解該代碼的實現方法。 一、簡介 櫻花樹是一種圖形效果,它的實現方法比較簡單。Python中可以通過turtle這…

    編程 2025-04-28
  • Python爬蟲文檔報告

    本文將從多個方面介紹Python爬蟲文檔的相關內容,包括:爬蟲基礎知識、爬蟲框架及常用庫、爬蟲實戰等。 一、爬蟲基礎知識 1、爬蟲的定義: 爬蟲是一種自動化程序,通過模擬人的行為在…

    編程 2025-04-28
  • 計算機二級Python語言程序設計難嗎?

    計算機二級Python語言程序設計並不難,只需要掌握好基礎知識,多練習,多思考,就能輕鬆掌握。 一、Python基礎知識 Python語言相對於其他編程語言來說,語法簡介明了,易於…

    編程 2025-04-28
  • Python貪吃蛇遊戲設計報告

    本文將從遊戲設計的目標、實現思路、技術要點、代碼實現等多個方面對Python貪吃蛇遊戲進行詳細闡述。 一、遊戲設計的目標 貪吃蛇是一款經典的遊戲,我們的遊戲設計不僅要實現基本的玩法…

    編程 2025-04-28
  • Python大神作品:讓編程變得更加簡單

    Python作為一種高級的解釋性編程語言,一直被廣泛地運用於各個領域,從Web開發、遊戲開發到人工智能,Python都扮演着重要的角色。Python的代碼簡潔明了,易於閱讀和維護,…

    編程 2025-04-28
  • Python語言程序設計教程PDF趙璐百度網盤介紹

    Python語言程序設計教程PDF趙璐百度網盤是一本介紹Python語言編程的入門教材,本文將從以下幾個方面對其進行詳細闡述。 一、Python語言的特點 Python語言屬於解釋…

    編程 2025-04-28

發表回復

登錄後才能評論