国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

學(xué)生成績(jī)管理系統(tǒng)的設(shè)計(jì)與概述

2018-07-23 04:06:48唐葉爾
世界家苑 2018年6期
關(guān)鍵詞:程序設(shè)計(jì)

摘 要:學(xué)生成績(jī)管理系統(tǒng)是學(xué)校用于管理學(xué)生成績(jī)的一個(gè)很重要的工具,設(shè)計(jì)學(xué)生管理系統(tǒng)是對(duì)C語言多方面知識(shí)的綜合訓(xùn)練。本文將運(yùn)用C語言的知識(shí)建立一個(gè)簡(jiǎn)易的學(xué)生管理系統(tǒng),旨在提高C語言編程能力以及通過編程解決實(shí)際問題的能力。該系統(tǒng)主要采用了結(jié)構(gòu)體來建立和存儲(chǔ)學(xué)生的學(xué)號(hào)、成績(jī)等個(gè)人信息,并用鏈表與指針的知識(shí),結(jié)合冒泡排序的思想方法,設(shè)計(jì)函數(shù),使其具有新建、排序、查詢、插入與刪除等多個(gè)功能。同時(shí),該系統(tǒng)操作簡(jiǎn)便,只需用戶輸入學(xué)生的相關(guān)信息,并輸入所選操作的序號(hào)即可進(jìn)行相關(guān)操作。

關(guān)鍵詞:學(xué)生成績(jī)管理;C語言;程序設(shè)計(jì);C-Free

一、設(shè)計(jì)目的

1.鞏固和加深對(duì)c語言知識(shí)的理解和掌握

2.提高利用c語言進(jìn)行編程和運(yùn)行的能力

3.學(xué)會(huì)利用編程解決實(shí)際問題

二、功能模塊介紹

本學(xué)生成績(jī)管理系統(tǒng)主要包括以下幾點(diǎn)功能:

1.新建數(shù)據(jù)2.添加數(shù)據(jù)3.刪除數(shù)據(jù)4.排序5.查詢6.退出

其中新建數(shù)據(jù)用于用戶輸入學(xué)生的個(gè)人信息(學(xué)號(hào)和名字)及成績(jī)(數(shù)學(xué)和程序設(shè)計(jì)兩科成績(jī));添加數(shù)據(jù)和刪除數(shù)據(jù)便于用戶對(duì)數(shù)據(jù)的增刪;而排序(包括數(shù)學(xué)成績(jī)、程序設(shè)計(jì)成績(jī)以及總分成績(jī))可以通過不同的排序依據(jù)使用戶更方便了解學(xué)生各科總體水平以及高分和低分;查詢則包括按學(xué)號(hào)查詢、姓名查詢、成績(jī)查詢,其中成績(jī)查詢還有統(tǒng)計(jì)的功能,即輸入指定分?jǐn)?shù),程序運(yùn)行后顯示該科目中考試成績(jī)大于等于指定分?jǐn)?shù)的學(xué)生并統(tǒng)計(jì)滿足條件的人數(shù)。

三、數(shù)據(jù)結(jié)構(gòu)描述

本系統(tǒng)采用結(jié)構(gòu)體的形式和鏈表的數(shù)據(jù)結(jié)構(gòu)建立學(xué)生的個(gè)人信息檔案,主要內(nèi)容如下:

struct student

{

char num[20];

char name[20];

int math_score;

int program_score;

int sum_score;

struct student *next;

}stu[N];

其中學(xué)號(hào)和姓名為字符串類型,方便輸入;成績(jī)?yōu)檎?,?shù)學(xué)成績(jī)和程序設(shè)計(jì)成績(jī)由用戶輸入,總分由系統(tǒng)根據(jù)用戶所輸計(jì)算;N為符號(hào)常量和全局變量,用戶可隨時(shí)改變學(xué)生人數(shù)。采用結(jié)構(gòu)體的形式,適應(yīng)了學(xué)生數(shù)據(jù)類型多樣性的特點(diǎn),鏈表類型的數(shù)據(jù)結(jié)構(gòu)可以方便的插入或刪除數(shù)據(jù),較為靈活方便。

四、函數(shù)程序介紹

