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

2021-03-04 03:57:58 字數 4403 閱讀 2843

西安郵電學院

c語言課程設計報告書

實驗題目:學生宿舍管理系統

一、實驗目的

通過本課程設計,強化上機動手能力,使學生在理論和實踐的基礎上進一步鞏固《c語言程式設計》課程學習的內容,掌握工程軟體設計的基本方法。通過這次實習練習,可以更進一步的熟悉所學的知識,還可以加強和鞏固知識。長達兩周的上機練習,為我們提供了很好的程式設計環境。

更好的了解程式設計的意義,為將來參加實踐活動以及以後的畢業設計打下堅實的基礎。

二、實驗內容

我設計的是「學生宿舍管理系統」,主要是針對住宿學生個人資訊的管理,適用物件主要是學校,以方便學校對住宿學生的管理。包括學生的姓名、學號、性別、專業、班級等等。在編寫過程中主要運用c語言的基本知識有:

資料型別(整形、實型、字元型、指標、陣列、結構等);運算型別(算術運算、邏輯運算、自增自減運算、賦值運算等);程式結構(順序結構、判斷選擇結構、迴圈結構);大程式的功能分解方法(即函式的呼叫與使用)等。

三、需求分析

該程式是由c語言編寫的乙個宿舍管理查詢軟體,本程式在microsoft visual c++ 6.0下執行,其主要功能是實現對學生資訊的錄入、新增、刪除、修改、查詢、統計。其中查詢可以分別以姓名、學號、宿舍號為關鍵字查詢學生資訊。

統計可以分別以學號、宿舍號、性別、班級、專業為關鍵字進行統計,並且輸出資訊按學號大小從小到大輸出。

四、概要設計

1、方案設計

2、資料結構說明

程式中資料主要是學生資訊,具體屬於型別如下:

truct st_message

char name[20]; /*學生姓名*/

char dorm[7]; /*宿舍號*/

char num[10]; /*學號*/

char ***[5]; /*性別*/

char age[4]; /*年齡*/

char major[20]; /*專業*/

char classs[8]; /*班級*/

3、模組功能說明

第一密碼模組:呼叫cipher(),進行管理者的註冊與登入操作。

第二錄入模組:呼叫input_message(),對住宿學生資訊進行錄入。

第三新增模組:呼叫append_message(),對新來學生資訊進行新增錄入。

第四修改模組:呼叫revise_message(),對需修改學生的資訊進行修改。

第五刪除模組:呼叫delete_message(),對某一學生資訊進行刪除操作。

第六查詢模組:呼叫find_message(),分別以姓名、學號、宿舍號對學生資訊進行查詢。

第七統計模組:呼叫census_message(),分別以學號、宿舍號、性別、班級、專業方式對學生資訊進行統計,並按學號由小到大輸出。

五、詳細設計及執行結果

1.函式之間呼叫關係圖

2.部分模組流程圖及執行結果圖示

登陸介面

主函式流程圖

主頁介面

錄入模組

錄入介面

修改模組

修改介面

統計模組

統計介面

六、除錯情況,設計技巧及體會

1、測試資料

對功能1(密碼系統測試)的測試:先註冊賬號密碼分別為:1,1,然後退出程式進行登入測試。

輸入一組錯誤賬號密碼系統顯示「輸入的賬號或密碼有誤,請重新輸入!」。在輸入正確密碼,系統顯示「登陸成功」並進入主介面。

對功能2(錄入學生資訊)的測試:按照先後順序分別輸入學生資訊:

學號姓名班級宿舍號性別年齡專業

03091002 張三 0901 13#401 男 20 通訊工程

03091001 李四 0902 13#401 男 20 計算機

對功能3(新增學生資訊)的測試:按照先後順序分別輸入學生資訊:

學號姓名班級宿舍號性別年齡專業

03091004 王紅 0901 14#401 女 20 通訊工程

03091003 李娜 0902 14#401 女 20 計算機

對功能4(修改學生資訊)的測試:輸入要修改學生的姓名:王五,系統顯示「該學生資訊不存在」。

輸入修改學生姓名:張三,系統顯示出該學生資訊。選擇修改學號為:

03091005,系統顯示出修改後的學生資訊。

對功能5(刪除學生資訊)的測試:輸入要刪除學生的學號:03091001,系統顯示「該學生資訊不存在」。

輸入要刪除的學生的學號:03091005,系統顯示出該學生資訊。選擇刪除該學生資訊。

對功能6(查詢學生資訊)的測試:查詢宿舍號為14#401的資訊,系統顯示為:

學號姓名班級宿舍號性別年齡專業

03091003 李娜 0902 14#401 女 20 計算機

03091004 王紅 0901 14#401 女 20 通訊工程

