久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C語言實訓(xùn)報告

時間:2019-05-12 07:06:28下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言實訓(xùn)報告》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《C語言實訓(xùn)報告》。

第一篇:C語言實訓(xùn)報告

湖北汽車工業(yè)學(xué)院電氣與信息工程學(xué)院

《C語言程序設(shè)計》

實訓(xùn)報告

實訓(xùn)題目: 學(xué)生信息管理系統(tǒng)

專業(yè): 汽車電子工程專業(yè) 班級:

姓名: 成績:

一、需求分析

1、問題

根據(jù)需求,該系統(tǒng)所應(yīng)包含的信息有以下一些: 學(xué)生的基本信息:

學(xué)號,班級,姓名,年齡,出生日期。

根據(jù)需求,該系統(tǒng)所應(yīng)實現(xiàn)的功能有以下一些:

各種基本信息數(shù)據(jù)的錄入:a由鍵盤輸入學(xué)號,班級等基本信息。B由文件錄入學(xué)生信息。對學(xué)生信息的查詢:a按學(xué)號查詢指定學(xué)生信息。

b按班級查詢指定班級內(nèi)學(xué)生的信息。

學(xué)生基本信息數(shù)據(jù)的刪除:按學(xué)生學(xué)號來刪除指定學(xué)號的學(xué)生信息。學(xué)生基本信息的保存:將錄入的學(xué)生信息保存到文件中。

2、系統(tǒng)

采用C語言實現(xiàn),開發(fā)環(huán)境為VC,可以運行在操作系統(tǒng)windows98及以上皆可。

3、運行要求

能連續(xù)錄入任意個數(shù)學(xué)生的基本信息。

界面簡潔,操作方便,提示人性化,例如刪除前需要提示用戶是否刪除

容錯性強(qiáng),例如輸入的學(xué)生出生日期格式不對或日期不符合時提示輸入錯誤,并可重新輸入。

二、總體設(shè)計

1、系統(tǒng)流程設(shè)計

根據(jù)系統(tǒng)要求,設(shè)計如下的系統(tǒng)流程

菜單顯示用戶輸入操作判斷用戶選擇的操作執(zhí)行相應(yīng)的操作退出

+

2、系統(tǒng)模塊設(shè)計

根據(jù)系統(tǒng)的功能設(shè)計,如下模塊

學(xué)生信息管理系統(tǒng)主界面顯示功能選擇鍵盤輸入學(xué)生信息文件錄入學(xué)生信息按學(xué)號查學(xué)生信息按班級查學(xué)生信息刪除指定學(xué)號信息保存學(xué)生信息

主界面模塊:完成系統(tǒng)菜單的顯示

功能選擇模塊:根據(jù)用戶的選擇,完成其相應(yīng)的功能

鍵盤輸入學(xué)生信息:從鍵盤輸入任意個數(shù)學(xué)生的基本信息,并保存到結(jié)構(gòu)體鏈表中。

文件錄入學(xué)生信息:從指定的文件中錄入學(xué)生的基本信息,并保存到結(jié)構(gòu)體鏈表中。

按學(xué)號查學(xué)生信息:輸入要查找的學(xué)生的學(xué)號,可查詢并顯示該學(xué)號對應(yīng)學(xué)生的基本信息。

按班級查學(xué)生信息:輸入要查找的班級,可查詢并顯示該班級內(nèi)學(xué)生的基本信息。

刪除指定學(xué)號信息:輸入要刪除的學(xué)生的學(xué)號,可找到并顯示該學(xué)號對應(yīng)學(xué)生的信息并刪除其信息。

保存學(xué)生信息:可將已錄入的學(xué)生信息保存到指定的文件中。

三、詳細(xì)設(shè)計

1、數(shù)據(jù)結(jié)構(gòu)設(shè)計

根據(jù)系統(tǒng)要求,系統(tǒng)中需要保存的數(shù)據(jù)有通訊錄的信息,其結(jié)構(gòu)如下: 數(shù)據(jù)項 數(shù)據(jù)項名稱 數(shù)據(jù)類型 數(shù)據(jù)長度 備注 學(xué)號 xh_number 整形變量 2 班級 bj_number 整形變量 2 姓名 name 字符串變量 20 年齡 nl_number 整形變量 2