程序按照系統(tǒng)功能分為七大模塊,分別是:主函數(shù),新建數(shù)據(jù)函數(shù),添加數(shù)據(jù)函數(shù),刪除數(shù)據(jù)函數(shù),排序函數(shù),查詢函數(shù)以及輸出函數(shù)。

主函數(shù):在主函數(shù)中對(duì)各函數(shù)進(jìn)行聲明,顯示系統(tǒng)主界面,根據(jù)用戶的不同選擇調(diào)用不同的函數(shù)。同時(shí)對(duì)主函數(shù)采用do while的循環(huán),使系統(tǒng)執(zhí)行完一次操作后自動(dòng)跳出主菜單,方便用戶使用。

新建函數(shù):用malloc函數(shù)創(chuàng)建鏈表空間,提示用戶輸入學(xué)生數(shù)據(jù),讀入鏈表。

添加數(shù)據(jù)函數(shù):提示用戶輸入添加的數(shù)據(jù),根據(jù)學(xué)號(hào)從小到大排序的原則,用strcmp函數(shù)對(duì)添加的學(xué)號(hào)和已有的學(xué)號(hào)比較,定位后用鏈表指針插入。完成后提示添加數(shù)據(jù)成功。該函數(shù)有兩個(gè)參數(shù),head為已創(chuàng)建的鏈表的頭指針,stud是用戶要插入的數(shù)據(jù)的指針。

刪除數(shù)據(jù)函數(shù):與添加數(shù)據(jù)類似,讓用戶輸入想要?jiǎng)h除的數(shù)據(jù)的學(xué)號(hào),用strcmp函數(shù)對(duì)想刪除的學(xué)號(hào)和已有的學(xué)號(hào)比較,相等時(shí)通過改變指針方向同時(shí)用free函數(shù)釋放所刪除數(shù)據(jù)的空間實(shí)現(xiàn)刪除功能。完成后提示刪除數(shù)據(jù)成功。該函數(shù)有兩個(gè)參數(shù),head為已創(chuàng)建的鏈表的頭指針,num是用戶想要?jiǎng)h除的數(shù)據(jù)的學(xué)號(hào),用num與已有數(shù)據(jù)的學(xué)號(hào)進(jìn)行比對(duì)、定位。

排序函數(shù):結(jié)合了冒泡排序和鏈表,將學(xué)生的成績(jī)降序排列,最后用輸出函數(shù)輸出。該函數(shù)的參數(shù)是已有鏈表的頭指針,將鏈表排序后,仍返回頭指針,用輸出函數(shù)輸出。

查詢函數(shù):按學(xué)號(hào)和姓名查詢時(shí),用strcmp函數(shù)對(duì)字符串進(jìn)行比較,相等時(shí)輸入該學(xué)號(hào)或姓名所對(duì)應(yīng)的學(xué)生的全部信息;按成績(jī)查詢函數(shù),在前兩個(gè)的基礎(chǔ)上,添加了統(tǒng)計(jì)功能。因此定義一個(gè)計(jì)算個(gè)數(shù)的變量,在循環(huán)結(jié)束后輸出。該函數(shù)的參數(shù)是已有鏈表的頭指針,根據(jù)用戶的查詢要求,找到符合要求的數(shù)據(jù)后,返回頭指針,用輸出函數(shù)輸出。

輸出函數(shù):所有子函數(shù)的返回值都由輸出函數(shù)輸出。輸出函數(shù)有兩個(gè),一個(gè)是用循環(huán)輸出鏈表所有數(shù)據(jù),用于新建數(shù)據(jù)和排序結(jié)果的輸出;一個(gè)只輸出鏈表中一個(gè)成員的數(shù)據(jù),用于添加、刪除數(shù)據(jù)以及查詢函數(shù)的返回值的輸出。其他函數(shù)通過返回頭指針,傳到該函數(shù)的參數(shù)head中,并輸出鏈表中的信息。

五、系統(tǒng)調(diào)試的重點(diǎn)與難點(diǎn)