對功能7(統計學生資訊)的測試:選擇按學號統計,系統顯示為:

學號姓名班級宿舍號性別年齡專業

03091002 張三 0901 13#401 男 20 通訊工程

03091003 李娜 0902 14#401 女 20 計算機

03091004 王紅 0901 14#401 女 20 通訊工程

學生總人數3人,其中男生1人,女生2人。

對功能8(退出系統)的測試:選擇退出系統,程式關閉。

2、對除錯中主要問題進行總結

除錯過程中,經常會出現輸入或顯示為亂碼的情況,這往往是上下定義的資料型別不同或定義陣列長度不夠所造成的。有時候程式中還會出現錄入五個資料而只顯示四個的情況,這也往往是由於定義的結構體陣列長度過低所造成的。像這類問題只要把資料型別都定義成字元型,並且定義乙個合理的陣列長度往往都能解決。

在除錯過程中我遇到最大的問題出現在刪除模組。在運用「rt+」開啟檔案並對某一資料進行刪除後,往往顯示會多顯示一行資料。這是由於「rt+」寫資料時只會覆蓋資料而不會清除原檔案資料,因此檔案最後一行資料總會保留在原檔案中。

後來我先用「rt」開啟檔案並讀取檔案中的資料,然後再用「wt」開啟原檔案將刪除後的資料重新寫入檔案,最終檢測執行成功。

3、對自己設計進行評價,指出合理和不足之處,提出改進的方案

本程式擁有很多的優點:第一,它具有作為乙個宿舍管理系統的各個功能,包括錄入資訊、新增資訊、修改資訊、刪除資訊、查詢資訊、統計資訊六大主要功能。可以方便的進行住宿學生資訊的管理。

第二,它的各個功能模組在實現時非常方便,例如:錄入和新增學生資訊可以自己控制錄入和新增的人數;統計學生資訊可以分學號、班級、專業等進行統計等等。第三,它也具有安全性,在進入學生資訊管理系統之前要求輸入賬號和密碼,所以非常安全,不會造成資訊的外洩。

當然程式也有他的不足之處,比如密碼不能回顯「*」,這樣很容易造成密碼的丟失。可以在密碼模組中改為回顯「*」形式,並且可以對密碼進行演算法加密,這樣更能確保資訊的安全。

4、在設計過程中的感受

「萬事開頭難」這句話在我編寫程式的過程中得到了真正的體現。在最初編寫的幾天裡出現了這樣那樣的錯誤一大堆,這主要是由於我對基礎知識掌握不紮實所造成的。但是隨後幾天裡,我對課本知識進行了回顧並不時的向老師和同學進行請教,慢慢的對編寫程式也開始得心應手起來。

程式的編寫總歸是一件費時費力的事情,但只要我們認真編寫和除錯最後總能成功。

短短的兩周實習時間我收穫頗多,我相信經過這次實習必將為我以後的深入學習打下紮實的基礎。

參考文獻:《c語言程式設計》(第二版)  王曙燕科學出版社

七、源程式清單

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

#include"io.h"

#define n 90

struct cipher

m[10];

cipher密碼模組*/

{ system("color 9f");

int i,k=0,flag,flag1,flag2,fno,fsize,fnum,choice;

char account[6

char code[6],code1[6];

file *fp1定義檔案指標*/

printf ("\n\n\n\n\n\n\n學生宿舍管理系統n"); /*登陸介面*/

printf1.登陸n");

printf2.註冊n");

printfn");

scanf("%d",&choice);

system("cls");

switch(choice)

{case 1: fp1=fopen("code.txt","rt開啟檔案*/

if(fp1==null)

printf("\n\n*****你還沒有註冊,按任意鍵退出!"); /*帳號錯誤*/

getchar();

exit(1);

fno=fileno(fp1登陸帳號*/

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

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

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

中國地質大學 本科生課程 封面 課程名稱計算機高階語言課程設計 c 教師姓名曹弘 本科生姓名肖宇 本科生學號 20101003359 本科生專業地球化學 所在院系地球科學學院 類別本科生 日期 2014年1月12日 注 1 無評閱人簽名成績無效 2 必須用鋼筆或原子筆批閱,用鉛筆閱卷無效 3 如有平...

C語言課程設計報告銷售管理系統

c語言課程設計報告 銷售管理系統 一 題目要求 某公司有四個銷售員,編號1 4 負責銷售五種產品 編號1 5 每個銷售員都將當天 的每種產品各寫一張便條過來.每長便條包含內容 銷售人員的代號 產品的代號 這種產品的當天的銷售額 每位銷售人員每天肯上繳的0 5張便條.假如收集到了上個月的所有便條,編寫...