• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

    一、設(shè)計目的

    1.鞏固和加深對c語言知識的理解和掌握

    2.提高利用c語言進行編程和運行的能力

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

    二、功能模塊介紹

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

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

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

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

    本系統(tǒng)采用結(jié)構(gòu)體的形式和鏈表的數(shù)據(jù)結(jié)構(gòu)建立學(xué)生的個人信息檔案,主要內(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é)號和姓名為字符串類型,方便輸入;成績?yōu)檎?,?shù)學(xué)成績和程序設(shè)計成績由用戶輸入,總分由系統(tǒng)根據(jù)用戶所輸計算;N為符號常量和全局變量,用戶可隨時改變學(xué)生人數(shù)。采用結(jié)構(gòu)體的形式,適應(yīng)了學(xué)生數(shù)據(jù)類型多樣性的特點,鏈表類型的數(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ù)中對各函數(shù)進行聲明,顯示系統(tǒng)主界面,根據(jù)用戶的不同選擇調(diào)用不同的函數(shù)。同時對主函數(shù)采用do while的循環(huán),使系統(tǒng)執(zhí)行完一次操作后自動跳出主菜單,方便用戶使用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    作者簡介

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

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

    猜你喜歡
    程序設(shè)計
    基于SolidWorks和VBA的電機階梯軸建模程序設(shè)計
    防爆電機(2022年4期)2022-08-17 05:59:24
    高職Java程序設(shè)計課程體系建設(shè)思考
    計算機教育(2020年5期)2020-07-24 08:53:00
    基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
    計算機教育(2020年5期)2020-07-24 08:52:56
    從細節(jié)入手,談PLC程序設(shè)計技巧
    電子制作(2019年9期)2019-05-30 09:42:04
    基于LabVIEW的車載充電機控制程序設(shè)計
    電子測試(2018年13期)2018-09-26 03:29:16
    淺談基于C語言的計算機軟件程序設(shè)計
    電子制作(2017年24期)2017-02-02 07:14:40
    高職高專院校C語言程序設(shè)計教學(xué)改革探索
    OBE理念下基于Greenfoot的Java程序設(shè)計課程教學(xué)改革
    模塊化程序設(shè)計在一體化檢定平臺中的應(yīng)用
    PLC梯形圖程序設(shè)計技巧及應(yīng)用
    遵化市| 特克斯县| 舞阳县| 万安县| 仙游县| 西城区| 关岭| 仙游县| 田阳县| 靖宇县| 临高县| 申扎县| 肥乡县| 泸定县| 泰宁县| 濮阳县| 若尔盖县| 连城县| 桃源县| 台南市| 鄢陵县| 静安区| 大厂| 平罗县| 蒲城县| 千阳县| 离岛区| 横山县| 会理县| 永济市| 务川| 海宁市| 淮北市| 永泰县| 聂拉木县| 宁远县| 浦县| 巩留县| 新兴县| 平阴县| 封丘县|