指向日期結(jié)構(gòu)指向日期結(jié)構(gòu)體類型的指針體的指針 born_day*q 變量

應(yīng)題目要求另加一個存放日期的結(jié)構(gòu)體: 數(shù)據(jù)項 數(shù)據(jù)項名稱 數(shù)據(jù)類型 數(shù)據(jù)長度 備注 年份 y 整形變量 2 月份 m 整形變量 2 號 d 整形變量 2

為了能實現(xiàn)可連續(xù)輸入任意個數(shù)的學(xué)生信息,我采用鏈表的結(jié)構(gòu)保存學(xué)生的基本信息,在增加學(xué)生的基本信息時,創(chuàng)建一個學(xué)生信息的節(jié)點,將其插入到鏈表中,示意圖如下。

學(xué)生基本信息1學(xué)生基本信息2學(xué)生基本信息3學(xué)生基本信息4

使用C語言創(chuàng)建的結(jié)構(gòu)體如下: struct student { int xh_number;學(xué)號 int bj_number;班級 char name[20];姓名 int nl_number;年齡

struct born_day*q;指向日期結(jié)構(gòu)體類型的指針

struct student *next;指向?qū)W生信息結(jié)構(gòu)體類型的指針 };

2、界面設(shè)計 主界面:

根據(jù)系統(tǒng)要求,設(shè)計一個字符界面,顯示系統(tǒng)的菜單,為了體現(xiàn)友好性,將在每個菜單前顯示該菜單項對應(yīng)的數(shù)字

用戶輸入菜單項前面的數(shù)字,主菜單消失,進(jìn)入該模塊的相應(yīng)界面,進(jìn)行相應(yīng)的操作,完成后,回到主界面。

輸入界面:

a通過鍵盤輸入錄入學(xué)生信息:

根據(jù)提示語句可連續(xù)輸入多個學(xué)生的學(xué)生信息

b通過文件錄入學(xué)生信息:

查詢界面: a按學(xué)號查詢:

b按班級查詢:

刪除界面:

輸入要刪除的學(xué)生的學(xué)號,確認(rèn)刪除收即可刪除.導(dǎo)出界面:

3、模塊實現(xiàn)

主界面實現(xiàn):調(diào)用printf()函數(shù),在屏幕上打印需要顯示的字符信息,需要在顯示之前調(diào)用system(“cls”)函數(shù)將前面的界面清空。

對應(yīng)的實現(xiàn)函數(shù)ml();功能選擇模塊實現(xiàn):

接受從鍵盤輸入的菜單選擇,判斷并調(diào)用相應(yīng)的功能函數(shù),完成其對應(yīng)的功能。實現(xiàn)功能選擇。

對應(yīng)的語句:switch();學(xué)生信息錄入模塊實現(xiàn):

模塊說明:從鍵盤接收輸入的學(xué)生信息,在動態(tài)存儲區(qū)中創(chuàng)建學(xué)生信息的節(jié)點,遍歷鏈表,將其插入到學(xué)生信息鏈表的最后位置。

模塊流程:

清屏遍歷鏈表找到最后一個節(jié)點創(chuàng)建一個新節(jié)點從鍵盤給新節(jié)點賦值將新節(jié)點連接到鏈表的最后一個節(jié)點上 對應(yīng)函數(shù):struct student *creat()

學(xué)生信息導(dǎo)入模塊實現(xiàn):

模塊說明:進(jìn)入功能后先對屏幕清屏,再從鍵盤輸入要導(dǎo)入的文件名,及要錄入的學(xué)生的個數(shù)。根據(jù)學(xué)生個數(shù)創(chuàng)建含有對應(yīng)個學(xué)生信息結(jié)構(gòu)體的鏈表。判斷打開文件是否成功,從文件中依次將學(xué)生信息錄入到鏈表中的對應(yīng)結(jié)構(gòu)體內(nèi),錄入完畢后,判斷文件是否關(guān)閉成功,模塊結(jié)束。

模塊流程:

