第一篇:學(xué)生考勤管理系統(tǒng)設(shè)計報告
C/C++程序設(shè)計專題實驗
報告
題目:學(xué)生考勤管理系統(tǒng)設(shè)計
班級:電子信息科學(xué)與技術(shù)131 姓名: 鄔
帥
斌
目錄
目錄......................................................................1 摘要........................................................................2 1.設(shè)計要求和目的.........................................................................................錯誤!未定義書簽。
1.1設(shè)計目的................................................................3 1.2問題描述................................................................3 1.3功能要求................................................................3 1.4問題的解決方案..........................................................3 2 設(shè)計思路和方法...........................................................................................................................4 3 主模塊設(shè)計....................................................................................................................................5 4.運行測試及結(jié)果.........................................................................................................................13 5.總結(jié)...........................................................................................................................................16 參考文獻.........................................................................................................................................16 源代碼..............................................................................................................................................17
摘要
隨著信息技術(shù)在管理上越來越深入的應(yīng)用,管理信息系統(tǒng)的實施在技術(shù)上已經(jīng)逐步成熟。管理信息系統(tǒng)是一個不斷發(fā)展的學(xué)科,任何單位要生存要發(fā)展,要提高效率地把內(nèi)部活動有機地組織起來,就必須建立與自身特點相適應(yīng)的信息管理系統(tǒng)。
由于學(xué)校的學(xué)生管理系統(tǒng)缺乏開發(fā),而學(xué)生人數(shù)不斷增加,學(xué)生信息的不斷更新,所以,學(xué)生考勤管理系統(tǒng)的建立就顯得非常重要了。
本設(shè)計是基于Visual basic C++ 6.0開發(fā)環(huán)境,至上而下,層次化地設(shè)計學(xué)生考勤管理,綜合考慮學(xué)生考勤管理所涉及的多方面問題,結(jié)合學(xué)校和教師的情況,有步驟,條理清晰的設(shè)計,操作簡單,很方便的實現(xiàn)了學(xué)校和老師對學(xué)生考勤的管理。
關(guān)鍵詞:學(xué)生考勤管理 C++ 信息錄入 查詢
1.設(shè)計要求和目的
1.1設(shè)計目的
(1)進一步鍛煉學(xué)生對C++課程基礎(chǔ)知識和實踐技能的掌握和運用;
(2)要求學(xué)生基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;
(3)要求學(xué)生能夠利用所學(xué)的基礎(chǔ)知識和技能,解決簡單的面向?qū)ο笤O(shè)計問題。
1.2問題描述
學(xué)生信息包括:學(xué)號、姓名、性別、年齡、班級等信息。
考勤信息包括:缺課日期、第幾節(jié)課、課程名稱、學(xué)生姓名、缺課類型(遲到、早退、請假和曠課)。
1.3功能要求
(1)添加功能:程序能夠添加學(xué)生的記錄和缺課記錄,提供選擇界面供用戶選擇所要添加的類別。添加學(xué)生記錄時,要求學(xué)號要唯一,如果添加了重復(fù)學(xué)號的記錄時,則提示數(shù)據(jù)添加重復(fù)并取消添加。
(2)查詢功能:可根據(jù)學(xué)號、姓名等信息對已添加的學(xué)生記錄進行查詢,如果未找到,給出相應(yīng)的提示信息,如果找到,則顯示相應(yīng)的記錄信息。還可以按課程名、學(xué)生姓名對缺課記錄進行查詢。
(3)顯示功能:可顯示當前系統(tǒng)中所有學(xué)生的記錄和缺課記錄,每條記錄占據(jù)一行。
(4)編輯功能:可根據(jù)查詢結(jié)果對相應(yīng)的記錄進行修改,修改時注意學(xué)號的唯一性。
(5)刪除功能:主要實現(xiàn)對已添加的學(xué)生記錄進行刪除。如果當前系統(tǒng)中沒有相應(yīng)的記錄,則提示“記錄為空!”并返回操作。
(6)統(tǒng)計功能:能根據(jù)多種參數(shù)進行統(tǒng)計。能按課程名統(tǒng)計出學(xué)生曠課的信息、還可以按姓名統(tǒng)計出任一學(xué)生的曠課情況。需要排序。
(7)保存功能:可將當前系統(tǒng)中各類記錄存入文件中,存入方式任意。(8)讀取功能:可將保存在文件中的信息讀入到當前系統(tǒng)中,供用戶進行使用。
1.4問題的解決方案
根據(jù)系統(tǒng)功能要求,可以將問題解決分為以下步驟:
(1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計;(2)分析系統(tǒng)中的各個實體及它們之間的關(guān)系;(3)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(4)完成類層次中各個類的描述;(5)完成類中各個成員函數(shù)的定義;
(6)完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;
(8)完成系統(tǒng)總結(jié)報告。(7)功能調(diào)試;
(8)完成系統(tǒng)總結(jié)報告。
2.設(shè)計思路和方法
2.1設(shè)計思路
根據(jù)設(shè)計要求,經(jīng)分析可將整個系統(tǒng)劃分為7個功能模塊。數(shù)據(jù)管理中可以對學(xué)生的基本信息、課程的基本信息、學(xué)生缺課的查詢、添加、刪除和修改。查詢管理通過根據(jù)學(xué)生姓名,課程姓名 時間段兒等信息,查詢單個學(xué)生的缺課記錄,單科課的曠課記錄,單個學(xué)生的曠課記錄。功能模塊圖如下圖所示:
學(xué)生考勤管理程序建立學(xué)生缺課記錄修改學(xué)生缺課記錄查詢學(xué)生缺課記錄查看單科曠課記錄查看學(xué)生曠課記錄載入學(xué)生曠課記錄儲存學(xué)生曠課記錄
2.2數(shù)據(jù)結(jié)構(gòu)設(shè)計
struct xueke {char xueke_name[50];int people_num;};這是定義了一個xueke結(jié)構(gòu)體,用來存放一個學(xué)科名及其相應(yīng)的曠課人數(shù);
struct student { char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;
int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};這是定義了一個student的結(jié)構(gòu)體,用來存放一個學(xué)生的考勤記錄,其中有,字符數(shù)組name[50],lesson_name[50],分別存放學(xué)生名字,缺課課程名字;int型變量lesson_time,chidao_num,zaotui_num,qingjia_num, kuangke_num,分別來存放,缺課節(jié)次,遲到次數(shù),早退次數(shù),請假次數(shù),曠課次數(shù) long型變量time,記錄時間。
3.主模塊設(shè)計
3.1建立學(xué)生缺課記錄子模塊
建立的學(xué)生人數(shù),學(xué)生基本信息(包括缺課時間、學(xué)生姓名、課程名稱、節(jié)次、遲到次數(shù)、早退次數(shù)、請假次數(shù)、曠課次數(shù)),用creat()函數(shù),如下圖:
開始int i,b;struct student *head,*p1,*p2;printf(“請輸入要建立資料的學(xué)生人數(shù):”);scanf(“%d”,&b);head=p2=NULL;p1=(struct student *)malloc(LEN);輸入第一個學(xué)生成績head=p1;p2=p1;i=0;student_num++;inext=p1;p2=p1;student_num++;i++p2->next=NULL結(jié)束
3.2修改學(xué)生缺課記錄子模塊
開始char xiugai_name[50];char xiugai_xueke_name[50];int k;printf(”請輸入要修改的學(xué)生姓名與學(xué)科名稱:“);scanf(”%s%s“,xiugai_name,xiugai_xueke_name);struct student *p1,*p2;p2=(struct student *)malloc(LEN);p1=head;p1=p1->next;strcmp(xiugai_name,p1->name)!=0&&(p1->next!=NULL)&&strcmp(xiugai_xueke_name,p1->lesson_name)!strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0顯示修改菜單選擇修改項目并完成修改結(jié)束
3.3修改學(xué)生缺課記錄子模塊
開始int i=0;char chaxun_name[50];struct student *p;p=head;printf(”請輸入要查詢的人名:“);scanf(”%s“,chaxun_name);i
3.4查看單科曠課記錄子模塊
根據(jù)學(xué)科名稱和時間范圍查出所有在該范圍內(nèi)曠課的學(xué)生以及次數(shù),如下圖:
開始struct student *p1,*p2,*p3;char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);p1=head;p2=p1->nextxunhuan_num
3.5查看學(xué)生曠課記錄子模塊
根據(jù)要查詢的學(xué)科名稱及時間段查出在改時間段內(nèi)該門課上曠課的人數(shù),如下圖:
開始int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;printf(”請輸入第%d個學(xué)科名稱:“,i+1);scanf(”%s“,a[i].xueke_name);a[i].people_num=0;printf(”請輸入要查看的時間范圍由小到大“);scanf(”%ld%ld“,&look_time1,&look_time2);p1=head;i=0;Yi 3.6載入學(xué)生曠課記錄子模塊 可以載入實現(xiàn)儲存在當前文件夾中txt文件中所儲存的數(shù)據(jù),如下圖: 開始struct student *p1=NULL,*p2=NULL,*head=NULL;struct student student_ziliao[100];int i=0,n=0;打開文件!feof(fp1)將文件里的數(shù)據(jù)存入結(jié)構(gòu)體數(shù)組通過結(jié)構(gòu)體數(shù)組建立鏈表結(jié)束 3.7儲存學(xué)生曠課記錄子???/p> 進入系統(tǒng)界面,進行數(shù)據(jù)的輸入,信息的保存調(diào)用相應(yīng)的函數(shù)打開相應(yīng)的地址,查詢各項信息。如下圖: 開始struct student *p1;p1=head;打開文件xueshengziliao.txtp1!=NULLN將數(shù)據(jù)寫入文件p1=p1->next;結(jié)束 Y 4.運行測試與結(jié)果 4.1開始菜單 4.2主菜單 4.3創(chuàng)建學(xué)生缺課記錄庫 4.4修改學(xué)生缺課記錄 4.5查詢學(xué)生缺課記錄 4.6查看單科曠課記錄 4.7查看學(xué)生曠課記錄 4.8載入曠課記錄 4.9儲存曠課記錄 5.總結(jié) 在老師同學(xué)的細心幫助下,結(jié)合網(wǎng)上的參考資料,這次設(shè)計總算順利完成。通過本次設(shè)計,讓我對C++基礎(chǔ)課程有了更加深刻的理解,在相關(guān)的能力上有了很大的提高,雖然在設(shè)計過程中遇到很大的困難,但是經(jīng)過不斷的修改和調(diào)試,在此過程中受益匪淺。 這次的程序設(shè)計相對于平時的訓(xùn)練還是有了進步的。學(xué)生考勤管理系統(tǒng)要求至少要有四個類,在起初,對于定義哪四個類我是不清楚的,通過仔細的研讀問題描敘終于在腦海里確定了這四個類。既然是學(xué)生考勤管理系統(tǒng),那由學(xué)生缺課信息中的日期我想到了時間類,這是一個很簡單的類。從系統(tǒng)的幾大功能我又想到了系統(tǒng)的基礎(chǔ)就是缺課學(xué)生的缺課信息,于是我又想到了一個信息類,還有兩個類是根據(jù)兩個統(tǒng)計功能想到的,在現(xiàn)在看來似乎有些不妥。通過這次的課程設(shè)計我明白了學(xué)習(xí)程序設(shè)計語言必須要勤做實驗,通過實驗總結(jié)經(jīng)驗。 平時遇到的一些小問題一定要重視,越是基礎(chǔ)的知識越要理解透徹。比如指針與數(shù)組方面的知識,一旦沒有弄清楚,在設(shè)計程序時就會吃虧。這次的課設(shè)中,我遇到了很多的問題,有的通過思考或查看書本解決了,有的還留在腦子里,只有通過孜孜不倦的求索我們才會有進步,不懂得思考就不能真正的掌握一門知識。這次的實驗給以了我警示,讓我明白我所掌握的知識還很欠缺,對于繼承與派生這一章的知識,我以為自己勉強掌握了,這次實驗后我發(fā)現(xiàn)我掌握得還不夠?;惖谋Wo成員公有繼承到派生類,類外是否可以通過對象來訪問呢,原先我認為是可以的,經(jīng)過這次程序設(shè)計,我知道我錯了。總之,我覺得做學(xué)問不應(yīng)該馬虎,對于所學(xué)一定要有深入的理解,這也是我這次課設(shè)得到的啟示。 參考文獻: 劉銳宇.Visual C++從入門到精通.清華大學(xué)出版社 譚浩強.C++語言程序設(shè)計.清華大學(xué)出版社 設(shè)計源程序代碼: #include //stdio.h的內(nèi)容用C++頭文件的形式表示 #include #include //動態(tài)內(nèi)存分配 #include #include //I/O流控制頭文件 #define NULL 0 #define guding 10 #define LEN sizeof(struct student) //定義了一個常數(shù)宏LEN,它的值等于結(jié)構(gòu)體student的所占內(nèi)存大小 using namespace std;int student_num;FILE *fp1; //定義指針類型文件 struct xueke { char xueke_name[50];int people_num;}; struct student { char name[50];long time;int lesson_time;char lesson_name[50];int chidao_num;int zaotui_num;int qingjia_num;int kuangke_num;struct student *next;};void chaxun(struct student *head){ int i;char chaxun_name[50];cout<<”請輸入要查詢的人名:“; cin>>chaxun_name;struct student *p; if(head==NULL) cout<<”聯(lián)系人為空“;p=head;for(i=0;i if(strcmp(chaxun_name,p->name)==0){ cout<<”缺課時間:“< time<<”學(xué)生姓名:“< name<<”課程名稱:“< lesson_name<<”節(jié)次:“< lesson_time< 早退次數(shù):“< zaotui_num<<”請假次數(shù):“< qingjia_num<<”曠課次數(shù):“< kuangke_num< p=p->next; //p的指針內(nèi)容變成了p->next } } struct student *xiugai(struct student *head){ char xiugai_name[50];char xiugai_xueke_name[50];int k;cout<<”請輸入要修改的學(xué)生姓名與學(xué)科名稱【格式:學(xué)生姓名(空格)學(xué)科名稱】:“;cin>>xiugai_name>>xiugai_xueke_name;struct student *p1,*p2; p2=(struct student *)malloc(LEN);p1=head;if(head==NULL){ cout<<”沒有學(xué)生信息n“; return head;} while((strcmp(xiugai_name,p1->name)!=0||strcmp(xiugai_xueke_name,p1->lesson_name)!=0)&&(p1->next!=NULL)) p1=p1->next; if(strcmp(xiugai_name,p1->name)==0&&strcmp(xiugai_xueke_name,p1->lesson_name)==0){ cout<<”===================================修改信息 =================================n“; cout<<” 1-修改缺課時間 n“; cout<<” 2-修改學(xué)生姓名 n“; cout<<” 3-修改課程名稱 n“; cout<<” 4-修改第幾節(jié)缺課 n“; cout<<” 5-修改遲到次數(shù)n“; cout<<” 6-修改早退次數(shù)n“; cout<<” 7-修改請假次數(shù)n“; cout<<” 8-修改曠課次數(shù)nn“; cout<<”==================================n“; cin>>k; switch(k) { case 1: cout<<”請輸入新的缺課時間:“; cin>>p1->time; break; case 2: cout<<”請輸入新的學(xué)生姓名:“; cin>>p1->name; break; case 3: cout<<”請輸入新的課程名稱:“; cin>>p1->lesson_name; break; case 4: cout<<”請輸入新的缺課節(jié)次:“; cin>>p1->lesson_time; break; case 5: cout<<”請輸入新的遲到次數(shù):“; cin>>p1->chidao_num; break; case 6: cout<<”請輸入新的早退次數(shù):“; cin>>p1->zaotui_num; break; case 7: cout<<”請輸入新的請假次數(shù):“; cin>>p1->qingjia_num; break; case 8: cout<<”請輸入新的曠課次數(shù):“; cin>>p1->kuangke_num; break; } } return head; } struct student *creat(){ int i,b; struct student *head,*p1,*p2; cout<<”請輸入要建立資料的學(xué)生人數(shù):“; cin>>b; head=p2=NULL; p1=(struct student *)malloc(LEN); cout<<”【輸入格式:缺課時間(空格)學(xué)生姓名(空格)課程名稱(空格)第幾節(jié)(空格)遲到次數(shù)(空格)早退次數(shù)(空格)請假次數(shù)(空格)曠課次數(shù)】n“; cout<<”請輸入第1名學(xué)生信息:“; cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num; head=p1; p2=p1; student_num+=1; for(i=1;i { p1=(struct student*)malloc(LEN); cout<<”請輸入第“< cin>>p1->time>>p1->name>>p1->lesson_name>>p1->lesson_time>>p1->chidao_num>>p1->zaotui_num>>p1->qingjia_num>>p1->kuangke_num; p2->next=p1; p2=p1; student_num+=1; } p2->next=NULL; return head;} void print(struct student *head){ struct student *p;p=head;if(p==NULL) cout<<”沒有學(xué)生信息n“;while(p!=NULL) { cout<<”缺課時間:“< time<<”學(xué)生姓名:“< lesson_name<<”節(jié)次:“< lesson_time< zaotui_num<<請假次數(shù):”< qingjia_num<<曠課次數(shù):“< kuangke_num< p=p->next;} } struct student *tongji_lesson(struct student *head){ struct student *p1,*p2,*p3;char lesson[50];long look_time1,look_time2;int xunhuan_num=0;p3=(struct student *)malloc(LEN);if(head==NULL){ cout<<”沒有學(xué)生信息“; return(head);} p1=head;p2=p1->next;while(xunhuan_num while(p2!=NULL) { if(p2->kuangke_num>p1->kuangke_num) { p3->chidao_num=p2->chidao_num; p3->kuangke_num=p2->kuangke_num; p3->qingjia_num=p2->qingjia_num; p3->zaotui_num=p2->zaotui_num; p3->lesson_time=p2->lesson_time; p3->time=p2->time; strcpy(p3->lesson_name,p2->lesson_name); strcpy(p3->name,p2->name); p2->chidao_num=p1->chidao_num; p2->kuangke_num=p1->kuangke_num; p2->qingjia_num=p1->qingjia_num; p2->zaotui_num=p1->zaotui_num; p2->lesson_time=p1->lesson_time; p2->time=p1->time; strcpy(p2->lesson_name,p1->lesson_name); strcpy(p2->name,p1->name); p1->chidao_num=p3->chidao_num; p1->kuangke_num=p3->kuangke_num; p1->qingjia_num=p3->qingjia_num; p1->zaotui_num=p3->zaotui_num; p1->lesson_time=p3->lesson_time; p1->time=p3->time; strcpy(p1->lesson_name,p3->lesson_name); strcpy(p1->name,p3->name); } p1=p2; p2=p2->next; } p1=head; p2=p1->next; xunhuan_num++;} cout<<”請輸入要查看的學(xué)科名稱:“;cin>>lesson;cout<<”請輸入要查看的時間范圍【輸入格式:時間(空格)時間】“;cin>>look_time1>>look_time2;p1=head; while(p1!=NULL){ if(strcmp(lesson,p1->lesson_name)==0&&look_time1<=p1->time&&p1->time<=look_time2) cout<<”學(xué)生姓名:“< name<<” 曠課次數(shù):“< kuangke_num< p1=p1->next;} return head;} struct student *tongji_student(struct student *head){ struct xueke a[10];int n,i,j,zhongjian;struct student *p1;char zhongjian_name[50];long look_time1,look_time2;if(head==NULL){ cout<<”沒有學(xué)生信息n“;return head; } cout<<”請輸入一共的學(xué)科數(shù):“;cin>>n;for(i=0;i cout<<”請輸入第“<>a[i].xueke_name;a[i].people_num=0; } cout<<”請輸入要查看的時間范圍由小到大【輸入格式:時間(空格)時間】“;cin>>look_time1>>look_time2;p1=head;for(i=0;i while(p1!=NULL&&look_time1<=p1->time&&p1->time<=look_time2) { if(a[i].xueke_name==p1->lesson_name) a[i].people_num+=p1->kuangke_num; p1=p1->next;} p1=head; } for(j=0;j for(i=0;i { if(a[i].people_num { zhongjian=a[i+1].people_num; a[i+1].people_num=a[i].people_num; a[i].people_num=zhongjian; strcpy(zhongjian_name,a[i+1].xueke_name); strcpy(a[i+1].xueke_name,a[i].xueke_name); strcpy(a[i].xueke_name,zhongjian_name);} else if(a[i].people_num==a[i+1].people_num&&strcmp(a[i].xueke_name,a[i+1].xueke_name)>0) { zhongjian=a[i+1].people_num; a[i+1].people_num=a[i].people_num; a[i].people_num=zhongjian; strcpy(zhongjian_name,a[i+1].xueke_name); strcpy(a[i+1].xueke_name,a[i].xueke_name); strcpy(a[i].xueke_name,zhongjian_name);} } for(i=0;i struct student student_ziliao[100];int i=0,n=0;if((fp1=fopen(”xueshengziliao.txt“,”rb+“))==NULL){ printf(”cannot open filen“); return(head);} while(!feof(fp1)){if(fread(&student_ziliao[i],LEN,1,fp1)!=1) {if(feof(fp1)) {fclose(fp1); break;} printf(”file read errorn“);} i++;} n=i;student_num=n;p1=p2=(struct student *)malloc(LEN);head=p1;for(i=0;i p1->kuangke_num=student_ziliao[i].kuangke_num; strcpy(p1->lesson_name,student_ziliao[i].lesson_name); p1->lesson_time=student_ziliao[i].lesson_time; strcpy(p1->name,student_ziliao[i].name); p1->qingjia_num=student_ziliao[i].qingjia_num; p1->time=student_ziliao[i].time; p1->zaotui_num=student_ziliao[i].zaotui_num; p2->next=p1; p2=p1; p1=(struct student*)malloc(LEN);} p2->next=NULL;return(head);} void chucun(struct student *head){ struct student *p1;p1=head;fp1=fopen(”xueshengziliao.txt“,”wb+“);while(p1!=NULL){fwrite(p1,LEN,1,fp1); p1=p1->next;} fclose(fp1);cout<<” 儲存成功n“;} void main(){ struct student *head;int a,b,c;zhuye: cout<<”********************** 歡迎使用學(xué)生考勤管理系統(tǒng) ************************n“; cout<<” 1_進入管理nnn“; cout<<” 2_查看系統(tǒng)相關(guān)信息nnn“;cout<<”********************************************************************************nnnnn“; cin>>a; if(a==1) { do { cout<<”********************************************************************************n“; cout<<” 1_建立學(xué)生缺課記錄n“; cout<<” 2_修改學(xué)生缺課記錄n“; cout<<” 3_查詢學(xué)生缺課記錄n“; cout<<” 4_查看單科曠課記錄n“; cout<<” 5_查看學(xué)生曠課記錄n“; cout<<” 6_載入學(xué)生曠課記錄n“; cout<<” 7_儲存學(xué)生曠課記錄n“; cout<<” 8_退出考勤管理程序n“;cout<<”********************************************************************************n“; cin>>b; switch(b) { case 1: head=creat(); print(head); break; case 2: head=xiugai(head); print(head); break; case 3: chaxun(head); break; case 4: head=tongji_lesson(head); break; case 5: head=tongji_student(head); break; case 6: head=zairu();print(head); break; case 7: chucun(head); break;} }while(b!=8); } else {cout<<”********************************************************************n“; cout<<”******************************1*************************************n"; cin>>c; if(c==1) goto zhuye; } } 歡迎使用本返 回 主 頁 系統(tǒng)請 按 學(xué)生考勤管理系統(tǒng) 系統(tǒng)設(shè)計開發(fā):張文聰 網(wǎng)站意義: 學(xué)生考勤對學(xué)校教務(wù)管理是至關(guān)重要的,傳統(tǒng)的學(xué)生出勤檢查往往是教師拿著一張紙質(zhì)名單逐一點名,或讓學(xué)生上交課堂作業(yè)以便課后查詢出勤情況。這些方法往往具有考勤效率低下,沒有系統(tǒng)的記錄和整理,容易丟失遺漏,耽誤時間等缺點。針對以上問題,開發(fā)一種針對學(xué)生考勤的網(wǎng)上管理系統(tǒng),通過本系統(tǒng),教師可以再課堂上直接登錄考勤記錄網(wǎng)站進行課堂點名,記錄學(xué)生考勤情況等。此外,在課余,任課教師、班主任以及學(xué)校領(lǐng)導(dǎo)也可以登錄該網(wǎng)站查詢某班學(xué)生在某學(xué)科課程的出勤情況。 需求分析: 1、提供學(xué)生和老師兩個登錄用戶; 2、學(xué)生可以查詢自己的出勤情況; 3、任課老師可以查詢自己帶的班級學(xué)生的出勤情況; 4、班主任可以查詢本班級學(xué)生在每一學(xué)科的出勤情況。 5、實現(xiàn)科任老師和班主任查詢結(jié)果的報表打印。 網(wǎng)站設(shè)計圖: 開發(fā)運行平臺: 主要以Microsoft Visual Studio.NET 2008 為開發(fā)平臺,SQL Server 2000為后臺數(shù)據(jù)庫,采用.NET技術(shù),結(jié)合C#和JavaScript構(gòu)造應(yīng)用程序。 功能模塊說明: 1、學(xué)生信息管理 包括了學(xué)生的個人信息,所在班級,學(xué)號,姓名和學(xué)生每個學(xué)科的出勤情況。 2、學(xué)科信息 包括了每一個學(xué)科的課程名稱,課程號和每一個課程對應(yīng)的任課教師。 3、出勤模塊 包括了全校所有學(xué)生對應(yīng)每一學(xué)科課程的出勤情況。班主任和科任老師可以查詢對應(yīng)的班級學(xué)生出勤情況并打印出來。 網(wǎng)站總結(jié): 本系統(tǒng)針對在校學(xué)生每一節(jié)課的考勤情況作記錄,方便班主任對本班學(xué)生出勤率的查看可以及時做好教育防范工作。根據(jù)教務(wù)處的需求,我們還會將本系統(tǒng)繼續(xù)擴大,添加進學(xué)生早操、值日和會議等功能,以及學(xué)生通過系統(tǒng)請假,老師或領(lǐng)導(dǎo)批假等功能。 目 錄 一. 選題的背景 隨著計算機與信息技術(shù)的普遍提高,越來越多的單位使用計算機來管理檔案,這樣就在很大程度上提高了管理的效率。近幾年來高校的擴大招生,一方面給廣大民眾提供了越來越多的教育機會,另一方面也使學(xué)校的管理工作加重了。學(xué)生注冊管理采用手工錄入和打印數(shù)據(jù)的方式,顯然難以保證學(xué)生數(shù)據(jù)的準確無誤和實時更新,迫切需要一種新的現(xiàn)代化管理體制對學(xué)生進行管理。二.課題的提出意義 隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。學(xué)生注冊管理軟件是使用計算機科學(xué)管理的辦法對學(xué)生的學(xué)籍、班級、課程、成績、獎罰信息等進行管理。不僅具有檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低的優(yōu)點,還使學(xué)生注冊信息的實時性、精確性和學(xué)生注冊工作的各個環(huán)節(jié)結(jié)合起來,極大地提高學(xué)生注冊管理的效率,減輕了高校學(xué)生管理的負擔。 本系統(tǒng)所實現(xiàn)的學(xué)生注冊管理系統(tǒng)就是以VB和Access為編程環(huán)境來實現(xiàn)其制作和開發(fā)過程的,通過對學(xué)生注冊管理系統(tǒng)進行需求分析、總體設(shè)計和詳細設(shè)計逐步將一個學(xué)生注冊管理系統(tǒng)的開發(fā)過程呈現(xiàn)出來。沒有可以追求專業(yè)性和商品化軟件的華麗包裝,而是本著簡單、實用的原則,既在功能上滿足用戶的需求,又力求操作簡便,使本系統(tǒng)容易掌握和使用。 三.本系統(tǒng)的功能及特點 經(jīng)分析系統(tǒng)共分為八個模塊:用戶管理模塊、班級管理模塊、學(xué)生學(xué)籍模塊、課程管理模塊、成績管理模塊、獎懲管理模塊、個人信息查詢模塊,并得到如圖1 所示的系統(tǒng)功能模塊組織結(jié)構(gòu)圖。其中每個模塊分別實現(xiàn)以下功能: 1)用戶管理:管理使用學(xué)生注冊管理系統(tǒng)的用戶信息,包括系統(tǒng)用戶的添加、修改、刪除和瀏覽.2)班級管理:管理使用學(xué)生的班級信息,包括學(xué)生所在班級的添加、修改、刪除和查詢。 3)學(xué)生注冊管理:管理在校學(xué)生的學(xué)籍信息,包括學(xué)生學(xué)籍的添加、修改、刪除和查詢。 4)課程管理:管理學(xué)生課程的各種信息,包括學(xué)生課程的基本課程設(shè)置和班級課程設(shè)置。 5)成績管理:管理學(xué)生在校的所有成績,包括學(xué)生成績的添加、修改、刪除和查詢。 6)獎懲管理:管理學(xué)生在校的獎懲信息,包括學(xué)生獎懲管理的添加、修改、刪除和查詢。 7)個人信息查詢:關(guān)于學(xué)生的各種相關(guān)信息,包括學(xué)生的性別、年齡、籍貫、身份等。 四.管理系統(tǒng)的現(xiàn)狀 管理信息系統(tǒng)(MIS)是一門邊緣學(xué)科,集管理科學(xué)、信息科學(xué)、系統(tǒng)科學(xué)、現(xiàn)代通信技術(shù)和電子計算機技術(shù)于一體。1985年,管理信息系統(tǒng)創(chuàng)始人,明尼蘇達大學(xué)卡爾森管理學(xué)院的著名教授戴維斯(Gordon.B.Davis)給出了一個具有代表性的定義:“管理信息系統(tǒng)是一個利用計算機硬件和軟件,手工作業(yè)、分析、計劃、控制和決策模型以及數(shù)據(jù)庫的用戶-機器系統(tǒng)。它能提供信息支持企業(yè)或組織的運行、管理和決策功能?!?/p> 隨著網(wǎng)絡(luò)技術(shù)的出現(xiàn),管理信息系統(tǒng)又有了新的必恭必敬,基于網(wǎng)絡(luò)的管理信息系統(tǒng)不斷出現(xiàn),管理信息系統(tǒng)的概念模型也發(fā)生了相應(yīng)的變化,許多學(xué)者對管理信息系統(tǒng)給出了新的定義。例如勞頓認為:“管理信息系統(tǒng)是一個基于計算機的信息系統(tǒng),它通過收集、處理、存儲和擴散信息,來支持組織的管理、決策、合作、控制、分析活動,并使之可視化。” 考勤管理系統(tǒng) 數(shù)據(jù)庫設(shè)計說明書 文件名稱:數(shù)據(jù)庫設(shè)計說明書 文件編號: …..編 制 人: 編制日期: 審 核 人: … 版 本: 1.01版 目錄 1引言...............................................................................................................................................3 1.1編寫目的.............................................................................................................................3 1.2背景.....................................................................................................................................3 1.3定義...................................................................................................錯誤!未定義書簽。1.4參考資料.............................................................................................................................3 2數(shù)據(jù)的邏輯描述...........................................................................................................................3 2.1靜態(tài)數(shù)據(jù).............................................................................................................................3 2.2動態(tài)輸人數(shù)據(jù)...................................................................................錯誤!未定義書簽。2.3動態(tài)輸出數(shù)據(jù)...................................................................................錯誤!未定義書簽。2.4內(nèi)部生成數(shù)據(jù).....................................................................................................................3 2.5數(shù)據(jù)約定...........................................................................................錯誤!未定義書簽。3數(shù)據(jù)的采集...................................................................................................................................4 3.1要求和范圍.........................................................................................................................4 3.2輸人的承擔者.....................................................................................................................4 3.3預(yù)處理.................................................................................................................................4 3.4影響.....................................................................................................................................4 數(shù)據(jù)庫設(shè)計說明書 1引言 1.1編寫目的 本文檔為考勤管理系統(tǒng)數(shù)據(jù)庫設(shè)計分析報告,為考勤管理系統(tǒng)的設(shè)計的主要依據(jù),主要針對考勤管理系統(tǒng)的概要設(shè)計和詳細設(shè)計人員,作為項目驗收的主要依據(jù)。 1.2背景 本軟件全稱為員工考勤管理系統(tǒng) 本軟件為長安大學(xué)24020602班喻石小組加中實習(xí)項目由喻石、姚重亮、馬綏鮮、張怡共同完成,軟件適用于小型企業(yè)的員工考勤管理。 1.3參考資料 陽光酒店管理系統(tǒng) 2數(shù)據(jù)的邏輯描述 對數(shù)據(jù)進行邏輯描述時可把數(shù)據(jù)分為動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)。所謂靜態(tài)數(shù)據(jù),指在運行過程中主要作為參考的數(shù)據(jù),它們在很長的一段時間內(nèi)不會變化,一般不隨運行而改變。所謂動態(tài)數(shù)據(jù),包括所有在運行中要發(fā)生變化的數(shù)據(jù)以及在運行中要輸入、輸出的數(shù)據(jù)。進行描述時應(yīng)把各數(shù)據(jù)元素邏輯地分成若干組,列如函數(shù)、源數(shù)據(jù)或?qū)τ谄鋺?yīng)用更為恰當?shù)倪壿嫹纸M。給出每一數(shù)據(jù)元的名稱(包括縮寫和代碼)、定義(或物理意義)度量單位、值域、格式和類型等有關(guān)信息。 2.1靜態(tài)數(shù)據(jù) 上班時間,加班時間,缺勤原因。 2.2內(nèi)部生成數(shù)據(jù) 內(nèi)部生成數(shù)據(jù)為員工遲到次數(shù),曠工次數(shù)和請假次數(shù)。 3數(shù)據(jù)的采集 3.1要求和范圍 按數(shù)據(jù)元的邏輯分組來說明數(shù)據(jù)采集的要求和范圍,指明數(shù)據(jù)的采集方法,說明數(shù)據(jù)采集工作的承擔者是用戶還是開發(fā)者。具體的內(nèi)容包括: a.輸入數(shù)據(jù)的來源:數(shù)據(jù)的輸入由公司的員工管理人員負責(zé)將數(shù)據(jù)輸入至員工考勤管理系統(tǒng) b.數(shù)據(jù)輸入(指把數(shù)據(jù)輸入處理系統(tǒng)內(nèi)部)所用的媒體和硬設(shè)備:計算機一臺,以及員工考勤管理系統(tǒng),員工證。 c.接受者:數(shù)據(jù)接受者主要為公司人事管理部門主管或經(jīng)理。 d.輸出數(shù)據(jù)的形式和設(shè)備:輸出數(shù)據(jù)的硬件設(shè)備為計算機或打印機,主要在顯示器上輸出表格,列出員工考勤簽到情況。 e.數(shù)據(jù)值的范圍:員工上班時間數(shù)據(jù)取值為時間,采用24小時制,遲到次數(shù)和缺勤次數(shù)的數(shù)據(jù)應(yīng)為大于等于零的整數(shù)。原因一項數(shù)據(jù)取值應(yīng)為字符串。f.量綱:數(shù)據(jù)度量單位為時間,每次增量為分鐘。 3.2輸入的承擔者 輸入的承擔者為公司員工管理人員。 3.3預(yù)處理 采集的數(shù)據(jù)應(yīng)為員工上班時間。 3.4影響 使用這個軟件需要用戶安裝SQL數(shù)據(jù)庫,并安裝JAVA服務(wù)平臺,采用本員工考勤管理系統(tǒng)需要一考勤管理人員將員工上班時間等輸入其相應(yīng)的表格單元,該系統(tǒng)將自動判斷該員工是否遲到并統(tǒng)計數(shù)據(jù),方便主管人員查看員工考勤記錄。 4結(jié)構(gòu)設(shè)計 表1: 員工基本信息管理表 字段名 ID stuff_no stuff_name stuff_sex stuff_age stuff_born stuff_birthplace stuff_photo stuff_worktime stuff_postion stuff_tel stuff_address stuff_power stuff_remark stuff_nation 表2: 考勤管理表 字段名 ID stuff_no stuff_gettime stuff_reason stuff_overtime stuff_late record_time 表3: 全體員工密碼表 字段名 ID stuff_no stuff_pwd 類型 int varchar varchar varchar int varchar varchar varchar varchar varchar varchar varchar varchar varchar varchar 類型 int varchar varchar varchar varchar varchar varchar 類型 int varchar varchar 允許為空 √ √ √ √ 允許為空 √ 允許為空 默認值 說明 序號 員工號 姓名 性別 年齡 出生日期 籍貫 照片 上班時間 職位 聯(lián)系方式 家庭住址 權(quán)限 備注 民族 默認值 說明 序號 員工號 簽到時間 無 未到原因 未加班 加班記錄 否 遲到否 系統(tǒng)時間 記錄時間 默認值 說明 序號 員工號 123 密碼 趙彬:電子商城系統(tǒng) 學(xué)生點名考勤系統(tǒng) 摘要 隨著社會的反展和信息技術(shù)的進步,全球信息化的趨勢越來越明顯。幾乎沒有一個學(xué)校不在走信息化的路子,都在用自己的智慧將工作效率一步一步的提升。在現(xiàn)在的高校中,由于學(xué)生的分布式教學(xué),造成了教學(xué)管理的不嚴謹性,使得一些學(xué)生產(chǎn)生了逃課曠課的僥幸心理。所以教師的任務(wù)不僅僅是教學(xué),還要同時負擔考勤等煩雜的日常事務(wù),這樣就會嚴重影響到教師的授課時間,同時也影響了學(xué)生的聽課時間。因此,信息化給這樣的一個狀況帶來了一個契機,基于信息化的考勤系統(tǒng)就在這種情況下變的越來越受歡迎,它給教師帶來了更加高效的處理考勤的方法,使得教學(xué)能夠比較順利的進行下去,不會再因為考勤等煩雜事務(wù)影響教學(xué)。 學(xué)生點名考勤系統(tǒng)具備較完備的信息管理功能,通過使用本系統(tǒng),高校教師能夠在很短的時間內(nèi)完成學(xué)生的考勤任務(wù),并將考勤信息存入數(shù)據(jù)庫,即有效的保存了數(shù)據(jù),方便以后對學(xué)生的評定,又節(jié)省了考勤所耗費的時間,使之能夠更好的完成教學(xué)任務(wù)。全文共分為:前言、系統(tǒng)需求分析、系統(tǒng)邏輯方案、系統(tǒng)總體設(shè)計、系統(tǒng)詳細設(shè)計、系統(tǒng)實施等六部分,通過對高校學(xué)生考勤工作流程的具體分析,詳細表述了系統(tǒng)的業(yè)務(wù)流程圖、數(shù)據(jù)流程圖、數(shù)據(jù)字典、HIPO圖、E-R圖,然后采用自頂向下的幾方法循序漸進地進行了系統(tǒng)的模塊設(shè)計、代碼設(shè)計、數(shù)據(jù)庫設(shè)計、人機界面設(shè)計及輸入輸出設(shè)計等。通過系統(tǒng)的規(guī)劃,充分體現(xiàn)了信息化在公安工作中的重要性、及時性和實效性。 關(guān)鍵詞:學(xué)生點名考勤系統(tǒng),數(shù)據(jù)流程圖,HIPO圖,E-R圖 I 一、需求分析 1.1項目背景 在計算機技術(shù)廣泛推廣的今天,應(yīng)用計算機已經(jīng)大大的提高了社會的各方面的效率。而作為學(xué)校,社會知識的高度集中區(qū),計算機已經(jīng)成為一種必需品。有了計算機,那么我們就應(yīng)該在方方面面想到用它來提高我們的效率。 對于大學(xué)生的考勤方面,現(xiàn)在越來越顯示出重要性。雖然大學(xué)生都已經(jīng)步入成年,但是其自制力還是很不樂觀。很多方面還需要代課老師和學(xué)校的監(jiān)督,當然對于上課點名很占用時間,而且效果不好,老師也不能對學(xué)生每次點名情況都有明確的了解,所以一個可視化的點名系統(tǒng)稱為必須。 此外,對于學(xué)生上課表現(xiàn)情況,老師可以對問題的次數(shù)以及質(zhì)量來進行打分。所以在上課時有一個能夠面向?qū)W生的點名系統(tǒng)對學(xué)生的進行的提問也成為老師們十分想要的一個系統(tǒng)。 1.2項目目標 本軟件專門為了老師和廣大學(xué)生上課的便利而設(shè)計。所以本組的所有成員對老師(用戶)進行可調(diào)查以及對這方面的細節(jié)進行了觀察,力求老師上課時不用對學(xué)生的繁雜的資料來進行詢問,只需要簡單的操作就可以實現(xiàn)對學(xué)生的點名及提問,方便省時。 此外,本軟件中還有對學(xué)生的打分與記錄,對學(xué)生的整體情況進行記錄,以及對每次到課情況進行統(tǒng)計,使課堂上的更多情況能在數(shù)據(jù)庫中得以保存。 可見本軟件在目標上是盡量滿足用戶的需求。 1.3運行環(huán)境 本軟件可以在WindowsXP系統(tǒng)中運行,計算的硬件要求不高,一般的配置就可以轉(zhuǎn)動,但是使用時一定要按本軟件提供的數(shù)據(jù)庫設(shè)計方式設(shè)計數(shù)據(jù)庫,然后用過說明要求加入數(shù)據(jù)庫就可以使用。 1.4項目的具體功能 項目具有點名、提問、記錄缺課次數(shù)以及總的缺課次數(shù)、修改學(xué)生信息、修改數(shù)據(jù)庫的內(nèi)容,增加學(xué)生等。 二、技術(shù)路線 2.1總體方案 本軟件總體上要實現(xiàn)對學(xué)生的上課情況進行考勤與記錄,對學(xué)生資料的管理以及數(shù)據(jù)管理,系統(tǒng)數(shù)據(jù)庫進行設(shè)計。 2.2開發(fā)平臺 本系統(tǒng)是以Windows XP系統(tǒng)為操作平臺,用Java語言作為唯一的編寫語言,在MyEclipse平臺上完成,利用MySQL數(shù)據(jù)庫實現(xiàn)。第二篇:學(xué)生考勤管理系統(tǒng)
第三篇:考勤管理系統(tǒng)
第四篇:數(shù)據(jù)庫設(shè)計說明書-考勤管理系統(tǒng)
第五篇:學(xué)生點名考勤系統(tǒng)(范文)