當前位置:編程學習大全網 - 編程語言 - 編程解決問題的作品

編程解決問題的作品

壹、系統菜單的主要功能

(1)輸入若幹記錄。

(2)顯示所有記錄

(3)按學號排序

(4)插入壹條記錄

(5)按名稱搜索並刪除壹條記錄。

(6)查找並顯示記錄

(7)輸出統計信息(新增)

(8)將文本中的數據添加到結構數組中。

(9)將所有數據寫入文件。

(0)退出程序

二、話題分析

這個題目主要考察學生對結構、指針、文件的操縱,以及對C語言算法的掌握,所以完成這個題目需要很強的設計能力,尤其是大局意識。如何調試程序也很重要。通過這個程序,妳可以學到在調試短程序之前沒有的經驗。

菜單中的每個選項都對應壹個子程序,子程序的算法幾乎囊括了C語言所學的所有技能。以下是每個子程序中的函數:

函數1的算法類似於函數4的算法。將壹條記錄輸入到結構中,其中有壹條很關鍵,就是通過gets輸入所有多余的字符,否則就會出錯。

功能2是顯示所有記錄,通過循環輸出,格式也很重要。

函數3是按學號排序,因為學號定義為字符數組,所以用冒泡法排序時,要用到strcmp,strcpy等函數。

功能5是按名稱刪除記錄。先輸入名字,然後壹個壹個對比。如果沒有名稱,將返回壹條失敗消息。如果找到,則所有記錄前移壹位,返回n-1。

函數6的算法已經在5中實現了。輸入名字,壹個壹個比較。

函數7是壹個新函數,因為原來的函數中沒有學生成績的統計函數,所以添加這個函數可以得到所有的記錄,最高分,最低分,平均分,輸出相關的學生信息。

函數8和9是對文件的操作,數據是預先準備好的。

總體設計

首先,仔細閱讀系統要求。首先,將這種系統化分為以下模塊(即以下功能)。

1.輸入初始學生信息:包括學生姓名、學號、性別,以及學生的語言、數學、英語、計算機等相關信息;函數cin(stu *p1)可用於實現此操作。

2.查詢模塊:可以通過stu *lookdata(stu *p1)實現。如果找到,輸出這個學生的所有信息,包括學生的語文、數學、英語、計算機的成績。

3.插入模塊:可以通過insert()函數實現。其中按學號大小比較,按這個排序。

4.輸出學生的信息和成績:通過姓名查看學生的語文、數學、英語和計算機相關的成績,還可以分別通過caverage()、maverage()、e average()和comaverage()輸出語文、數學、英語和計算機相關的成績的平均分、最高分和最低分。

5.退出系統:可以使用函數exit()。

學生成績管理系統

請選擇相應的數字來執行相應的功能:

1:輸入其他數據?

2:查看數據

3:插入數據

4:查找數據

5:更新數據

6:保存數據

7:顯示或打印數據

8.語言表現狀態

9.數學成績狀態

10:英語成績

11:計算機性能

12:?

13:退出系統

計劃中的問題和解決方案

問題1:面向學生的初始信息模塊:

包括學生姓名、學號和性別,以及學生的語文、數學、英語和計算機相關信息;函數cin(stu *p1)可用於實現此操作。當現有學號輸入正確,系統做出判斷時,表示該學生不存在。

解決方案和步驟:

1,逐個輸出所有學生的學號,查檔案裏有沒有這個學生,發現有。

2,既然有這個學生,那就檢查循環,確定是否有這個學生的句子被發現是正確的。

3、輸出用於循環檢查句子中的學生信息,發現亂碼。

4.仔細分析亂碼產生的原因,最終發現變量的類型是錯誤的,將student類型的結構指針變量錯誤地定義為其他類型的指針變量。

問題2。查詢模塊:

可以通過stu *lookdata(stu *p1)來實現。如果找到,輸出這個學生的所有信息,包括學生的語文、數學、英語、計算機的成績。當搜索信息輸入正確時,系統無法獲取學生信息和學生的語文、數學、英語、計算機成績。

解決方案和步驟:

1,檢查壹下寫的程序代碼是否完全正確,如果不正確就改壹下,然後繼續正確輸入搜索信息,看看能不能得到妳要找的學生信息以及學生的語文、數學、英語、計算機成績。

2.輸入搜索信息時檢查我們輸入的信息是否有誤。如果是這樣,就要謹慎輸入搜索信息。

問題3:插入模塊:

它可以用insert()函數來實現。其中按學號大小比較,按這個排序。當我們輸入插入信息時,系統提示不能插入數據。

解決方案和步驟:

1,檢查寫的程序代碼是否完全正確,如果不正確,就改壹下,然後繼續正確輸入插入信息,看能不能插入得到要插入的學生信息和學生的語文、數學、英語、計算機成績。

2、檢查我們輸入插入信息時,看我們輸入的插入信息是否是

c語言課程設計報告

壹、實踐的目的和要求

加深對C語言課程所學知識的理解,進壹步鞏固C語言教學規律。學會編寫結構清晰、風格良好、數據結構恰當的C語言程序,從而具備解決綜合實際問題的能力。

第二,內容

掌握C語言的基礎知識:數據類型(整形、實數、字符、指針、數組、結構等。);運算類型(算術運算、邏輯運算、自增自減運算、賦值運算等。);程序結構(順序結構、判斷選擇結構、循環結構);大型程序的函數分解法(即函數的使用)等等。進壹步掌握各種功能的應用,包括時間功能,繪圖功能,以及文件讀寫操作。

第三,實際任務

1.學生成績管理系統

建立五個學生的信息登記表。每個學生和信息包括:學號,姓名,和三門課程(數學,C,英語)的成績。程序運行時顯示壹個簡單的菜單,如:

(1):信息輸入(輸入)

(2):顯示信息(顯示)

(3):總分統計(計數)

(4):總分排序(SORT)

(5):查詢

其中包括:

(1):輸入五個學生的信息;

(2):顯示當前學生記錄的信息,如果沒有記錄則給出提示;

(3)每個學生三門課的總成績;

(4)按升序排序顯示5名學生的總成績;

(5):可以通過“學號”和“姓名”查詢該生的相關信息。

整體設計:

總結感受

開發編譯器是壹個漫長的過程。我需要仔細思考每壹個模塊,充分理解每壹個算法,設計每壹個數據結構。在完成課程設計的整個過程中,我們主要獲得了以下幾點體會。

1要學會具體問題具體分析。

我開始寫代碼的時候,已經看過教材和龍書了,但是真正開始的時候,發現並沒有書上說的那麽清楚。C語言的特點與書中舉例說明的語言不同。這個時候,我們不能機械地照搬書上的算法。要結合C語言的特點,采用書中的思路來解決問題。

2設計數據結構的重要性

在編寫代碼的過程中,最常見的現象就是反復修改數據結構,甚至在優化的時候回過頭去修改中間代碼的數據結構。這導致我的編碼效率降低,數據結構的反復修改使得整個項目極難維護。由此可見,數據結構的設計在整個設計階段是非常重要的。沒有壹個設計良好的數據結構,代碼編寫階段就不會順利。

3溝通與交流

我們在發展初期遇到的很多問題都是通過和同學交流解決的。同學之間無私耐心的講解,不僅讓整個課程設計進行的很順利,也讓我們每個人都學到了很多。

總的來說,這次編譯課程設計真的讓我受益匪淺。通過這次實踐,我對書本上的知識有了深刻的理解,增強了自己的動手能力。更重要的是,我學會了壹系列處理問題的方法,比如有限狀態機、語法引導等技術,這些技術的應用非常廣泛。通過對代碼優化的學習,我也知道了如何讓自己寫的代碼更高效的運行,為自己以後的實際工作打下基礎。編譯是壹門緊密結合編程語言、數據結構、算法、計算機體系結構、軟件工程等計算機知識的學科。對我以後的學習和工作有很大的幫助。

  • 上一篇:動漫制作屬於什麽專業
  • 下一篇:學習java用那本書最好
  • copyright 2024編程學習大全網