第一篇:宿舍管理系統(tǒng)
附件B:宿舍管理系統(tǒng)源代碼
#include “stdio.h” #include “stdlib.h”
#define SIZE 1000
char grade;
typedef struct StuNode{
char num[11];
char name[20];
char sex[2];
char birth[11];
char hometn[13];
char dorNum[7];
char dorTel[8];
struct StuNode *next;}StuNode,*StuList;
int readToList(StuList sl,FILE *fp){
StuList p;
int i=0;
while(1){
p=(StuList)malloc(sizeof(StuNode));
if(fread(p,sizeof(StuNode),1,fp)!=1)break;
p->next=sl->next;
sl->next=p;
i++;
}
fclose(fp);
return i;}
void addNode(){
FILE *fp;
StuList sl,p,q;
if((fp=fopen(“stu_list”,“rb”))==NULL){ /*the file doesn't exist*/
p=(StuList)malloc(sizeof(StuNode));
printf(“Please enter the student's information:n”);
scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);
getchar();
p->next=NULL;
if((fp=fopen(“stu_list”,“wb”))==NULL){
printf(“cannot open filen”);
return;
}
else{
if(fwrite(p,sizeof(StuNode),1,fp)!=1){
printf(“file write errorn”);
return;
}
}
fclose(fp);
}
else{
sl=(StuList)malloc(sizeof(StuNode));
sl->next=NULL;
readToList(sl,fp);
p=(StuList)malloc(sizeof(StuNode));
printf(“Please enter the student's information:n”);
scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);
getchar();
q=sl->next;
while(q){
if(strcmp(q->num,p->num)==0){
printf(“This student %s existed!Press Enter to continue....”,p->num);
getchar();
clrscr();
return;
}
else q=q->next;
}
p->next=sl->next;
sl->next=p;
p=sl->next;
if((fp=fopen(“stu_list”,“wb”))==NULL){
printf(“cannot open filen”);
return;
}
else{
while(p){
if(fwrite(p,sizeof(StuNode),1,fp)!=1){
printf(“file write errorn”);
return;
}
p=p->next;
}
}
fclose(fp);
}
printf(“nSuccess!
Press Enter to continue....”);
getchar();
clrscr();}
void delNode(){
FILE *fp;
StuList sl,p,q;
char num[11];
int flag=1;
printf(“Please enter the student's num:”);
scanf(“%s”,&num);
getchar();
sl=(StuList)malloc(sizeof(StuNode));
sl->next=NULL;
if((fp=fopen(“stu_list”,“rb”))==NULL){
printf(“cannot open filen”);
return;
}
readToList(sl,fp);
p=sl;
while(p){
q=p->next;
if(strcmp(q->num,num)==0){
p->next=q->next;
free(q);
flag=0;
}
else p=p->next;
}
if(flag==1){
printf(“Not exist this student--%s!Press Enter to continue....”,num);
getchar();
clrscr();
return;
}
else if((fp=fopen(“stu_list”,“wb”))==NULL){
printf(“cannot open filen”);
return;
}
else{
p=sl->next;
while(p){
if(fwrite(p,sizeof(StuNode),1,fp)!=1){
printf(“file write errorn”);
return;
}
p=p->next;
}
fclose(fp);
}
printf(“nSuccess!
Press Enter to continue....”);
getchar();
clrscr();}
void editNode(){
FILE *fp;
StuList sl,p;
char num[11];
int flag=1;
printf(“Please enter the student's num:”);
scanf(“%s”,&num);
getchar();
sl=(StuList)malloc(sizeof(StuNode));
sl->next=NULL;
if((fp=fopen(“stu_list”,“rb”))==NULL){
printf(“cannot open filen”);
return;
}
readToList(sl,fp);
p=sl->next;
while(p){
if(strcmp(num,p->num)==0){
printf(“nThe student's old information is:n%s %s %s %s %s %s %snPlease enter the student's new information:n”,p->num,p->name,p->sex,p->birth,p->hometn,p->dorNum,p->dorTel);
scanf(“%s%s%s%s%s%s%s”,&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNum,&p->dorTel);
getchar();
flag=0;
break;
}
else p=p->next;
}
if(flag){
printf(“Not exist this student--%s!Press Enter to continue....”,num);
getchar();
clrscr();
return;
}
else if((fp=fopen(“stu_list”,“wb”))==NULL){
printf(“cannot open filen”);
return;
}
else{
p=sl->next;
while(p){
if(fwrite(p,sizeof(StuNode),1,fp)!=1){
printf(“file write errorn”);
return;
}
p=p->next;
}
fclose(fp);
}
printf(“nSuccess!
Press Enter to continue....”);
getchar();
clrscr();}
void sort(StuList sl[],int n,char key[]){
int i,j,k;
if(strcmp(key,“num”)==0){
for(i=1;i k=i; for(j=i+1;j<=n;j++) if(strcmp(sl[j]->num,sl[k]->num)<0)k=j; if(k!=i){ sl[0]=sl[i]; sl[i]=sl[k]; sl[k]=sl[0]; } } } if(strcmp(key,“name”)==0){ for(i=1;i k=i; for(j=i+1;j<=n;j++) if(strcmp(strlwr(sl[j]->name),strlwr(sl[k]->name))<0)k=j; if(k!=i){ sl[0]=sl[i]; sl[i]=sl[k]; sl[k]=sl[0]; } } } if(strcmp(key,“dorNum”)==0){ for(i=1;i k=i; for(j=i+1;j<=n;j++) if(strcmp(sl[j]->dorNum,sl[k]->dorNum)<0)k=j; if(k!=i){ sl[0]=sl[i]; sl[i]=sl[k]; sl[k]=sl[0]; } } } } void scan(char key[]){ FILE *fp; StuList sortary[SIZE],sl,p; int i,n; sl=(StuList)malloc(sizeof(StuNode)); sl->next=NULL; if((fp=fopen(“stu_list”,“rb”))==NULL){ printf(“cannot open filen”); return; } n=readToList(sl,fp); p=sl->next; for(i=1;i<=n;i++){ sortary[i]=p; p=p->next; } sort(sortary,n,key); printf(“n num name sex birth hometown dorNum dorTeln”); printf(“---------------n”); for(i=1;i<=n;i++){ printf(“%-11s %-19s%-2s %-11s %-13s %-7s %-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel); } printf(“---------------n”); printf(“Press Enter to continue...”); getchar();} void search(char key[],char value[]){ FILE *fp; StuList sortary[SIZE],sl,p; int i,n,low,high,mid,flag=1; sl=(StuList)malloc(sizeof(StuNode)); sl->next=NULL; if((fp=fopen(“stu_list”,“rb”))==NULL){ printf(“cannot open filen”); return; } n=readToList(sl,fp); p=sl->next; for(i=1;i<=n;i++){ sortary[i]=p; p=p->next; } sort(sortary,n,key); low=1;high=n; while(low<=high){ mid=(low+high)/2; if(strcmp(value,sortary[mid]->num)==0){ printf(“The student's information is:n”); printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel); flag=0; break; } else if(strcmp(strlwr(value),strlwr(sortary[mid]->name))==0){ printf(“Result set:n”); printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel); for(i=mid+1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i++) printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel); for(i=mid-1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i--) printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel); flag=0; break; } else if(strcmp(value,sortary[mid]->dorNum)==0){ printf(“Result set:n”); printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hometn,sortary[mid]->dorNum,sortary[mid]->dorTel); for(i=mid+1;strcmp(value,sortary[i]->dorNum)==0;i++) printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel); for(i=mid-1;strcmp(value,sortary[i]->dorNum)==0;i--) printf(“%-11s%-19s%-2s%-11s%-13s%-7s%-8sn”,sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]->dorNum,sortary[i]->dorTel); flag=0; break; } else if((strcmp(key,“num”)==0)&&(strcmp(value,sortary[mid]->num)<0))high=mid-1; else if((strcmp(key,“name”)==0)&&(strcmp(strlwr(value),strlwr(sortary[mid]->name))<0))high=mid-1; else if((strcmp(key,“dorNum”)==0)&&(strcmp(value,sortary[mid]->dorNum)<0))high=mid-1; else low=mid+1; } if(flag)printf(“No result!n”); printf(“Press Enter to continue...”); getchar(); clrscr();} void printMenu(){ printf(“ *********************< MENU >*********************n”); printf(“ 1.Add one student's record.n”); printf(“ 2.Delete one student's record.n”); printf(“ 3.Edit one student's record.n”); printf(“ 4.Scan all records ordered by num.n”); printf(“ 5.Scan all records ordered by name.n”); printf(“ 6.Scan all records ordered by dorNum.n”); printf(“ 7.Search one student's record.n”); printf(“ 8.Exit.n”); printf(“ **************************************************n”); printf(“Please enter your choice(1~8):”); grade=getchar(); getchar();} void main(){ char key[7],value[20]; while(1){ printMenu(); switch(grade){ case'1':addNode();break; case'2':delNode();break; case'3':editNode();break; case'4':clrscr();scan(“num”);break; case'5':clrscr();scan(“name”);break; case'6':clrscr();scan(“dorNum”);break; case'7':clrscr(); printf(“Please enter the key and value(eg:num 0606054230/name ZhangSan/dorNum 030615):n”); scanf(“%s%s”,&key,&value); while((strcmp(key,“num”)!=0)&&(strcmp(key,“name”)!=0)&&(strcmp(key,“dorNum”)!=0)){ printf(“Wrong key!It must be num/name/dorNum:n”); scanf(“%s%s”,&key,&value); getchar(); } getchar(); clrscr(); search(key,value); break; case'8':exit(0); default:clrscr(); printf(“n Have no this choice--%c!Press Enter to continue...”,grade); getchar(); clrscr(); } } } 宿舍管理系統(tǒng)設(shè)計 1.引言 1.1 項目背景 本系統(tǒng)開發(fā)的主要目的是采用信息化和網(wǎng)絡(luò)化的方式,用于對學(xué)校宿舍進行管理,方便管理員對宿舍進行管理以及對同學(xué)們宿舍生活需求提供相應(yīng)的幫助和記錄,達到及時、有效的掌握學(xué)生信息以及處理寢室問題的目的。 1.2 文檔概述 該文檔編寫的主要目的是為了定義系統(tǒng)索要實現(xiàn)的功能, 以及實現(xiàn)的方法和流程.同時進一步規(guī)范開發(fā)流程, 提高開發(fā)質(zhì)量。 1.3定義 1.零報 無論宿舍有無異常情況都必須在每天的規(guī)定時間上報給寢室管理員。如果有學(xué)生異常情況的出現(xiàn),則相關(guān)負(fù)責(zé)人應(yīng)作出相應(yīng)的處理,若學(xué)生沒有出現(xiàn)異常事件,則只需在系統(tǒng)中提醒無異常即可。 2.異常情況 如果宿舍出現(xiàn)有同學(xué)在規(guī)定時間內(nèi)沒有回宿舍,或在宿舍突發(fā)疾病等異常情況,則有寢室長報告給宿舍管理員,由宿舍管理員填寫報告并幫助解決問題 3.待處理 當(dāng)出現(xiàn)異常情況時,若事件尚未解決,則狀態(tài)為“待處理”狀態(tài),表明此事件需要由相應(yīng)的管理員進行處理解決。 4.已處理 當(dāng)異常事件被處理之后,該事件被標(biāo)明“已處理”狀態(tài),則表明該事件已被處理。 2.任務(wù)概述 2.1 目標(biāo) 根據(jù)《宿舍管理需求分析報告》編寫此文檔,用于指導(dǎo)開發(fā)人員根據(jù)客戶功能需求進行相應(yīng)的程序開發(fā)。 2.2 系統(tǒng)網(wǎng)絡(luò)配置及構(gòu)架方案 宿舍管理系統(tǒng)依托于湖北文理學(xué)院官網(wǎng)平臺構(gòu)建,邏輯結(jié)構(gòu)為環(huán)型拓?fù)浣Y(jié)構(gòu),如圖一 所示,學(xué)校學(xué)工處管理員通過網(wǎng)絡(luò)平臺可以發(fā)送消息,每一位宿舍管理員,學(xué)生,學(xué)生教師都能看到。宿舍管理員也可以通過官網(wǎng)發(fā)送宿舍管理情況到服務(wù)器,學(xué)校管理員,學(xué)生等都可以登錄查看。 宿舍管理系統(tǒng)網(wǎng)絡(luò)邏輯架構(gòu)圖服務(wù)器宿舍管理員學(xué)生學(xué)工處管理員學(xué)生教師 圖一:網(wǎng)絡(luò)結(jié)構(gòu)拓?fù)鋱D 2.3 系統(tǒng)架構(gòu)圖 宿舍管理系統(tǒng)???湖北文理學(xué)院官網(wǎng)???學(xué)生教師學(xué)生教師???學(xué)校管理員宿舍管理員???學(xué)生 圖二:系統(tǒng)構(gòu)架圖 2.4 條件與限制 系統(tǒng)使用用戶主要為宿舍管理員、宿舍住宿學(xué)生、學(xué)生教師、學(xué)校管理員,因此,系統(tǒng)因?qū)儆趯W(xué)校應(yīng)用系統(tǒng)的范疇內(nèi),運行在學(xué)校的內(nèi)部網(wǎng)站中。信息系統(tǒng)運行的前提和假設(shè)如下: (1)學(xué)生基本信息以及宿舍各種活動信息(包括學(xué)生的姓名、學(xué)號、寢室號、所在班級等信息)已經(jīng)給定。 (2)學(xué)生進出宿舍以及各種生活需求的相關(guān)信息有學(xué)校的內(nèi)部存儲機制進行存儲,學(xué)生采用刷卡式。 (3)學(xué)生宿舍的信息每24小時進行一次統(tǒng)計,統(tǒng)計時間為每天23:00,并建立相關(guān)的通報機制,及時將學(xué)生的信息變更報告給寢室管理員,對于個別信息(如學(xué)生晚歸寢室等)及時報告給學(xué)校以及學(xué)生教師。 (4)信息的反饋與通報由相應(yīng)的寢室管理員為基礎(chǔ),向相應(yīng)的學(xué)生教師反映,再由學(xué)生教師向?qū)W校反映。 (5)系統(tǒng)用戶僅限學(xué)校學(xué)工處統(tǒng)一管理,不對外提供公眾訪問。(6)進入系統(tǒng)的歷史記錄均要求保存。 3.總體設(shè)計 3.1 需求概述 系統(tǒng)宿舍管理情況要求每日在規(guī)定時間內(nèi)上報給寢室管理員,一旦發(fā)現(xiàn)異常情況立即上報,并通知相關(guān)負(fù)責(zé)人來處理。上報可采取電話,傳真,網(wǎng)絡(luò)等方式。比較重大事件就采取先電話上報,涉及到相關(guān)人員或有必要需在網(wǎng)絡(luò)上通知一下。一般情況下,寢室管理員,學(xué)工處管理員,學(xué)生教師可以在網(wǎng)絡(luò)上發(fā)布消息。其他人登陸網(wǎng)站后可以接收到消息。學(xué)生可以反饋信息給寢室管理員。 3.2 功能分配 本系統(tǒng)主要包含了零報和學(xué)生宿舍異常處理模塊、學(xué)生基本信息管理模塊、學(xué)生日常進出寢室活動模塊、學(xué)生寢室故障登記模塊、學(xué)生寢室測評模塊、信息通報模塊、學(xué)生卡消費信息模塊、學(xué)生宿舍安全模塊。 各模塊的簡要功能說明如下: 1.零報和學(xué)生宿舍異常處理模塊:主要對學(xué)生宿舍出現(xiàn)的一些問題進行記錄。如果當(dāng)天出現(xiàn)學(xué)生晚歸、學(xué)生宿舍設(shè)施故障、學(xué)生安全問題等,則對其進行相應(yīng)的信息記錄,當(dāng)天如果出現(xiàn)異常情況,則進行通報,若沒有,則零報。對于異常事件,若已經(jīng)解決,則顯示為“已處理”,未經(jīng)解決,則顯示“未處理”。 2.學(xué)生基本信息管理模塊:對學(xué)生的基本信息進行管理,如學(xué)生姓名、學(xué)號、電話、所在班級、學(xué)生教師、寢室號等信息進行存儲記錄,以便以后出現(xiàn)問題進行查詢解決。 3.學(xué)生日常進出寢室活動模塊:記錄學(xué)生進出寢室的時間,以及學(xué)生貴重物品攜帶的情況,學(xué)生刷卡進出寢室,若帶有物品需在相應(yīng)的機器上登記并判斷,來限定學(xué)生進出寢室,并予以記載。 4. 學(xué)生寢室故障登記模塊:學(xué)生寢室出現(xiàn)各種故障,如斷水?dāng)嚯姟⒃O(shè)施損壞等,均可上網(wǎng)登記。 5.學(xué)生寢室測評模塊:對學(xué)生寢室進行相應(yīng)的測評,如衛(wèi)生測評、五星級寢室測評、文明寢室測評等記錄。 6.信息通報模塊:對宿舍發(fā)生的新聞、寢室測評結(jié)果、異常情況處理、通報寢室及學(xué)生等信息進行發(fā)布,以便學(xué)生了解宿舍情況,7.學(xué)生卡消費信息模塊:宿舍采用校園卡進行宿舍使用水電、洗衣機等設(shè)備的費用支付,學(xué)生可在網(wǎng)上進行學(xué)生卡的充值、查詢使用金額和剩余金額、使用的地方等。 8.學(xué)生宿舍安全模塊:對于一些基本的安全問題進行指導(dǎo)說明,并對近期發(fā)生的安全事故進行通報分析,以便同學(xué)們提早做出防范。 4.模塊設(shè)計 4.1 零報和學(xué)生宿舍異常處理模塊 4.1.1 模塊描述 ? 零報登記表錄入項目包括: 錄入宿舍號: 零報樓棟號和宿舍號。 錄入人姓名及聯(lián)系方式:錄入人的姓名,聯(lián)系方式。填報時間:由系統(tǒng)自動獲取服務(wù)器時間。 填寫完上述信息后,點擊提交按鈕系統(tǒng)提示用戶檢查所填信息,并提問用戶是否確認(rèn)提交所填零報。如果確認(rèn),則提交零報,提交成功后提示零報已經(jīng)提交成功。失敗的話給出失敗提示。如果當(dāng)天已經(jīng)填寫過零報或可疑情況登記表則提示零報已經(jīng)提交,或已經(jīng)填寫過可疑情況登記表,不能在提交零報。 ? 異常情況登記表錄入項目包括: 錄入宿舍號:發(fā)生異常情況的具體樓棟號和宿舍號。 學(xué)生姓名:發(fā)生安全情況或晚歸等情況的學(xué)生姓名。選填。提示如果是發(fā)生宿舍設(shè)備故障情況就不用填寫。 性別:學(xué)生性別,要求同上。默認(rèn)女。采用radio單選框。年齡:學(xué)生年齡,要求同上。 家長號碼:如果有出現(xiàn)晚歸的學(xué)生,或者出現(xiàn)安全情況,則需要聯(lián)系寢室長或班長記錄學(xué)生電話號碼和家長電話號碼,情況嚴(yán)重時需和家長聯(lián)系。 異常情況說明:這個必須要寫明是什么異常情況,例如如果是晚歸(情況惡劣)的學(xué)生,則需要受到相應(yīng)處分。 填報時間:由系統(tǒng)自動獲取服務(wù)器時間。4.1.2 功能概述 該模塊主要包括兩個功能,一個是零報錄入,如果該地區(qū)當(dāng)天未發(fā)現(xiàn)可疑情況,只需填寫零報,一天只許填寫一次零報。一個是異常情況登記錄入。若有異常情況,須立即填寫異常情況登記表,不可再填寫零報。 4.2 學(xué)生基本信息管理模塊 4.2.1 模塊描述 表格每一行基本信息是學(xué)生姓名和學(xué)號,后面為更多,點進去為另一個表格,包括學(xué)生姓名、學(xué)號、電話、所在班級、學(xué)生教師、寢室號等信息,以便以后出現(xiàn)問題進行查詢解決。 表格如下面這種形式: 更多: 4.2.2 功能概述 該模塊主要記錄了學(xué)生信息,如果學(xué)生有異議,可以來查詢。可以根據(jù)學(xué)號來查詢異常情況一欄里也有詳細(xì)的備注信息。 4.3 學(xué)生進出寢室活動模塊 4.3.1 模塊描述 記錄學(xué)生進出寢室的時間,以及學(xué)生貴重物品攜帶的情況,學(xué)生刷卡進出寢室,若帶有物品需在相應(yīng)的機器上登記并判斷,來限定學(xué)生進出寢室,并予以記載。 與4.2.1的表格類似。點擊更多就可以看到進出時間以及攜帶物品情況。更多表格如下: 4.3.2 功能概述 記錄學(xué)生進出寢室的時間,以及學(xué)生貴重物品攜帶的情況,方便查詢。 4.4 學(xué)生寢室故障登記模塊 4.4.1 模塊描述 此模塊用來管理學(xué)生提交的維修報告。維修人員可以修 改報告的是否修好的狀態(tài)。任何人不能刪除維修報告。學(xué)生只能查看自己提交的維修報告。管理員可以查看具體報告內(nèi)容和報告的其它一些統(tǒng)計信息。維修人員只能查看屬于他自己維修類型的報告刪除操作隨學(xué)生信息的刪除而級聯(lián)自動刪除。學(xué)生寢室出現(xiàn)各種故障,如斷水?dāng)嚯姟⒃O(shè)施損壞等,均可上網(wǎng)登記。這個模塊由學(xué)生向宿舍管理員報告,管理員確認(rèn)后登記。表格內(nèi)容包括: 故障:說明發(fā)生故障情況,斷水或斷電或者水龍頭壞了等 宿舍號:記錄發(fā)生故障的宿舍號。記錄時間:由系統(tǒng)自動獲取服務(wù)器時間。4.4.2 功能描述 記錄宿舍故障情況,如果故障太頻繁,應(yīng)該檢查一下哪里出了問題。4.5 學(xué)生寢室測評模塊 4.5.1 模塊描述 此模塊用來管理學(xué)生宿舍衛(wèi)生情況。學(xué)生只能查詢屬于自己寢室的衛(wèi)生情況,如果該學(xué)生換過寢室,也將他當(dāng)時所住寢室的衛(wèi)生信息顯示出來,即顯示全部該學(xué)生的衛(wèi)生情況(包括以前住過的寢室)。院系錄入情況后,不能刪除和修改衛(wèi)生情況。只有報告到校級管理員,由校級管理員自己修改。 4.5.2功能描述 學(xué)生組織定期對學(xué)生宿舍進行檢查,由宿舍管理員匯總測評并上報,校學(xué)工處對測評結(jié)果進行通報審核。4.6學(xué)生卡消費模塊 4.6.1模塊描述 此模塊用來描述學(xué)生卡的使用以及充值情況,你的卡在刷卡機上每刷一次都會有記錄,同時也會顯示你的余額,如果學(xué)生每天的消費超過卡的限定額卡在刷卡機上就會警告,如果卡上沒錢了刷卡機上也會顯示。 4.6.2功能描述 學(xué)生使用學(xué)生卡進行消費,扣除相應(yīng)的金額,如果卡上沒錢可由網(wǎng)上進行學(xué)生卡充值。4.7信息通報模塊 4.7.1模塊描述 此模塊用來描述宿舍管理員與校學(xué)工處對于一些日常信息的通報與查看,同時還有老師以及學(xué)生自己對一些信息的查看,比如學(xué)生的作息時間、寢室的規(guī)章制度、以及某寢室被通報的信息等。4.7.2功能描述 對于一些日常信息,校學(xué)工處和宿舍管理員可進行通報和查看,學(xué)生和教師可對信息進行查看來了解最近的宿舍動態(tài)。4.8用戶管理 4.8.1模塊描述 此模塊用來描述教師、學(xué)生、宿舍管理員對自己信息的創(chuàng)建(申請用戶:最好用學(xué)號),創(chuàng)建好了以便于后面的的對自己信息的查詢(比如你的個人信息、寢室信息等),和修改個人資料寢室資料,以及系統(tǒng)管理員對里面成員的管理,同時也以便于校學(xué)工處對那些違反寢室規(guī)章制度學(xué)生的查找。 4.8.2功能描述 系統(tǒng)管理員可以對所有用戶進行管理,可創(chuàng)建、查詢、修改和刪除用戶,以及教師、學(xué)生、校學(xué)工處和宿舍管理員在該系統(tǒng)中創(chuàng)建賬號,并進行訪問以及信息的修改。 5.安全保密設(shè)計 根據(jù)系統(tǒng)用戶 宿舍安全用電---一個亟待解決的問題因此各高校在制定規(guī)章制度明令禁止學(xué)生在宿舍使用熱得塊、電爐、電飯鍋、電熨斗、電磁爐、電熱杯、電水壺、暖手寶、電熱毯及其他易發(fā)生火災(zāi)及觸電事故的電器、嚴(yán)禁亂拉亂接電線和私自安裝插座等的同時,還不定期的進行安全檢查,一旦發(fā)現(xiàn)違規(guī)電器立刻采取沒收、處罰甚至于焚燒等傳統(tǒng)的管理措施。但是隨著學(xué)生用電需求的多樣化以及“以人為本”管理要求的提出,以往的單一化用電管理辦法已經(jīng)不能滿足時代要求了。學(xué)生的用電設(shè)備越來越多,安全隱患問題也越來越嚴(yán)重。如何應(yīng)用科學(xué)手段進行科學(xué)管理,是高校管理者們所提出的管理需求,也是一個急待解決的問題。北京市教委做出明確要求并發(fā)表在《北京日報》上:所有沒有安裝帶有惡性負(fù)載識別裝置的學(xué)生宿舍都要求安裝相關(guān)設(shè)備,加強安全用電管理。次日,北京市教委再次重申決定并發(fā)表在〈新京報〉上,再次強調(diào):各高校要抓緊時間安裝帶有惡性負(fù)載識別的裝置。 2009年12月7日,中華人民共和國教育部和中華人民共和國公安部聯(lián)合發(fā)出了第28號令——《高等學(xué)校消防安全管理規(guī)定》,文件中對高校火災(zāi)隱患的整改措施有明確的要求: 第三十二條 對不能及時消除的火災(zāi)隱患,隱患單位應(yīng)當(dāng)及時向?qū)W校及相關(guān)單位的消防安全責(zé)任人或者消防安全工作主管領(lǐng)導(dǎo)報告,提出整改方案,確定整改措施、期限以及負(fù)責(zé)整改的部門、人員,并落實整改資金。 TW-SG1000系列宿舍用電智能管理系統(tǒng)概述 一、系統(tǒng)簡介: TW-SG1000系列宿舍用電智能管理系統(tǒng)是北京泰文科技有限公司集多位資深專家精心設(shè)計出的新一代多功能智能用電管理系統(tǒng)。該系統(tǒng)應(yīng)用微電子技術(shù)精確計量電量,采用專用大規(guī)模集成電路與最新的單片處理器及外圍芯片技術(shù)設(shè)計制造。TW-SG1000宿舍用電智能管理系統(tǒng)組成:宿舍智能管理模塊(DDEb2-20A/2~4x16A)、數(shù)據(jù)網(wǎng)關(guān)(TW-Port2)、管理終端機(TW-SG100)、宿舍管理數(shù)據(jù)中心機(TW-SG100A)、系統(tǒng)軟件(TW-SG1000R)。具有安全用電、節(jié)能管理、精確計量等功能。 二、網(wǎng)絡(luò)組成: TW-SG1000系列宿舍用電智能管理系統(tǒng)網(wǎng)絡(luò)組成:宿舍智能管理模塊(DDEb2-20A/2~4x16A)與數(shù)據(jù)網(wǎng)關(guān)(TW-Port2)之間為RS485總線(MOD-BUS協(xié)議),采用雙絞屏蔽線穿鋼管敷設(shè)手拉手連接;數(shù)據(jù)網(wǎng)關(guān)(TW-Port2)與管理終端機(TW-SG100)等設(shè)備均為超五類網(wǎng)線以太網(wǎng)連接,放射式組網(wǎng)。 三、模塊簡介 1、宿舍智能管理模塊:DDEb2-20A/2~4x16A,為一路220V 20A交流電源輸入,2~4路16A開關(guān)輸出的綜合智能管理模塊。 2、數(shù)據(jù)網(wǎng)關(guān):TW-Port2,是實現(xiàn)RS485轉(zhuǎn)換為以太網(wǎng)傳輸?shù)木W(wǎng)絡(luò)附件。 3、管理終端機:TW-SG100,是宿舍管理員管理操作終端設(shè)備,設(shè)置在管理員處,具備管理員權(quán)限;可以實現(xiàn)開關(guān)燈、售電、違章用電處罰等操作。 4、宿舍管理數(shù)據(jù)中心機:TW-SG100A,是中心處理機,設(shè)置在學(xué)生管理處,具備管理員權(quán)限、程序員權(quán)限等高級權(quán)限;可以實現(xiàn)入住開戶、開關(guān)燈、售電、退售、違章用電處罰、畢業(yè)銷戶、與學(xué)校相關(guān)管理部門數(shù)據(jù)交換等操作。 四、功能簡介 1、惡性負(fù)載識別功能 模塊具備惡性負(fù)載識別功能:禁止電爐、熱得快、電磁爐、微波爐、電熱毯、電吹風(fēng)機等大功率或易引起接觸火災(zāi)的負(fù)載使用,同時允許1.2KW~1.5KW的空調(diào)正常使用;其技術(shù)基礎(chǔ)區(qū)別于傳統(tǒng)功率限制為主的負(fù)載識別技術(shù),傳統(tǒng)負(fù)載識別技術(shù)在限制了惡性負(fù)載使用的同時,把功率大于其設(shè)定識別起始功率的空調(diào)負(fù)載也限制了。 2、模塊靈活的管理功能 一路輸入、二~四路輸出,可以方便的實現(xiàn)宿舍的管理要求,其輸出分別對應(yīng)照明、插座、空調(diào)、衛(wèi)生間的供電回路;通過管理系統(tǒng)實現(xiàn)分時或分季節(jié)對照明、插座、空調(diào)、衛(wèi)生間的供電;比如:晚上11時統(tǒng)一關(guān)燈,在需要用空調(diào)的季節(jié)把電扇和空調(diào)的電源不關(guān)斷;在可能無人在宿舍的時間段統(tǒng)一關(guān)掉全部電源;在有衛(wèi)生間的宿舍,在夜間關(guān)燈后可以統(tǒng)一轉(zhuǎn)入夜間照明模式;同時對于需要限制插座用電的宿舍可以單獨限制其插座的電源;不需要使用空調(diào)電扇的季節(jié)統(tǒng)一關(guān)掉所有的空調(diào)電源;同時該模塊也可以當(dāng)樓控模塊使用,用來控制公共照明燈等電源。 3、精確計量功能 1)模塊具備計量功能:5(20)A,1.0級 內(nèi)部考核計量用。2)具有預(yù)付費功能及免費基礎(chǔ)電量設(shè)置功能。 3、能累計計量,支持后付費。 4、具有低電量報警功能:可設(shè)置報警電量,當(dāng)用戶剩余電量低于報警值時,模塊報警,提示用戶購電。具有零度斷電功能。 5、管理中心主機通過通訊網(wǎng)絡(luò)采集各分散式安全模塊的數(shù)據(jù)信息并進行計算、查詢、統(tǒng)計、打印及參數(shù)設(shè)定,從而實現(xiàn)中心管理的電費計量、預(yù)售電管理及安全用電控制等功能。 6、具有實時功率顯示功能,可實時顯示用戶的用電負(fù)荷 7、能計量正負(fù)兩個方向的電能,雙方向能累計,有效防止了偷漏電現(xiàn)象。 8、能監(jiān)控電流、電壓、頻率、有功功率、累計用電量、剩余電量等。 4、功能強大的上位機軟件(TW-SG1000R),1、電腦遠程寫電,支持退費,費率可設(shè)定; 2、開關(guān)燈管理; 3、實時監(jiān)控; 4、模塊參數(shù)可設(shè)定; 5、支持?jǐn)?shù)據(jù)庫; 6、支持定制,可以根據(jù)客戶需求改變軟件界面,和增加功能; 7、可以集成水表、別的電表等,幫業(yè)主實現(xiàn)節(jié)能管理; 8、支持校園網(wǎng)WEB查詢,學(xué)生可以遠程查看本宿舍的電量及違規(guī)用電情況; 9、支持權(quán)限登錄;權(quán)限管理; 10、支持分時段自動控制,最多每路一天8個時段(默認(rèn)4個); 11、與一卡通系統(tǒng)數(shù)據(jù)對接后可以實現(xiàn)一卡通系統(tǒng)自動售電; 五、安裝維修方便 采用微斷式的模數(shù)設(shè)計,二路、三路輸出的模塊為3P(54mm)模數(shù);四路輸出的模塊為4P(72mm)模數(shù),35mm導(dǎo)軌安裝;可分散安裝于每間宿舍配電箱內(nèi), 也可集中安裝于樓層總配電箱內(nèi);維修時普通電工簡單培訓(xùn)后均可完成,只需要把故障模塊從導(dǎo)軌上取下,同時換上備用模塊,調(diào)整模塊地址,插上通訊線和強電線就完成維修。 塔里木大學(xué)宿舍管理系統(tǒng) 1.系統(tǒng)簡介 假設(shè)學(xué)校共有20幢宿舍樓,每幢大約135個宿舍,每個宿舍有6個人。每幢宿舍有兩個宿管阿姨或大伯,負(fù)責(zé)本宿舍樓的日常管理。學(xué)校又設(shè)置后勤處管理全校的宿管阿姨或大伯。而輔導(dǎo)員和班主任可以通過后勤處了解本院、系、班級的宿舍情況。(例如:學(xué)生住在哪個樓,宿舍號,衛(wèi)生評比等等。)宿管針對新生入校或假期開學(xué)后的學(xué)生入校及畢業(yè)生離校做登記,保證宿舍的正常運轉(zhuǎn),尤其是新生還要做好物品領(lǐng)取登記。檢查記錄宿舍的財產(chǎn)如椅子,桌子,柜子等。(事實數(shù)據(jù))宿舍東西壞了,比如燈壞了,暖氣不熱,則有宿舍長上報給宿管,填寫維修申請表(那幢樓,宿舍號,什么壞了,原因,時間)再有宿管將表交給后勤處。(作業(yè)級信息)后勤處收到各種表,登記表,維修表,要進行存儲。并派相關(guān)人員去處理解決問題。(戰(zhàn)術(shù)級信息)有時發(fā)生偶然事件職責(zé)需向輔導(dǎo)員及時轉(zhuǎn)達,比如學(xué)生夜不歸宿,打架斗毆,發(fā)生意外等。(戰(zhàn)術(shù)級信息) 2.技術(shù)要求和限制條件 (1)本系統(tǒng)的數(shù)據(jù)存儲至少包括:入宿離校登記表(新生入校或假期開學(xué)后生入校及畢業(yè)生離校時要做詳細(xì)登記包括姓名,班級,專業(yè),宿舍號等),維修申請表(那幢樓,宿舍號,什么壞了,原因,時間),值班表(宿管換班時間,值班人,輔導(dǎo)員和班主任也會輪流值班),賣水表(某個宿管在某個時段所賣礦泉水的桶數(shù))宿舍設(shè)施管理責(zé)任表(登記宿舍所有的財產(chǎn),如果人為的破壞了其中任何東西,學(xué)生就要進行相應(yīng)賠償),新生物品領(lǐng)取表(暖瓶,被褥,洗臉盆,洗腳盆) (2)簡化,假設(shè)學(xué)校所有宿舍情況一致。 青島農(nóng)業(yè)大學(xué) 理學(xué)與信息科學(xué)學(xué)院 高級語言課程設(shè)計報告 設(shè) 計 題 目 宿舍管理系統(tǒng) 學(xué)生專業(yè)班級班 學(xué)生姓名(學(xué)號) 設(shè)計小組其他同學(xué)姓名(學(xué)號) 指 導(dǎo) 教 師 完 成 時 間 設(shè) 計 地 點 2016年12月06日 一、課程設(shè)計目的和任務(wù) 《高級語言程序設(shè)計》課程設(shè)計是計算機相關(guān)專業(yè)的主要實踐性教學(xué)環(huán)節(jié)。其目的在于加深對高級語言程序設(shè)計理論和基本知識的理解,掌握使用C語言進行面向過程設(shè)計的基本方法,提高運用面向過程知識解決實際問題的能力。為畢業(yè)設(shè)計和以后的工程實踐打下良好的基礎(chǔ)。 宿舍管理系統(tǒng):用C語言為學(xué)生宿舍管理人員編寫一個宿舍管理軟件。設(shè)某宿舍有:101,102,201,202四個房間,每個房間可住學(xué)生<=4人,存儲結(jié)構(gòu):學(xué)號、姓名、房間號,按房間號有序,實現(xiàn)學(xué)生的入住、退房和查詢,按給定學(xué)號、姓名、房號查詢。 二、分析與設(shè)計 1.程序的基本功能:(1).實現(xiàn)新生入住登記(2).修改入住學(xué)生信息(3)實現(xiàn)退房 (4)實現(xiàn)以姓名查詢學(xué)生信息(5)實現(xiàn)以學(xué)號查詢學(xué)生信息(6)實現(xiàn)以寢室號查詢學(xué)生信息(7)實現(xiàn)按照寢室號從小到大排序(8)實現(xiàn)按學(xué)號從小到大排序(9)實現(xiàn)顯示所有學(xué)生信息(10)實現(xiàn)退出程序并保存數(shù)據(jù) 2.定義的函數(shù)及說明: 此程序由11個函數(shù)構(gòu)成。 Add----------添加學(xué)生信息函數(shù)(姓名、學(xué)號、宿舍號、班級)Alter----------修改學(xué)生信息函數(shù) Delete--------刪除學(xué)生信息函數(shù) Display_All--------顯示所有學(xué)生信息函數(shù) Query_S_name---------查詢函數(shù)以姓名為關(guān)鍵字進行查詢 Query_S_number-------查詢函數(shù)以學(xué)號為關(guān)鍵字進行查詢 Query_D_number------查詢函數(shù)以寢室號為關(guān)鍵字進行查詢 Save-----存儲函數(shù) Judge_Save----退出程序時判斷是否保存函數(shù) Menu--菜單 Main---主函數(shù) 3.系統(tǒng)總框圖: 三、系統(tǒng)實施 1.源程序代碼: #include int D_number;//學(xué)生所在寢室的宿舍號 char S_class1[10];//班級 int Total;//學(xué)生總數(shù) }Student[16];int sushehao[4]={101,102,201,202};int count[4]={0};//判斷學(xué)號是否與表中所存學(xué)號重復(fù) void S_number_Judge(Student S,int t){ int i;for(i=1;i<=(S->Total)-1;i++) while(strcmp(S[i].S_number,S[t].S_number)==0)//strcmp字符串比較函數(shù),兩個字符逐個比較,相等返回值為 { printf(“學(xué)號輸入失敗,該學(xué)號已存在,請重新輸入學(xué)號!n”); printf(“請輸入學(xué)生的學(xué)號(10個字符以內(nèi)):”);scanf(“%s”,S[t].S_number); getchar(); i=1; } } //添加學(xué)生信息函數(shù) void Add(Student S){ int j;int flag=1;printf(“請輸入學(xué)生姓名(10個字符以內(nèi)):”);scanf(“%s”,S[++(S->Total)].S_name);getchar();//獲取換行符 printf(“請輸入學(xué)生的學(xué)號(10個字符以內(nèi)):”);scanf(“%s”,S[S->Total].S_number);getchar();S_number_Judge(S,S->Total);//判斷輸入的學(xué)號是否與表中所存在的學(xué)號重復(fù) while(flag){ printf(“請輸入宿舍號碼:”); scanf(“%d”,&S[S->Total].D_number);for(j=0;j<4;j++){ if(S[S->Total].D_number==sushehao[j] && count[j]<4) { count[j]++; flag=0; break; } if(S[S->Total].D_number==sushehao[j]&&count[j]==4) { printf(“該宿舍已滿,請重新輸入n”); break; } } } getchar();printf(“請輸入所在班級:”);scanf(“%s”,S[S->Total].S_class1);getchar();printf(“添加成功!nn”); }//修改學(xué)生信息函數(shù) void Alter(Student S){ int i;int flag=0;//用來判斷表中是否存在所要修改的學(xué)生的信息 char number[10];printf(“請輸入你要修改學(xué)生的學(xué)號:”);scanf(“%s”,number);getchar();for(i=1;i<=S->Total;i++) if(strcmp(S[i].S_number,number)==0) flag=i;if(!flag) printf(“你所要修改的學(xué)生信息在表中不存在!n”);else { printf(“新信息如下:n”); printf(“請輸入學(xué)生姓名(10個字符以內(nèi)):”); scanf(“%s”,S[flag].S_name); getchar(); printf(“請輸入學(xué)生的學(xué)號(10個字符以內(nèi)):”); scanf(“%s”,S[flag].S_number); getchar(); S_number_Judge(S,flag); printf(“請輸入宿舍號:”); scanf(“%d”,&S[flag].D_number); getchar();printf(“請輸入床鋪號碼:”);scanf(“%s”,&S[S->Total].S_bednum);getchar();printf(“請輸入所在班級:”);scanf(“%s”,&S[S->Total].S_class1);getchar(); dirty=1; printf(“修改成功!n”);} putchar('n');} //刪除學(xué)生信息 void Delete(Student S){ int i,j;int flag=0;//用來判斷表中是否存在所要刪除的學(xué)生的信息 char number[10];printf(“請輸入你要刪除學(xué)生的學(xué)號:”);scanf(“%s”,number);getchar();for(i=1;i<=S->Total;i++) if(strcmp(S[i].S_number,number)==0) flag=i;if(!flag) printf(“你所要刪除的學(xué)生在表中不存在!”);else { for(i=flag;i j=i+1; strcpy(S[i].S_name,S[j].S_name);//字符串拷貝函數(shù),格式:符數(shù)組名,字符數(shù)組名),賦值給 strcpy(S[i].S_number,S[j].S_number); 字 strcpy(S[i].D_number=S[j].D_number; strcpy(S[i].S_bednum,S[j].S_bednum); strcpy(S[i].S_class1,S[j].S_class1);} (S->Total)--; dirty=1; printf(“刪除成功!”);} printf(“nn”);} //顯示所有學(xué)生信息函數(shù) void Display_All(Student S){ int i;printf(“全體學(xué)生信息如下:n”);printf(“--------------------n”);/*格式頭*/ printf(“ 房間號床位號學(xué)號姓名班級 n”);printf(“--------------------n”);for(i=1;i<=S->Total;i++) printf(“ %-10d%-10s%-10s%-10s%-10sn”,S[i].D_number,S[i].S_bednum,S[i].S_number,S[i].S_name,S[i].S_class1); putchar('n');} //查詢函數(shù)以姓名為關(guān)鍵字進行查詢(順序查找)void Query_S_name(Student S){ int i,j=0;char name[10];printf(“請輸入你要查找的學(xué)生的姓名(10個字符以內(nèi)):”);scanf(“%s”,name);getchar();printf(“所查找學(xué)生信息如下:n”);printf(“tt-----------------n”);/*格式頭*/ printf(“tt房間號床位號學(xué)號姓名班級 n”);printf(“tt-----------------n”);for(i=1;i<=S->Total;i++) if(strcmp(name,S[i].S_name)==0) { printf(“tt%-10d%-10s%-10s%-10s%-10sn”,S[i].D_number,S[i].S_bednum,S[i].S_number,S[i].S_name,S[i].S_class1);j=1; } if(!j) printf(“n查找失敗,表中不存在該學(xué)生的信息!nn”);} //查詢函數(shù)以學(xué)號為關(guān)鍵字進行查詢(折半查找)void Query_S_number(Student S){ int i,j=0;char number[10];printf(“請輸入你要查找的學(xué)生的學(xué)號(10個字符以內(nèi)):”);scanf(“%s”,number);getchar();printf(“所查找學(xué)生信息如下:n”);printf(“tt-----------------n”);/*格式頭*/ printf(“tt房間號床位號學(xué)號姓名班級 n”);printf(“tt-----------------n”);for(i=1;i<=S->Total;i++) if(strcmp(number,S[i].S_number)==0) { printf(“tt%-10d%-10s%-10s%-10s%-10sn”,S[i].D_number,S[i].S_bednum,S[i].S_number,S[i].S_name,S[i].S_class1);j=1; } if(!j) printf(“n查找失敗,表中不存在該學(xué)生的信息!nn”);} //查詢函數(shù)以寢室號為關(guān)鍵字進行查詢(折半查找)void Query_D_number(Student S){ int i,j,m,n,base,top,mid;j=0;base=1;top=S->Total;printf(“請輸入你要查詢的寢室號:”);scanf(“%d”,&i);getchar();Sort_D_number(S);//將表中原數(shù)據(jù)按照寢室號從小到大排序 printf(“所查找寢室信息如下:n”);printf(“tt-----------------n”);/*格式頭*/ printf(“tt房間號床位號學(xué)號姓名班級 n”);printf(“tt-----------------n”);if(i>=S[1].D_number&&i<=S[S->Total].D_number){ while(base<=top) { mid=(base+top)/2; if(i==S[mid].D_number) { m=mid;n=mid-1; while(S[m].D_number==i) { printf(“tt%-10d%-10s%-10s%-10s%-10sn”,S[m].D_number,S[m].S_bednum,S[m].S_number,S[m].S_name,S[m].S_class1);m++; if(m>S->Total) break; } if(n>0) { while(S[n].D_number==i) { printf(“tt%-10d%-10s%-10s%-10s%-10sn”,S[n].D_number,S[n].S_bednum,S[n].S_number,S[n].S_name,S[n].S_class1);n--; if(n<1) break; } } j=1; putchar('n'); break; } else if(i>S[mid].D_number) base=mid+1; else top=mid-1; } } if(!j) printf(“n查找失敗,表中不存在該寢室的信息!nn”);} //存儲函數(shù) void Save(Student S){ int i=0;FILE *fp;/*定義文件指針*/ char filename[100];/*定義文件名*/ printf(“tt輸入文件名:”);/*輸入文件名*/ scanf(“tt%s”,&filename);if((fp=fopen(filename,“w”))==NULL)/*打開文件*/ { printf(“tt無法打開該文件n”);system(“pause”);return;} fprintf(fp,“%dn”,S->Total);/*循環(huán)寫入數(shù)據(jù)*/ while(i<(S->Total)){ fprintf(fp,“%-10d%-10s%-10s%-10s%-10sn”,S[i].D_number,S[i].S_bednum,S[i].S_number,S[i].S_name,S[i].S_class1);i++;} fclose(fp);/*關(guān)閉文件*/ printf(“寫入成功!n”);/*返回成功信息*/ } //退出程序時判斷是否保存函數(shù) void Judge_Save(int i,Student S){ char ch;if(i){ printf(“表中數(shù)據(jù)已改變,是否保存后再退出(Y/N)?:”); ch=getchar(); getchar(); while(ch!='n'&&ch!='N'&&ch!='y'&&ch!='Y') { printf(“請輸入N(n)或者Y(y):”); ch=getchar(); getchar(); } if(ch=='y'||ch=='Y') Save(S);} } //菜單 void Menu(){ system(“cls”);/*運行前清屏*/ printf(“n”);printf(“ 青島農(nóng)業(yè)大學(xué)學(xué)生宿舍管理系統(tǒng)nn”); printf(“ n”);printf(“ 作者:明偉、李善虎、胡蒙亨n”);printf(“n”);printf(“tt=============學(xué)生宿舍管理系統(tǒng)===========n”);/*菜單選擇*/ printf(“tt n”); printf(“tt 1.新生入住 n”);printf(“tt 2.修改入住學(xué)生信息 n”);printf(“tt 3.退房服務(wù) n”);printf(“tt 4.以姓名查詢學(xué)生信息 n”);printf(“tt 5.以學(xué)號查詢學(xué)生信息 n”);printf(“tt 6.以寢室號查詢學(xué)生信息 n”); printf(“tt 7.查詢?nèi)繉W(xué)生信息 n”);printf(“tt 0.退出程序 n”);printf(“tt=========================================n”);} int main(){ int i;Student S;S->Total=0;do { Menu(); printf(“請選擇您要運行的選項按(0-9):”); scanf(“%d”,&i); getchar();//獲取換行符 putchar('n'); switch(i) { case 1:Add(S); system(“pause”); break; case 2:Alter(S); system(“pause”); break; case 3:Delete(S); system(“pause”); break; case 4:Query_S_name(S); system(“pause”); break; case 5:Query_S_number(S); system(“pause”); break; case 6:Query_D_number(S); system(“pause”); break; case 7:Display_All(S);system(“pause”); break; case 0:Judge_Save(dirty,S); exit(0); break; default:printf(“選擇錯誤:請在選項到之間選擇!nn”); break; } }while(i!=10);}(注:黑體部分為我負(fù)責(zé)的部分)2.程序運行說明(包括結(jié)果說明)程序運行說明 運行程序后,出現(xiàn)主菜單界面,按照主菜單上的編號進行操作即可,每輸入一個編號后按回車即進入該子程序,然后按照提示輸入或查詢信息。結(jié)果說明: 3.存在的問題 本程序在新生入住時將宿舍號限定在101,,12,201,202.當(dāng)輸入的宿舍號不符合要求時只是重復(fù)出現(xiàn)“請輸入宿舍號”而沒有明確的文字提示。而且在修改入住學(xué)生信息時對宿舍號沒有限制。還需進一步完善。 四、總結(jié)與體會 當(dāng)看到課程設(shè)計任務(wù)時,完全找不著頭緒,由于對C語言的認(rèn)識和了解只是停留在表面,所以不知道從何下手。后來在不停的復(fù)習(xí)課本,在老師和同學(xué)的幫助下,逐漸找到了方向,也對設(shè)計中需要用到的方法和結(jié)構(gòu)有所了解和認(rèn)識,學(xué)會了如何使用,之后的一次課又經(jīng)過仔細(xì)的思考了解了這個程序的基本框架,確定了程序的流程圖,為程序的完成奠定了基礎(chǔ),接下來在寫代碼的過程中仍然遇到了很多問題,經(jīng)過不斷的查閱課本和網(wǎng)絡(luò),逐步解決了代碼問題,在實現(xiàn)整個程序功能方面,有些結(jié)構(gòu)和方法不會用,最后在老師的幫助下才得以順利解決。做出來的程序在執(zhí)行過程中仍然有一些問題,比如在上述“存在的問題”中提到的。設(shè)計過程確實讓我認(rèn)識到了自己技術(shù)上的不足,在以后的學(xué)習(xí)中應(yīng)該加強這方面的學(xué)習(xí)和重視。為以后的畢業(yè)設(shè)計和就業(yè)做準(zhǔn)備。第二篇:宿舍管理系統(tǒng)設(shè)計
第三篇:宿舍智慧用電管理系統(tǒng)
第四篇:塔里木大學(xué)宿舍管理系統(tǒng)
第五篇:宿舍管理系統(tǒng)課程設(shè)計報告