清屏輸入導(dǎo)入的文件名和要記錄學(xué)生的個數(shù)建立含有相應(yīng)個數(shù)結(jié)構(gòu)體的鏈表判斷鏈表是否結(jié)束從文件讀入學(xué)生信息錄入到結(jié)構(gòu)體移動指針到下一結(jié)構(gòu)體顯示文件錄入成功

對應(yīng)函數(shù):struct student *duru()學(xué)生信息按學(xué)號與按班級查詢模塊實現(xiàn):

模塊說明:先清屏,然后輸入要查詢的學(xué)生的學(xué)號或班級,建立一個指針從學(xué)生信息鏈表的首地址看是逐個判斷其結(jié)構(gòu)體內(nèi)的學(xué)生學(xué)號或班級是否相等,如果相等就顯示并跳出循環(huán)。如果循環(huán)到最后都沒有相等的就顯示沒有此學(xué)號或班級的學(xué)生信息,并結(jié)束功能。

模塊流程 輸入要查詢的學(xué)號或班級判斷循環(huán)是否結(jié)束否如果本結(jié)構(gòu)體內(nèi)學(xué)號與要查詢的一樣就顯示器信息并將-1賦給num同時跳出循環(huán)不一樣就移動指針到下一個結(jié)構(gòu)體是判斷num是不是-1否顯示此學(xué)號或班級無對應(yīng)的學(xué)生信息是顯示查詢功能結(jié)束

對應(yīng)函數(shù):xhcx(struct student *p)和bjcx(struct student *p)

學(xué)生信息刪除模塊實現(xiàn):

模塊說明:先清屏,然后輸入要刪除的學(xué)生學(xué)號,循環(huán)判斷鏈表中的結(jié)構(gòu)體是否為要刪除的學(xué)生信息結(jié)構(gòu)體,如果是就提示是否刪除,若要刪除就將此結(jié)構(gòu)體的前一個和后一個結(jié)構(gòu)體連接起來,然后對出功能。

模塊流程: 輸入要刪除的學(xué)號判斷循環(huán)是否結(jié)束否判斷是否是要刪除的結(jié)構(gòu)體是提問是否刪除是將前一結(jié)構(gòu)體與后一結(jié)構(gòu)體連接,并且令x為-1否否是移動指針到下一個結(jié)構(gòu)體令x為-2,并跳出循環(huán)判斷x是否大于零是顯示次學(xué)號無對應(yīng)的學(xué)生信息是判斷x是不是-1是刪除成功,并退出功能否不進(jìn)行刪除,并退出功能 對應(yīng)函數(shù):delete(struct phone * head)通訊錄信息導(dǎo)出模塊實現(xiàn):

模塊說明:先清屏,然后打開一個文件,并且令文件指針指向此文件,進(jìn)行循環(huán)依次將結(jié)構(gòu)體里的信息輸入到文件中,最后關(guān)閉文件,并對出功能。

模塊流程:

創(chuàng)建文件指針判斷打開文件是否成功否關(guān)閉程序是判斷循環(huán)是否結(jié)束否將指針?biāo)傅慕Y(jié)構(gòu)信息體輸入到文件中是將指針移動到下一個結(jié)構(gòu)體保存文件并退出功能

對應(yīng)函數(shù):save(struct student *p)

四、測試結(jié)果

1、輸入學(xué)生信息測試

測試數(shù)據(jù):

輸入 001 1 王天祺 19 1992-03-05

測試結(jié)果: 程序運行出現(xiàn)錯誤

原因 sanf()中沒有加取址符&。經(jīng)過修改再次輸入數(shù)據(jù) 運行成功,結(jié)果:

2、從文件錄入測試 已知有一文件:

又將此文件內(nèi)的信息錄入到系統(tǒng)中 測試結(jié)果:

3、查詢學(xué)生信息測試

測試數(shù)據(jù):在系統(tǒng)中存在一個學(xué)號為001的學(xué)生。

測試成功,結(jié)果:

此為按學(xué)號查詢

此為按班級查詢

4、刪除測試

測試數(shù)據(jù):已有三個數(shù)據(jù):001 1 wtq 19 1992-03-05

002 2 zdy 19 1991-02-19

003 1 sdf 20 1992-01-12 刪除學(xué)號為2的學(xué)生信息 測試結(jié)果:

5保存學(xué)生信息的測試:

