瀋陽航空工業學院
課程設計
學號 200604021020
班級 6402101
姓名魯立恆
指導教師王曉巖
2007 年 9 月 19 日
瀋陽航空工業學院
課程設計任務書
院系:電子專業:電子資訊工程班級:6402101
學號:200604021020 題目:教室管理系統
一、課程設計時間
2023年9月10日至2023年9月14日,共計1周,20學時。
二、課程設計內容
用c語言編寫軟體完成以下任務:
已知學校可用的教室都存放在檔案file25_中;每天的上課時間段存放在檔案file25_中;教學周1~16周;每週僅允許在周1~周5上課。
某位任課教師想通過你編寫的軟體申請上課教室。教師申請時,將提供以下資訊:教學周,星期,課節,教室。例如:第3周,周4,1~2節,b樓112教室。
如果此教室的此時間段已經被占用,則提示教師,另作其它申請;否則,批准申請,並及時將新的占用資訊寫入file25_
說明:file25_檔案中每行的內容按照順序為:教學樓號,教室號,若干占用資訊。
三、課程設計要求
1. 程式質量:
貫徹結構化的程式設計思想。
使用者介面友好,功能明確,操作方便。
使用者介面中的選單至少應包括「讀取資料」、「輸入申請」、「回應申請」、「退出」4項。
**應適當縮排,並給出必要的注釋,以增強程式的可讀性。
2. 課程設計說明書:
課程結束後,上交課程設計說明書和源程式。課程設計說明書的格式和內容參見提供的模板。
四、指導教師和學生簽字
指導教師學生簽名:________
五、說明書成績
六、教師評語
目錄 一、需求分析 2
二、程式流程圖 4
三、核心技術的實現說明及相應程式段 7
四、個人總結 10
五、參考文獻 11
六、源程式 11
經過對程式設計題目的分析可知,整個程式的設計實現大致分為3個模組,其中每乙個模組對應乙個函式,他們的功能分別是,讀取所有教室的資訊函式reads(),輸入自己的申請情況並及時進行回應申請的函式input(),儲存成功的申請函式s**e(),最後是退出功能介面。這些函式都是嚴格按照任務書的要求進行編寫的,在執行著不同的功能,並且它們在結構上是一體的,是分級進行從而來成功地完成教室申請的!
1、讀取檔案中資料的函式此函式就是將檔案開啟並顯示在螢幕上。因為教師在申請教室時,首先需要了解教學樓號,教室號以及若干的占用資訊,以便在申請時候輸入資料不出現錯誤,從而也不影響訪問功能。
2、輸入申請並回應申請函式此函式是程式的主體,是將輸入的資訊與陣列中的資訊進行比較從而來判斷申請教室是否能成功的。
3、儲存函式題目的要求還有將新的占用資訊及時地寫入檔案中,目的是防止他人再申請同一時間段的同乙個教室,所以此函式就必不可少了。
除上面介紹的功能之外,程式還具有退出功能,可以在程式的一次執行當中迴圈執行所有的功能,並根據需要終止程式的執行。還有就是那個簡單的功能介面函式menu(),使教室申請人知道如何進行操作!
檔案中的每乙個教室記錄都包含3項內容,教學樓號,教室號和若干的占用資訊,所以將教室記錄型別定義為結構體型別,最後用strcat()函式將新的教室占用資訊寫入結構體中教室占用資訊後面,從而更新了d盤下面的file_檔案,其他函式每次對教室記錄訪問時,其資料**都是file_檔案,這樣就可以避免教師申請同一時間段的同一間教室,從而形成乙個完整的教室管理系統。
1、程式總體結構圖
圖1程式總體結構圖
2、具體功能框圖
(1)讀取教室情況的函式reads( )
圖2 讀取教室
(2) 輸入申請並回應申請的函式input()
圖3 輸入申請並回應申請
(3) 儲存申請的函式s**e()
圖4 儲存申請
本程式主要由3個自定義函式和乙個主函式組成,其中主函式以選單的形式呼叫其他函式來實現要求的所有功能。在這些函式當中,輸入申請並回應申請函式和儲存申請函式是程式中較為核心的部分,下面分別進行說明。
1、輸入申請並回應申請函式
輸入要求必須按照檔案file25-1裡資料的形式,所以應該先執行乙個reads(),使之知道輸入形式,之後是進判斷,重點是應用了strstr()函式,來判斷最後輸入的資訊是否在檔案中的教室占用資訊**現過,函式原型為char *strstr(char *str1,char *str2),功能是找出str2字串在str1字串中第一次出現的位置(不包括str2的串結束符)。因為教室占用資訊可能有n組,所以不能用strcmp()函式。還有乙個重點是continue語句的新增,意思是在不符合判斷條件的情況下需要進行下一組的判斷,這樣才保證了判斷的完全。
具體的程式段如下:
void input()
for(i=0;i
else
continue ;
}printf("教室被佔,請令作其它申請\n");
return;
}2、儲存申請的函式
該函式的核心內容是應用了strcat()函式,其函式原形為char *strcat(char *str1,*str2),功能是把字串str2接到str1後面,str1最後面的『\0』被取消。這樣就將申請成功的教室的資訊接到了原有的資訊後面,最後用fscanf()函式將檔案中的教室資訊讀入到結構體陣列中了,實現了儲存。最後是關閉檔案,防止緩衝區中的資料丟失。
具體程式段如下:
void s**e()
strcat(cla[m].str,
for(i=0;ifscanf(fp,"%c\t%d\t%d",&cla[i].bulding,&cla[i].room,cla[i].str);
fclose(fp);
printf("******儲存完畢******\n");
} 這次的c語言課設,使我知道c語言的實用性和重要性,通過這次的程式設計,鍛鍊了自己的實際程式設計的能力,經過自己的努力和老師的精心指導,我終於把這個程式編出來,經過一天的除錯,終於達到了題目的要求,雖然在儲存時不是那麼完美,但也都能滿足題目要求。在此過程中,用重新溫習了c語言的一些基礎知識,對陣列函式檔案這3章進行了詳細的學習,學會了用理論知識來指導程式設計,學到了許多新的知識,比如我的程式中的strcat()函式和strstr()函式,這是我以前從來沒用過的,總之是收穫很多。
這還鍛鍊了克服困難的能力,因為程式在除錯時難免會遇到許多錯誤,經過單步執行和監視變數,逐一的修改錯誤才得到乙個正確的程式。通過這次課設,我喜歡上了程式設計,以後我會努力學好有關程式設計的課程,爭取以後會做出更多的設計。
1 譚浩強.c程式設計.北京:清華大學出版社,2005
2 劉成等.c語言程式設計實驗指導與習題集.北京:中國鐵道出版社,2006
#include <>
#include <>
#include<>
#include<>
#define size 8
struct class_type
cla[size];
struct aplply
aplply;
void menu();
void input();
void reads();
void s**e();
int m;
int n;
void main()
}}void menu()
{printf歡迎您來到教室管理系統n");
printf請選擇1 2 3 4 來實現不同的功能********\n");
教室管理系統概要設計
4.概要設計 4.1,系統結構 系統的大致結構 在整體設計中,我們將教室管理系統分為四個大模組 查詢功能模組,課程管理模組,教師資訊模組和使用者管理模組。下面將對各個功能做具體介紹。本系統實現以下基本功能 查詢功能,課程管理,教室管理,使用者管理,關於我們。查詢功能不用登入就可以查詢 4.11查詢功...
教室資訊管理系統
福建工程學院 delphi課程設計 教室管理資訊系統 院系 電腦科學與資訊科學 專業 電腦科學與技術 班級學號 姓名指導教師 一 系統功能需求 實現本校教室管理,主要包含以下功能 1 教室基本資訊管理 包含教室的錄入 查詢 修改等功能。2 教室使用情況管理 教室查詢 借用 退訂等。3 教師基本資訊管...
教室管理資訊系統
引言隨著計算機的普及和應用,計算機已經成為人們社會生產和日常生活中不可缺少的部分。目前國內外大多數應用軟體系統都是client server形式的兩層結構,由於現在的軟體應用系統正在向分布式的web應用發展,web和client server應用都可以進行同樣的業務處理,應用不同的模組共享邏輯元件 ...