該系統(tǒng)主要運(yùn)用了結(jié)構(gòu)體、函數(shù)、動(dòng)態(tài)鏈表與指針的知識(shí),都屬于C語言中較難的知識(shí),也是運(yùn)用C語言編程的必備知識(shí),同時(shí)對(duì)于冒泡排序的思想與系統(tǒng)的整體設(shè)計(jì)也要有一個(gè)清晰的結(jié)構(gòu)框架,這些都是這個(gè)系統(tǒng)的核心部分。

以下是在調(diào)試中遇到的具體問題(節(jié)選):

①輸入函數(shù)中輸出的結(jié)構(gòu)體指針?biāo)赶虻膬?nèi)容(非數(shù)組)沒有加取地址符,導(dǎo)致程序停止運(yùn)行;

②輸出函數(shù)中輸出的結(jié)構(gòu)體指針?biāo)赶虻膬?nèi)容(非數(shù)組)沒有加取地址符,導(dǎo)致輸出一串亂碼;

③插入函數(shù)沒有用循環(huán)而是選擇進(jìn)行數(shù)據(jù)定位,導(dǎo)致函數(shù)功能無法實(shí)現(xiàn);

④忽略了學(xué)號(hào)和姓名是字符數(shù)組,直接用等于號(hào)進(jìn)行賦值而不是strcpy或strcmp等字符串處理函數(shù),編譯過程出現(xiàn)錯(cuò)誤;

六、系統(tǒng)設(shè)計(jì)的體會(huì)與總結(jié)

通過做這個(gè)學(xué)生成績(jī)管理系統(tǒng),我對(duì)結(jié)構(gòu)體、鏈表、指針、函數(shù)等知識(shí)有了更深的領(lǐng)悟。

手指在鍵盤上飛快劃過,看著一個(gè)個(gè)字符,一條條程序語句,一塊塊函數(shù)模塊從屏幕中閃現(xiàn);與此同時(shí),一次次錯(cuò)誤,一次次盯著代碼找原因,一次次失敗也讓人接近崩潰,但當(dāng)一個(gè)函數(shù)成功實(shí)現(xiàn)某種功能,或者某個(gè)很難發(fā)現(xiàn)的錯(cuò)誤在經(jīng)歷了無數(shù)次的檢查與校對(duì)終于被發(fā)現(xiàn)并被正確改正后,那種喜悅感與成就感是別人無法體會(huì)的。

當(dāng)然,由于本人所學(xué)有限,做的成績(jī)系統(tǒng)也只是初步的,功能不夠齊全,界面也不夠完善。以后會(huì)學(xué)到更難的知識(shí),遇到更復(fù)雜的編程系統(tǒng),希望以后也能不急不躁,耐心編碼。

作者簡(jiǎn)介

唐葉爾(1999—),女,漢族,浙江溫州人,學(xué)生,本科,浙江師范大學(xué)初陽學(xué)院,軟件工程專業(yè)。

(作者單位:浙江師范大學(xué)初陽學(xué)院)

猜你喜歡
程序設(shè)計(jì)
基于SolidWorks和VBA的電機(jī)階梯軸建模程序設(shè)計(jì)
高職Java程序設(shè)計(jì)課程體系建設(shè)思考
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
電子制作(2019年9期)2019-05-30 09:42:04
基于LabVIEW的車載充電機(jī)控制程序設(shè)計(jì)
淺談基于C語言的計(jì)算機(jī)軟件程序設(shè)計(jì)
電子制作(2017年24期)2017-02-02 07:14:40
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
OBE理念下基于Greenfoot的Java程序設(shè)計(jì)課程教學(xué)改革
模塊化程序設(shè)計(jì)在一體化檢定平臺(tái)中的應(yīng)用
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
江城| 正定县| 焉耆| 镶黄旗| 常山县| 分宜县| 河北区| 通海县| 勐海县| 巴彦县| 马公市| 德昌县| 吴桥县| 鄂伦春自治旗| 太白县| 河间市| 宁安市| 高密市| 天门市| 郎溪县| 兖州市| 华蓥市| 西乡县| 西充县| 唐河县| 和顺县| 巨鹿县| 榆林市| 贵溪市| 泾阳县| 新郑市| 葵青区| 噶尔县| 开封县| 志丹县| 乾安县| 富源县| 鄂尔多斯市| 河南省| 靖西县| 成都市|