測試數(shù)據(jù):將測試4中刪除后的學(xué)生信息保存起來: 測試結(jié)果:

此為保存的文件內(nèi)容。

五、實訓(xùn)總結(jié)

實訓(xùn)感想

對系統(tǒng)開發(fā)的總結(jié)(設(shè)計亮點,存在的不足,需要改進(jìn)的地方)

本學(xué)生信息管理系統(tǒng)程序的編輯的整體思路并不復(fù)雜,主要就是通過建立由儲存有學(xué)生基本信息的結(jié)構(gòu)體構(gòu)成的鏈表以及對鏈表的一些技術(shù)運用,來達(dá)到

1.各種基本信息數(shù)據(jù)的錄入如:a由鍵盤輸入學(xué)號,班級等基本信息。b由文件錄入學(xué)生信息。2.對學(xué)生信息的查詢:a按學(xué)號查詢指定學(xué)生信息。

b按班級查詢指定班級內(nèi)學(xué)生的信息。

3.學(xué)生基本信息數(shù)據(jù)的刪除:按學(xué)生學(xué)號來刪除指定學(xué)號的學(xué)生信息。4.學(xué)生基本信息的保存:將錄入的學(xué)生信息保存到文件中。等功能的實現(xiàn)的目的。

在此次的編程過程,我對c語言的程序設(shè)計有了更深的理解,在設(shè)計的程序中有我自己的設(shè)計亮點,也有存在的不足,以及需要改進(jìn)的地方。

例如在學(xué)生信息的錄入功能的編程過程中,就有一個要求是要能夠判斷所輸入的學(xué)生出生日期的格式以及日期是否符合要求。在做到這一點的功能的時候,我花了很多的時間,首先是定義了一個全局的字符數(shù)組變量用來以字符的形式存放輸入的日期,然后通過一個函數(shù)來講起對應(yīng)的年份、月份、號等信息從字符變量轉(zhuǎn)換成了整形變量,以便對其日期進(jìn)行檢測。通過判斷其是否為閏年,二月是否有29天,2、4、6、9、11月份是否在30天以內(nèi)等等來判斷其日期是否符合要求。最后把通過的日期以整形的形式保存到一個日期結(jié)構(gòu)體中,再把結(jié)構(gòu)體連接到每一個學(xué)生信息結(jié)構(gòu)體中。以這種方式來達(dá)到判斷日期的目的。而且我并沒有把學(xué)生出生日期的信息直接存放到學(xué)生信息的大結(jié)構(gòu)體中,而是又另建立了一個專門存放日期的結(jié)構(gòu)體數(shù)組,并將存放日期信息的結(jié)構(gòu)體數(shù)組中的結(jié)構(gòu)體變量分別連接到了存放學(xué)生信息的大結(jié)構(gòu)體中,用一個指向存放日期的結(jié)構(gòu)體類型的指針來接收。這樣,學(xué)生的出生日期的信息就可以和每一個學(xué)生的其他信息聯(lián)系到一起。這些是我設(shè)計的程序當(dāng)中的亮點。

當(dāng)然也有一些不足之處,在整個系統(tǒng)運行的過程中,存在著一個很大的問題,那就是,輸入學(xué)生信息的時候只能一次性的輸入,而不能間斷的,回到菜單后在此進(jìn)入然后接著上次的學(xué)生信息再次往下輸入,從文件中錄入學(xué)生信息也是一樣,不能間斷的從文件中錄入,而且從文件錄入學(xué)生信息時也要提前輸入要從文件中錄入學(xué)生信息的學(xué)生個數(shù),而不能自動的檢測文件中就多少個學(xué)生的信息。同時被錄入學(xué)生信息的文件的文件名以及地址都是定死的,不能從鍵盤輸入,雖然調(diào)試過很多次,但還是無法解決這一問題。這些也都是需要我在以后的時間里去慢慢改進(jìn),慢慢體會的地方。

總之,此次的c語言程序設(shè)計課設(shè)讓我看到了我設(shè)計c語言程序的亮點與不足之處,對于我的亮點,我需要保留并繼續(xù)下去。而對于我的不足之處,我會花時間去理解,彌補(bǔ),去完善。雖然此處程序并不是非常簡潔,但是確是我自己設(shè)計出來的,相信有了這一次設(shè)計的經(jīng)歷,以后對其它程序的設(shè)計我會更加的得心應(yīng)手。

