第一篇:C++語言課程設(shè)計題目
《C++語言課程設(shè)計》題目
課程大綱:
一、教學(xué)目標(biāo)和基本要求
本課程全面系統(tǒng)的學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計的基本概念,基本語法和編程方法。正確理解掌握C++面向?qū)ο蟪绦蛟O(shè)計的基本特性:類,對象,繼承與派生,多態(tài),虛函數(shù),模板,流類庫等。遵循軟件過程的各個環(huán)節(jié)進(jìn)行系統(tǒng)分析、設(shè)計、實現(xiàn)、集成、測試,了解當(dāng)前常用的軟件開發(fā)工具(Visual C++),培養(yǎng)學(xué)生解決實際問題的能力。
二、組織方式
結(jié)合具體的實踐項目,以分組的形式(4-5人一組)開展程序設(shè)計的上機(jī)實踐。
三、考核方式及辦法:
完成包括從概要設(shè)計、詳細(xì)設(shè)計、代碼編寫、程序調(diào)試、運行在內(nèi)的一系列程序設(shè)計及文檔撰寫,要求系統(tǒng)調(diào)試成功、可正常運行,文檔規(guī)范完整。
四、時間安排:
期末考試前最后一次課學(xué)生PPT講解。
五、實踐教學(xué)中應(yīng)注意的問題
1.組織管理的要求:4-5人一組,要求發(fā)揮團(tuán)隊合作精神,分工協(xié)助。2.對學(xué)生的要求:與小組同學(xué)分工合作,認(rèn)真完成系統(tǒng)設(shè)計、編寫代碼、程序調(diào)試及文檔撰寫。3.學(xué)生采用PPT講解。
C++語言課程設(shè)計任務(wù)書1 題目:學(xué)院教學(xué)信息管理系統(tǒng)
功能:學(xué)院教學(xué)信息管理系統(tǒng),每一條記錄包括一位教師的職工號、姓名、職稱、性別、3門課程,教學(xué)效果綜合評分。系統(tǒng)要求實現(xiàn)以下功能:
1、輸入:輸入每一位教師記錄,將其信息寫入文件中。
2、顯示:顯示每位教師記錄。
3、排序:按職工號或教學(xué)效果綜合評分進(jìn)行排序,并顯示。
4、查找:完成按姓名或課程查找教師的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位教師的相關(guān)(教學(xué))信息寫入文件中并能顯示于屏幕上。
3、完成排序(按職工號、姓名、職稱等)、查找等功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)教師信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃
第 1 頁
《C++語言課程設(shè)計》題目
分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書2 題目:酒店房間登記與計費管理系統(tǒng)
功能:
1、屏幕上出現(xiàn)一個界面,讓操作員能夠方便的選擇所需要進(jìn)行的操作,包括登記入住、查詢房間的入住情況、查詢當(dāng)前費用、結(jié)賬退房等操作。
2、對不同標(biāo)準(zhǔn)的房間實施不同的收費標(biāo)準(zhǔn),也可以按天收費或按小時收費,可根據(jù)顧客需要在登記的入住的時候進(jìn)行選擇。
3、在結(jié)賬退房時,根據(jù)入住的時間,計費方式和房間單價計算出總費用。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立房間列表,完成登記入住、查詢房間入住情況功能。
3、進(jìn)一步要求:完成計費和費用查詢功能。要求:
1、用C++語言實現(xiàn)系統(tǒng);
2、系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn);
3、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書3 題目:學(xué)生成績管理系統(tǒng)
功能:學(xué)生成績管理系統(tǒng),每個學(xué)生是一個記錄,包括學(xué)號,姓名,性別,3門課程成績。系統(tǒng)
要求實現(xiàn)以下功能:
1、信息錄入:錄入學(xué)生成績信息(包括學(xué)生學(xué)號、姓名、各門課程的成績等);
2、信息查詢:輸入學(xué)號,查詢學(xué)生各門課程的成績,并顯示。
3、排序:按各門課程的成績平均分進(jìn)行排序,并顯示。
4、信息刪除與修改——輸入學(xué)號,刪除該學(xué)生的成績信息。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位學(xué)生的信息寫入文件中并能顯示于屏幕上。
3、完成上述信息查詢(學(xué)生學(xué)號、姓名等)、排序、信息刪除與修改功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書4
第 2 頁
《C++語言課程設(shè)計》題目
題目:職工檔案管理系統(tǒng)設(shè)計
功能:職工檔案管理系統(tǒng)設(shè)計,每個職工是一條記錄,包括編號,姓名,性別,出生年月,所在
部門,職稱,工資級別、電話等。系統(tǒng)可實現(xiàn)以下功能:
1、輸入功能:輸入每一位職工記錄,將其信息存入文件中。
2、顯示功能:完成全部職工記錄的顯示。
3、查找功能:完成按編號或姓名查找職工的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位職工的信息寫入文件中并能顯示于屏幕上。
3、完成上述查找(編號,姓名,性別等)、修改等功能。
4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)職工信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書5 題目:學(xué)生管理系統(tǒng)設(shè)計
功能:學(xué)生管理系統(tǒng)設(shè)計,每個學(xué)生是一條記錄,包括姓名、學(xué)號、性別、出生年月、專業(yè)、班級、家庭地址、宿舍號碼等。系統(tǒng)要求實現(xiàn)以下功能:
1、輸入功能:錄入學(xué)生信息(包括學(xué)生學(xué)號、姓名、性別、出生年月、專業(yè)等);
2、顯示功能:完成學(xué)生記錄的顯示。
3、查找功能:完成按學(xué)號或姓名查找學(xué)生的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位學(xué)生的信息寫入文件中(人數(shù)利用宏定義設(shè)定)并能顯示于屏幕上。
3、完成上述顯示、查找(姓名,性別等)、修改等功能。
4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書6
題目:銀行存取款管理設(shè)計
第 3 頁
《C++語言課程設(shè)計》題目
功能:能夠輸入和查詢客戶存款取款記錄。在客戶文件中,每個客戶是一條記錄,包括編號、客戶姓名、支取密碼、客戶地址、客戶電話、賬戶總金額;在存取款文件中,每次存取款是一條記錄,包括編號、日期、類別、存取數(shù)目、經(jīng)辦人。類別分為取款和存款兩種。本系統(tǒng)能夠輸入客戶存款或取款記錄;根據(jù)客戶姓名查詢存款和取款記錄。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,輸入客戶的必要信息,能對文件進(jìn)行顯示、輸入、修訂、刪除等。
3、進(jìn)一步要求:完成客戶姓名查詢存款和取款記錄,并能得到每次帳戶總金額。要求:
1、用C++語言實現(xiàn)系統(tǒng);
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書7 題目:院職工工資管理系統(tǒng)設(shè)計
功能:院職工工資管理系統(tǒng)應(yīng)包含職工的全部信息。每個職工是一條記錄,包括姓名、性別、出生年月、年齡、婚姻狀況、家庭住址、職稱、工資級別情況等。本系統(tǒng)重點進(jìn)行工資管理,系統(tǒng)登陸后可計算職工工資總額和平均工資,可按工資進(jìn)行排序,并能夠找出工資級別相同的職工名單。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,將每位職工的信息寫入文件中并能顯示于屏幕上。
3、計算職工工資總額和平均工資,可按工資進(jìn)行排序,并能夠找出工資級別相同的職工名單。
要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)職工信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書8 題目:通訊錄管理系統(tǒng)
功能:錄入聯(lián)系人信息(包括姓名、電話號碼、地址、備注等);通訊錄管理系統(tǒng)要求實現(xiàn)以下功能:
1、輸入每一位聯(lián)系人記錄,將其信息存入文件中。
2、查詢所有聯(lián)系人的信息,并按可選的自定義規(guī)則進(jìn)行排序;
3、記錄修改,將修改的記錄信息保存于文件中。分步實施:
第 4 頁
《C++語言課程設(shè)計》題目
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上。
3、完成上述查詢(姓名、電話號碼等)、信息刪除與修改功能。
4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)聯(lián)系人信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書9
題目:計算機(jī)輔助教學(xué)(CAI)軟件開發(fā):教小學(xué)生學(xué)算術(shù)。
功能:可做個位數(shù),十位數(shù)的加,減,乘和除,減法不能得負(fù)數(shù),除法要除盡,屏幕上隨機(jī)出現(xiàn)兩個數(shù),提示小學(xué)生給出答案,答錯了要提示重新輸入,直到答對為止。要統(tǒng)計給分,且累計,夠一定分?jǐn)?shù)后可進(jìn)級,即從個位進(jìn)到十位。同樣,也可降級。
(rand(),#include
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成基本要求:能答對個位數(shù)的加法和減法,并有統(tǒng)計功能,即一次答對的成功率為
90%上后可晉級,做十位數(shù)的加減;
3、進(jìn)一步要求:完成乘法和除法的學(xué)習(xí),也有晉級功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
3、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書10
題目:學(xué)生考勤系統(tǒng)設(shè)計
功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。每個學(xué)生是一條記錄,包括姓名、性別、學(xué)號、出勤情況等。本系統(tǒng)可模擬考勤過程,記錄考勤結(jié)果,并能夠在課程結(jié)束后按照設(shè)定的考勤評分標(biāo)準(zhǔn)自動給出每個學(xué)生的考勤分?jǐn)?shù)。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上
3、完成上述添加(出勤情況)、查找(學(xué)號,姓名,性別等)、修改等功能。
4、進(jìn)一步要求:自動給出每個學(xué)生的考勤分?jǐn)?shù) 要求:
1、用C++語言實現(xiàn)程序設(shè)計;
第 5 頁
《C++語言課程設(shè)計》題目
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書11 題目:學(xué)生選修課程系統(tǒng)設(shè)計
功能:假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機(jī)學(xué)時,學(xué)分,開課學(xué)期等信息。試設(shè)計一選修課程系統(tǒng)。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上
3、完成上述添加、查找(課程編號、課程名稱、課程性質(zhì)等)、修改等功能。
4、進(jìn)一步要求:學(xué)生選修課程(可選項)要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書12
題目:商品訂購系統(tǒng)設(shè)計。
功能:屏幕上出現(xiàn)一個界面,讓顧客或輸入商品名稱,或商品型號,或選擇列表進(jìn)而輸入商品編號都可以,如查到所選商品,則列出商品編號、商品名稱、商品型號、商品價格、商品產(chǎn)地、庫存數(shù)量和已訂購數(shù)量;然后給出選購流程:所選商品編號—列出對應(yīng)商品的信息—要求顧客輸入郵寄地址信息—確認(rèn)訂購,是否繼續(xù)選購其它商品,列出所有選訂商品,再次確認(rèn)訂購。建立兩個文件,分別存放商品信息與訂購信息。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立一個小系統(tǒng),包括10種產(chǎn)品能供顧客選擇。
3、進(jìn)一步要求:完成全部功能的系統(tǒng)。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
第 6 頁
《C++語言課程設(shè)計》題目
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書13 題目:設(shè)備管理系統(tǒng)設(shè)計
功能:設(shè)備管理系統(tǒng)應(yīng)包含各種設(shè)備的全部信息,每臺設(shè)備為一條記錄(同一時間同一部門購買的若干臺相同設(shè)備可作為1條記錄),包括設(shè)備號、設(shè)備名稱、領(lǐng)用人、所屬部門、數(shù)量、購買時間、價格等。能夠顯示和統(tǒng)計各種設(shè)備的信息。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上
3、能對文件進(jìn)行補充、修訂、刪除,能統(tǒng)計所有設(shè)備的總價值。
4、進(jìn)一步要求:完成設(shè)備按種類、按所屬部門進(jìn)行統(tǒng)計。
要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書14
題目:學(xué)生計算機(jī)機(jī)房管理系統(tǒng)設(shè)計
功能:該計算機(jī)房共有100臺計算機(jī),分為20排,每排50臺。管理系統(tǒng)應(yīng)包含每臺計算機(jī)一周內(nèi)的使用全部信息,包括計算機(jī)序號、配置、位置、狀態(tài)、使用情況的歷史記錄(包括使用者姓名、學(xué)號、使用時間段)等。本系統(tǒng)可以模擬學(xué)生上機(jī)和離開的登記過程,查詢機(jī)房計算機(jī)的使用情況。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、建立一個文件,將相關(guān)的信息寫入文件中并能顯示于屏幕上;
3、能實現(xiàn)學(xué)生上機(jī)的登記過程模擬;
4、進(jìn)一步要求:查詢機(jī)房計算機(jī)的使用情況。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
第 7 頁
《C++語言課程設(shè)計》題目
C++語言課程設(shè)計任務(wù)書15 題目:商店銷售管理系統(tǒng)。
功能:屏幕上出現(xiàn)一個界面,讓售貨員輸入商品編號或者商品名稱,可以進(jìn)貨,進(jìn)貨后商品庫存同時增加。顧客買走商品后,售貨員輸入商品編號或者商品名稱,可以生成銷售清單,統(tǒng)計本次銷售總的價錢,同時庫存數(shù)量相應(yīng)減少。完成前面的基本功能后,還可以完成增加新的商品或刪除不需要的商品的功能,以及每天銷售統(tǒng)計功能等。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、建立一個文件,將相關(guān)的信息寫入文件中并能顯示于屏幕上;
3、能按商品編號進(jìn)貨和銷售;
4、進(jìn)一步要求:完成增加新的商品或刪除不需要的商品的功能,以及每天銷售統(tǒng)計
功能等。
要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書16
題目:計算機(jī)輔助教學(xué)(CAI)軟件開發(fā):教小學(xué)生學(xué)英語。
功能:屏幕上隨機(jī)出現(xiàn)一個漢語單詞,英語單詞,漢語詞組,英語詞組或一短句提示小學(xué)生給出相應(yīng)答案,答錯了要提示要求重新輸入,直到答對為止。要統(tǒng)計給分,且累計,夠一定分?jǐn)?shù)后可進(jìn)級,即從單詞到詞組,從詞組到短句。同樣,也可降級。起步階段可各選30個,軟件可擴(kuò)充,即擴(kuò)大詞庫的容量。
(rand(),#include
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:能教單詞,并有統(tǒng)計功能,即一次答對的成功率為90%以上后可晉級;
3、進(jìn)一步要求:完成詞組和短語的問答,也有晉級功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書17
第 8 頁
《C++語言課程設(shè)計》題目
題目:飛機(jī)訂票系統(tǒng)設(shè)計
功能:本飛機(jī)共有80個坐位,分20排,每排4個位子。編號為A,B,C,D。如10D表示10排D座。A和D靠窗,19到20排為吸煙區(qū)。本系統(tǒng)可讓乘客自己選座號和區(qū)域,直到乘客滿意為止,無法滿足的話,只能改乘另一個航班。定上票的乘客需給出姓名和身份證號,最后要打印出乘客清單。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立一個小系統(tǒng),包括5排座位,兩個區(qū)域,能供乘客選擇;
3、進(jìn)一步要求:完成全部功能的系統(tǒng)。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書18
題目:高速公路計費系統(tǒng)設(shè)計
功能:在某高速公路出口收費處,對三種類型的車輛計費,大型車每公里0。5元,中型車每公里0.4元,小型車每公里0.3元,來車驗條,乘公里數(shù)即得該收的款項。在交班時要統(tǒng)計出總數(shù)。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立一個只有三個入口的計費系統(tǒng),并能進(jìn)行統(tǒng)計計算,打印出報表;
3、進(jìn)一步要求:完成任意多個入口的通用系統(tǒng)。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
第 9 頁
第二篇:C++語言課程設(shè)計題目—2011年下半年
《C++語言課程設(shè)計》題目
課程大綱:
一、教學(xué)目標(biāo)和基本要求
本課程全面系統(tǒng)的學(xué)習(xí)面向?qū)ο蟪绦蛟O(shè)計的基本概念,基本語法和編程方法。正確理解掌握C++面向?qū)ο蟪绦蛟O(shè)計的基本特性:類,對象,繼承與派生,多態(tài),虛函數(shù),模板,流類庫等。遵循軟件過程的各個環(huán)節(jié)進(jìn)行系統(tǒng)分析、設(shè)計、實現(xiàn)、集成、測試,并相應(yīng)給出軟件規(guī)格說明書等制品,了解當(dāng)前常用的軟件開發(fā)工具(Visual C++),培養(yǎng)解決實際問題的能力。
二、組織方式
結(jié)合具體的實踐項目,以分組的形式(4-5人一組)開展程序設(shè)計的上機(jī)實踐。
三、考核方式及辦法:
完成包括從概要設(shè)計、詳細(xì)設(shè)計、代碼編寫、程序調(diào)試、運行在內(nèi)的一系列程序設(shè)計及文檔撰寫,要求系統(tǒng)調(diào)試成功、可正常運行,文檔規(guī)范完整。
四、時間安排:
期末考試前最后一次課學(xué)生PPT講解。
五、實踐教學(xué)中應(yīng)注意的問題
1.組織管理的要求:4-5人一組,要求發(fā)揮團(tuán)隊合作精神,分工協(xié)助。2.對學(xué)生的要求:與小組同學(xué)分工合作,認(rèn)真完成系統(tǒng)設(shè)計、編寫代碼、程序調(diào)試及文檔撰寫。3.學(xué)生采用PPT講解。
C++語言課程設(shè)計任務(wù)書1 題目:學(xué)院教學(xué)信息管理系統(tǒng)
功能:學(xué)院教學(xué)信息管理系統(tǒng),每一條記錄包括一位教師的職工號、姓名、職稱、性別、3門課程,教學(xué)效果綜合評分。系統(tǒng)要求實現(xiàn)以下功能:
1、輸入:輸入每一位教師記錄,將其信息寫入文件中。
2、顯示:顯示每位教師記錄。
3、排序:按職工號或教學(xué)效果綜合評分進(jìn)行排序,并顯示。
4、查找:完成按姓名或課程查找教師的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位教師的相關(guān)(教學(xué))信息寫入文件中并能顯示于屏幕上。
3、完成排序(按職工號、姓名、職稱等)、查找等功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)教師信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃
《C++語言課程設(shè)計》題目
分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書2 題目:酒店房間登記與計費管理系統(tǒng)
功能:
1、屏幕上出現(xiàn)一個界面,讓操作員能夠方便的選擇所需要進(jìn)行的操作,包括登記入住、查詢房間的入住情況、查詢當(dāng)前費用、結(jié)賬退房等操作。
2、對不同標(biāo)準(zhǔn)的房間實施不同的收費標(biāo)準(zhǔn),也可以按天收費或按小時收費,可根據(jù)顧客需要在登記的入住的時候進(jìn)行選擇。
3、在結(jié)賬退房時,根據(jù)入住的時間,計費方式和房間單價計算出總費用。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立房間列表,完成登記入住、查詢房間入住情況功能。
3、進(jìn)一步要求:完成計費和費用查詢功能。要求:
1、用C++語言實現(xiàn)系統(tǒng);
2、系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn);
3、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書3 題目:學(xué)生成績管理系統(tǒng)
功能:學(xué)生成績管理系統(tǒng),每個學(xué)生是一個記錄,包括學(xué)號,姓名,性別,3門課程成績。系統(tǒng)
要求實現(xiàn)以下功能:
1、信息錄入:錄入學(xué)生成績信息(包括學(xué)生學(xué)號、姓名、各門課程的成績等);
2、信息查詢:輸入學(xué)號,查詢學(xué)生各門課程的成績,并顯示。
3、排序:按各門課程的成績平均分進(jìn)行排序,并顯示。
4、信息刪除與修改——輸入學(xué)號,刪除該學(xué)生的成績信息。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位學(xué)生的信息寫入文件中并能顯示于屏幕上。
3、完成上述信息查詢(學(xué)生學(xué)號、姓名等)、排序、信息刪除與修改功能。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書4
《C++語言課程設(shè)計》題目
題目:職工檔案管理系統(tǒng)設(shè)計
功能:職工檔案管理系統(tǒng)設(shè)計,每個職工是一條記錄,包括編號,姓名,性別,出生年月,所在
部門,職稱,工資級別、電話等。系統(tǒng)可實現(xiàn)以下功能:
1、輸入功能:輸入每一位職工記錄,將其信息存入文件中。
2、顯示功能:完成全部職工記錄的顯示。
3、查找功能:完成按編號或姓名查找職工的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位職工的信息寫入文件中并能顯示于屏幕上。
3、完成上述查找(編號,姓名,性別等)、修改等功能。
4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)職工信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書5 題目:學(xué)生管理系統(tǒng)設(shè)計
功能:學(xué)生管理系統(tǒng)設(shè)計,每個學(xué)生是一條記錄,包括姓名、學(xué)號、性別、出生年月、專業(yè)、班級、家庭地址、宿舍號碼等。系統(tǒng)要求實現(xiàn)以下功能:
1、輸入功能:錄入學(xué)生信息(包括學(xué)生學(xué)號、姓名、性別、出生年月、專業(yè)等);
2、顯示功能:完成學(xué)生記錄的顯示。
3、查找功能:完成按學(xué)號或姓名查找學(xué)生的相關(guān)記錄,并顯示。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù)。
2、建立一個文件,將每位學(xué)生的信息寫入文件中(人數(shù)利用宏定義設(shè)定)并能顯示于屏幕上。
3、完成上述顯示、查找(姓名,性別等)、修改等功能。
4、進(jìn)一步要求,修改記錄設(shè)置密碼操作。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書6
題目:銀行存取款管理設(shè)計
《C++語言課程設(shè)計》題目
功能:能夠輸入和查詢客戶存款取款記錄。在客戶文件中,每個客戶是一條記錄,包括編號、客戶姓名、支取密碼、客戶地址、客戶電話、賬戶總金額;在存取款文件中,每次存取款是一條記錄,包括編號、日期、類別、存取數(shù)目、經(jīng)辦人。類別分為取款和存款兩種。本系統(tǒng)能夠輸入客戶存款或取款記錄;根據(jù)客戶姓名查詢存款和取款記錄。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,輸入客戶的必要信息,能對文件進(jìn)行顯示、輸入、修訂、刪除等。
3、進(jìn)一步要求:完成客戶姓名查詢存款和取款記錄,并能得到每次帳戶總金額。要求:
1、用C++語言實現(xiàn)系統(tǒng);
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書7
題目:學(xué)生考勤系統(tǒng)設(shè)計
功能:學(xué)生考勤系統(tǒng)應(yīng)包含各班學(xué)生的全部信息。每個學(xué)生是一條記錄,包括姓名、性別、學(xué)號、出勤情況等。本系統(tǒng)可模擬考勤過程,記錄考勤結(jié)果,并能夠在課程結(jié)束后按照設(shè)定的考勤評分標(biāo)準(zhǔn)自動給出每個學(xué)生的考勤分?jǐn)?shù)。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上
3、完成上述添加(出勤情況)、查找(學(xué)號,姓名,性別等)、修改等功能。
4、進(jìn)一步要求:自動給出每個學(xué)生的考勤分?jǐn)?shù) 要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書8 題目:學(xué)生選修課程系統(tǒng)設(shè)計
功能:假定有n門課程,每門課程有課程編號,課程名稱,課程性質(zhì),總學(xué)時,授課學(xué)時,實驗或上機(jī)學(xué)時,學(xué)分,開課學(xué)期等信息。試設(shè)計一選修課程系統(tǒng)。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話界面,確定函數(shù)個數(shù);
2、建立一個文件,將每條記錄信息寫入文件中并能顯示于屏幕上
《C++語言課程設(shè)計》題目
3、完成上述添加、查找(課程編號、課程名稱、課程性質(zhì)等)、修改等功能。
4、進(jìn)一步要求:學(xué)生選修課程(可選項)要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書9
題目:商品訂購系統(tǒng)設(shè)計。
功能:屏幕上出現(xiàn)一個界面,讓顧客或輸入商品名稱,或商品型號,或選擇列表進(jìn)而輸入商品編號都可以,如查到所選商品,則列出商品編號、商品名稱、商品型號、商品價格、商品產(chǎn)地、庫存數(shù)量和已訂購數(shù)量;然后給出選購流程:所選商品編號—列出對應(yīng)商品的信息—要求顧客輸入郵寄地址信息—確認(rèn)訂購,是否繼續(xù)選購其它商品,列出所有選訂商品,再次確認(rèn)訂購。建立兩個文件,分別存放商品信息與訂購信息。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、完成最低要求:建立一個小系統(tǒng),包括10種產(chǎn)品能供顧客選擇。
3、進(jìn)一步要求:完成全部功能的系統(tǒng)。要求:
1、用C++語言實現(xiàn)程序設(shè)計;
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
C++語言課程設(shè)計任務(wù)書10 題目:商店銷售管理系統(tǒng)。
功能:屏幕上出現(xiàn)一個界面,讓售貨員輸入商品編號或者商品名稱,可以進(jìn)貨,進(jìn)貨后商品庫存同時增加。顧客買走商品后,售貨員輸入商品編號或者商品名稱,可以生成銷售清單,統(tǒng)計本次銷售總的價錢,同時庫存數(shù)量相應(yīng)減少。完成前面的基本功能后,還可以完成增加新的商品或刪除不需要的商品的功能,以及每天銷售統(tǒng)計功能等。分步實施:
1、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);
2、建立一個文件,將相關(guān)的信息寫入文件中并能顯示于屏幕上;
3、能按商品編號進(jìn)貨和銷售;
4、進(jìn)一步要求:完成增加新的商品或刪除不需要的商品的功能,以及每天銷售統(tǒng)計
功能等。
要求:
1、用C++語言實現(xiàn)程序設(shè)計;
《C++語言課程設(shè)計》題目
2、利用結(jié)構(gòu)體數(shù)組實現(xiàn)信息的數(shù)據(jù)結(jié)構(gòu)設(shè)計;
3、系統(tǒng)的各個功能模塊要求用函數(shù)的形式實現(xiàn);
4、界面友好(良好的人機(jī)交互),程序加必要的注釋。課程設(shè)計實驗報告要求:
1、預(yù)習(xí)報告:題目、課程設(shè)計任務(wù)、數(shù)據(jù)結(jié)構(gòu)、程序的總體設(shè)計(算法)、模塊劃分。
2、實驗總結(jié)報告:流程圖、主要源程序代碼、測試情況及調(diào)試中問題與解決方案、小結(jié)等。
第三篇:《C++語言課程設(shè)計》任務(wù)書_2012
《C++語言課程設(shè)計》任務(wù)書
專業(yè) 班級 學(xué)號 姓名
一、實踐目的
通過本課程設(shè)計教學(xué),為學(xué)生提供一個綜合運用所學(xué)知識,解決實際問題的機(jī)會,增強其實踐動手能力和工程實踐能力,鍛煉和培養(yǎng)學(xué)生的自學(xué)能力,使學(xué)生能利用C++語言設(shè)計功能較全的一個應(yīng)用程序,得到程序設(shè)計方法、文獻(xiàn)資料查詢、設(shè)計報告寫作的綜合訓(xùn)練。同時加深對<
二、實踐任務(wù)與要求
1、編寫一個簡單的基于MFC的應(yīng)用程序(5學(xué)時)
《C++程序設(shè)計實踐教程》P218-P226綜合設(shè)計題中任選一題。
2、參照《C++程序設(shè)計實踐教程》中P64-74的實例,從以下各題中任選一題,在vc++環(huán)境下編寫一個基于控制臺方式的應(yīng)用程序(Win32 Console Application,25學(xué)時)1).教學(xué)管理系統(tǒng)。學(xué)生信息包括學(xué)生的班級代號、學(xué)號和姓名,選課信息包括每個學(xué)生該學(xué)期所選課程,成績包括每個學(xué)生所選的課程的考核成績。系統(tǒng)功能要求如下:
(1)能輸入學(xué)生信息、選課信息和成績。
(2)能輸出各班的某門課程不及格的名單(含學(xué)號、姓名和成績)。(3)能輸出某門課程全年級前5名的學(xué)號、姓名和成績。(4)能輸出某門課程每個班的總平均分(從高到低排列)。(5)能輸出某門課程某班的成績單(按學(xué)號排列)。
2).通訊錄管理程序。通訊錄要求存儲姓名、性別、工作單位、住宅電話、移動電話、辦公電話、E-mail地址等內(nèi)容。系統(tǒng)功能要求如下:
(1)通訊錄記錄按姓名排序存放,顯示時每屏不超過20個記錄,超過時分屏顯示。(2)增加某人的通訊錄。(3)修改某人的通訊錄。(4)刪除某人的通訊錄。
(5)按多種方式查詢符合條件的信息。(6)用文件存儲數(shù)據(jù)。
3).圖書室管理系統(tǒng)。該系統(tǒng)存儲以下信息:
(1)對于同一作者同一書名的書,存儲書名、書目編號、作者名、庫存冊數(shù)(不包括已借出的)、已借出冊數(shù)。
(2)對于每一本書還要存儲一個登錄號(這是區(qū)別每一本書的唯一標(biāo)志)、當(dāng)前借閱該書的讀者姓名與借書證號、借閱日期。
系統(tǒng)功能要求如下:(1)創(chuàng)建存儲系統(tǒng)。(2)增加新書。
(3)刪去無使用價值的舊書。
(4)處理借書。要求讀者提供書目號與登錄號,一位讀者限借2冊。檢查庫中有無讀者要求借閱的圖書,檢查該讀者已借閱圖書數(shù)量。
(5)處理還書。
(6)查詢某登錄號的書是誰借了。
4).工資管理系統(tǒng)。該系統(tǒng)在磁盤上存儲了某單位上月全體職工的工資信息。對于每一位職工存儲以下信息:月份,職工編號,基本工資,津貼,崗貼,補貼,房貼,交通費,應(yīng)發(fā)數(shù),房租,儲蓄,會費,個人所得稅,應(yīng)扣數(shù),實發(fā)數(shù)。個人所得稅計算方法設(shè)為:工資少于800元的部分為0,800~2000元的部分為5%,2000~5000元的部分為10%,5000元以上的部分為20%。
系統(tǒng)功能要求如下:
(1)創(chuàng)建存儲職工工資信息的存儲系統(tǒng)。(2)添加某職工的工資信息。(3)刪除某職工的工資信息。
(4)修改某職工的部分工資信息(當(dāng)月開始增加或減少某些項工資或扣款數(shù)變化)。(5)輸出指定編號職工的工資信息(借查詢用)。(6)輸出當(dāng)月全體職工的工資信息(發(fā)工資用)。
5).車票管理系統(tǒng)。一車站每天有n個發(fā)車班次,每個班次都有一班次號(1,2,3,…,n),固定的發(fā)車時間固定的路線(起始站、終點站),大致的行車時間,固定的額定載客量。例如:
班次
發(fā)車時間
起點站
終點站
行車時間
額定載量
已訂票人數(shù) 1
8:30
長沙
廣州
2
9:30
長沙
南昌
1.5
3
8:00
長沙
南寧
4.5
4
10:00
長沙
武漢
3.5
……(1)錄入班次信息(信息用文件保存),可不定時地增加班次數(shù)據(jù)。
(2)瀏覽班次信息,可顯示出所有班次當(dāng)前狀況。如果當(dāng)前系統(tǒng)時間超過了某班次的發(fā)車時間,則顯示“此班已發(fā)出”的提示信息。
(3)查詢路線:可按班次號查詢,也可按終點站查詢。
(4)售票和退票功能。當(dāng)查詢出已定票人數(shù)小于額定載量且當(dāng)前系統(tǒng)時間小于發(fā)車時間時才能售票,自動更新已售票人數(shù)。退票時,輸入退票的班次,當(dāng)本班車未發(fā)出時才能退票,自動更新已售票人數(shù)。
三、實習(xí)紀(jì)律
1、獨立思考、完成程序設(shè)計的所有內(nèi)容,嚴(yán)禁抄襲。2、按時上、下機(jī),不得無故缺課
四、設(shè)計報告要求
設(shè)計報告要求簡潔、嚴(yán)謹(jǐn)(3000-4000字,4頁),應(yīng)包括以下幾方面的內(nèi)容: 1、系統(tǒng)功能概述
2、主要的數(shù)據(jù)結(jié)構(gòu)概述 3、系統(tǒng)結(jié)構(gòu)框架
4、各主要功能模塊的實現(xiàn)算法(畫出流程圖或自然語言描述)
5、調(diào)試過程中遇到的主要問題及解決的方法;對設(shè)計和編碼的回顧討論和分析;改進(jìn)思想;收獲和體會等
6、主要程序模塊的清單
五、時間安排
上機(jī)時間:18-19周
最后一次實驗檢查程序運行情況并交設(shè)計報告。
六、成績評定規(guī)則
1、程序調(diào)試結(jié)果分優(yōu)、良、中、及格、不及格五等,占總課程成績的60%
2、實驗過程評價:在上機(jī)操作過程中學(xué)生的上機(jī)能力按優(yōu)、良、中三檔評定,占課程總成績的20%
3、實驗報告評價占課程總成績的20%
指導(dǎo)教師 李利明
中南大學(xué)
計算機(jī)基礎(chǔ)教學(xué)實驗中心
2012.6.1
第四篇:C++語言課程設(shè)計一迷你高爾夫
C++語言課程設(shè)計一迷你高爾夫
一、實驗內(nèi)容
玩家通過按下鍵盤上的上下左右方向鍵控制球的移動,使其最終到達(dá)出口則游戲通關(guān)。
要求如下:
1、游戲分成3關(guān),第一關(guān)、第二關(guān)、第三關(guān)界面圖如下:
第一關(guān)
第二關(guān)
第三關(guān)
2、啟動游戲進(jìn)入第一關(guān),勝利后進(jìn)入第二關(guān),如果第三關(guān)通關(guān),則游戲重新回到第一關(guān)。
3、游戲玩法是通關(guān)控制鍵盤上的上下左右方向鍵控制球的運動,單擊方向鍵,則球獲得一個向該方向直線運動的速度。如果球遇到方塊,則球停止運動,如果遇到黑洞,則游戲結(jié)束,重新開始該游戲,遇到出口則通關(guān)。
4、球靜止?fàn)顟B(tài)下會有箭頭指示球可以運動的方向,運動狀態(tài)下則箭頭消失。如果球運動出世界邊界,則游戲結(jié)束,重新回到該游戲。
二、實驗指南
實驗一
開始實驗
【實驗任務(wù)】
步驟一、打開FunCode,創(chuàng)建一個的C++語言項目;
步驟二、導(dǎo)入GolfGame場景。
【實驗思路】
按實驗指導(dǎo)完成。
【實驗指導(dǎo)】
1、打開FunCode,點擊“項目”菜單,選擇“創(chuàng)建C++工程”
注意:工程名名稱要求字母開頭,只能包含字母和數(shù)字,且名字中間不能有空格。
2、點擊菜單“項目”中的“導(dǎo)入地圖模塊”,如圖一。跳出一個對話框,選中“GolfGame”模板,點擊“導(dǎo)入到工程”按鈕,如圖二。
圖
一
圖
二
3、導(dǎo)入成功后的,界面如下圖所示:
地圖不僅包括界面設(shè)計,還包括該游戲可能要用到的其他精靈。添加到“場景”中的精靈,都已經(jīng)取好名稱,并根據(jù)程序要求設(shè)置好中心點、鏈接點等,學(xué)生只需要直接編程就可以。
實驗二
游戲關(guān)卡初始化
【實驗內(nèi)容】
步驟一、關(guān)卡地圖初始化
步驟二、清除上一關(guān)卡數(shù)據(jù)
步驟三、根據(jù)當(dāng)前關(guān)卡,選擇關(guān)卡數(shù)據(jù)
【實驗思路】
游戲開始的時候首先要清除上一關(guān)的游戲數(shù)據(jù),即將上一關(guān)創(chuàng)建的精靈從地圖中刪掉。
將游戲地圖分成12*12的方格界面,游戲總共分成三關(guān),因此我們需要用三個二維數(shù)組m_iLevelData1[GRID_COUNT][GRID_COUNT]
m_iLevelData2[GRID_COUNT][GRID_COUNT]
m_iLevelData3[GRID_COUNT][GRID_COUNT]
(其中GRID_COUNT的值為12)
來存放這三關(guān)的數(shù)據(jù)即可。二維數(shù)組中0表示該位置不創(chuàng)建精靈,否則根據(jù)不同的值創(chuàng)建不同精靈,RIGID_BLOCK(值為1)表示創(chuàng)建一個方塊精靈,BLACK_HOLE(值為2)表示創(chuàng)建一個黑洞精靈,GOLF_EXIT(值為3)表示創(chuàng)建一個出口精靈。每次把代表該關(guān)卡的二維數(shù)組的數(shù)據(jù)拷貝到存儲當(dāng)前關(guān)卡m_iGridData的二維數(shù)組中。
【實驗指導(dǎo)】
1、進(jìn)入LessonX.h的CGameMain類中,添加以下成員變量的聲明:
static
const
float
m_fGridStartX
;
//
第一塊方塊的起始坐標(biāo)
=
-(GRID_COUNT
*
g_fGridSize
*
0.5
g_fGridSize
/
2)
static
const
float
m_fGridStartY
;
static
const
float
m_fGridSize;
//
每塊的大小,包括球、出口等都是此大小
int
m_iRigidBlockCount;
//
本關(guān)卡創(chuàng)建的阻擋物方塊數(shù)量
int
m_iBlackHoleCount
;
//
本關(guān)卡創(chuàng)建的黑洞數(shù)量
int
m_iGolfExitCount;
//
本關(guān)卡創(chuàng)建的出口的數(shù)量
int
m_iCurLevel;
//
當(dāng)前關(guān)卡
int
m_iMoveState
;
//
控制球的移動狀態(tài):0當(dāng)前靜止,可以移動,1、2、3、4:代表上下左右4個方向移動中,按鍵無響應(yīng)
int
m_iGridData[GRID_COUNT][GRID_COUNT];
//
二維數(shù)組,存儲當(dāng)
前關(guān)卡N*N的矩陣方塊信息
static
const
int
m_iLevelData1[GRID_COUNT][GRID_COUNT]
;
static
const
int
m_iLevelData2[GRID_COUNT][GRID_COUNT]
;
static
const
int
m_iLevelData3[GRID_COUNT][GRID_COUNT]
;
vector
m_vRigidBlock;
//阻擋物精靈向量數(shù)組
vector
m_vBlackHole;
//黑洞精靈向量數(shù)組
vector
m_vGolfExit;
//出口精靈向量數(shù)組
int
m_iControlStartX;
//控制球的初始X坐標(biāo),根據(jù)關(guān)卡數(shù)據(jù)自行指定
int
m_iControlStartY;
//球的初始Y坐標(biāo)
2、進(jìn)入LessonX.h中在頭文件聲明的后面添加下面的宏定義代碼:
#define
GRID_COUNT
//
N
*
N的矩陣方塊,一個N的大小
#define
MAX_LEVEL
//
最大關(guān)卡數(shù)量。如果要增加關(guān)卡,請先修改此值
#define
RIGID_BLOCK
//
以下3個分別為方塊阻擋物、黑洞、出口的值
#define
BLACK_HOLE
#define
GOLF_EXIT33、進(jìn)入LessonX.cpp中添加上面的成員變量的初始化:
1)
在構(gòu)造函數(shù)中把m_iGameState的值由0改為1:
m_iGameState
=
1;
2)
在構(gòu)造函數(shù)中添加下面代碼:
m_iRigidBlockCount
=
0;
//
本關(guān)卡創(chuàng)建的阻擋物方塊數(shù)量
m_iBlackHoleCount
=
0;
//
本關(guān)卡創(chuàng)建的黑洞數(shù)量
m_iGolfExitCount
=
0;
m_iCurLevel
=
1;
m_iControlStartX
=
0;
//球的初始X坐標(biāo)
m_iControlStartY
=
0;
//球的初始Y坐標(biāo)
3)
對于const類型的成員變量,我們需要在函數(shù)外面單獨進(jìn)行初始化,在文件最后面添加如下代碼:
const
float
CGameMain::m_fGridStartX
=-27.5f;
const
float
CGameMain::m_fGridStartY
=-27.5f;
const
float
CGameMain::m_fGridSize
=5.f;
const
int
CGameMain::m_iLevelData1[GRID_COUNT][GRID_COUNT]
=
{
{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0,0,0},{0,0,0,RIGID_BLOCK,0,0,0,0,RIGID_BLOCK,0,0,0},{0,0,0,RIGID_BLOCK,0,0,0,0,RIGID_BLOCK,0,0,0},{0,0,0,RIGID_BLOCK,0,0,0,0,BLACK_HOLE,0,0,0},{0,0,0,0,0,0,0,GOLF_EXIT,RIGID_BLOCK,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0}
};
const
int
CGameMain::m_iLevelData2[GRID_COUNT][GRID_COUNT]={
{0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,RIGID_BLOCK,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,GOLF_EXIT,RIGID_BLOCK,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,0,0},{0,RIGID_BLOCK,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,RIGID_BLOCK,0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0,RIGID_BLOCK,0}
};
const
int
CGameMain::m_iLevelData3[GRID_COUNT][GRID_COUNT]={
{0,0,0,0,0,0,0,0,RIGID_BLOCK,RIGID_BLOCK,0,0},{0,0,RIGID_BLOCK,RIGID_BLOCK,RIGID_BLOCK,0,0,0,0,0,0,RIGID_BLOCK},{RIGID_BLOCK,0,0,0,0,0,0,0,0,0,0,RIGID_BLOCK},{0,0,0,0,0,0,0,0,0,0,0,RIGID_BLOCK},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,GOLF_EXIT,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,RIGID_BLOCK,RIGID_BLOCK,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,RIGID_BLOCK,0},{0,0,0,RIGID_BLOCK,0,0,0,0,0,0,RIGID_BLOCK,0},{0,0,0,0,BLACK_HOLE,RIGID_BLOCK,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0,0,0,0}
};
二維數(shù)組中0表示該位置不創(chuàng)建精靈,否則根據(jù)不同的值創(chuàng)建不同精靈,RIGID_BLOCK(值為1)表示創(chuàng)建一個方塊精靈,BLACK_HOLE(值為2)表示創(chuàng)建一個黑洞精靈,GOLF_EXIT(值為3)表示創(chuàng)建一個出口精靈。
4)
進(jìn)入GameInit函數(shù)里面,將球的運動狀態(tài)初始化為靜止,添加下面代碼:
m_iMoveState=0;
4、游戲初始化的時候,首先我們需要將前邊添加的精靈全部刪除掉,因此需要自定義的創(chuàng)建清除所有精靈函數(shù)ClearAllSprite()來實現(xiàn)這個功能。
1)
進(jìn)入LessonX.h文件的CGameMain類中添加該函數(shù)的聲明:
void
ClearAllSprite();
2)
在LessonX.cpp最后面添加該函數(shù)的定義:
void
CGameMain::
ClearAllSprite()
{
}
3)
再使用3個循環(huán),分別將上一關(guān)卡創(chuàng)建的3種精靈刪除掉。在上邊定義的函數(shù)中添加如下代碼:
int
iLoop
=
0;
for(iLoop
=
0;
iLoop
m_vRigidBlock.size();
iLoop++)
{
m_vRigidBlock[iLoop]->DeleteSprite();
}
for(iLoop
=
0;
iLoop
m_vBlackHole.size();
iLoop++)
{
m_vBlackHole[iLoop]->DeleteSprite();
}
for(iLoop
=
0;
iLoop
m_vGolfExit.size();
iLoop++)
{
m_vGolfExit[iLoop]->DeleteSprite();
}
其中m_vRigidBlock、m_vBlackHole、m_vGolfExit是存儲三種精靈的向量數(shù)組,每一個循環(huán)都遍歷一遍向量數(shù)組并調(diào)用數(shù)組中每個精靈的DeleteSprite函數(shù)即可。
m_vRigidBlock.size()、m_vBlackHole.size()、m_vGolfExit.size()表示每種精靈的總數(shù)。
4)
最后在GameInit()中添加調(diào)用此函數(shù)的代碼:
ClearAllSprite();
5、在GameInit()中,我們也需要對關(guān)卡進(jìn)行選擇初始化。因此我們需要自定義一個初始化關(guān)卡函數(shù)InitLevel
()來實現(xiàn)這個功能。
1)
進(jìn)入LessonX.h文件的CGameMain類中添加該函數(shù)的聲明:
void
InitLevel();
2)
在LessonX.cpp最后面添加該函數(shù)的定義:
void
CGameMain::
InitLevel()
{
}
3)
初始化關(guān)卡,要根據(jù)當(dāng)前關(guān)卡,選擇關(guān)卡的數(shù)據(jù),即將代表關(guān)卡的二維數(shù)組中的數(shù)據(jù)拷貝到m_iGridData中,同時設(shè)置控制球在每個數(shù)組中的起始位置。首先把需要的數(shù)據(jù)初始化為0,代碼如下:
//
總數(shù)置0,重新創(chuàng)建
m_iRigidBlockCount
=
0;
m_iBlackHoleCount
=
0;
m_iGolfExitCount
=
0;
4)
選擇關(guān)卡我們使用了switch-case結(jié)構(gòu),程序通過判斷switch中的參數(shù)進(jìn)入到不同的case中去,每個case就是一種情況的實現(xiàn)。代碼如下:
//
根據(jù)當(dāng)前關(guān)卡,選擇關(guān)卡數(shù)據(jù)
switch(m_iCurLevel)
{
case
2:
{
m_iControlStartX
=
5;
m_iControlStartY
=
9;
memcpy(m_iGridData,m_iLevelData2,sizeof(int)
*
GRID_COUNT
*
GRID_COUNT);
}
break;
case
3:
{
m_iControlStartX
=
3;
m_iControlStartY
=
6;
memcpy(m_iGridData,m_iLevelData3,sizeof(int)
*
GRID_COUNT
*
GRID_COUNT);
}
break;
//
Level1
或者g_iCurLevel錯誤
case
1:
default:
{
m_iControlStartX
=
5;
m_iControlStartY
=
6;
memcpy(m_iGridData,m_iLevelData1,sizeof(int)
*
GRID_COUNT
*
GRID_COUNT);
}
break;
};
memcpy函數(shù)作用是從源src所指的內(nèi)存地址的起始位置開始拷貝n個字節(jié)到目標(biāo)dest所指的內(nèi)存地址的起始位置中。因為二維數(shù)組在內(nèi)存中的存放方式是連續(xù)的,因此我們將源地址拷貝給m_iGridData的起始地址之后,系統(tǒng)后自動根據(jù)m_iGridData的下標(biāo)來找到正確的值。
5)
最后在GameInit()中添加調(diào)用此函數(shù)的代碼:
InitLevel();
至此,本實驗結(jié)束。
實驗三
初始化游戲精靈
【實驗內(nèi)容】
步驟一、創(chuàng)建精靈
步驟二、初始化精靈位置
【實驗思路】
遍歷二維數(shù)組m_iGridData,根據(jù)數(shù)組值生成對應(yīng)的精靈實例:值為0的時候不用創(chuàng)建,需要創(chuàng)建的精靈名字前綴為(按照宏定義的1,2,3順序):RigidBlock,BlackHole,GolfExit。每創(chuàng)建一種精靈,將其總數(shù)加1
:m_iRigidBlockCount,m_iBlackHoleCount,m_iGolfExitCount。
【實驗指導(dǎo)】
1、進(jìn)入LessonX.h,CGameMain類中添加下面成員變量的聲明:
CSprite*
m_pControlBall;
//控制球精靈
CSprite*
m_pGolfArrow;
//指示箭頭精靈
在LessonX.cpp中CGameMain類在構(gòu)造函數(shù)里面添加上面成員變量的初始化:
m_pControlBall
=
new
CSprite(“ControlBall“);
m_pGolfArrow
=
new
CSprite(“GolfArrow“);
2、創(chuàng)建精靈之后需要將精靈移到特定位置,因此我們需要定義一個自定義的函數(shù)MoveSpriteToBlock來實現(xiàn)這個功能。
6)
進(jìn)入LessonX.h中添加該函數(shù)的聲明:
void
MoveSpriteToBlock(CSprite*
tmpSprite,const
int
iIndexX,const
int
iIndexY);
7)
在LessonX.cpp最后面添加該函數(shù)的定義:
void
CGameMain::MoveSpriteToBlock(CSprite*
tmpSprite,const
int
iIndexX,const
int
iIndexY)
{
}
8)
傳入該函數(shù)的是精靈實體以及x,y坐標(biāo)參數(shù)。再通過SetSpritePosition函數(shù)設(shè)置精靈位置,在該函數(shù)里面添加如下代碼:
float
fPosX
=
m_fGridStartX
+
iIndexX
*
m_fGridSize;
float
fPosY
=
m_fGridStartY
+
iIndexY
*
m_fGridSize;
tmpSprite->SetSpritePosition(fPosX,fPosY);
3、這里定義一個函數(shù)CreateAllSprite()來創(chuàng)建控制球、方塊精靈、出口精靈和黑洞精靈。然后在函數(shù)內(nèi)部添加代碼創(chuàng)建精靈。
原理是通過兩個for循環(huán)來,判斷m_iGridData的值,如果為0,則不創(chuàng)建,如果為RIGID_BLOCK則創(chuàng)建一個方塊精靈,為
BLACK_HOLE則創(chuàng)建一個黑洞精靈,為GOLF_EXIT則創(chuàng)建一個出口精靈。由于我們預(yù)先在地圖中擺放了三個模板精靈,因此只需要使用CloneSprite函數(shù)即可創(chuàng)建新的精靈。然后再調(diào)用MoveSpriteToBlock函數(shù)將精靈移動到指定位置。最后每創(chuàng)建一個實現(xiàn)精靈,將它添加到相應(yīng)的精靈向量數(shù)組中。
1)
進(jìn)入LessonX.h文件的CGameMain類中添加該函數(shù)的聲明:
void
CreateAllSprite();
2)
在LessonX.cpp最后面添加該函數(shù)的定義:
void
CGameMain::
CreateAllSprite()
{
}
3)
在定義汗的函數(shù)中添加變量聲明:
int
iLoopX
=
0,iLoopY
=
0;
CSprite*
tmpSprite;
char
*szName
=
NULL;
4)
實現(xiàn)兩個for循環(huán):
for(iLoopY
=
0;
iLoopY
GRID_COUNT;
iLoopY++)
{
for(int
iLoopX
=
0;
iLoopX
GRID_COUNT;
iLoopX++)
{
}
}
5)
在里面的循環(huán)添加判斷代碼:
如果是0,則不創(chuàng)建精靈,continue表示跳出本次循環(huán),繼續(xù)下一個循環(huán)。
if(0
==
m_iGridData[iLoopY][iLoopX])
continue;
如果是方塊,則創(chuàng)建方塊精靈:
if(RIGID_BLOCK
==
m_iGridData[iLoopY][iLoopX])
{
szName
=
CSystem::MakeSpriteName(“RigidBlock“,m_iRigidBlockCount);
tmpSprite=new
CSprite(szName);
tmpSprite->CloneSprite(“RigidBlockTemplate“);
MoveSpriteToBlock(tmpSprite,iLoopX,iLoopY);
m_vRigidBlock.push_back(tmpSprite);
m_iRigidBlockCount++;
}
如果是黑洞,則創(chuàng)建黑洞精靈:
else
if(BLACK_HOLE
==
m_iGridData[iLoopY][iLoopX])
{
szName
=
CSystem::MakeSpriteName(“BlackHole“,m_iBlackHoleCount);
tmpSprite=new
CSprite(szName);
tmpSprite->CloneSprite(“BlackHoleTemplate“);
MoveSpriteToBlock(tmpSprite,iLoopX,iLoopY);
m_vBlackHole.push_back(tmpSprite);
m_iBlackHoleCount++;
}
如果是出口,則創(chuàng)建出口精靈:
else
if(GOLF_EXIT
==
m_iGridData[iLoopY][iLoopX])
{
szName
=
CSystem::MakeSpriteName(“GolfExit“,m_iGolfExitCount);
tmpSprite=new
CSprite(szName);
tmpSprite->CloneSprite(“GolfExitTemplate“);
MoveSpriteToBlock(tmpSprite,iLoopX,iLoopY);
m_vGolfExit.push_back(tmpSprite);
m_iGolfExitCount++;
}
6)
將控制球和指示箭頭擺放到初始位置,此時球靜止,因此指示箭頭可見。在上面的兩個循環(huán)后面添加下面的代碼:
m_pControlBall->SetSpriteLinearVelocity(0.f,0.f);
MoveSpriteToBlock(m_pControlBall,m_iControlStartX,m_iControlStartY);
MoveSpriteToBlock(m_pGolfArrow,m_iControlStartX,m_iControlStartY);
m_pGolfArrow->SetSpriteVisible(1);
7)
最后在GameInit()中調(diào)用此函數(shù):
CreateAllSprite();
至此,本實驗結(jié)束。
實驗四
移動球
【實驗內(nèi)容】
步驟一、響應(yīng)鍵盤按鍵按下消息
步驟二、球精靈坐標(biāo)轉(zhuǎn)換為二維格子數(shù)組索引
步驟三、判斷移動方向,使球獲取速度
【實驗思路】
首先響應(yīng)系統(tǒng)的按鍵消息函數(shù),然后獲取精靈坐標(biāo),并將其轉(zhuǎn)換為二維格子中的坐標(biāo),判斷其旁邊的格子是否是方塊,如果不是則給球一個移動的速度。
【實驗指導(dǎo)】
1、進(jìn)入LessonX.h中,添加我們自定義的鍵盤消息處理函數(shù)OnKeyDown的聲明:
void
OnKeyDown(const
int
iKey,const
int
iAltPress,const
int
iShiftPress,const
int
iCtrlPress);
2、在LessonX.cpp中添加該函數(shù)的定義:
void
CGameMain::OnKeyDown(const
int
iKey,const
int
iAltPress,const
int
iShiftPress,const
int
iCtrlPress)
{
}
3、首先判斷游戲狀態(tài),只有在游戲中已經(jīng)可以移動狀態(tài)才響應(yīng)按鍵,在上面函數(shù)中添加下面的代碼:
if(2
!=
m_iGameState
||
0
!=
m_iMoveState)
return;
4、獲取控制球精靈坐標(biāo)轉(zhuǎn)換到二維格子數(shù)組索引,這里我們需要定義兩個函數(shù)SpritePosXToIndexX和SpritePosXToIndexY分別處理精靈坐標(biāo)轉(zhuǎn)換為二維格子的X索引和Y索引:
1)
進(jìn)入LessonX.h中添加上面兩個函數(shù)的聲明:
int
SpritePosXToIndexX(const
float
fPosX);
int
SpritePosYToIndexY(const
float
fPosY);
2)
進(jìn)入LessonX.cpp中添加SpritePosXToIndexX的定義:
int
CGameMain::
SpritePosXToIndexX
(const
float
fPosX)
{
}
3)
首先得到左右邊界的坐標(biāo)值。m_fGridStartX是在方塊的中心,所以需要減去半個方塊的寬度才是左邊邊界。在SpritePosXToIndexX函數(shù)定義中添加下面的代碼:
const
float
fLeftSide
=
m_fGridStartX
m_fGridSize
/
2.f;
const
float
fRightSide
=
fLeftSide
+
m_fGridSize
*
GRID_COUNT;
4)
最后需要判斷坐標(biāo)是否出了左右邊界,如果沒有則返回X索引值。在上面的函數(shù)里面添加下面的判斷代碼:
if(fPosX
fLeftSide
||
fPosX
fRightSide)
return
-1;
int
iIndexX
=
(int)((fPosX
fLeftSide)
/
m_fGridSize);
return
iIndexX;
5)
在LessonX.cpp中添加SpritePosYToIndexY函數(shù)的定義:
int
CGameMain::SpritePosYToIndexY(const
float
fPosY)
{
}
6)
首先獲取上下邊界坐標(biāo)值。m_fGridStartY是在方塊的中心,所以需要減去半個方塊的寬度才是上邊邊界。在上面的函數(shù)定義中添加下面的代碼:
const
float
fTopSide
=
m_fGridStartY
m_fGridSize
/
2.f;
const
float
fBottomSide
=
fTopSide
+
m_fGridSize
*
GRID_COUNT;
7)
最后判斷是否超過了上下邊界,沒有則返回Y索引值:
if(fPosY
fTopSide
||
fPosY
fBottomSide)
return
-1;
int
iIndexY
=
(int)((fPosY
fTopSide)
/
m_fGridSize);
return
iIndexY;
5、有了上面的兩個函數(shù),我們就可以將控制球精靈坐標(biāo)轉(zhuǎn)換到二維格子數(shù)組索引,并判斷坐標(biāo)是否超出邊界,在OnKeyDown函數(shù)中添加下面的代碼:
float
fPosX
=
m_pControlBall->GetSpritePositionX();
float
fPosY
=
m_pControlBall->GetSpritePositionY();
int
iIndexX
=
SpritePosXToIndexX(fPosX);
int
iIndexY
=
SpritePosYToIndexY(fPosY);
if(iIndexX
0
||
iIndexX
>=
GRID_COUNT
||
iIndexY
0
||
iIndexY
>=
GRID_COUNT)
return;
6、根據(jù)上下左右方向鍵,先判斷控制球旁邊是否是方塊,如果是方塊則不能移動。不是方塊,則給予控制球一個速度。使用iIndexX,iIndexY的時候,注意要判斷是否是邊緣的索引,如果不判斷就進(jìn)行加1減1,訪問數(shù)組會造成下標(biāo)溢出。即如果要判斷左邊是否是方塊阻擋,則索引值為
IndexX
。此時必須先判斷iIndexX大于0,才能減一。如果iIndexX為0,代表直接可以移動。
1)
如果是按下向上方向鍵:
if(KEY_UP
==
iKey)
{
if(iIndexY
0
&&
RIGID_BLOCK
==
m_iGridData[iIndexY
1][iIndexX])
return;
//
給予控制球一個方向速度,并設(shè)置移動狀態(tài)、隱藏指示箭頭
m_iMoveState
=
1;
m_pControlBall->SetSpriteLinearVelocityY(-30.f);
m_pGolfArrow->SetSpriteVisible(0);
}
2)
如果是按下向下方向鍵:
else
if(KEY_DOWN
==
iKey)
{
if(iIndexY
GRID_COUNT
&&
RIGID_BLOCK
==
m_iGridData[iIndexY
+
1][iIndexX])
return;
//
給予控制球一個方向速度,并設(shè)置移動狀態(tài)、隱藏指示箭頭
m_iMoveState
=
2;
m_pControlBall->SetSpriteLinearVelocityY(30.f);
m_pGolfArrow->SetSpriteVisible(0);
}
3)
如果是按下向左方向鍵:
else
if(KEY_LEFT
==
iKey)
{
if(iIndexX
0
&&
RIGID_BLOCK
==
m_iGridData[iIndexY][iIndexX
1])
return;
//
給予控制球一個方向速度,并設(shè)置移動狀態(tài)、隱藏指示箭頭
m_iMoveState
=
3;
m_pControlBall->SetSpriteLinearVelocityX(-30.f);
m_pGolfArrow->SetSpriteVisible(0);
}
4)
如果是按下向右方向鍵:
else
if(KEY_RIGHT
==
iKey)
{
if(iIndexX
GRID_COUNT
&&
RIGID_BLOCK
==
m_iGridData[iIndexY][iIndexX
+
1])
return;
//
給予控制球一個方向速度,并設(shè)置移動狀態(tài)、隱藏指示箭頭
m_iMoveState
=
4;
m_pControlBall->SetSpriteLinearVelocityX(30.f);
m_pGolfArrow->SetSpriteVisible(0);
}
7、最后在Main.cpp中的OnKeyDown函數(shù)里面添加我們的自定義函數(shù)的調(diào)用:
g_GameMain.OnKeyDown(iKey,bAltPress,bShiftPress,bCtrlPress);
至此,本實驗結(jié)束。
實驗五球運動情況的處理
【實驗內(nèi)容】
步驟一、獲得球所在邊緣格子信息
步驟二、不同格子分情況處理
【實驗思路】
獲取球精靈的當(dāng)前坐標(biāo)并將其轉(zhuǎn)換為二維格子的坐標(biāo),判斷在運動中球邊緣的情況,如果已經(jīng)出了邊界則不需要再判斷,否則如果是方塊則球??俊⑹呛诙磩t重新開始關(guān)卡、是出口則通關(guān)。
【實驗指導(dǎo)】
1、進(jìn)入LessonX.cpp中的GameRun函數(shù)中,移動狀態(tài)為移動中,時刻監(jiān)測控制球的移動情況,根據(jù)移動方向的下一個方塊,進(jìn)行對應(yīng)的處理。添加下面的if判斷:
if(0
!=
m_iMoveState)
{
}
2、先將控制球精靈坐標(biāo)轉(zhuǎn)換到二維格子數(shù)組索引,如果控制球已經(jīng)出了邊界,所以不需要再判斷。在上面的判斷里面添加下面的代碼:
float
fPosX
=
m_pControlBall->GetSpritePositionX();
float
fPosY
=
m_pControlBall->GetSpritePositionY();
int
iIndexX
=
SpritePosXToIndexX(fPosX);
int
iIndexY
=
SpritePosYToIndexY(fPosY);
//
控制球已經(jīng)出了邊界,所以不需要再判斷
if(iIndexX
0
||
iIndexX
>=
GRID_COUNT
||
iIndexY
0
||
iIndexY
>=
GRID_COUNT)
return;
3、根據(jù)當(dāng)前方向,獲得控制球邊緣所在的格子信息(球在坐標(biāo)是在中心點,所以加上球的大小的一半)??偣灿?中方向,即上下左右,分別用1、2、3、4來表示,添加下面的代碼:
float
fNextPosX
=
fPosX;
float
fNextPosY
=
fPosY;
//
if(1
==
m_iMoveState)
{
fNextPosY
-=
m_fGridSize
*
0.5f;
}
else
if(2
==
m_iMoveState)
{
fNextPosY
+=
m_fGridSize
*
0.5f;
}
else
if(3
==
m_iMoveState)
{
fNextPosX
-=
m_fGridSize
*
0.5f;
}
else
if(4
==
m_iMoveState)
{
fNextPosX
+=
m_fGridSize
*
0.5f;
}
4、將上面得到的坐標(biāo)再轉(zhuǎn)換為二維格子的坐標(biāo),并判斷是否越出邊界,添加下面的代碼:
int
iNextIndexX
=
SpritePosXToIndexX(fNextPosX);
int
iNextIndexY
=
SpritePosYToIndexY(fNextPosY);
//
該邊緣已經(jīng)出了邊界,不需要往下判斷
if(iNextIndexX
0
||
iNextIndexX
>=
GRID_COUNT
||
iNextIndexY
0
||
iNextIndexY
>=
GRID_COUNT)
return;
5、根據(jù)球邊緣當(dāng)前所在的格子的信息,進(jìn)行不同的處理:是方塊則球??俊⑹呛诙磩t重新開始關(guān)卡、是出口則通關(guān):
1)
是方塊:
if(RIGID_BLOCK
==
m_iGridData[iNextIndexY][iNextIndexX])
{
//
清零移動狀態(tài)
m_iMoveState
=
0;
//
速度清零,顯示指示箭頭
m_pControlBall->SetSpriteLinearVelocity(0.f,0.f);
m_pGolfArrow->SetSpriteVisible(1);
//
把球和指示箭頭設(shè)置在本方塊的中心
MoveSpriteToBlock(m_pControlBall,iIndexX,iIndexY);
MoveSpriteToBlock(m_pGolfArrow,iIndexX,iIndexY);
}
2)
是黑洞:
else
if(BLACK_HOLE
==
m_iGridData[iNextIndexY][iNextIndexX])
{
//
將游戲狀態(tài)設(shè)置為1,重新開始關(guān)卡
m_iGameState
=
1;
}
3)
是出口:
else
if(GOLF_EXIT
==
m_iGridData[iNextIndexY][iNextIndexX])
{
//
將游戲狀態(tài)設(shè)置為1,開始新關(guān)卡
m_iGameState
=
1;
//
往下一關(guān)卡,如果已經(jīng)是最大值,則返回第一關(guān)
m_iCurLevel++;
if(m_iCurLevel
MAX_LEVEL)
m_iCurLevel
=
1;
}
至此,本實驗結(jié)束。
實驗六球出邊界處理
【實驗內(nèi)容】
步驟、控制球出邊界,則游戲重新開始
【實驗思路】
此部分比較簡單,只要通過系統(tǒng)判斷球精靈是否越過世界邊界,得到數(shù)據(jù)之后在我們的自定義函數(shù)里面處理即可。
【實驗指導(dǎo)】
1、進(jìn)入LessonX.h中添加我們的自定義處理函數(shù)OnSpriteColWorldLimit的聲明:
void
OnSpriteColWorldLimit(const
char
*szName,const
int
iColSide);
2、進(jìn)入LessonX.cpp中添加該函數(shù)的定義:
void
CGameMain::OnSpriteColWorldLimit(const
char
*szName,const
int
iColSide)
{
}
3、在上面的函數(shù)定義中,我們只要知道系統(tǒng)的OnSpriteColWorldLimit函數(shù)中返回的szName是否是球精靈的名稱,如果是的話則本局游戲結(jié)束,重新開始游戲。在上面的定義里面添加下面的代碼:
//
只處理控制的球
if(stricmp(szName,m_pControlBall->GetName())
!=
0)
return;
//
將游戲狀態(tài)設(shè)置為1,重新開始關(guān)卡
m_iGameState
=
1;
4、進(jìn)入Main.cpp文件,在OnSpriteColWorldLimit函數(shù)里面添加我們自定義的函數(shù)的調(diào)用,填入下面一行代碼:
g_GameMain.OnSpriteColWorldLimit(szName,iColSide);
5、打開Funcode,點擊地圖中的球精靈,在右側(cè)的“編輯”->“世界邊界限制”中,選擇限制模式為NULL,這樣系統(tǒng)就會以我們自定義的函數(shù)處理球越過邊界的事件了。
至此,本實驗結(jié)束。
第五篇:C語言課程設(shè)計參考題目
C語言課程設(shè)計參考題目
一、矩陣運算
矩陣的加法、減法、轉(zhuǎn)置、數(shù)乘矩陣、交換矩陣行或列、兩個矩陣作乘法、求矩陣的秩、求可逆矩陣的逆矩陣、特殊矩陣(如對稱矩陣、反對稱矩陣、三角形矩陣)的運算。
二、級數(shù)和數(shù)列運算
求無窮級數(shù)的和(①從第一項累加到給定的項數(shù)時為止,②當(dāng)一般項的值變化到滿足某一條件時為止,③當(dāng)累加的級數(shù)的和滿足某一條件時為止。對于正項級數(shù)和交錯級數(shù),都能計算。);求無窮級數(shù)的某一項的值(①按給定項數(shù)求值;②按給定滿足的條件求值)。
求數(shù)列的前n項之和(①等差數(shù)列前n項之和;②等比數(shù)列前n項之和);計算并顯示數(shù)列各項的值(①截止到第n項為止;②截止到滿足給定的條件為止);求等差中項和等比中項。
三、統(tǒng)計與計算
求N個整數(shù)的和、平均值、最大公約數(shù)、最小公倍數(shù)、方差、標(biāo)準(zhǔn)差等。求N個數(shù)中的最大值、最小值、出現(xiàn)次數(shù)最多的值、出現(xiàn)次數(shù)最少的值。
對一組整數(shù)進(jìn)行分類統(tǒng)計(自行設(shè)定分類統(tǒng)計標(biāo)準(zhǔn)。例如,對于一組在0到100之間的數(shù),可以這樣分類統(tǒng)計:小于或等于100且大于等于90的有多少,小于90且大于等于80的有多少,小于80且大于等于70的有多少,小于70且大于等于60的有多少,小于60的有多少)。給定N個數(shù),計算并顯示這N個數(shù)的各種排列和組合。
判斷某整數(shù)是否是素數(shù),求某范圍內(nèi)的所有素數(shù)。將某整數(shù)分解成若干素數(shù)乘積的形式。
四、排序和查找運算
將給定的N個數(shù)排序(①升序;②降序,分別用選擇法和冒泡法)。
將給定的N個單詞排序(①升序;②降序,分別用選擇法和冒泡法)。將給定的N個英文句子排序(①升序;②降序,分別用選擇法和冒泡法)。
運用順序查找法,在一組數(shù)中查找給定的數(shù)。運用兩分查找法,在一組數(shù)中查找給定的數(shù)。在一組數(shù)中查找到給定的數(shù)之后,用另一個數(shù)將其替換或刪除。在一組有序數(shù)中,插入某個數(shù),使插入后仍是一組有序數(shù)。
將一組數(shù)以中間對稱的形式交換位置,然后輸出。
五、求方程近似根和積分運算
求一元二次方程的根。用牛頓法求某個一元高次方程的近似根。用二分法求某個一元高次方程的近似根。用弦截法求某個一元高次方程的近似根。
求線性方程組的解。
用矩形法求某個函數(shù)定級分。用梯形法求某個函數(shù)定級分。
六、對英文單詞和句子運算
分別統(tǒng)計一個英文句子中大寫字母、小寫字母、數(shù)字、空格的個數(shù)。求某個字母在一個英文句子中出現(xiàn)的位置。統(tǒng)計一個英文句子中所包含單詞的個數(shù)。統(tǒng)計一個英文句子中最長的單詞所含字母個數(shù)。統(tǒng)計某個單詞在一個英文句子中出現(xiàn)的次數(shù)。將一個單詞從英文句子中刪除,顯示刪除單詞后的英文句子。將一個單詞插入到英文句子的指定位置,顯示插入單詞后的英文句子。用一個單詞替換英文句子中的另一個單詞。比較兩個英文句子的不同點,輸出不同點的位置。
七、畫圖案
畫各種三角形圖案。畫各種菱形圖案。畫各種平行四邊形圖案。畫各種梯形圖案。畫各種正多邊形圖案。(以上圖案包括空心的或?qū)嵭牡膬煞N。要采用兩種方法畫一種圖案:①用二維數(shù)組;②只用循環(huán)不用二維數(shù)組。不能全用二維數(shù)組畫?。?/p>
用以上幾種基本圖案組合成一個新圖案。
八、商品信息管理系統(tǒng)
每件商品信息包括編號、商品名、類型、生產(chǎn)廠家、生產(chǎn)日期、單價、庫存量等項內(nèi)容,本系統(tǒng)可以實現(xiàn)如下功能:往系統(tǒng)里添加新商品的各項信息;修改現(xiàn)有商品的各項信息;查找并顯示滿足某條件的商品的信息;按某個給定的條件將商品排序并顯示排序結(jié)果;統(tǒng)計滿足某條件的商品的庫存量;計算某種商品的總價值(單價乘庫存量),以及某幾種商品的總價值。
九、優(yōu)秀歌手比賽評分系統(tǒng)
比賽共有M個歌手參賽,共有N個評委為歌手打分。每次評分,由N個評委每人給歌手一個分?jǐn)?shù),然后去掉一個最高分,去掉一個最低分,求出其余N-2個分?jǐn)?shù)的平均分,作為歌手的得分。本系統(tǒng)可以實現(xiàn)如下功能:按評委給分順序顯示某個參賽歌手的得分;顯示某個參賽歌手所得的最高分和最低分;求出每個參賽歌手的得分;按參賽歌手的得分從高到低排序并顯示排序結(jié)果;顯示某個評委打出的M個分?jǐn)?shù);計算某個評委打分的平均值;查找滿足給定得分范圍的歌手。
十、工資管理系統(tǒng)
某單位有N個,職工工資信息包括基本工資、崗位津貼、地方津貼、獎金、扣公積金、扣稅、實發(fā)工資等項內(nèi)容,將N個職工的這些內(nèi)容存入本系統(tǒng)??梢岳帽鞠到y(tǒng)實現(xiàn)如下功能:往系統(tǒng)里添加新的職工工資信息內(nèi)容;根據(jù)給定的條件修改現(xiàn)有的職工工資內(nèi)容;刪除某個職工工資內(nèi)容;根據(jù)給定的條件查找并顯示某個職工工資內(nèi)容;顯示符合某個條件的所有職工工資內(nèi)容;統(tǒng)計某項工資內(nèi)容的總和;計算某個職工的實發(fā)工資(基本工資+崗位津貼+地方津貼+獎金-扣公積金-扣稅);計算符合某個條件的所有職工的實發(fā)工資總和。
十一、學(xué)生成績管理系統(tǒng)
該班共有N個學(xué)生,共開M門課,將已經(jīng)結(jié)束的每門課的成績存入本系統(tǒng),將學(xué)生的學(xué)號和姓名存入本系統(tǒng)。可以利用本系統(tǒng)實現(xiàn)如下功能:往系統(tǒng)里添加新的課程成績;根據(jù)給定的條件修改現(xiàn)有的課程成績;刪除某個學(xué)生的學(xué)號、姓名和各門課的成績;根據(jù)給定的學(xué)生的學(xué)號和姓名,查找并顯示該學(xué)生各門課的成績;計算所有學(xué)生某門課的平均分;計算某個學(xué)生各門課的平均分;按每個學(xué)生得總分從高到低排序并顯示排序結(jié)果。
十二、職工檔案管理系統(tǒng)
某單位有N個職工,每個職工有編號、姓名、性別、出生日期、畢業(yè)學(xué)校、電話號碼、職務(wù)等項內(nèi)容,將N個職工的這些內(nèi)容存入本系統(tǒng)??梢岳帽鞠到y(tǒng)實現(xiàn)如下功能:往系統(tǒng)里添加新的職工檔案內(nèi)容;根據(jù)給定的條件修改現(xiàn)有的職工檔案內(nèi)容;刪除某個職工檔案內(nèi)容;根據(jù)給定的條件查找并顯示某個職工檔案內(nèi)容;顯示符合某個條件的所有職工檔案內(nèi)容;統(tǒng)計滿足某個條件的職工人數(shù);按某個給定的條件將職工排序并顯示排序結(jié)果。
十三、圖書信息管理系統(tǒng)
每本圖書信息包括編號、書名、作者、出版社、出版日期、單價、冊數(shù)等項內(nèi)容,本系統(tǒng)可以實現(xiàn)如下功能:往系統(tǒng)里添加新圖書的各項信息;修改現(xiàn)有圖書的各項信息;查找并顯示滿足某條件的圖書的信息;按某個給定的條件將圖書排序;統(tǒng)計滿足某條件的圖書的冊數(shù);計算某種圖書的總價值(單價乘冊數(shù)),以及某幾種圖書的總價值。
十四、運動會分?jǐn)?shù)統(tǒng)計系統(tǒng)
共有M個運動代表隊,每個代表隊參加N項比賽。每項比賽的第1名得10分、第2名得8分、第3名得5分,其它名次不得分。輸入每項比賽的代表隊排名。本系統(tǒng)可以實現(xiàn)如下功能:統(tǒng)計各代表隊所得的總分;將各代表隊按總分值從高到低排序,然后顯示輸出;查找某個代表隊參加某項比賽的成績并顯示;查找某個代表隊的總分和各項比賽的得分并顯示;查找某項比賽取得某個名次得代表隊名稱。