宿舍管理系統課程設計報告

2021-03-04 05:17:20 字數 3705 閱讀 1319

西安交大城市學院計算機系

課程設計報告

課程名稱: 資料結構課程設計

專業: 資訊管理與資訊系統

題目: 宿舍管理系統

2023年6月12日

計算機系

《資料結構》2009級課程設計任務書

一、 系統設計說明:

1、 資料結構設計:

(1) 本系統用的資料型別有整型,字元型,陣列,結構體,結構體指標

(2) 本系統包含的功能模組有使用者登入系統,建立新的單鏈錶即住宿人資訊,插入住宿人,刪除住宿人,查詢住宿人,輸出住宿人資訊,主選單模組

各模組功能描述:

1、 只有管理員才能登入進去,登入時需要輸入對應的使用者名稱及密碼

2、 學生資訊鍊錶的建立是在程式開始的時候輸入已有的住宿人

3、 在單鏈表表頭結點插入學生資訊是用於有新住宿人的時候新增資訊

4、 在單鏈表表頭結點刪除學生資訊是在住宿人資訊無用時刪除

5、 查詢住宿人為了使使用者方便的查詢某個學生的相關資訊

6、 輸出所有學生資訊以儲存的學生資訊便於檢視

7、 主選單模組,用於控制整個系統的正常執行

各模組的層次結構可以借助下面的圖表簡明表示出來

2、 演算法設計

(1) 登陸模組介紹

登陸模組主要介紹首先開啟系統進行的操作,只有管理員才可登陸,具有一定的隱蔽性,保證該系統的安全。

(2) 主選單模組

主選單模組主要是登陸進去之後首先在螢幕上可顯示進行的操作,通過switch語句,通過鍵盤輸入0-6之間的某個數字對需要的操作進行選擇

(3) 學生資訊鍊錶的建立模組

該模組通過尾插法建立乙個新的鍊錶來儲存所有資訊,包括學生的學號,姓名和宿舍號

(4) 插入學生資訊模組

該模組構建了insertnode(linklist head,listnode *p,int i)函式,利用while語句及if語句確定插入位置,然後再插入需要的學生資訊

(5) 查詢學生資訊模組

該模組為建立了*findlist(linklist head)函式,可以利用按照學號查詢及姓名查詢,借助while語句及if語句檢視學生的資訊。

(6) 刪除學生資訊模組

該模組構建了delnode函式,通過while語句及if查詢要刪除的住宿者的資訊

(7) 修改學生資訊模組

該模組建立了指標函式*modinode(linklist head),通過修改學號及姓名進行修改,首先遍歷所有住宿者,再通過while語句判斷是否為要修改的學生資訊。

3、 測試用例設計:

(1)登陸系統介面

(2)主選單介面

(3)學生資訊鍊錶的建立介面

(4)插入學生資訊介面

(5)查詢學生資訊介面

(6)刪除學生資訊介面

(7) 修改學生資訊介面

(8) 輸出學生資訊

(9)退出管理系統

4、 上機除錯:

問題1:無法顯示正確的理想的理想介面

解決方法:調整程式的輸出選項,以致達到理想結果

問題2:編譯不出來

解決辦法:看是否上次編譯的對話方塊沒有關閉

問題3:老是提示system(」cls」)有錯誤

解決辦法:加了標頭檔案#include

二、 資料流程圖:

1、 系統整體流程圖

2、 具體演算法的流程圖

(1) 登陸模組

void denglu ()

輸入不正確會提示使用者名稱及密碼不正確

輸入正確的使用者名稱及密碼進入該作業系統

main()函式

(2) 新建模組

linklist createlist(void)

申請表頭結點

linklist head=(listnode *)malloc(sizeof(listnode))

listnode *p,*rear

學號(6)姓名(10)性別(2)宿舍號(4)

用尾插法建立單鏈表

輸入住宿者的相關資訊

return head

(3) 插入模組

void insertnode( linklist head, listnode *p )

listnode *p1

空表:插入作為第乙個結點

while((j<=i-1)&&(p1!=null))

找到第i-1個結點,p1指向該結點

p1=p1->next; if(p1==null)

j沒有合適的插入點

結束(5)刪除模組

void delnode(linklist head

listnode *p,*q;

呼叫查詢函式,找到要刪除的資訊

if (p==null) 找不到要刪除的住宿者的資訊return n

if (jx=='1')

q=q->next;

q->next=p->next;

free(p);

刪除成功

結束(6)查詢模組

listnode *listfind(linklist head)

listnode *p;char num[6];char name[10];

按學號查詢按姓名查詢

while (p && strcmp( while (p && strcmp(

p->data.num,num)<0p->

查詢成功 if (p==nullreturn p

strcmp (p->data.num,num)>0

沒有查到要查詢的住宿者

結束(7) 修改模組

void *modinode(linklist head)

listnode *p;

1、修改學號2、修改姓名

請輸入要修改學生的學號請輸入要修改學生的姓名

while(p && strcmpwhile (p && strcmp(p->

(p->data.num,num)!=0請輸入修改後的學生的姓名

p=p->next;}

請輸入修改後的學生的學號

printlist(headprintlist(head)

結束三、 程式源**:

#include

#include

#include

#include

//結點型別

typedef structdatatype;

//結點型別定義

typedef struct nodelistnode;

listnode *p;

typedef listnode *linklist;

linklist head;

int n;

/*函式說明*/

int menu_select();

linklist createlist(void);

void printlist(linklist head);

int insertnode(linklist head,listnode *p,int i);

listnode *findlist(linklist head);

void delnode(linklist head);

void denglu();

void *modinode(linklist head);

//主函式

void main()

{int i;

denglu();

for{ switch(menu_select()){

c語言課程設計報告宿舍管理系統

西安郵電學院 c語言課程設計報告書 實驗題目 學生宿舍管理系統 一 實驗目的 通過本課程設計,強化上機動手能力,使學生在理論和實踐的基礎上進一步鞏固 c語言程式設計 課程學習的內容,掌握工程軟體設計的基本方法。通過這次實習練習,可以更進一步的熟悉所學的知識,還可以加強和鞏固知識。長達兩周的上機練習,...

c語言課程設計報告宿舍管理系統

西安郵電大學 c語言課程設計報告書 實驗題目 學生宿舍管理系統 一 實驗目的 通過本課程設計,強化上機動手能力,使學生在理論和實踐的基礎上進一步鞏固 c語言程式設計 課程學習的內容,掌握工程軟體設計的基本方法。通過這次實習練習,可以更進一步的熟悉所學的知識,還可以加強和鞏固知識。長達兩周的上機練習,...

學生宿舍管理系統課程設計報告

課程設計報告 課程設計名稱資訊系統課程設計 專業資訊管理與資訊系統 班級學號 姓名指導教師 成績年月日資訊系統課程設計 某高校學生宿舍管理系統 目錄一 設計任務與要求 1 1.1 總體目標與任務要求 1 1.2 題目選擇與目的意義 1 1.3 所選題目的主要工作 1 二 需求分析 1 2.1 使用者...