六、附錄 程序源代碼

/*

1、學(xué)生信息管理 問題描述:

已知程序要求管理的學(xué)生信息包括:學(xué)號(不重復(fù)),班級,姓名,年齡,性別,出生日期,地址,電話,E-mail等。設(shè)計一程序,完成以下功能: 1)能從鍵盤輸入學(xué)生的信息(增加,輸入時需要能檢查該學(xué)號的學(xué)生的記錄是否已經(jīng)存在,出生日期格式是否合法(格式為:YYYY-MM-DD,如2009-01-02))2)能從指定的文件中讀入學(xué)生的信息 3)能按學(xué)號查詢學(xué)生的信息 4)能按班級查詢學(xué)生信息

5)能刪除指定學(xué)號的學(xué)生信息 6)能將學(xué)生信息保存在指定的文件中 提示:

從文件讀入學(xué)生信息時,需要先設(shè)計好文件的格式,從文件中讀取數(shù)據(jù)后,按照預(yù)先設(shè)計的格式分析數(shù)據(jù),提取學(xué)生的信息,讀入程序

定義一個日期結(jié)構(gòu)體保存日期,具體信息為:年、月、日

判斷出生日期的格式是否合法時,需要判斷長度是否為10,第5位和第8位是否為'-',字符,將1-4位表示的年份,6-7位表示的月份,9-10位表示的日期分別轉(zhuǎn)換成整數(shù)。判斷是否滿足構(gòu)成日期的條件閏年月份只能是1-12之間的數(shù),如果是閏年,二月可以是29天否則不能大于28,1,3,5,7,8,10,12月可以是31天,其余只能小于等于30(建議寫成函數(shù))。*/

#include #include #include #include #define LEN sizeof(struct student)int m=1;int n;char rq[15];int fun(int y,int m,int d){ if(y%(y%100?4:400)?0:1==1){ if(m==2){ if(d<=29)return 1;else return 0;} else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){ if(d<=31)return 1;else return 0;} else if(m==2||m==4||m==6||m==9||m==11){ if(d<=30)return 1;else return 0;} } else { if(m==2){ if(d<=28)return 1;else return 0;} else if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){ if(d<=31)return 1;else return 0;} else if(m==2||m==4||m==6||m==9||m==11){ if(d<=30)return 1;else return 0;} } } int pdrq(char rq[15]){ int y,m,d;if(rq[9]!=0&&rq[10]=='

主站蜘蛛池模板: 真实国产乱啪福利露脸| 国产成人精品久久一区二区三区| 熟睡人妻被讨厌的公侵犯深田咏美| 少妇私密会所按摩到高潮呻吟| 免费网站看v片在线18禁无码| 亚洲另类欧美综合久久图片区| 久久九九日本韩国精品| 久久久久久久久久久久久9999| 97高清国语自产拍| 日日做夜狠狠爱欧美黑人| 麻豆久久久9性大片| 美女黄18以下禁止观看| av无码小缝喷白浆在线观看| 久久国语露脸国产精品电影| 国产-第1页-浮力影院| 人妻出轨av中文字幕| 亚洲情xo亚洲色xo无码| 免费又黄又爽又猛的毛片| 国产成人青青久久大片| 国产sm调教视频在线观看| 无码午夜人妻一区二区不卡视频| 亚州国产av一区二区三区伊在| 国产真实伦在线观看| 波多野结衣av高清一区二区三区| 亚洲无码一区二区三区| 亚洲一区二区三区 无码| 中文字幕av不卡电影网| 亚洲av无码一区二区三区在线| 国产又色又爽又黄刺激的视频| 色舞月亚洲综合一区二区| 成人国产mv免费视频| 一本一道波多野结衣av一区| av无码天堂一区二区三区| 欧美白人战黑吊| 日本午夜精品一区二区三区电影| 大地资源中文在线观看官网第二页| 狠狠躁天天躁中文字幕| 国产亚洲aⅴ在线电影| 在线天堂www中文| 精品国产av最大网站| 国产大片内射1区2区|