欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求

      時(shí)間:2019-05-12 02:11:37下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫(kù)小編為你整理了多篇相關(guān)的《2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫(kù)還可以找到更多《2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求》。

      第一篇:2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求

      《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)

      ----內(nèi)容及要求

      1、課程設(shè)計(jì)的目的

      課程設(shè)計(jì)是C語(yǔ)言教學(xué)中一個(gè)重要的實(shí)踐環(huán)節(jié)。通過課程設(shè)計(jì)的綜合訓(xùn)練,培養(yǎng)學(xué)生實(shí)際分析問題、編程和動(dòng)手能力,提高學(xué)生利用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力,使學(xué)生掌握面向過程語(yǔ)言的結(jié)構(gòu)化程序設(shè)計(jì)方法及解決實(shí)際問題的能力,培養(yǎng)學(xué)生的創(chuàng)新意識(shí),并為學(xué)生今后學(xué)習(xí)面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言打下基礎(chǔ)。在本課程設(shè)計(jì)的過程中,讓學(xué)生系統(tǒng)地、綜合地根據(jù)所學(xué)習(xí)的C語(yǔ)言相關(guān)知識(shí),編寫一個(gè)功能完善、實(shí)用性強(qiáng),知識(shí)點(diǎn)覆蓋面廣的應(yīng)用程序,讓學(xué)生進(jìn)一步熟悉C語(yǔ)言中標(biāo)準(zhǔn)函數(shù)的使用,用戶定義函數(shù)及語(yǔ)句的編寫及使用方法,進(jìn)一步熟悉指針、鏈表、文件的使用方法。并借此過程讓學(xué)生進(jìn)一步掌握有關(guān)C語(yǔ)言程序調(diào)試的方法與技巧,形成一定的C語(yǔ)言編寫能力。

      2、課程設(shè)計(jì)的基本要求

      (1)要求學(xué)生熟練掌握C語(yǔ)言的基本概念、基本數(shù)據(jù)類型、基本語(yǔ)句、函數(shù)、指針、結(jié)構(gòu)體類型、鏈表的處理及其靈活應(yīng)用,掌握C語(yǔ)言中文件的操作和使用方法;

      (2)理清系統(tǒng)的總體框架,合理地劃分系統(tǒng)的功能模塊;(3)要求使用結(jié)構(gòu)化程序設(shè)計(jì)方法和模塊化思想編程;

      (4)各模塊單獨(dú)編寫程序代碼,分別測(cè)試,最后整合各個(gè)模塊的功能進(jìn)行聯(lián)合調(diào)試。各組中的同學(xué)之間開展討論和協(xié)作、合理分工,認(rèn)真完成課題;(5)必須實(shí)現(xiàn)系統(tǒng)的基本功能,完成課程設(shè)計(jì)規(guī)定的基本內(nèi)容,達(dá)到基本要求;(6)可以自行對(duì)所給課題進(jìn)行功能上的擴(kuò)充或增加(7)在源程序中合理使用注釋,使程序容易閱讀和理解;(8)程序界面要求友好、直觀、易操作;

      (9)按時(shí)提交課程設(shè)計(jì)報(bào)告,報(bào)告內(nèi)容具體要求見下文。

      3、分組安排

      以班級(jí)為單位,分組進(jìn)行課程設(shè)計(jì)。原則上,每3人一組合作完成一個(gè)課程設(shè)計(jì),每個(gè)人的任務(wù)不同。也可以一人單獨(dú)完成一個(gè)課題(五個(gè)功能模塊以上)。

      各班自行組織分組,確定分組名單。每組抽簽從老師所給的參考課題中選擇課題,也可自擬課題,但選擇自擬課題的分組之間的課題不能完全相同。

      揚(yáng)州大學(xué)信息工程學(xué)院

      課程設(shè)計(jì)報(bào)告

      課程名稱 《C語(yǔ)言程序設(shè)計(jì)》 設(shè)計(jì)題目 學(xué)生姓名 班 級(jí) 學(xué) 號(hào) 指導(dǎo)老師

      2014年12月

      七、參考文獻(xiàn)

      列出主要的參考書、網(wǎng)址等。

      八、附錄

      源程序清單,對(duì)代碼中重要的地方用注釋進(jìn)行解釋和說(shuō)明

      6、課程設(shè)計(jì)驗(yàn)收及考核評(píng)估要求

      結(jié)合學(xué)生的動(dòng)手能力、獨(dú)立分析解決問題的能力和創(chuàng)新精神、課程設(shè)計(jì)報(bào)告和課程設(shè)計(jì)答辯考核的情況綜合考評(píng),考核成績(jī)分優(yōu)、良、中、及格和不及格五等。具體成績(jī)?cè)u(píng)定參考:

      ? 學(xué)習(xí)態(tài)度(10%)? 選題(20%)– 題目難度 – 創(chuàng)新性

      ? 課程設(shè)計(jì)報(bào)告(30%)? 設(shè)計(jì)(40%)– 正確性 – 界面 – 算法思想 – 測(cè)試數(shù)據(jù)

      考核時(shí)具體要求: 1)運(yùn)行所設(shè)計(jì)的系統(tǒng);

      2)回答老師提出的有關(guān)問題;

      3)提交課程設(shè)計(jì)報(bào)告;

      4)以班級(jí)為單位提交電子版本材料(所有同學(xué)提交一個(gè)名為“學(xué)號(hào)”+“姓名”的文件夾,包含以下內(nèi)容:源程序、可執(zhí)行程序、課程設(shè)計(jì)報(bào)告電子版本、使用手冊(cè));

      5)所完成課題內(nèi)容有創(chuàng)新的酌情加分。

      7、課程設(shè)計(jì)的題目參考

      課題可從以下題目中選擇,或者自擬,但自擬的課題各分組間不能完全相同。

      題目一:學(xué)生成績(jī)管理系統(tǒng)Ⅰ

      設(shè)計(jì)和實(shí)現(xiàn)一個(gè)“學(xué)生成績(jī)管理系統(tǒng)”,滿足以下要求: 1.系統(tǒng)以菜單方式工作;

      2.使用鏈表或結(jié)構(gòu)數(shù)組對(duì)學(xué)生成績(jī)進(jìn)行管理和維護(hù); 3.使用二進(jìn)制文件在磁盤上保存學(xué)生記錄信息;

      4.鏈表中各結(jié)點(diǎn)或結(jié)構(gòu)數(shù)組中各元素包括“學(xué)號(hào)、姓名、語(yǔ)文、數(shù)學(xué)、外語(yǔ)、平均分”基本字段; 5.實(shí)現(xiàn)如下基本功能:

      (1)查看所有學(xué)生信息

      (2)查找學(xué)生(查找指定學(xué)號(hào)的學(xué)生,顯示該學(xué)生的學(xué)號(hào)、姓名、所有課程成績(jī))

      (3)刪除學(xué)生(刪除指定學(xué)號(hào)的學(xué)生)(4)排序(按學(xué)號(hào)由小到大排序)

      (5)添加學(xué)生記錄(新增學(xué)生記錄,將其添加到鏈表或結(jié)構(gòu)數(shù)組中)(6)插入學(xué)生記錄(在鏈表或結(jié)構(gòu)數(shù)組已按學(xué)號(hào)有序的提下,將學(xué)生記錄插其中合適的位置)

      (7)計(jì)算平均分(計(jì)算每位學(xué)生每門課程的平均分)

      (8)將學(xué)生記錄保存到文件(將鏈表或結(jié)構(gòu)數(shù)組中的數(shù)據(jù)以文件的形式存盤)

      (9)從文件中讀出學(xué)生記錄(將已經(jīng)存盤的文件讀入內(nèi)存,進(jìn)行管理)

      題目三:學(xué)生成績(jī)記錄薄

      設(shè)計(jì)和實(shí)現(xiàn)一個(gè)“學(xué)生成績(jī)記錄薄”,滿足以下要求: 1.系統(tǒng)以菜單方式工作;

      2.使用鏈表或結(jié)構(gòu)數(shù)組對(duì)不同班級(jí)的學(xué)生成績(jī)信息進(jìn)行管理和維護(hù); 3.使用二進(jìn)制文件在磁盤上保存學(xué)生記錄信息;

      4.鏈表中各結(jié)點(diǎn)或結(jié)構(gòu)數(shù)組中各元素包括“學(xué)號(hào)、班級(jí)、姓名、語(yǔ)文、數(shù)學(xué)、外語(yǔ)、計(jì)算機(jī)、總分”字段; 5.實(shí)現(xiàn)如下基本功能:

      (1)列出指定班級(jí)的所有學(xué)生的成績(jī)單

      (2)錄入學(xué)生記錄(新增學(xué)生的信息,將它添加到鏈表中)

      (3)查找學(xué)生(查找指定學(xué)號(hào)的學(xué)生,顯示該學(xué)生的學(xué)號(hào)、班級(jí)、姓名、所有課程成績(jī))

      (4)刪除學(xué)生(刪除指定學(xué)號(hào)的學(xué)生)

      (5)計(jì)算總分和平均分(計(jì)算每位學(xué)生四門課程的總分)(5)排序(對(duì)指定班級(jí)的所有學(xué)生按總分由高到低的方式排序并輸出)(6)計(jì)算指定班級(jí)各門課程的平均分(計(jì)算并輸出某班級(jí)學(xué)生每門課程的平均分)

      (7)查詢所有存在不及格課程的學(xué)生,并輸出這些學(xué)生信息;(8)將學(xué)生記錄保存到文件存盤(將鏈表或結(jié)構(gòu)數(shù)組的數(shù)據(jù)以文件的形式存盤)

      (9)從文件中讀入學(xué)生記錄(將原來(lái)已經(jīng)存盤的文件讀入內(nèi)存,進(jìn)行管理)

      題目五:圖書信息管理系統(tǒng)

      設(shè)計(jì)和實(shí)現(xiàn)一個(gè)“圖書信息管理系統(tǒng)”,滿足以下要求: 1.系統(tǒng)以菜單方式工作;

      2.使用鏈表或結(jié)構(gòu)數(shù)組對(duì)圖書信息進(jìn)行管理和維護(hù); 3.使用二進(jìn)制文件在磁盤上保存圖書記錄信息;

      4.鏈表中各結(jié)點(diǎn)或結(jié)構(gòu)數(shù)組中各元素包括“圖書編號(hào)、書名、作者、出版社、出版時(shí)間、價(jià)格”基本字段; 5.實(shí)現(xiàn)如下基本功能:

      (1)圖書信息錄入功能

      (2)圖書信息瀏覽功能(輸出所有的圖書信息)

      (3)圖書信息排序(按圖書編號(hào)由大到小的順序排列)(4)圖書信息查詢(按圖書編號(hào)和作者兩種方式查詢圖書信息)(5)圖書信息統(tǒng)計(jì)(按出版社統(tǒng)計(jì)滿足條件的圖書數(shù)目,并顯示圖書信息)

      (6)圖書刪除(刪除指定編號(hào)的圖書)

      (7)圖書修改(修改指定編號(hào)的圖書的基本信息)

      (8)將圖書信息保存到文件存盤(將鏈表或結(jié)構(gòu)數(shù)組的數(shù)據(jù)以文件的形式存盤)

      (9)從文件中讀入圖書信息(將原來(lái)已經(jīng)存盤的文件讀入內(nèi)存,進(jìn)行管理)

      1題目七:DVD影片管理系統(tǒng)

      設(shè)計(jì)和實(shí)現(xiàn)一個(gè)“DVD影片管理系統(tǒng)”,并滿足以下要求: 1.系統(tǒng)以菜單方式工作;

      2.使用鏈表或結(jié)構(gòu)數(shù)組對(duì)DVD影片信息進(jìn)行管理和維護(hù); 3.使用二進(jìn)制文件在磁盤上保存通信錄信息;

      4.鏈表中各結(jié)點(diǎn)或結(jié)構(gòu)數(shù)組中各元素包括的DVD影片信息:DVD影片編號(hào)、DVD影片名稱、地區(qū)類型(如港臺(tái)、大陸、歐美、韓國(guó)、日本等)、內(nèi)容類型(如戰(zhàn)爭(zhēng)、喜劇、言情、動(dòng)漫等等)、價(jià)格、出版日期 5.實(shí)現(xiàn)如下基本功能:

      (1)新增DVD影片

      (2)DVD影片瀏覽(輸出所有的DVD影片信息)(3)DVD影片刪除(刪除指定編號(hào)的影片)(4)DVD影片修改(修改指定編號(hào)的影片信息)(5)DVD影片排序(根據(jù)影片編號(hào)進(jìn)行排序)

      (6)DVD影片查詢統(tǒng)計(jì)(提供按地區(qū)類型、內(nèi)容類型兩種方式對(duì)影片進(jìn)行統(tǒng)計(jì)查詢功能)

      (7)將DVD影片數(shù)據(jù)保存到文件存盤(將鏈表或結(jié)構(gòu)數(shù)組中的數(shù)據(jù)以文件的形式存盤)

      (8)從文件中讀入DVD影片數(shù)據(jù)(將已存盤的文件讀入內(nèi)存,進(jìn)行管理)

      第二篇:C語(yǔ)言課程設(shè)計(jì)要求及參考題目

      《程序設(shè)計(jì)課程設(shè)計(jì)》要求及參考題目

      一、目的:

      本次課程設(shè)計(jì)是《程序設(shè)計(jì)基礎(chǔ)》課程的綜合實(shí)驗(yàn),作為課堂教學(xué)和課內(nèi)正常上機(jī)實(shí)驗(yàn)的補(bǔ)充。

      通過對(duì)《程序設(shè)計(jì)基礎(chǔ)》課程的學(xué)習(xí),學(xué)生已初步掌握C語(yǔ)言的基本概念、結(jié)構(gòu)化程序設(shè)計(jì)的基本方法,但是實(shí)際編程和上機(jī)調(diào)試程序的能力還遠(yuǎn)遠(yuǎn)不足。通過《程序設(shè)計(jì)課程設(shè)計(jì)》,加強(qiáng)學(xué)生自主學(xué)習(xí)、收集資料和動(dòng)手編程的能力,為后續(xù)專業(yè)課程打好基礎(chǔ)。

      二、實(shí)驗(yàn)安排:

      ? 課程設(shè)計(jì)內(nèi)容和要求的安排與講解在課內(nèi)時(shí)間進(jìn)行。

      ? 上機(jī)機(jī)時(shí)安排:共一周,除周三下午外,每天全天在機(jī)房上機(jī),不足部分自行安排。

      三、課程設(shè)計(jì)說(shuō)明:

      ? 本次課程設(shè)計(jì)平臺(tái)使用

      ? 每人一題。

      ? 本次課程設(shè)計(jì)要求每個(gè)程序要調(diào)試通過;課程設(shè)計(jì)結(jié)束后,每人提交課程設(shè)計(jì)成果如下:

      ? 程序一套,要求演示,演示時(shí)采用答辯形式,同學(xué)邊演示

      邊講解編程思路。

      ? 課程設(shè)計(jì)報(bào)告一份,報(bào)告中可不包括源代碼。

      ? 源代碼以提交的源代碼要求加注釋。(以

      附件的形式提交至wtwbylw@163.com,每人一個(gè)文件夾,文件夾命名方式為:班級(jí)_學(xué)號(hào)_姓名,以班級(jí)為單位打包發(fā)

      送至郵箱)

      四、評(píng)分標(biāo)準(zhǔn)

      ? 根據(jù)平時(shí)上機(jī)考勤;注重平時(shí)上機(jī)情況,教師要不定期檢查學(xué)

      生進(jìn)度,學(xué)生不得以自己有私人電腦為借口而不來(lái)上機(jī)。

      ? 根據(jù)程序運(yùn)行結(jié)果;

      ? 根據(jù)《程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告》,學(xué)生能對(duì)教師的提問熟練地解

      釋清楚。

      五、參考題目

      要求:

      1.編寫程序,實(shí)現(xiàn)某信息處理的過程。數(shù)據(jù)在程序中用數(shù)組、結(jié)構(gòu)體或共用體中的至少一種形式表示。程序從鍵盤或文件輸入,將處理結(jié)果存儲(chǔ)在文件中。

      2.題目要有實(shí)際應(yīng)用背景,例如:簡(jiǎn)單計(jì)算器,字符串比較函數(shù)。

      3.編寫的代碼要有一定規(guī)模,至少200行,完成至少3項(xiàng)子功能(函數(shù))。

      4.周一上午確定題目,題目定后,不得隨意修改。

      選題一:學(xué)生信息管理系統(tǒng)設(shè)計(jì)

      學(xué)生信息包括:學(xué)號(hào),姓名,年齡,性別,出生年月,地址,電話,E-mail等。試設(shè)計(jì)一學(xué)生信息管理系統(tǒng),使之能提供以下功能:

      (1)學(xué)生信息錄入功能(學(xué)生信息用文件保存)---輸入

      (2)學(xué)生信息瀏覽功能---輸出

      (3)查詢、排序功能---算法

      1)按學(xué)號(hào)查詢

      2)按姓名查詢

      (4)學(xué)生信息的刪除與修改

      選題二:通信錄

      編寫一個(gè)通信錄管理程序,要求通信錄中包括姓名,通信地址,郵政編碼和聯(lián)系電話。功能:

      (1)顯示通信錄的所有信息。

      (2)程序中可以對(duì)通信錄進(jìn)行添加

      (3)可以刪除已有的信息

      (4)根據(jù)姓名或者聯(lián)系電話(2個(gè)都能實(shí)現(xiàn)),可以查找該條記錄。

      選題三:學(xué)生成績(jī)記錄簿設(shè)計(jì)

      編制一個(gè)C語(yǔ)言成績(jī)記錄簿,每個(gè)學(xué)生信息包括:學(xué)號(hào)、姓名、C語(yǔ)言成績(jī)。具體功能:

      (1)創(chuàng)建一個(gè)文本文件用來(lái)記錄學(xué)生信息,輸入至少30名學(xué)生的信息,保存在文本文件中;

      (2)將文本文件中的數(shù)據(jù)讀出,按學(xué)號(hào)或姓名查詢成績(jī);

      (3)能添加成績(jī)記錄;

      (4)能修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī);

      (5)顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息,顯示及格率和平均分,顯示最高分和最低分,顯示所有學(xué)生的排名(不能改變學(xué)生的學(xué)號(hào)順序);

      (6)以上信息能保存在原文本文件中。

      選題四:學(xué)生選修課程系統(tǒng)設(shè)計(jì)

      假定有n門課程,每門課程有:課程編號(hào),課程名稱,課程性質(zhì)(公共課、必修課、選修課),總學(xué)時(shí),授課學(xué)時(shí),實(shí)驗(yàn)或上機(jī)學(xué)時(shí),學(xué)分,開課學(xué)期等信息,學(xué)生可按要求(如總學(xué)分不得少于60)自由選課。試設(shè)計(jì)一選修課程系統(tǒng),使之能提供以下功能:

      1、系統(tǒng)以菜單方式工作

      2、課程信息錄入功能(課程信息用文件保存)--輸入

      3、課程信息瀏覽功能--輸出

      4、課程信息查詢功能--算法

      查詢方式

      按學(xué)分查詢

      按課程性質(zhì)查詢

      5、學(xué)生選修課程(可選項(xiàng))

      選題五:職工工作量統(tǒng)計(jì)系統(tǒng)設(shè)計(jì)

      編寫一個(gè)程序,該程序能輸入職工工號(hào)和完成的產(chǎn)品數(shù)量,程序允許同一職工有多次輸入,由程序?qū)ζ渫瓿傻漠a(chǎn)品數(shù)量實(shí)現(xiàn)累計(jì)。程序按完成數(shù)量對(duì)他們排序,并確定他們的名次。按完成的產(chǎn)品數(shù)量由多到少的順序,輸出名次、同一名次的職工人數(shù)及他們的工號(hào)(工號(hào)由小到大順序輸出)。要求程序用有序鏈表存儲(chǔ)數(shù)據(jù)信息。

      選題六:?jiǎn)雾?xiàng)選擇題標(biāo)準(zhǔn)化考試系統(tǒng)設(shè)計(jì)

      一、功能要求:

      1、用文件保存試題庫(kù)。(每個(gè)試題包括題干、4個(gè)備選答案、標(biāo)準(zhǔn)答案)

      2、試題錄入:可隨時(shí)增加試題到試題庫(kù)中

      3、試題抽?。好看螐脑囶}庫(kù)中可以隨機(jī)抽出N道題(N由鍵盤輸入)

      4、答題:用戶可實(shí)現(xiàn)輸入自己的答案

      5、自動(dòng)判卷:系統(tǒng)可根據(jù)用戶答案與標(biāo)準(zhǔn)答案的對(duì)比實(shí)現(xiàn)判卷并給出成績(jī)。

      選題七:職工信息管理系統(tǒng)設(shè)計(jì)

      職工信息包括職工號(hào)、姓名、性別、年齡、學(xué)歷、工資、住址、電話等(職工號(hào)不重復(fù))。

      試設(shè)計(jì)一職工信息管理系統(tǒng),使之能提供以下功能:

      1、職工信息錄入功能(職工信息用文件保存)--輸入

      2、職工信息瀏覽功能--輸出

      3、職工信息查詢功能--算法

      查詢方式

      按學(xué)歷查詢等

      按職工號(hào)查詢等

      4、職工信息刪除、修改功能(可選項(xiàng))

      選題八:機(jī)房收費(fèi)管理系統(tǒng)

      (1)輸入功能:輸入若干名學(xué)生的學(xué)號(hào)、班級(jí)、姓名、開始上機(jī)時(shí)間和結(jié)束上機(jī)時(shí)間。

      (2)計(jì)算功能:計(jì)算每個(gè)學(xué)生的上機(jī)費(fèi)用(計(jì)算公式:上機(jī)費(fèi)用=(結(jié)束上機(jī)時(shí)間-開始上機(jī)時(shí)間)*收費(fèi)標(biāo)準(zhǔn),(以分鐘為單位))

      (3)修改功能:修改學(xué)生上機(jī)的個(gè)人檔案(如:增添或刪除)

      (4)查詢功能:按條件(班級(jí)、學(xué)號(hào)、姓名)查詢學(xué)生上機(jī)信息,并能顯示查詢學(xué)生的相應(yīng)全部檔案。

      選題九:校際運(yùn)動(dòng)會(huì)管理系統(tǒng)

      初始化輸入:N-參賽學(xué)??倲?shù),M-男子競(jìng)賽項(xiàng)目數(shù),W-女子競(jìng)賽項(xiàng)目數(shù)

      各項(xiàng)目名次取法有如下幾種:

      取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;

      取前3名:第1名得分5,第2名得分3,第3名得分2;

      用戶自定義:各名次權(quán)值由用戶指定。

      2.由程序提醒用戶填寫比賽結(jié)果,輸入各項(xiàng)目獲獎(jiǎng)運(yùn)動(dòng)員的信息。

      3.所有信息記錄完畢后,用戶可以查詢各個(gè)學(xué)校的比賽成績(jī),生成團(tuán)體總分報(bào)表,查看參賽學(xué)校信息和比賽項(xiàng)目信息等。

      第三篇:C語(yǔ)言課程設(shè)計(jì)

      C語(yǔ)言課程設(shè)計(jì)

      飛機(jī)空戰(zhàn)小游戲

      一、實(shí)驗(yàn)環(huán)境

      運(yùn)行系統(tǒng) WINDOWSXP 編程工具C++6.0 地點(diǎn) 程序設(shè)計(jì)與仿真實(shí)驗(yàn)室

      桌號(hào)19電腦IP地址221.12.10.218

      二、實(shí)驗(yàn)?zāi)康暮鸵?實(shí)驗(yàn)?zāi)康模?/p>

      (1)使學(xué)生進(jìn)一步理解和掌握課堂上所學(xué)各種基本抽象數(shù)據(jù)類型的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)和操作算法。

      (2)使學(xué)生進(jìn)一步掌握程序設(shè)計(jì)、編寫、調(diào)試能力。(3)使學(xué)生了解軟件開發(fā)的基本步驟和內(nèi)容。

      實(shí)驗(yàn)要求::飛機(jī)空戰(zhàn)小游戲。功能要求:

      1)有主菜單界面,能讓用戶選擇開始、退出、難度等級(jí)、查看用戶積分功能;

      2)飛機(jī)能通過A、S、D、W或上下左右鍵控制移動(dòng)方向,使用空格鍵發(fā)射子彈;

      3)屏幕隨機(jī)出現(xiàn)從上到下的敵方子彈; 4)當(dāng)打中敵方子彈時(shí),積分加1;

      5)當(dāng)敵方子彈打正飛機(jī)時(shí),游戲結(jié)束,并提示用戶是否保存記錄(記錄包括用戶名及積分值),保存后退回到主菜單;

      6)當(dāng)選擇主菜單中的“查看用戶積分”選項(xiàng)時(shí),進(jìn)入第二級(jí)菜單,用戶可查看全部用戶積分記錄,也可僅查看積分最高者,也可根據(jù)用戶輸入的用戶名查看;(此處要求使用到鏈表,用于臨時(shí)存儲(chǔ)用戶積分?jǐn)?shù)據(jù));(對(duì)鏈表的查找操作)

      7)所有用戶積分信息使用文件進(jìn)行永久性保存; 8)用戶選擇“難度等級(jí)”,可設(shè)定游戲不同難度,難度越高,出現(xiàn)敵方子彈數(shù)目及間隔將增加。

      三、實(shí)驗(yàn)內(nèi)容和結(jié)果

      系統(tǒng)總體設(shè)計(jì):編寫出c語(yǔ)言代碼,運(yùn)行程序,并調(diào)試程序,最終實(shí)現(xiàn)游戲的功能。本程序主要包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動(dòng)函數(shù)、敵機(jī)移動(dòng)函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個(gè)主要函數(shù),包含了不同的功能,對(duì)原來(lái)的程序作出了很大的改進(jìn),用到的主要語(yǔ)句有if語(yǔ)句,for語(yǔ)句、while語(yǔ)句、printf語(yǔ)句、switch語(yǔ)句等等,添加了顏色函數(shù)。

      系統(tǒng)模塊設(shè)計(jì):包含游戲控制函數(shù)、設(shè)置是否繼續(xù)游戲函數(shù)、輸出函數(shù)、子彈移動(dòng)函數(shù)、敵機(jī)移動(dòng)函數(shù)、設(shè)置函數(shù)、菜單函數(shù)等7個(gè)主要函數(shù),其中是否繼續(xù)游戲函數(shù),菜單函數(shù)主要運(yùn)用了SWITCH語(yǔ)句和If語(yǔ)句,子彈移動(dòng)函數(shù),敵機(jī)移動(dòng)函數(shù)通過數(shù)組內(nèi)各數(shù)值的變化來(lái)完成,設(shè)置函數(shù)主要用PRINTF和SCANF語(yǔ)句進(jìn)行各項(xiàng)數(shù)值的設(shè)置,游戲控制函數(shù)使用if函數(shù),kbhit()函數(shù),switch函數(shù)組合控制數(shù)組中飛機(jī)進(jìn)行的移動(dòng)和圖案的變換。最后用打印數(shù)組的方式打印出數(shù)組變換。最后運(yùn)用SWITCH函數(shù)進(jìn)行各項(xiàng)菜單內(nèi)容的操作。

      實(shí)驗(yàn)的測(cè)試和結(jié)果:

      四、實(shí)驗(yàn)中的問題及心得

      通過本次試驗(yàn),使我對(duì)c語(yǔ)言有了更深一層次的了解,對(duì)for語(yǔ)句、while語(yǔ)句、printf語(yǔ)句、switch語(yǔ)句、顏色函數(shù)等等的了解及使用更加詳細(xì)了一些,明白了這些語(yǔ)句的用法,明確了c語(yǔ)言的使用環(huán)境,功能。同時(shí)我了解到了一些方法來(lái)實(shí)現(xiàn)一些C語(yǔ)言作為一個(gè)基礎(chǔ)性編程語(yǔ)言是我們?cè)谝院缶幊讨胁豢苫蛉钡恼Z(yǔ)言,使用率肯定會(huì)進(jìn)一步增高。掌握了c語(yǔ)言就相當(dāng)于掌握了一門技術(shù),同時(shí)c語(yǔ)言相對(duì)而言簡(jiǎn)單一些,更容易理解。自己雖然對(duì)這個(gè)小游戲進(jìn)行一部分的改造,但是我也感覺這只是其中的很很小的一部分,肯定會(huì)有更加強(qiáng)大的功能等待著我們?nèi)ジ纳啤?/p>

      同時(shí),我也發(fā)現(xiàn)了自己很多的不足,需要進(jìn)一步加強(qiáng)這一方面的學(xué)習(xí),在數(shù)據(jù)結(jié)構(gòu)鏈表的使用上還很欠缺,無(wú)法使用鏈表進(jìn)行數(shù)據(jù)的讀取和輸入,還有在兩個(gè)程序的連接上還有困難,對(duì)于頭文件的理解不到位,鏈表的結(jié)構(gòu),定義,使用指針的方式??這些都需要提高。這些技能的欠缺導(dǎo)致了在 這個(gè)小游戲中無(wú)法順利完成有關(guān)用戶名和記錄的一些要求。??

      附錄:程序清單

      #include #include #include #include #define N 50 void run();//游戲控制函數(shù) void continuegame();//設(shè)置是否繼續(xù)游戲函數(shù) void print(int [][N]);//輸出函數(shù)

      void movebul(int [][N]);//子彈移動(dòng)函數(shù) void movepla(int [][N]);//敵機(jī)移動(dòng)函數(shù) void setting(void);//設(shè)置函數(shù) void menu();//菜單 int scr[50][N]={0},pl=9,width=15,speed=16,density=40,score=0,death=0,length=18,y=0,x=5,z=15,life=1,max=0;//全局變量:界面、我機(jī)初始位、界面寬度、敵機(jī)速度、敵機(jī)密度、得分、死亡,子彈,飛機(jī),敵機(jī)初始圖案,生命

      char name[N];char first[N];void main(){ menu();getch();}

      void print(int a[][N])//輸出函數(shù) { int i,j;system(“cls”);for(i=0;i

      a[i][width-1]=4;

      for(j=0;j

      {

      if(a[i][j]==0)printf(“ ”);

      if((a[i][j]==1)&&(x<15))printf(“%c”,x);//輸出我機(jī)的符號(hào)

      if((a[i][j]==2)&&(z<35))printf(“%c”,z);//子彈

      if((a[i][j]==3)&&(y<4))printf(“%c”,y+1);//輸出敵機(jī)符號(hào)

      if(i==1&&j==width-1)printf(“總積分:%d”,score);//顯示得分

      if(i==2&&j==width-1)printf(“已經(jīng)死亡了%d 次,剩余 %d 條命”,death,life-death);//右上角顯示死亡次數(shù)

      if(i==3&&j==width-1)printf(“普通按鍵:AD控制左右飛行”);

      if(i==4&&j==width-1)printf(“ W 發(fā)射子彈”);if(i==5&&j==width-1)printf(“特殊按鍵:+-號(hào)加減敵機(jī)速度”);if(i==6&&j==width-1)printf(“ /*號(hào)單列敵機(jī)密度減小增大(均有限制)”);

      if(i==7&&j==width-1)printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案”);

      if(i==8&&j==width-1)printf(“tZ鍵變化子彈圖案,P鍵增加生命(均有限制)”);

      if(i==9&&j==width-1)printf(“注意:向下移動(dòng)后按其他方向鍵飛機(jī)顯現(xiàn)”);

      } printf(“n”);} }

      void movebul(int a[][N]){

      int i,j;for(i=0;i

      {

      if(i==0&&a[i][j]==2)

      a[i][j]=0;

      if(a[i][j]==2)

      {

      if(a[i-1][j]==3)//加分

      {

      score+=1;

      printf(“7”);

      }

      a[i][j]=0,a[i-1][j]=2;

      }

      } } void movepla(int a[][N]){ int i,j;for(i=length-1;i>=0;i--)//從最后一行往上是為了避免把敵機(jī)直接沖出數(shù)組。

      for(j=0;j

      if(i==length-1&&a[i][j]==3)

      a[i][j]=0;//消除敵機(jī),在最低層

      if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;//敵機(jī)移動(dòng)

      }

      if(a[length-2][pl]==3&&a[length-1][pl]==1)death++;//死亡 }

      void continuegame()//繼續(xù)游戲

      { printf(“用戶%s”,name);printf(“你的得分是%dn”,score);if(score==0)printf(“tttt 恭喜你刷新了最低記錄na”,score);if((score>0)&&(score<20))

      printf(“tttt 回家再練 練吧na”,score);if(score>19)

      printf(“tttt 你真厲害 na”,score);printf(“游戲結(jié)束n”);printf(“按y鍵繼續(xù)游戲,空格鍵退出游戲(y/n)?n”);printf(“ttt”);switch(getch())//是否要繼續(xù)游戲

      { case 'y': case 'Y':system(“cls”),death=0,score=0,life=1,x=5,y=0,z=15;menu();break;} }

      void setting(void)//設(shè)置函數(shù) { system(“cls”);//清屏

      printf(“n 輸入游戲界面的大?。J(rèn)3):1-10 ”);scanf(“%d”,&width);width=(width+1)*5;printf(“n 請(qǐng)輸入敵機(jī)密度大?。J(rèn)3):1-5 ”);scanf(“%d”,&density);density=(7-density)*10;printf(“n 輸入敵機(jī)的飛行速度大?。J(rèn)3):1-10 ”);scanf(“%d”,&speed);speed=(11-speed)*2;printf(“n 輸入我機(jī)的生命(默認(rèn)1):1-100 ”);scanf(“%d”,&life);printf(“n 輸入飛機(jī)的圖案(默認(rèn)1):1-2 ”);scanf(“%d”,&x);x=x+4;printf(“n 輸入子彈的圖案(默認(rèn)1):1-10 ”);scanf(“%d”,&z);z=z+14;printf(“n 輸入敵機(jī)的圖案(默認(rèn)1):1-3 ”);scanf(“%d”,&y);y=y-1;} void run(){ int i=0,j=0,k=0,b=0;printf(“請(qǐng)輸入用戶名:”);scanf(“%s”,name);printf(“您的用戶名是:%s”,name);if(getch()==27)setting();printf(“游戲說(shuō)明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號(hào)敵機(jī)減速,+號(hào)敵機(jī)加速n特殊按鍵:/號(hào)單列敵機(jī)密度減小,*號(hào)單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“任意鍵開始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“游戲時(shí)也可更改游戲設(shè)置任意鍵開始nn”);system(“color a”);//設(shè)置背景顏色

      if(getch()==27)setting();scr[length-1][pl]=1;//我方飛機(jī)初始位置

      scr[0][5]=3;while(death

      { if(kbhit())

      switch(getch())//控制設(shè)置按鍵 {

      case 'a':

      case 'A':if(pl>0)

      scr[length-1][pl]=0,scr[length-1][--pl]=1;break;

      case 'd':

      case 'D':if(pl

      scr[length-1][pl]=0,scr[length-1][++pl]=1;break;case 'W':

      case 'w':if(length>10)

      {

      scr[length-1][pl]=0,scr[length-2][pl]=1;

      length=length-1;

      };break;

      case '+':if(speed>2)

      {

      speed=speed-2;

      };break;

      case '-':speed=speed+1;break;case '*':if(density>5)

      {

      density=density-5;

      };break;

      case '/':density=density+10;break;

      case 'l':if(width<40)

      {

      width=width+2;

      };break;

      case 's':if(length<30)

      {

      scr[length-1][pl]=0;

      length=length+1;

      scr[length-1][pl]='5';

      };break;

      case ' ':scr[length-2][pl]=2;break;

      case 'y':y=(y+1)%4;break;

      case 'x':x=(x)%2+5;break;

      case 'z':if(z<25)

      {

      z=z+1;

      }

      else z=15;break;

      case 'p':life=life+1;break;} if(++j%density==0)//控制生產(chǎn)敵機(jī)的速度

      {

      j=0;

      srand(time(NULL));//產(chǎn)生隨機(jī)數(shù)

      scr[0][rand()%width]=3;

      scr[rand()%3][rand()%(width+2)]=3;

      scr[rand()%2][rand()%(width+1)]=3;

      scr[rand()%4][rand()%(width+4)]=3;//生成隨機(jī)敵方飛機(jī)

      } if(++i%speed==0)//控制敵機(jī)移動(dòng)速度,相對(duì)于子彈移動(dòng)速度

      movepla(scr);//飛機(jī)移動(dòng)

      movebul(scr);//子彈移動(dòng)

      print(scr);//繪制游戲畫面

      } if(score>=max){

      max=score;

      for(i=0;i

      {

      name[i]=first[i];

      } } if(score

      score=score;} continuegame();getch();}

      void menu(){ printf(“n1:游戲設(shè)置n2:游戲說(shuō)明n3:開始游戲n4:查看用戶信息n5:退出游戲n”);

      switch(getch()){

      case '1': setting();menu();break;

      case '2':printf(“游戲說(shuō)明:按AWSD控制我機(jī)左右飛行,空格鍵發(fā)射子彈n特殊按鍵:-號(hào)敵機(jī)減速,+號(hào)敵機(jī)加速n特殊按鍵:/號(hào)單列敵機(jī)密度減小,*號(hào)單列敵機(jī)密度增大n”);printf(“VIP按鍵:X鍵變化飛機(jī)圖案,Y鍵變化敵機(jī)圖案ntZ鍵變化子彈圖案,P鍵增加生命n”);printf(“ 任意鍵開始游戲,esc鍵進(jìn)入游戲設(shè)置n”);printf(“ 游戲時(shí)也可更改游戲設(shè)置”);menu();break;

      case '3':run();menu();break;

      case '4':seerecord();menu();break;

      case '5':exit(0);break;default:menu();break;}

      } seerecord(){ printf(“最高紀(jì)錄為%s,%d”,first[N],max);}

      第四篇:C語(yǔ)言課程設(shè)計(jì)范文

      C語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)

      設(shè)計(jì)題目:專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):2010級(jí)計(jì)算機(jī)二班組長(zhǎng)姓名:馬得才【P101712944】成員姓名:孫麗欣【P101712927】

      趙廣峰【P101712926】

      遲成凱【P101712928】

      冶成意【P101712930】

      2010年5月20日

      題目:

      指導(dǎo)教師:普措才仁

      一、案例需求

      二、案例分析

      三、案例設(shè)計(jì)

      四、案例實(shí)現(xiàn)

      五、參考文獻(xiàn)

      第五篇:C語(yǔ)言課程設(shè)計(jì)

      #include #include int N1,N2,kk1,kk2,kk3;struct couse * head1,*head2,*emp1;struct student * head3,*head4,*emp2;struct couse//課程信息結(jié)構(gòu)體 {

      int num1;

      char name1[20];

      int score;

      int nelepeo;//課程已選人數(shù)

      int Melepeo;//課程人數(shù)上限

      struct couse * next;};

      int student();

      //學(xué)生登陸 int teacher();

      //教師登陸 struct student//學(xué)生信息結(jié)構(gòu)體 {

      int num2;

      char name2[20];

      int nelenum[50];//已選課程編號(hào)

      int nelen;//已選課程數(shù)量

      struct student * next;};

      void Ms(){

      for(kk1=0;kk1<1100;kk1++)

      for(kk2=0;kk2<1200;kk2++)

      for(kk3=0;kk3<1200;kk3++);} void keyboardc()//錄入課程子函數(shù)(從鍵盤錄入){ void intoc();struct couse *p1,*p2;N1=0;p1=p2=(struct couse*)malloc(sizeof(struct couse));printf(“n課程編號(hào):”);fflush(stdin);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);printf(“ntttt輸入成功!”);p1->nelepeo=0;head1=NULL;while(p1->num1!=0){

      N1=N1+1;

      if(N1==1)head1=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct couse *)malloc(sizeof(struct couse));

      printf(“n-----------------------------”);

      printf(“n課程編號(hào):(輸入0結(jié)束)”);scanf(“%d”,&p1->num1);printf(“n課程名稱:”);scanf(“%s”,p1->name1);printf(“n學(xué)分:”);scanf(“%d”,&p1->score);printf(“n課程人數(shù)上限:”);scanf(“%d” ,&p1->Melepeo);

      p1->nelepeo=0;

      printf(“ntttt輸入成功!”);} p2->next=NULL;intoc();}

      void filec()//錄入鍵盤子函數(shù)(從文件錄入){ void intoc();

      FILE * fp;

      char filepath[20];

      struct couse *p1,*p2;

      N1=0;

      printf(“輸入要讀入的文件路徑:”);

      getchar();

      gets(filepath);

      if((fp=fopen(filepath,“r”))==NULL)

      {

      printf(“找不到%s文件!n”,filepath);

      exit(0);

      }

      p1=p2=(struct couse*)malloc(sizeof(struct couse));

      fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

      head1=NULL;

      while(!feof(fp))

      {

      N1=N1+1;

      if(N1==1)head1=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct couse *)malloc(sizeof(struct couse));

      fscanf(fp,“%d%s%d%d%d”,&p1->num1,p1->name1,&p1->score,&p1->nelepeo,&p1->Melepeo);

      }

      p2->next=NULL;

      intoc();}

      void inputc()//錄入課程主函數(shù) {

      int i;

      printf(“ttt錄入課程信息n”);

      printf(“n1.從鍵盤錄入n”);

      printf(“2.從文件錄入n”);

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

      printf(“請(qǐng)選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):keyboardc();break;

      case(2):filec();break;

      case(3):system(“cls”);return;break;

      //return

      } }

      void insertc(struct couse *incouse)//課程管理子函數(shù)(增加課程){ void intoc();

      struct couse *p0,*p1,*p2;

      p1=head1;

      p0=incouse;

      if(head1==NULL)

      {

      head1=p0;

      p0->next=NULL;

      }

      else

      {

      while((p0->num1 > p1->num1)&&(p1->next!=NULL))

      {

      p2=p1;

      p1=p1->next;

      }

      if(p0->num1 <= p1->num1)

      {

      if(head1==p1)head1=p0;

      else p2->next=p0;

      p0->next=p1;

      }

      else

      {

      p1->next=p0;

      p0->next=NULL;

      }

      }

      N1=N1+1;

      intoc();}

      void delc(int num1)//課程管理子函數(shù)(刪除課程){ void intoc();

      struct couse *p1,*p2;

      if(head1==NULL)

      {

      printf(“n沒有課程,無(wú)法刪除!n”);

      goto end;

      }

      p1=head1;

      while(num1!=p1->num1 && p1->next!=NULL)

      {

      p2=p1;

      p1=p1->next;

      }

      if(num1==p1->num1)

      {

      if(p1==head1)head1=p1->next;

      else p2->next=p1->next;

      printf(“已刪除該編號(hào)課程!n”);

      N1=N1-1;

      }

      else printf(“無(wú)該編號(hào)的課程!n”);

      end:;

      intoc();}

      void managementc()//課程管理主函數(shù) {

      struct couse * incouse;

      struct couse *p1;

      int i,num1;

      printf(“ttt課程管理n”);

      printf(“1.新增課程n”);

      printf(“2.刪除課程n”);

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

      printf(“請(qǐng)選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      incouse=(struct couse *)malloc(sizeof(struct couse));

      printf(“n課程編號(hào):”);

      fflush(stdin);

      scanf(“%d”,&p1->num1);

      printf(“n課程名稱:”);

      scanf(“%s”,p1->name1);

      printf(“n學(xué)分:”);

      scanf(“%d”,&p1->score);

      printf(“n課程人數(shù)上限:”);

      scanf(“%d” ,&p1->Melepeo);

      printf(“ntttt輸入成功!”);

      incouse->nelepeo=0;

      insertc(incouse);

      break;

      }

      case(2):

      {

      printf(“請(qǐng)輸入要?jiǎng)h除課程的編號(hào):n”);

      scanf(“%d”,&num1);

      delc(num1);

      break;

      }

      case(3):system(“cls”);return;break;

      } }

      void keyboards()//錄入學(xué)生信息子函數(shù)(從鍵盤錄入){

      void intos();

      int i;

      struct student *p1,*p2;

      N2=0;

      p1=p2=(struct student *)malloc(sizeof(struct student));

      printf(“n學(xué)生學(xué)號(hào):”);

      scanf(“%d”,&p1->num2);

      printf(“n學(xué)生姓名:”);

      scanf(“%s”,p1->name2);

      p1->nelen=0;

      for(i=0;i<50;i++)p1->nelenum[i]=0;

      head3=NULL;

      while(p1->num2!=0)

      {

      N2=N2+1;

      if(N2==1)head3=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct student *)malloc(sizeof(struct student));

      //return

      printf(“n學(xué)生學(xué)號(hào):(輸入0結(jié)束?。?;

      scanf(“%d”,&p1->num2);

      printf(“n學(xué)生姓名:”);

      scanf(“%s”,p1->name2);

      p1->nelen=0;

      for(i=0;i<50;i++)p1->nelenum[i]=0;

      }

      p2->next=NULL;

      intos();return;} void files()//錄入學(xué)生信息子函數(shù)(從文件錄入){

      int i=0;

      FILE * fp;

      char filepath[20];

      struct student *p1,*p2;

      N2=0;

      printf(“輸入要讀入的文件路徑:”);

      getchar();

      gets(filepath);

      if((fp=fopen(filepath,“r”))==NULL)

      {

      printf(“找不到%s文件!n”,filepath);

      exit(0);

      }

      p1=p2=(struct student*)malloc(sizeof(struct student));

      fread(p1,sizeof(struct student),1,fp);

      head3=NULL;

      while(!feof(fp))

      {

      i=0;

      N2=N2+1;

      if(N2==1)head3=p1;

      else p2->next=p1;

      p2=p1;

      p1=(struct student *)malloc(sizeof(struct student));

      fread(p1,sizeof(struct student),1,fp);

      }

      p2->next=NULL;}

      void inputs()//錄入學(xué)生信息主函數(shù) {

      int i;

      printf(“nttt錄入學(xué)生信息n”);

      printf(“n1.從鍵盤錄入n”);

      printf(“2.從文件錄入n”);

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

      printf(“請(qǐng)選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):keyboards();break;

      case(2):files();break;

      case(3):system(“cls”);return;break;

      }

      return 0;}

      void inserts(struct student * incouse)//學(xué)生信息管理子函數(shù)(填加學(xué)生信息){ void intos();

      struct student *p0,*p1,*p2;

      p1=head3;

      p0=incouse;

      if(head3==NULL)

      {

      head3=p0;

      p0->next=NULL;

      }

      else

      {

      while((p0->num2 > p1->num2)&&(p1->next!=NULL))

      {

      p2=p1;

      p1=p1->next;

      }

      if(p0->num2 <= p1->num2)

      {

      if(head3==p1)head3=p0;

      else p2->next=p0;

      p0->next=p1;

      }

      else

      {

      //return

      p1->next=p0;

      p0->next=NULL;

      }

      }

      N2=N2+1;

      intos();}

      void dels(int num2)//學(xué)生信息管理子函數(shù)(刪除學(xué)生信息){ void intos();

      struct student *p1,*p2;

      if(head3==NULL)

      {

      printf(“n沒有該學(xué)生信息,無(wú)法刪除!n”);

      goto end;

      }

      p1=head3;

      while(num2!=p1->num2 && p1->next!=NULL)

      {

      p2=p1;

      p1=p1->next;

      }

      if(num2==p1->num2)

      {

      if(p1==head3)head3=p1->next;

      else p2->next=p1->next;

      printf(“已刪除該學(xué)生信息!n”);

      N2=N2-1;

      }

      else printf(“無(wú)該學(xué)號(hào)的學(xué)生!n”);

      intos();

      end:;}

      void managements()//學(xué)生信息管理主函數(shù) {

      struct student * incouse;

      int i,num2;

      printf(“ttt學(xué)生信息管理n”);

      printf(“1.新增學(xué)生信息n”);

      printf(“2.刪除學(xué)生信息n”);

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

      printf(“請(qǐng)選擇(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      incouse=(struct student *)malloc(sizeof(struct student));

      incouse->nelen=0;

      incouse->nelenum[0]=0;

      printf(“學(xué)生學(xué)號(hào)t學(xué)生姓名n”);

      scanf(“%d%s”,&incouse->num2,incouse->name2);

      inserts(incouse);

      break;

      }

      case(2):

      {

      printf(“請(qǐng)輸入要?jiǎng)h除學(xué)生的學(xué)號(hào):n”);

      scanf(“%d”,&num2);

      dels(num2);

      break;

      }

      case(3):system(“cls”);return;break;

      //return

      } }

      void elect(struct student * s)//選課 {

      void intos();

      struct couse * p;

      int num1,i;

      printf(“請(qǐng)輸入要選課的編號(hào):n”);

      scanf(“%d”,&num1);

      for(i=0;s->nelenum[i]!=0;i++);

      s->nelenum[i]=num1;

      (s->nelen)++;

      p=head1;

      while(p->num1!=num1)p=p->next;

      (p->nelepeo)++;

      intos();} void cheak()//學(xué)生選課子函數(shù)(查詢可選課程){

      char e;

      struct couse * c;

      struct student * s;

      int num2,i,j=0,t=0;

      printf(“請(qǐng)輸入你的學(xué)號(hào):”);

      scanf(“%d”,&num2);

      s=head3;

      while((s->num2!=num2)&&(s->next!=NULL))s=s->next;

      if(s->num2!=num2)

      {

      printf(“不存在你的信息,請(qǐng)進(jìn)入主菜單錄入你的信息!n”);

      goto end;

      }

      c=head1;

      printf(“你的可選課程編號(hào):n”);

      while(c!=NULL)

      {

      for(t=0,i=0;s->nelenum[i]!=0;i++)

      {

      if(c->num1==s->nelenum[i])t=1;

      }

      if(t==0 &&(c->nelepeo!=c->Melepeo))

      {

      printf(“%dn”,c->num1);

      j++;

      }

      c=c->next;

      }

      if(j==0)

      {

      printf(“你已選完所有課程,無(wú)法再多選!n”);

      goto end;

      }

      printf(“選課(y/n)?:n”);

      getchar();

      e=getchar();

      i=0;

      while((e=='y')||(e=='Y'))

      {

      elect(s);

      printf(“繼續(xù)選課(y/n)?:n”);

      getchar();

      e=getchar();

      }

      end:;} void back(struct student * p)//退課 {

      void intos();

      struct couse * p1;

      int num1,i,j;

      printf(“請(qǐng)輸入你要退掉的課程編號(hào):n”);

      scanf(“%d”,&num1);

      p1=head1;

      while(p1->num1!=num1)p1=p1->next;

      for(i=0;p->nelenum[i]!=num1;i++);

      for(j=i;p->nelenum[j]!=0;j++)p->nelenum[j]=p->nelenum[j+1];

      p->nelenum[--j]=0;

      (p1->nelepeo)--;

      printf(“退課成功!n”);

      intos();} void hcheak()//學(xué)生選課子函數(shù)(查詢已選課程){

      char c;

      struct couse * p0;

      struct student * p;

      int num2,i,f=0;

      printf(“請(qǐng)輸入學(xué)號(hào):n”);

      scanf(“%d”,&num2);

      p=head3;

      while(p->num2!=num2 && p!=NULL)p=p->next;

      if(p==NULL)

      {

      printf(“不存在你的信息,請(qǐng)回主菜單錄入信息:n”);

      goto end;

      }

      printf(“已選課程編號(hào):n”);

      if(p->nelenum[0]==0)

      {

      printf(“你還沒選課!n”);

      goto end;

      }

      for(i=0;p->nelenum[i]!=0;i++)

      {

      printf(“%dn”,p->nelenum[i]);

      p0=head1;

      while(p0->num1!=p->nelenum[i])p0=p0->next;

      f=f+p0->score;

      }

      printf(“總學(xué)分:%dn”,f);

      printf(“是否進(jìn)行退課(y/n)?”);

      getchar();

      c=getchar();

      while((c=='y')||(c=='Y'))

      {

      back(p);

      printf(“繼續(xù)退課(y/n)?”);

      getchar();

      c=getchar();

      (p->nelen)--;

      }

      end:;} void elective()//學(xué)生選課主函數(shù) {

      int i;

      printf(“ttt學(xué)生選課n”);

      printf(“1.查詢可選課程n”);

      printf(“2.查詢已選課程n”);

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

      printf(“請(qǐng)輸入(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):cheak();break;

      case(2):hcheak();break;

      case(3): system(“cls”);return;break;

      // return

      } } void listc()//輸出課程信息 {

      struct couse * p;

      p=head1;

      printf(“課程編號(hào)

      課程名稱

      學(xué)分

      課程已選人數(shù)

      課程人數(shù)上限n”);

      while(p!=NULL)

      {

      printf(“%-8d%10s%6d%8d%12dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

      p=p->next;

      } }

      void lists()//輸出學(xué)生信息 {

      struct student * p;

      p=head3;

      printf(“學(xué)生學(xué)號(hào)

      學(xué)生姓名

      已選課程數(shù)量n”);

      while(p!=NULL)

      {

      printf(“%-4d %10s %6dn”,p->num2,p->name2,p->nelen);

      p=p->next;

      } } void intoc()//存儲(chǔ)課程信息 {

      FILE * fp;

      struct couse * p;

      char filepath[30];

      if((fp=fopen(“課程信息.dat”,“a+”))==NULL)

      {

      printf(“n保存失敗!”);

      exit(0);

      }

      p=head1;

      while(p!=NULL)

      {

      fprintf(fp,“%d %s %d %d %dn”,p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);

      p=p->next;

      }

      fclose(fp);

      printf(“課程信息已保存成功!n”);} void intos()//存儲(chǔ)學(xué)生信息 { int i;

      FILE * fp;

      struct student * p;

      char filepath[30];

      if((fp=fopen(“學(xué)生信息.dat”,“a+”))==NULL)

      {

      printf(“n保存失敗!”);

      exit(0);

      }

      p=head3;

      while(p!=NULL)

      {

      fwrite(p,sizeof(struct student),1,fp);

      p=p->next;

      }

      fclose(fp);

      printf(“學(xué)生信息已保存成功!n”);

      printf(“ntttt選擇菜單:”);

      printf(“ntttt1.繼續(xù)添加ntttt2.返回主菜單:”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:inputs();break;

      case 2:teacher();break;

      default:printf(“n輸入有誤!n”);} }

      void store()//信息主函數(shù) {

      int i;

      printf(“tt系統(tǒng)信息查看及存儲(chǔ)n”);

      printf(“1.查看課程信息n”);

      printf(“2.查看學(xué)生信息n”);

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

      printf(“請(qǐng)輸入(1~3):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):listc();break;

      case(2):lists();break;

      case(3):system(“cls”);return;break;

      } }

      int main()//主函數(shù)

      //retuen

      {

      int i;

      FILE *fp;

      printf(“nttt歡迎使用學(xué)生選課系統(tǒng)!n”);

      printf(“n請(qǐng)選擇菜單:”);

      printf(“ntttt1.教師登陸ntttt2.學(xué)生登陸n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:teacher();break;

      case 2:student();break;

      default:printf(“輸入有誤!”);

      } }

      int student()

      {

      int i;

      printf(“ntttt1.學(xué)生選課n”);

      printf(“ntttt2.系統(tǒng)信息查看及存儲(chǔ)n”);

      printf(“ntttt3.退出系統(tǒng)n”);

      printf(“請(qǐng)選擇:”);

      scanf(“%d”,&i);

      switch(i)

      {

      case 1:

      {

      system(“cls”);

      elective();

      break;

      }

      case 2:

      {

      system(“cls”);

      store();

      break;

      }

      default:printf(“輸入有誤!”);

      }

      }

      int teacher()

      {

      FILE *fp;

      int i;

      printf(“菜單:n”);

      printf(“1.錄入課程信息n”);

      printf(“2.課程管理n”);

      printf(“3.錄入學(xué)生信息n”);

      printf(“4.學(xué)生信息管理n”);

      printf(“5.系統(tǒng)信息查看n”);

      printf(“6.退出系統(tǒng)n”);

      if((fp=fopen(“課程信息.dat”,“rb”))==NULL)

      {

      printf(“n打開系統(tǒng)文件失??!

      n”);

      //fp=fopen(“信息.dat”,“rb”));

      // }

      // if(feof(fp))

      // {

      printf(“n還未添加課程信息,請(qǐng)?zhí)砑诱n程信息!n”);

      inputc();

      }

      while(!feof(fp))

      {

      emp1=(struct couse*)malloc(sizeof(struct couse));

      if(emp1==NULL)

      {

      printf(“n分配內(nèi)存失敗!n”);

      return;

      }

      fread(emp1,sizeof(struct couse),1,fp);

      if(feof(fp))break;

      if(head1==NULL)

      {

      head1=emp1;

      head2=emp1;

      }

      else{

      head2->next=emp1;

      head2=emp1;

      }

      head2->next=NULL;

      }

      fclose(fp);

      fp==NULL;

      if((fp=fopen(“學(xué)生信息.dat”,“rb”))==NULL)

      printf(“n打開系統(tǒng)文件失??!n”);

      //

      //if(feof(fp)==1)

      // {

      printf(“還未添加學(xué)生信息,請(qǐng)?zhí)砑訉W(xué)生信息!”);

      inputs();

      while(!feof(fp))

      {

      emp1=(struct student*)malloc(sizeof(struct student));

      if(emp2==NULL)

      {

      printf(“n分配內(nèi)存失??!n”);

      return;

      }

      fread(emp2,sizeof(struct student),1,fp);

      if(feof(fp))break;

      if(head3==NULL)

      {

      head3=emp2;

      head4=emp2;

      }

      else{

      head4->next=emp2;

      head4=emp2;

      }

      head4->next=NULL;

      }

      fclose(fp);

      fp==NULL;

      printf(“n請(qǐng)輸入菜單選項(xiàng)(1~6):n”);

      scanf(“%d”,&i);

      switch(i)

      {

      case(1):

      {

      system(“cls”);

      inputc();

      break;

      }

      case(2):

      {

      system(“cls”);

      managementc();

      break;

      }

      case(3):

      {

      system(“cls”);

      inputs();

      break;

      }

      case(4):

      {

      system(“cls”);

      managements();

      break;

      }

      case(5):

      {

      system(“cls”);

      store();

      break;

      }

      case(6):

      {

      system(“cls”);

      printf(“感謝使用本系統(tǒng)!nn再見!n”);

      }

      }

      return 1;

      }

      下載2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求word格式文檔
      下載2014_12_C語(yǔ)言課程設(shè)計(jì)內(nèi)容和要求.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        C語(yǔ)言課程設(shè)計(jì)

        - 1 1 前言 讓自己所學(xué)的知識(shí)應(yīng)用于實(shí)際生活中,理論聯(lián)系生活,學(xué)以致用,我們將更好服務(wù)于民。我們是新一代的年輕人,要想將來(lái)在社會(huì)上更好的立足,就必須讓自己強(qiáng)大起來(lái),努力的學(xué)習(xí)......

        C語(yǔ)言課程設(shè)計(jì)報(bào)告要求及2012-2013(推薦閱讀)

        C語(yǔ)言課程設(shè)計(jì)報(bào)告撰寫要求(一)紙張與頁(yè)面要求 1.采用國(guó)際標(biāo)準(zhǔn)A4打印紙,縱向打印。 2.封頁(yè)和頁(yè)面按照下面模板書寫(正文為:小四宋體1.5倍行距)。 3.圖表及圖表標(biāo)題按照模板中的表示書......

        C語(yǔ)言課程設(shè)計(jì)報(bào)告

        C語(yǔ)言課程設(shè)計(jì)報(bào)告 班級(jí): 10電子本1 學(xué)號(hào): 10303033122 姓名: 指導(dǎo)老師: 方文森完成日期: 溫州大學(xué)城市學(xué)院課程設(shè)計(jì) 目 錄 1、課程設(shè)計(jì)目的和要求 ............................

        c語(yǔ)言課程設(shè)計(jì)總結(jié)

        c語(yǔ)言課程設(shè)計(jì)總結(jié)5篇c語(yǔ)言課程設(shè)計(jì)總結(jié)(一):c語(yǔ)言課程設(shè)計(jì)總結(jié)心得經(jīng)過一個(gè)學(xué)期的學(xué)習(xí),我對(duì)C語(yǔ)言有了必須的了解。C語(yǔ)言是學(xué)習(xí)計(jì)算機(jī)科學(xué)的基礎(chǔ),作為一名計(jì)算機(jī)專業(yè)學(xué)生,掌握C語(yǔ)......

        《C語(yǔ)言》課程設(shè)計(jì)教學(xué)大綱

        荊楚理工學(xué)院 《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)教學(xué)大綱 一、 課程名稱: C語(yǔ)言程序設(shè)計(jì) 二、 課程代碼: Z04013 三、 課程管理: 計(jì)算機(jī)工程學(xué)院(部)計(jì)算機(jī)應(yīng)用教研室 四、 教學(xué)對(duì)象:......

        C語(yǔ)言課程設(shè)計(jì)任務(wù)書

        《C語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì) 任務(wù)書及指導(dǎo)書 自動(dòng)化學(xué)院 2011年 C語(yǔ)言課程設(shè)計(jì)任務(wù)書及指導(dǎo)書1 題目:學(xué)院教學(xué)信息管理系統(tǒng) 功能:學(xué)院教學(xué)信息管理系統(tǒng),每一條記錄包括教師的......

        C語(yǔ)言課程設(shè)計(jì)選題

        C語(yǔ)言課程設(shè)計(jì)選題 題一、《學(xué)生成績(jī)管理系統(tǒng)》 1、 寫一個(gè)“學(xué)生成績(jī)管理”程序,要求程序如下功能: (1) 成績(jī)錄入,(2)成績(jī)修改(按學(xué)號(hào)修改),(3)成績(jī)查詢(至少提供按學(xué)號(hào)、按姓名、按班......

        C語(yǔ)言課程設(shè)計(jì)(推薦5篇)

        一、 題目的分析和程序說(shuō)明: 第一個(gè)問題是對(duì)學(xué)生成績(jī)的管理。關(guān)于學(xué)生的一些信息和科目的學(xué)分應(yīng)該建成結(jié)構(gòu)體,處理起來(lái)方便!因?yàn)槠渲幸幚?0個(gè)學(xué)生,5門科目,所以多次用到FOR的雙......