學生資訊管理系統C語言課程設計報告

2021-03-14 12:07:12 字數 5284 閱讀 5017

課程設計報告

課程名稱 c語言程式設計

課題名稱學生資訊管理系統

專業電氣工程及其自動化

班級 1086班

小組成員周鐵 201013010632

指導教師

2023年 6 月 20 日

一、需求分析 1

①.總體功能設計 1

②.各模組功能設計 1

二、總體模組功能框圖 2

三、總流程圖及各模組流程圖 2

四、各模組主要功能的實現 5

.顯示模組 5

.追加模組 6

.查詢模組 6

.刪除模組 6

.修改模組 6

.排序模組 6

五、程式除錯 7

.顯示程式 7

.追加程式 8

.查詢程式 10

.刪除程式 13

.修改程式 14

.排序程式 17

五、總結與心得體會 19

六、附件 20

.源程式 20

.注釋 30

一、需求分析:

ⅰ.總體功能設計:

學生資訊管理系統存放了每個學生的學號、姓名、性別、年齡、出生年月日、位址、**號碼、e-mail資訊地資料庫。每個人的資訊定義在乙個結構體變數中。其結構如下:

系統通過顯示程式、追加程式、查詢程式、刪除程式、修改程式、排序程式來實現學生資訊管理系統的顯示功能、追加功能、查詢功能、刪除功能、修改功能、排序功能。各個功能的呼叫通過主函式中的switch語句來實現。

ⅱ.各模組功能:

ⅰ.顯示模組:

通過設計乙個模組,來實現學生資訊的顯示。以便於瀏覽學生的資訊。

ⅱ.追加模組:

通過設計乙個模組,當要加入新的學生的資訊的時候,來實現新學生資訊的加入。

.查詢模組:

通過設計乙個模組,這個模組可以按學生的學號、姓名來查詢學生所有的資訊,並顯示學生的所有資訊,以便查詢者閱讀。

.刪除模組:

通過設計乙個模組,當輸入乙個學生的學號或者姓名的時候,可以通過這個模組,將輸入學號或者姓名的學生的所有資訊從資料庫中刪除出去。以後,這個學生的資訊將不再會出現再資料庫中。

.修改模組:

通過設計乙個模組,當某個人的資訊發生變化的時候,可以通過修改模組來進行修改。修改模組時一具有多級子選單的摸塊。使用十分的方便、靈活。

.排序模組:

通過設計乙個模組,來實現資料庫的資訊按某項成員名的伸序或者降序排列。這個模組提供了按學號、姓名、年齡三種方式來實現排序,使瀏覽者一目了然。

二.總體模組框圖:

三、總流程圖及各模組流程圖

ⅰ.總流程圖:

ⅱ.各模組流程圖:

ⅰ.刪除程式:

ⅱ.查詢程式:

四、各模組主要功能的實現

.顯示模組

程式通過乙個printf函式把輸出資訊的表頭列印出來,再通過乙個for迴圈把每乙個學生的資訊輸出,再輸出的時候,通過定義數字、字元的長度大於本身的長度來實現輸出資訊的排版和隔開,使輸出的資訊排版美觀。

.追加模組

程式通過輸入乙個整型變數n的值來確定追加的個數,再通過乙個for迴圈來實現n個新資料的追加。每個結構體中間的成員之間用空格來隔開,各個結構體之間通過回車鍵來隔開。

.查詢模組

程式通過輸入乙個變數n來實現是按學號還是按姓名來查詢。當輸入完學號或者姓名的時候,再通過乙個for迴圈來實現此人資訊的查詢。當含有這個人的資訊的時候,把變數k賦值為1,並把此人再記憶體的順序號賦給i。

如果不含這個人的資訊的時候,變數k的值仍為0。再通過乙個if 語句,如果k的值為1,則列印第j個人的所有資訊,如果k的值為0,則列印「error!」。

.刪除模組

程式通過定義乙個變數n,來確定輸入的到底是學號還是姓名。通過乙個for迴圈來確定資料庫到底是否含有此人的資訊。如果含有此人的資訊,則通過乙個for迴圈,把這個以後的資訊依次前推來覆蓋這個人的資訊,而實現此人資訊的刪除。

如果不含此人的資訊,則列印「error!」。

.修改模組

程式定義乙個變數n,來確定到底輸入的是學號還是姓名。通過乙個for迴圈來確定資料庫到底是否含有此人的資訊。如果含有此人的資訊,則把此人的資訊列印再螢幕上。

再顯示二級選單,是修改這個人的學號、姓名、性別、年齡、出生年月、位址、**號碼還是e-mail。通過乙個switch語句來實現某個資訊地修改。如果不含有此人的資訊,則列印「error!

」。.排序模組:

程式通過定義乙個變數n來輸入乙個變數,來確定是按學號、姓名還是年齡來排序。首先定義乙個結構體變數作為中間變數。學號排序,通過兩重for迴圈,運用中間結構體變數來實現兩個變數資訊的交換。

首先把學號最小的放第乙個,以後依次類推。姓名排序,同樣通過雙重for迴圈,通過strcmp函式來實現兩個字串的比較,再實現兩個資訊的交換。年齡排序,也是同樣的方法,不過是按年齡的伸序排列。

五.程式除錯

.顯示程式:

1.如果執行程式,將出現如下的介面:

圖1--1

2.此時如果輸入1,並按回車鍵,程式將進入顯示模組,通過顯示模組顯示所有學生的所有資訊。其輸出介面如下:

圖1--2

.追加程式:

1. 當在圖1—1的前提下輸入2,則進入追加模組,此時則出現如下的介面:

圖2--1

2.此時電腦在問你要追加的人數,如果你輸入1,則出現如下的介面:

圖2--2

3.這個時候你就將追加這個學生的資訊輸入,輸入如下資訊:

322 funan m 20 1989.06.04 xiangtan 5469824

輸入完後將出現以下介面:

圖2--3

4.資訊追加完以後,程式會自動跳到顯示模組,把資料庫種的資訊再輸出一次。將會出現如下介面:

圖2--4

.查詢程式:

1. 如果再圖1--1的基礎上選擇5,則進入查詢模組,進入如下的介面:

圖3--1

2.如果你選擇1,則將進入按學號查詢的介面。如下:

圖3--2

3.如果你輸入124,電腦將會自動查詢學號為124學生的資訊,並顯示在螢幕上。如下:

圖3—3

4.如果你在圖3--1的基礎上選擇2,並在輸入了maxiang,則會出現如下的介面:

圖3—4

5.如果你在圖3—2和圖3—4輸入後,查無此人。則顯示如下資訊:

圖3--5

.刪除程式:

1.如果你在圖1—1的介面下選擇4,則進入刪除程式,出現如下介面:

圖4—1

2.如果你選擇1,並在此基礎上輸入學號124,程式則將學號為124的人資訊刪除,並顯示如下:

圖4--2

3.如果你在圖4—1的基礎上選擇2,並輸入maxiang,則出現如下介面:

圖4—3

.修改程式:

1.如果你在圖1—1 下選擇3,則進入修改程式,出現是按學號還是按姓名修改,如選擇 1,則出現如下:

圖5--1

2.如輸入學號 112,出現下一級選單,選擇修改的內容,介面如下:

圖5--2

3.如選擇2,並輸入xiangning,則將學號為112的人的姓名改為xiangning,介面如下:

圖5--3

4. 如果你在圖5—1下選擇3,並輸入hujing,則將出現如下介面:

5.如果你選擇1,並輸入554,則姓名為hujing的人的學號將改為554,介面如下:

圖5--5

.排序程式:

1.如果你在圖1—1 介面下選擇6,則進入排序程式,你將選擇是按學號、姓名還是年齡排,其介面如下:

圖6--1

2.如選擇1,則按學號排,其結果如下:

圖6--2

3.如果在圖6—1介面下選擇2,則將按姓名排,其結果如下:

圖6--3

4.如果在圖6—1介面下選擇3,則將按年齡排,年齡相同則按學號排,其結果如下:

圖6--4

5.如在1—1介面下選擇7,則將進入退出程式,其介面如下:

圖6--5

五.總結與心得體會

通過乙個星期的課程設計,使我對c語言程式設計有了乙個更加深入的認識,從剛開始的初略的認識到有了比較深入的認識,能夠比較靈活的運用。c語言是一門比較靈活、有趣而且實踐性非常強的課程,我們要從它的實踐運用中,體會到了學習c語言的樂趣和好處。在課程設計的這段時間裡,我學到了許多東西,同時也使我對以前學的東西有了乙個更深更透徹的理解。

比如:能夠靈活的運用雙重迴圈,switch語句,結構體的定義、引用、使用,指標的定義、使用等。雖然對c語言程式設計還有許多不明白,但這段時間我真的獲易匪淺。

以前上程式設計課,我基本上都沒有深入理解自己所編的程式,常常就是仿照書本編乙個程式,再執行幾遍,沒錯就萬事大吉,根本就沒管它了。但這次就不同,對每個程式都有乙個深入透徹的理解,常常不懂就問同學或老師,直至把它弄懂為止。c語言限制比較的寬鬆,我們在程式設計的時候更應該仔細,乙個小小的錯誤都可能導致程式的無法編譯。

所以對於大的程式,我們更應該先編好主程式,再乙個乙個模組的編。這樣大大的縮短了程式設計的時間同時又提高了程式的可讀性。

通過課程設計,使我對c語言的運用有了更深刻的認識。使我對c語言的實踐應用更加期待,更加好奇,我相信c語言對我以後的人生將有很大痺益。在對c語言的使用中,使我對軟體的認識也有了初步的了解。

更是為我以後學習的微機原理以及微控制器原理奠定了基礎。我們的專業是電子資訊工程,主要是跟電子產品打交道,後面用到c語言的地方還有許多,所以說,學好c語言,為我們以後專業知識的學習有很大好處。在學習c語言中更使我體會到了學習計算機技術的樂趣,我將更加努力多學,學好計算機技術。

六.附件

.源程式

.建庫函式

#include "stdio.h"

#include "conio.h"

struct stu

s[20];

void main()

{int i;

struct stu s1;

file *fp;

fp=fopen("h:\\xsxxk.txt","w");

for(i=0;i<10;i++)

{scanf("%ld%s%s%d%s%s%s%s",&s[i].xh,s[i].name,s[i].

xb,&s[i].nl,s[i].czrq,s[i].

address,s[i].phone,s[i].e_mail);

fprintf(fp,"%ld\n%s\n%s\n%d\n%s\n%s\n%s\n%s\n",s[i].xh,s[i].name,s[i].

xb,s[i].nl,s[i].czrq,s[i].

address,s[i].phone,s[i].e_mail);

c語言課程設計,客戶資訊管理系統

include include include include define n 100 void menu void input void del void change void find struct kehu struct kehu kehu n int x 0 int main void ...

教師資訊管理系統 C語言課程設計

課程設計任務書 電腦科學與技術專業 2010 年級一班陳金利 一 設計題目 教師資訊管理系統設計 二 主要內容 教師資訊包括教師號 姓名 性別 年齡 學歷 職稱 工資 住址 等 教師號不重複 試設計一教師資訊管理系統,使之能提供以下功能 1 系統以選單方式工作 2 教師資訊錄入功能 輸入 3 教師資...

C語言課程資訊管理系統課程設計報告

c語言程式設計 課程設計報告 專業 班級 姓名 指導教師 二零一二年十二月二十六日 一 設計題目2 二 設計目的2 三 設計內容2 3.1需求分析2 3.2 概要設計3 3.3 詳細設計6 3.5 編寫過程中遇到的問題及解決辦法7 3.4 除錯結果8 3.6課程設計總結16 四 參考書目17 附錄a...