第一篇:課程設計--選課注冊管理系統(小編推薦)
“選課注冊管理系統”課程設計指導書
課題名稱:選課注冊管理系統
設計目標:按照軟件工程的規范,以SQL Server或Oracle為后臺數據庫,以Visual C++、Delphi等為前端開發工具,模擬高等學校的選課情況,設計并實現一個學生選課注冊管理系統。
需求描述:
1.系統用戶
本系統的用戶是學校的學生、教師和管理員。學生使用本系統查詢新學期將開設的課程和授課教師的情況,選擇自己要學習的課程,并進行登記注冊。教師使用本系統查詢新學期將開設的課程、參加聽課的學生情況。教學管理員使用本系統進行教學管理,包括課程管理和新學期的課程選課注冊管理。
2.系統功能
本系統負責新學期的課程選課注冊工作;應提供的服務功能如下:
(1)錄入與生成新學期課程表:教學管理員在新學期開始前錄入新學期課程,打印將開設的課程目錄表,供師生參考選擇。若某課程的實際選課學生少于10人,則停開該課程,把該課程從課程目錄表中刪除;若某課程的選課學生多于30人,則停止選課。
(2)學生選課注冊:新學期開始前一周為選課注冊時間,在此期間學生可以選
課注冊,并且允許改變或取消注冊申請。
(3)查詢:可以查詢課程信息、學生選課信息和學生、教師信息。
(4)選課注冊信息的統計與報表生成:教學管理員對學生的選課注冊信息進行
統計(按課程、按學生、按班級)。
3.系統結構
假定在學校的計算中心有功能強大的工作站機器,在各系、各部門、圖書館、學生宿舍都有臺式PC機,學校的全部計算機已經聯網。本系統將采用客戶機/服務器結構建立,應用服務器和數據庫服務器設置在學校計算中心的工作站。學生、教師和教學管理員可以在各系、各部門、圖書館、學生宿舍的臺式PC機上使用本系統。結果形式:
提交課程設計報告、源程序和可演示的軟件
課程設計報告要求:詳見課程設計模板
課程設計參考思路:
(1)熟悉數據庫和開發工具,掌握開發工具與本地數據庫的連接方法。
(2)理解系統的信息需求,進行合理的數據庫設計,建立各數據庫表。
(3)理解系統的功能需求,設計應用軟件。結合Delphi 或VC++進行系統界面(窗
體、菜單以及相應控制按鈕)的設計、連接與操縱數據庫方案的設計,編寫程序。
(4)系統運行、調試并完善。
(5)撰寫設計報告。
第二篇:C語言課程設計學生選課系統
題目
一、學生選課管理系統
第一部分:課程設計名稱、目的、要求
第二部分:程序總體設計思路
第三部分:程序功能劃分、圖示及流程圖
第四部分:程序設計數據、運行結果
第五部分:程序的優缺點
第六部分:心得體會
第七部分:附錄(源程序)
第八部分:附錄(參考文獻)
目錄
..............................................................................第一部分:課程設計名稱、目的、要求
名稱:學生選修課程系統設計
目的:運用C語言提高解決實際問題的能力 實驗環境:Microsoft Visual C++ 6.0 內容:
假定有n門課程,每門課程有課程編號,課程名稱,課程性質,總學時,授課學時,實驗或上機學時,學分,開課學期等信息,學生可按要求(如總學分不得少于60)自由選課。【功能】
系統以菜單方式工作?
課程信息錄入功能(課程信息用文件保存)--輸入? 課程信息瀏覽功能--輸出?
查詢功能:(至少一種查詢方式)--算法? 按學分查詢? 按課程性質查詢? 學生選修課程(可選項)?
第二部分:程序總體設計思路
由于C語言是面對過程的語言,故我的設計思路是根據目標程序運行的過程來編寫的。
具體的設計思路如下:
程序的要求是設計學生選修課管理系統,對選修課程能夠進行錄入和修改操作等,要求有菜單界面和退出功能。首先,考慮到程序的數據輸入,可以設置一個管理員登陸選項,通過該選項進入管理員界面,進行選修課的錄入和修改操作,最后將錄入的課程保存到相應的文件中。然后定義各種函數的功能包括查看,查詢,刪除等。另一個為學生登陸界面,該界面學生可以進行課程選擇和瀏覽查詢等操作。在進行該操作之前需要對管理員保存的文件進行讀取,然后對其中的內容進行查詢等,在學生選好課程以后,可以將其選好的課程保存于相應的文件中,以便下次進行修改。通過函數的層層調用來實現程序的邏輯結構。中間通過文件的打開和關閉實現對文件內部所包含的數據的操作。
整個程序的設計思路到此結束。
第三部分:程序功能劃分、圖示及流程圖
【功能模塊劃分及其流程圖】
本程序功能模塊根據程序設計的需求,綜合程序的實用性、人性化、智能化的考慮,將程序劃分為6個部分分別編寫,程序主體功能將由這9個部分來完成。這9個部分依次是:
1.登錄界面函數;void login()2.學生登錄界面據函數:void stu_login()3.管理員登錄界面函數:void man_login()4.退出界面函數:void bye_sys()
5.課程選擇函數:void c_select()6.課程瀏覽函數:void c_view()7.課程查詢函數:void c_search()8.課程增加函數:void c_add()9.課程刪除函數:void c_delete()10.菜單函數:void index()11.主函數部分; main()
總體設計:
學生選課系統管理員登錄學生登錄新增課程刪除課程課程瀏覽查詢課程學生選課課程瀏覽課程查詢c_add函數c_delete函數c_view函數c_search函數c_select函數c_view函數c_search函數
系統功能模塊圖
部分函數流程圖:
1、課程選擇函數:
開始輸入要選擇的課程的編號j=0;j
2、課程查詢函數
開始輸入要查詢的課程的編號j=0;j 3、課程增加函數 開始輸入要增加的課程的編號j=0;j 4、課程刪除函數 開始輸入要刪除的課程的編號nj=0;j 本程序是一款應用軟件,故數據設計、程序運行結果應在程序的 運用中得以體現,現在通過一個程序的運用事例來對程序運行結果進行演示與實現。【軟件運用舉例】 1、程序開始界面如下: 選擇某個選項,如進行管理員登錄,進行課程的增加 進入管理員界面: 2、再選擇所要進行的操作,如進行課程增加,結果如下: 下面可以進行繼續增加課程或者退出: 3、選擇課程瀏覽,可以分頁查看相應的課程信息: 第一頁: 第二頁: 4、課程查詢 查找結果: 4、管理員課程刪除操作: 刪除后可以進行瀏覽,觀察刪除后的結果: 可見刪除后只有一條記錄。刪除操作完成正確。下面進行學生操作的使用方法: 1、學生登陸界面: 2、選擇學生選課選項: 3、學生登陸也可進行課程瀏覽和查詢函數,其結果與管理員登陸相同,不再演示。 第五部分:程序的優缺點 【程序的優點】 算法是程序的靈魂,程序的優點首先表現在算法上的優點,其次才是功能上的。 [算法上的優點]主要體現在以下三點: 1.程序采用main主函數方式設計,程序的主體的功能大都由該功能 完成。程序如此設計有利于程序的進一步改進及有助于程序執行效率的提高。 2.程序對文件數據的讀寫采用了fread和fwrite塊讀寫函數,能夠將文件中的數據完全讀出,然后賦到定義的數組中,再在相應的數組中進行一系列操作,最終再寫入文件。 3.插入操作在本程序中將課程信息直接插入數組最后一個節點,從而減少了數據的相互移動,節省了時間。 [功能上的優點] 主要體現在以下兩點: 1. 簡潔明了的程序菜單。程序主要采用了層次不同的菜單,相互獨立又相互聯系,巧妙相接,符合用戶的使用習慣與思維。2. 人性化的程序提示語言,程序提示語言較人性化,不僅大多為祈使語句、疑問句,而且提示明確,具有較強的明確的指導作用。程序提示不僅層次分明,提示方式多樣,而且提示信息井然有序,更加有利于用戶順利、準確地看懂程序并進行操作。 【程序的缺點】 主要表現在以下兩點: 1、本程序沒有進行相應的密碼操作,所以對于使用者來說可能存在比較大的不保密性。需要改善。 2、本程序沒有使用文本讀寫函數fscanf和fprintf,所以的到的課程文件和選課文件都是二進制形式。 第六部分:心得體會 選課系統程序比起通訊錄程序來講好寫一些,由于本程序用到了數組,對于數組的操作掌握的比較熟練,所以在編寫程序的時候困難沒有那么多。 本程序在編寫的過程中用到了許多通訊錄中的模塊化設計和函數互相調用的思想,使得編寫比較方便和好用。 通過該系統的課程設計分析,我掌握了模塊化設計的方法,理解和運用了結構化程序設計的思想和方法,掌握和提高了運用C語言進行程序設計的能力。 程序設計的過程,實際上是確定解決問題的詳細步驟,而這個步驟通常叫做流程,在程序設計過程中理清楚整個問題的流程很重要,然后采取逐步細化的方法實現整個程序。 對于一個較大的應用程序,一般不可能一次就設計出一個很完善的系統。通常要先設計滿足基本要求的系統,然后再測試或者在使用的過程中不斷完善,慢慢地做成一個功能很完善選修課程管理系統。所以在進行調試的時候需要對許多變量理解和掌握其變化規律等,這對于我更好的掌握visual C中調試的工具有很大的幫助。 總之經過這次課程設計,我對c語言的使用和理解都有了很大的加深,對于編程的思想也有了很多新的理解和感受。 第七部分:附錄 一、參考文獻: 1、李麗娟主編,C語言程序設計教程(第二版),人民郵電出版社 2、嚴蔚敏主編,數據結構(C語言),清華大學出版社 3、崔單主編,C語言程序設計案例精粹,電子工業出版社 4、譚浩強主編,程序設計(第三版),清華大學出版社 二、源程序 #include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h” void index();//首頁 void login();void bye_sys();//退出界面 void stu_login();//學生登錄菜單 void c_select();void c_view();//課程瀏覽 void c_add();//增加課程 void c_delete();void c_searchs();//學生查詢函數 void c_searchm();//管理員查詢函數 void c_viewm();//管理員瀏覽函數 void c_views();//學生瀏覽函數 struct course//定義課程結構體 { int c_num; char c_name[20]; int c_score; int c_nelepeo;//課程已選人數 int c_melepeo;//課程人數上限 };struct student { char s_number[10]; char s_password[10];};struct manager { char m_name[10];char m_password[10];}; void index()//首頁 { char input; printf(“nnttt*****************************n”); printf(“ttt 湖南大學學生選課系統n”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt*****************************nnn”); printf(“ttt**********設計者:劉曉斌******nnn”); input=getchar(); system(“cls”);} void login()//登陸界面 { void stu_login(); void man_login(); void bye_sys(); int input; do { system(“cls”); printf(“nnnt1.學生登錄n”); printf(“t2.管理員登陸n”); printf(“t3.退出本系統n”); printf(“t請選擇服務類別:”); scanf(“%d”,&input); if(input!=1&&input!=2&&input!=3)//輸入數不等于選項的時候打印畫面 { printf(“nt輸入出錯!請重新選擇~n”); printf(“nt按任意鍵返回選擇頁面~nt”); getchar();getchar(); system(“cls”); } if(input==3)//如果輸入3退出系統 { bye_sys(); } }while(input!=1&&input!=2&&input!=3); switch(input) { case 1:stu_login();break; case 2:man_login();break; } } void bye_sys()//退出界面 { exit(0);} void man_login(){ void c_add(); void c_delete(); void c_view(); void c_searchm(); int in; do { system(“cls”); printf(“nnt1.新增課程n”); printf(“t2.刪除課程n”); printf(“t3.課程瀏覽n”); printf(“t4.課程查詢n”); printf(“t5.退出n”); printf(“nnt請選擇服務種類:”); scanf(“%d”,&in); if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5) { printf(“nt沒有這項服務t按任意重新選擇”); getchar();getchar(); } }while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5); switch(in) { case 1:c_add();break; case 2:c_delete();break; case 3:c_viewm();break; case 4:c_searchm();break; case 5:login();break; } } void stu_login()//學生登錄菜單 { void c_select(); void c_view(); void c_searchs(); void login(); int input; do { system(“cls”); printf(“nnnt--學生登陸--”); printf(“nnt1.學生選課n”); printf(“t2.課程瀏覽n”); printf(“t3.課程查詢n”); printf(“t4.退出n”); scanf(“%d”,&input); if(input!=1&&input!=2&&input!=3&&input!=4) { printf(“nt沒有這項服務~n”); printf(“t按任意鍵重新選擇”); getchar(); getchar(); } }while(input!=1&&input!=2&&input!=3&&input!=4); switch(input) { case 1:c_select();break; case 2:c_views();break; case 3:c_searchs();break; case 4:login();break; } } void c_select(){ int n,in,i=0,j;int flag=0; FILE *fp; FILE *fp1; char input; struct course courses[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); input=getchar(); input=getchar(); stu_login();//進入學生登陸菜單 } else//存在的話循環讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關閉 } printf(“nntt請輸入你要選課程的編號:”); scanf(“%d”,&n); if((fp1=fopen(“courseselect.dat”,“rb”))==NULL) { fp1=fopen(“courseselect.dat”,“wb”); } else { fclose(fp1); fp1=fopen(“courseselect.dat”,“ab”); } for(j=0;j if(courses[j].c_num==n) flag++; if(flag==0) { printf(“nntt不存在對應課程n”); printf(“nntt繼續選課請按1,退出請按2:n”); scanf(“%d”,&in); switch(in) { case 1:c_select();break; case 2:stu_login();break; default: printf(“輸入錯誤,將返回登錄界面!n”); login();break; } } else { fwrite(&courses[j],sizeof(struct course),1,fp1); fclose(fp1); printf(“nntt選課成功t請選擇:”); printf(“nntt1.繼續選課”); printf(“nntt2.退出,返回登錄界面!”); scanf(“%d”,&in); switch(in) { case 1:c_select();break; case 2:stu_login();break; default:break; } } } void c_viewm()//課程瀏覽 { void stu_login(); void c_view(); int inp,i=0,n=0; FILE *fp; char input; struct course courseview[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { system(“cls”); printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); getchar();getchar(); stu_login();//進入學生登陸菜單 } else//存在的話循環讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courseview[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關閉 do { system(“cls”); if(i==1) { printf(“nnnttt沒有記錄!n”); getchar();getchar(); man_login(); } else { printf(“nt------共有%d條記錄-------”,i-1); printf(“nnt課程編號: %dn”,courseview[n].c_num); printf(“nnt課程名字: %sn”,courseview[n].c_name); printf(“nnt課程學分: %dn”,courseview[n].c_score); printf(“nnt課程已選人數: %dn”,courseview[n].c_nelepeo); printf(“nnt課程人數上限: %dn”,courseview[n].c_melepeo); printf(“nnt1.上一頁t2.下一頁t3.回目錄”); printf(“n請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1: { if(n==0) { printf(“nt已到達首頁 t按任意鍵返回”); input=getchar(); input=getchar(); } else { n=n-1; } break; } case 2: { if(n==i-2) { printf(“nt已到達尾頁t按人意見返回”); input=getchar(); input=getchar(); } else { n=n+1; } break; } case 3:{man_login();break;} default: { printf(“nt操作錯誤t按任意鍵返回”); getchar();getchar(); break; } } } }while(inp!=3); } } void c_views()//課程瀏覽 { void stu_login(); void c_view(); int inp,i=0,n=0; FILE *fp; char input; struct course courseview[10]; if((fp=fopen(“course.dat”,“rb”))==NULL)//判斷是否存在課程 { system(“cls”); printf(“nnnt課程不存在nn”); printf(“t<按任意鍵返回管理菜單>nt”); getchar();getchar(); stu_login();//進入學生登陸菜單 } else//存在的話循環讀取文件中的信息直到文件指針到文件尾部 { do { fread(&courseview[i],sizeof(struct course),1,fp); i=i+1; } while(!feof(fp)); fclose(fp);//文件讀完后關閉 do { system(“cls”); if(i==1) { printf(“nnnttt沒有記錄!n”); getchar();getchar(); stu_login(); } else { printf(“nt------共有%d條記錄-------”,i-1); printf(“nnt課程編號: %dn”,courseview[n].c_num); printf(“nnt課程名字: %sn”,courseview[n].c_name); printf(“nnt課程學分: %dn”,courseview[n].c_score); printf(“nnt課程已選人數: %dn”,courseview[n].c_nelepeo); printf(“nnt課程人數上限: %dn”,courseview[n].c_melepeo); printf(“nnt1.上一頁t2.下一頁t3.回目錄”); printf(“n請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1: { if(n==0) { printf(“nt已到達首頁 t按任意鍵返回”); input=getchar(); input=getchar(); } else { n=n-1; } break; } case 2: { if(n==i-2) { printf(“nt已到達尾頁t按人意見返回”); input=getchar(); input=getchar(); } else { n=n+1; } break; } case 3:{stu_login();break;} default: { printf(“nt操作錯誤t按任意鍵返回”); getchar();getchar(); break; } } } }while(inp!=3); } } void c_searchs(){ void stu_login(); void c_searchs(); int id,i=0,j,inp,k; int flag=0; FILE *fp; struct course coursesear[10]; if((fp=fopen(“course.dat”,“rb”))==NULL) //判斷課程信息是否存在 { system(“cls”); printf(“nnt課程不存在t按任意鍵返回”); getchar();getchar(); stu_login(); } else//存在的話循環讀取文件中的信息直到文件指針到文件尾部 { do { fread(&coursesear[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } system(“cls”); printf(“nnttt請輸入你要查詢的課程編號:”); scanf(“%d”,&id); do//檢查輸入是否符合要求 { for(j=0;j { if(id==coursesear[j].c_num) { flag++; k=j; } } if(flag==1) { system(“cls”); printf(“nnt課程編號:%dn”,coursesear[k].c_num); printf(“nnt課程名字:%sn”,coursesear[k].c_name); printf(“nnt課程學分:%dn”,coursesear[k].c_score); printf(“nnt課程已選人數:%dn”,coursesear[k].c_nelepeo); printf(“nnt課程人數上限:%dn”,coursesear[k].c_melepeo); getchar();getchar(); printf(“nnt1.回目錄繼續查詢t2.退出查詢系統n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchs(); case 2:stu_login(); default: { printf(“nt沒有這項服務t請按任意鍵重新輸入”); getchar();getchar(); } } } else { system(“cls”); printf(“nnt不存在對應記錄n”); printf(“nnt1.回目錄繼續查詢t2.退出查詢系統n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchs(); case 2:stu_login(); default: { printf(“nt沒有這項服務t請按任意鍵重新輸入”); getchar();getchar(); } } } }while(inp!=1); } void c_searchm(){ void stu_login(); void c_searchm(); int id,i=0,j,inp,k; int flag=0; FILE *fp; struct course coursesear[10]; if((fp=fopen(“course.dat”,“rb”))==NULL) //判斷課程信息是否存在 { system(“cls”); printf(“nnt課程不存在t按任意鍵返回”); getchar();getchar(); stu_login(); } else//存在的話循環讀取文件中的信息直到文件指針到文件尾部 { do { fread(&coursesear[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } system(“cls”); printf(“nnttt請輸入你要查詢的課程編號:”); scanf(“%d”,&id); do//檢查輸入是否符合要求 { for(j=0;j { if(id==coursesear[j].c_num) { flag++; k=j; } } if(flag==1) { system(“cls”); printf(“nnt課程編號:%dn”,coursesear[k].c_num); printf(“nnt課程名字:%sn”,coursesear[k].c_name); printf(“nnt課程學分:%dn”,coursesear[k].c_score); printf(“nnt課程已選人數:%dn”,coursesear[k].c_nelepeo); printf(“nnt課程人數上限:%dn”,coursesear[k].c_melepeo); getchar();getchar(); printf(“nnt1.回目錄繼續查詢t2.退出查詢系統n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchm(); case 2:man_login(); default: { printf(“nt沒有這項服務t請按任意鍵重新輸入”); getchar();getchar(); } } } else { system(“cls”); printf(“nnt不存在對應記錄n”); printf(“nnt1.回目錄繼續查詢t2.退出查詢系統n”); printf(“請選擇:”); scanf(“%d”,&inp); switch(inp) { case 1:c_searchm(); case 2:man_login(); default: { printf(“nt沒有這項服務t請按任意鍵重新輸入”); getchar();getchar(); } } } }while(inp!=1);} void c_add()//增加課程 { void c_add(); void man_login(); int i=0,j,inp; FILE *fp; struct course course_new; struct course courses[10]; system(“cls”); printf(“nntt請輸入課程信息”); printf(“nntt1.課程編號:”); scanf(“%d”,&course_new.c_num); printf(“nntt2.課程名字:”); scanf(“%s”,course_new.c_name); printf(“nntt3.課程學分:”); scanf(“%d”,&course_new.c_score); printf(“nntt4.課程已選人數:”); scanf(“%d”,&course_new.c_nelepeo); printf(“nntt5.課程人數上限:”); scanf(“%d”,&course_new.c_melepeo); if((fp=fopen(“course.dat”,“rb”))!=NULL) { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); for(j=0;j<=i-1;j++) if(course_new.c_num==courses[j].c_num) { system(“cls”); printf(“nnttt對不起,這個編號已經使用過nntt按任意鍵返回管理菜單”); getchar();getchar(); man_login(); break; } } if((fp=fopen(“course.dat”,“rb”))==NULL) { fp=fopen(“course.dat”,“wb”); } else { fclose(fp); fp=fopen(“course.dat”,“ab”); } fwrite(&course_new,sizeof(struct course),1,fp); fclose(fp); printf(“nntt信息輸入完畢t按任意鍵繼續”); getchar();getchar(); do { system(“cls”); printf(“nntt1.繼續輸入”); printf(“nntt2.返回管理菜單”); printf(“nntt請選擇”); scanf(“%d”,&inp); if(inp!=1&&inp!=2) { printf(“輸入不符合要求t按任意鍵重新選擇”); getchar();getchar(); } }while(inp!=1&&inp!=2); switch(inp) { case 1:c_add();break; case 2:man_login();break; } } void c_delete()//查詢后刪除 { FILE *fp; int i=0,j,n,k,flag=0; struct course courses[10]; void c_delete(); void man_login(); printf(“nntt請輸入你要刪除的課程編號:”); scanf(“%d”,&n); if((fp=fopen(“course.dat”,“rb”))!=NULL) { do { fread(&courses[i],sizeof(struct course),1,fp); i=i+1; }while(!feof(fp)); fclose(fp); } else { printf(“nntt不存在任何課程t按任意鍵返回”); getchar();getchar(); man_login(); } for(j=0;j { if(courses[j].c_num==n) { flag=1; fp=fopen(“course.dat”,“wb”); for(k=0;k fwrite(&courses[k],sizeof(struct course),1,fp); fclose(fp); fp=fopen(“course.dat”,“ab”); for(k=j+1;k { fwrite(&courses[k],sizeof(struct course),1,fp); } printf(“nntt記錄已刪除!t按任意鍵返回ntt”); getchar();getchar(); man_login(); fclose(fp); } } if(flag==0) { printf(“nntt不存在對應的課程t按任意鍵返回”); getchar();getchar(); man_login(); } // printf(“nntt記錄已刪除!t按任意鍵返回ntt”); } int main(){ index();login();return 0;} 軟件開發環境與工具 課程設計 實驗題目:酒店管理系統 指導老師:南麗麗 專業班級:計算機科學與技術系1105班 姓 名:陳阿艷(2011100516) 王媛(2011100529) 閆麗穎(2011100503)樊建紅(2011100515)2013年 12月13日 目錄 第一章…………………………………前言 1.1…………………………………………………選題背景 1.2…………………………………………………課題研究的目的和意義 1.3…………………………………………………本文的研究內容 1.4…………………………………………………國內外現狀 第二章…………………………………開發環境及工具介紹 2.1………………………………………………..Visual Basic.NET簡介 2.2…………………………………………............SQL Server2005 第三章…………………………………系統分析 3.1…………………………………………………..可行性分析 3.2…………………………………………………...需求分析 3.2.1…………………….酒店管理部分 3.2.1.1……………..客戶管理 第四章…………………………………數據庫設計 4.1…………………………………………………..數據庫設計截圖 4.2………………………………………………….權限設置 4.3………………………………………………….客戶信息表 4.4………………………………………………….房態表 4.5………………………………………………….結算表 第五章…………………………………系統實現 5.1…………………………………………………登陸 5.2…………………………………………………客戶入住 5.3…………………………………………………客戶結算退房 5.4…………………………………………………以“老板”為例,展示系統功能 第六章…………………………………主要代碼 第七章…………………………………總結 第1章 前 言 1.1 選題背景 酒店業是一個前景廣闊而又競爭激烈的行業。改革開放以來,我國的酒店業迅速發展,已經成為一個具有相當規模的產業。由于我國的旅游業迅速發展,通過調查,我國在2020年將成為世界上第四大旅游國家;同時我國加入世界貿易組織,酒店業將完全開放,這個時候,我國的酒店業將面臨著前所未有的機遇和挑戰。但是,現在甚至還有一些酒店還停留在由人工操作和管理階段,這樣已經無法適應當前的發展趨勢。因此,要想使酒店的工作質量和效率提高,采用先進的計算機網絡 通信技術改變酒店業務模式,實現酒店業務管理的自動化已經成為一種必然。 酒店管理系統采用B/S結構。按照按國家星級賓館標準化業務程序流式設計,會采用主流開發工具來開發,搭建比較穩定可靠安全的服務端來輔佐客戶管理,并且還采用數據庫mysql,會通過測試用例來達到測試效果,技術支持會采用輕量級框架struts和hibernate持久化來完成,服務器采用tomcat,通過powerdesigner來設計數據模型為最初業務流程的概念設計階段和詳細設計階段打好基礎[1]。 1.2 課題研究的目的和意義 對酒店整個來說,對酒店經營狀況起決定作用的是酒店的服務管理水平。如何利用先進的管理手段來提高酒店的管理水平成為酒店業務發展的當務之急。面對信息時代的機遇和挑戰,利用科技手段提高酒店的管理無疑是一條行之有效的途徑。雖然計算機管理并不是酒店管理走向成功的關鍵元素,但它可以最大限度地發揮準確、快捷、高效等作用,對酒店的業務管理提供強有力的支持。因此,采用全新的計算機網絡和酒店業務管理系統,已成為提高酒店的管理效率,使作業人員與管理系統之間靈活互動,實現流暢的工作流銜接,幫助酒店有效地進行 3 業務管理,釋放最大價值。酒店業務管理系統在達到在節省人力資源成本的同時,可以提高業務效率,并能夠及時、準確、迅速地滿足顧客服務的需求[2]。 1.3 本文的研究內容 課程設計選題《酒店管理系統》主要研究了:酒店業務的管理(劃分為,登陸界面部分,查詢界面部分,入住界面部分,退房界面部分)。 1.4 國內外現狀 隨著我國經濟體制改革的不斷深化和我國經濟的快速發展,我國人民的收入不斷提高,消費觀念也有提高,對服務質量的要求也有很大的提高。各地把旅游業當作本 地經濟發展的重要支柱之一。酒店作為人們食宿、娛樂、休閑的場所而得到了快速的發展。社會上也成立了各種類型,不同規模的酒店服務企業。如何為客戶提供更 加準確及時的服務,成為各個酒店競爭關鍵。所以酒店業務信息化建設就成為了客戶衡量酒店提供商服務標準的一個準則,信息系統成為了基礎。 隨著Internet技術的進一步發展和普及,不能很好的適應世界經濟發展的形式和我國國民經濟建設的需要,市場現有的產品化的酒店業務軟件系統在不斷發 展中的酒店的需求。基于WEB的酒店管理系統的總體設計目標能夠建立完善、高效、可靠的酒店業務信息系統,為酒店提供良好的信息環境[3]。 第2章 開發環境及工具介紹 2.1Visual Basic.NET簡介 Visual Basic.NET通常縮寫為VB.NET,在某些特定情況下也直接簡稱VB,比如在.NET這個大話題下或者與其他.NET語言一起討論的時候。 Visual Basic.NET屬Basic系語言,其語法特點是以極具親和力的英文單詞為基礎標識,以及與自然語言極其相近的邏輯表達,有時候你會覺得寫VB.NET代碼就好像在寫英文句子一樣,從這個角度來說,VB.NET似乎是最高級的一門編程語言,當然在Basic系語言中VB.NET也確實是迄今為止最強大的一門編程語言。 Visual Basic.NET的應用范圍包括windows桌面、web以及當下突然覺醒的正在奮力追趕的第三大移動平臺Windows phone。 2.2 SQL Server2005 SQL Server 是一個關系數據庫管理系統。它最初是由Microsoft、Sybase 和Ashton-Tate三家公司共同開發的,于1988 年推出了第一個OS/2版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發上就分道揚鑣了,Microsoft 將SQL Server移植到Windows NT系統上,專注于開發推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNⅨ操作系統上的應用。 Microsoft SQL Server 2005 是一個全面的數據庫平臺,使用集成的商業智能(BI)工具提供了企業級的數據管理。Microsoft SQL Server 2005數據庫引擎為關系型數據和結構化數據提供了更安全可靠的存儲功能,使您可以構建和管理用于業務的高可用和高性能的數據應用程序。 第3章 系統分析 3.1 可行性分析 隨著旅游業的發展,酒店、餐飲娛樂行業日趨發達,引入全方位的電腦服務和電腦管理日益流行。同時,酒店和餐廳娛樂業引入電腦服務和管理也取得了優良的經濟 效益和社會效益。為此,國家建設部已于最近作出明確規定:凡星級酒店在項目審批時,其設計方案必須包括電腦管理系統,否則不予立項。可見,酒店管理電腦化 勢在必行。酒店管理系統將先進的電腦技術與現代酒店服務管理完美地結合起來,實現了住宿、餐飲、娛樂全新概念的服務和管理方式。 一個成熟的酒店管理系統不僅僅是記錄酒店客人的信息,提供查詢,報表打印等一系列簡單的工作,它能讓工作人員從煩瑣的手工操作中解脫,并且酒店管理系統本 身就代表著一種管理方法。隨著它的深入,將帶動企業的運做,為管理和決策提供支持。為了達到這個要求,它必須依靠高起點的硬件環境和軟件開發工具來保證系 統的穩定和正常運行。酒店電腦系統要求24小時連續運行,數據量大,可靠性要求高,因此整個電腦系統供電采用專線方式,加配UPS(不間斷供電系統),并合理接地,以便保障整套系統的正常運行[7]。 3.2 需求分析 系統需對用戶登錄進行管理。使用各功能模塊時,系統應驗證用戶身份的有效性,否則要求用戶登錄。另外,允許用戶對自己的密碼進行修改。 系統應提供客房的分類管理功能,可分類制訂客房面積、價格、是否配備空調等客房類型,對不同標準的客房進行有效管理。系統可實現對客房信息的添加、刪除以及修改。 在進行入住/退房管理時,系統可以根據客房當前的狀態自動提示可用服務(入住/退房)。如果客房沒有客人入住,則該客房的可用服務為“入住”;否則,可用服務為“退房”。 系統的客戶端在Windows平臺下運行,服務器端可在Windows平臺或UNIX平臺下運行。系統還需要有較好的安全性和可擴展性[8]。 需求分析是從客戶的需求中提取出軟件系統能夠幫助用戶解決的業務問題,通過對用戶業務問題的分析,規劃出系統的功能模塊,即定義用例。這個步驟是對理解需求的升華,直接關系到該系統的質量。 整個系統可以分為2大部分。酒店網站部分(客戶服務網站)和酒店管理部分(管理員部分)。本系統只做了有關酒店管理的一部分。3.2.1 酒店管理部分 1.客房管理: 預訂客房管理、客房查詢、退房管理。 前臺服務員的主要職能是負責訂房和退房,以及查詢入住的客戶信息。所有該角色只可以使用部分功能,包括預定管理、客戶信息查詢,入住管理,退房管理功能。 第四章 數據庫設計 4.1 數據庫設計截圖 4.2權限設置 4.3客戶信息表 4.4房態表 4.5結算表 第5章 系統實現 5.1登陸 分別用三種身份登陸,所得到的權限也就不同 老板經理員工 5.2客戶入住(通過添加客戶信息,自動計算應付房費) 5.3客戶結算退房 5.4以“老板”為例,展示系統功能 (1)查詢房態 住著人的房間有: 通過房間號查某間房的房態 (2)職工管理 添加職工 設置權限 第登陸 Public Class Login Private Sub Btn_Login_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Login.Click Data_Access.User_info.LoginUser_info.User_id = Me.Txt_Name.Text Data_Access.User_info.LoginUser_info.User_pwd = Me.Txt_pwd.Text Dim s As Integer s = Business_Logic_Layer.Data_Check.User_Check If s = 1 Then MsgBox(“歡迎使用假日酒店管理系統”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) Main_Form.Show() Me.Close() Else If s =-1 Then MsgBox(“用戶名錯誤!”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) Else MsgBox(“密碼錯誤!”, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) End If End If End Sub 6章 主要代碼 Private Sub Btn_Cancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Cancel.Click Me.Close() End Sub Private Sub Login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load End Sub End Class 主界面 Public Class Main_Form Private Sub Main_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Call Init_Tree() End Sub Public Sub Init_Tree() Me.TreeV.Nodes.Clear() Dim s As String s = “select * from gg_Menu where isStop='0'” Dim dr As SqlClient.SqlDataReader dr = myCommon.getData.get_dr(s) Dim myNode As TreeNode While dr.Read myNode = New TreeNode myNode.Text = dr.Item(“MenuName”) If Business_logic_layer.Judge.Judge_Auth(dr.Item(“Typeid”))= False Then Continue While End If myNode.Name = dr.Item(“Typeid”) If dr.Item(“isGroup”)= “0” Then myNode.Tag = dr.Item(“Form”) Else myNode.Tag = “" End If If dr.Item(”Parid“)= ”0“ Then Me.TreeV.Nodes.Add(myNode) Else If Me.TreeV.Nodes.Find(dr.Item(”Parid“), True).Length > 0 Then Me.TreeV.Nodes.Find(dr.Item(”Parid“), True)(0).Nodes.Add(myNode) End If End If End While dr.Close() End Sub Private Sub TreeV_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)Handles TreeV.AfterSelect If e.Node.Tag = ”“ Then Exit Sub Dim formName As String formName = ”Hotel_Manager.“ & e.Node.Tag Dim f As Form ' f = CType(Activator.CreateInstance(Type.GetType(formName)), Form) f.Show() f.MdiParent = Me f.WindowState = FormWindowState.Maximized End Sub Private Sub 退出ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 注á?é銷¨2ToolStripMenuItem.Click Data_Access.User_info.LoginUser_info.User_id = ”“ Data_Access.User_info.LoginUser_info.User_name = ”“ Data_Access.User_info.LoginUser_info.User_pwd = ”“ Login.Show() Me.Close() End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Timer1.Tick Me.Tool_lb_name.Text = ”登陸者“ & Data_Access.User_info.LoginUser_info.User_name Me.Tool_lb_date.Text = ”日期“ & Format(Now, ”yyyy-MM-dd“) Me.Tool_lb_time.Text = ”時間“ & Format(Now, ”long time“) End Sub Private Sub 退出ToolStripMenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles 退出ToolStripMenuItem1.Click Me.Close() End Sub End Class 入住 Public Class Ruzhu_login Private Sub Ruzhu_login_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Me.Txt_no.Text = myCommon.getNewCode.get_NewCode Call Init_Cbox() End Sub Private Sub Cbox_type_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Cbox_type.SelectedIndexChanged Dim s As String s = ”select * from Fang where Fang_state='空' and Fang_type='“ & Me.Cbox_type.Text & ”'“ Dim dr As SqlClient.SqlDataReader dr = myCommon.getData.get_dr(s) Cbox_fang_no.Items.Clear() While dr.Read Cbox_fang_no.Items.Add(dr!Fang_num) Txt_yajin.Text = dr!Fang_yajin Txt_danjia.Text = dr!Fang_price End While dr.Close() End Sub Private Sub Btn_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_ok.Click Dim s As String Dim ID_Card As String ID_Card = Me.Txt_ID.Text Dim cAge As Integer cAge = myCommon.getAge.get_age(ID_Card) Dim stoptime As String stoptime = ”0000/00/00 00:00:00“ s = ”insert into Customer values('“ & Txt_no.Text & ”','“ & Txt_name.Text & ”','“ & Cbox_sex.Text & ”','“ & cAge.ToString & ”','“ & Txt_ID.Text _ & ”','“ & Cbox_type.Text & ”','“ & Cbox_fang_no.Text & ”','“ & Now & ”','“ & stoptime & ”','“ & Txt_yajin.Text _ & ”','“ & Txt_days.Text & ”','“ & Txt_yingjiao.Text & ”','“ & Txt_yijiao.Text & ”')“ Dim s2 As String s2 = ”update Fang set Fang_state='滿' where Fang_num='“ & Cbox_fang_no.Text & ”'“ Try myCommon.getData.cmd_ex(s) myCommon.getData.cmd_ex(s2) MsgBox(”添加成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) myCommon.getNewCode.getNewSaveCode() Catch ex As Exception MsgBox(”添加失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly)15 End Try End Sub Private Sub Btn_jisuan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jisuan.Click Me.Txt_yingjiao.Text = Txt_danjia.Text * Txt_days.Text + Txt_yajin.Text End Sub Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click Me.Txt_no.Text = myCommon.getNewCode.get_NewCode Txt_name.Text = ”“ Cbox_sex.Items.Clear() Txt_ID.Text = ”“ Cbox_type.Items.Clear() Cbox_fang_no.Items.Clear() Txt_yajin.Text = ”“ Txt_days.Text = ”“ Txt_yingjiao.Text = ”“ Txt_yijiao.Text = ”“ Txt_address.Text = ”“ Txt_danjia.Text = ”“ Call Init_Cbox() End Sub Sub Init_Cbox()'為性別和房間類型進行添加 Cbox_sex.Items.Add(”男“) Cbox_sex.Items.Add(”女“) Cbox_type.Items.Add(”單人間“) Cbox_type.Items.Add(”雙人間“) End Sub End Class 結算 Public Class Jiesuan Dim str As String Private Sub Jiesuan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Call Btn_show_Click(sender, e) End Sub Private Sub Btn_jiesuan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jiesuan.Click Dim s As String Dim yajin As String Dim yijiao As String Dim str As String str = Now str = Mid(str, 1, 10) s = ”select yajin,yijiao from Customer where Start_time like '“ & str & ”%' “ Dim dr As SqlClient.SqlDataReader dr = myCommon.getData.get_dr(s) While dr.Read yajin = dr!yajin + yajin yijiao = dr!yijiao + yijiao End While dr.Close() s = ”select count(*)from Jiesuan where Riqi like '“ & str & ”%' “ Dim conn As New SqlClient.SqlConnection conn.ConnectionString = myCommon.getstrconn.get_strconn Dim cmd As New SqlClient.SqlCommand cmd.Connection = conn cmd.CommandType = CommandType.Text cmd.CommandText = s conn.Open() If CType(cmd.ExecuteScalar(), Integer)= 0 Then Try s = ”insert into Jiesuan values('“ & str & ”','“ & yijiao & ”','“ & yajin & ”','“ & yijiaoyajin & ”' where Riqi='“ & str & ”'“ myCommon.getData.cmd_ex(s) Catch ex As Exception MsgBox(”結算時出錯誤!“) End Try End If End If s = ”select * from Jiesuan where Riqi='“ & str & ”'“ Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_jiesuan.DataSource = ds.Tables(0) End Sub Private Sub Btn_show_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_show.Click Dim s As String s = ”select * from Jiesuan“ Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_jiesuan.DataSource = ds.Tables(0) End Sub Private Sub Btn_jingli_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_jingli.Click Dim str As String str = Now str = Mid(str, 1, 10) If Data_Access.User_info.LoginUser_info.User_job = ”經理“ Then Dim s As String s = ”update Jiesuan set jinglishenhe='“ & Data_Access.User_info.LoginUser_info.User_name & ”' where Riqi='“ & str & ”'“ Try myCommon.getData.cmd_ex(s) Call Btn_show_Click(sender, e) Catch ex As Exception MsgBox(”審核失敗!“) End Try Else MsgBox(”你沒有權限!“) End If End Sub Private Sub Btn_laoban_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_laoban.Click Dim str As String str = Now str = Mid(str, 1, 10) If Data_Access.User_info.LoginUser_info.User_job = ”老板“ Then Dim s As String s = ”update Jiesuan set laobanshenhe='“ & Data_Access.User_info.LoginUser_info.User_name & ”' where Riqi='“ & str & ”'“ Try myCommon.getData.cmd_ex(s) Call Btn_show_Click(sender, e) Catch ex As Exception MsgBox(”審|核失敗!“) End Try Else MsgBox(”你沒有權限!“) End If End Sub End Class 退房 Public Class Tuifang_login Dim dv As DataView Private Sub Btn_chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_chaxun.Click Dim str As String str = ”select * from Customer_Fang where Fang_no='“ & Me.Txt_fang_no.Text & ”'“ Dim ds As DataSet ds = myCommon.getData.get_ds(str) dv = ds.Tables(”temp“).DefaultView DGView_tuifang.DataSource = dv End Sub Private Sub Btn_Tuifang_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Tuifang.Click Dim s As String s = ”update Fang set Fang_state='空?' where Fang_num='“ & dv.Item(0).Item(”Fang_no“).ToString & ”'“ Dim s2 As String s2 = ”update Customer set yingjiao='“ & dv.Item(0).Item(”yingjiao“)dv.Item(0).Item(”yajin“)& ”' where Customer_no='“ & dv.Item(0).Item(”Customer_no“)& ”'“ Try myCommon.getData.cmd_ex(s) myCommon.getData.cmd_ex(s2) MsgBox(”退房成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) Catch ex As Exception MsgBox(”退房失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) End Try End Sub Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint End Sub 查詢 Private Sub Btn_Customer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Customer.Click Show_all_coustomer() End Sub Private Sub Btn_Chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_Chaxun.Click Dim str As String If Chaxun_Fang.Text <> ”“ And Chaxun_name.Text <> ”“ Then str = ”Fang_no='“ & Chaxun_Fang.Text & ”' and Customer_name='“ & Chaxun_name.Text & ”'“ ElseIf Chaxun_Fang.Text <> ”“ And Chaxun_name.Text = ”“ Then str = ”Fang_no='“ & Chaxun_Fang.Text & ”'“ ElseIf Chaxun_Fang.Text = ”“ And Chaxun_name.Text <> ”“ Then str = ” Customer_name='“ & Chaxun_name.Text & ”'“ End If Call Show_all(str) End Sub Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint End Sub End Class 管理 Public Class cManager Sub show_Role_Auth() Dim s As String s = ”select * from Role_Auth_V where Role_Name<>'老板'“ Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_Role_Auth.DataSource = ds.Tables(”temp“) End Sub Private Sub cManager_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Dim s As String s = ”select * from Role_Auth_V where Role_Name<>'老板'“ Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_Role_Auth.DataSource = ds.Tables(”temp“) Dim dr As SqlClient.SqlDataReader s = ”select * from gg_Menu where MenuName<>'權限T'and MenuName<>'權限管理'“ dr = myCommon.getData.get_dr(s) While dr.Read Cbox_Auth.Items.Add(dr.Item(”MenuName“)) End While dr.Close() s = ”select * from Role where Role_Name<>'老板'“ dr = myCommon.getData.get_dr(s) While dr.Read Cbox_Role.Items.Add(dr.Item(”Role_Name“)) End While dr.Close() End Sub Private Sub DGView_Role_Auth_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_Role_Auth.CellClick Me.Cbox_Role.Text = DGView_Role_Auth.CurrentRow.Cells.Item(0).Value.ToString Me.Cbox_Auth.Text = DGView_Role_Auth.CurrentRow.Cells.Item(1).Value.ToString End Sub Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click Dim s As String Dim RoleID As String Dim TypeID As String s = ”select Role_id from Role where Role_name='“ & Cbox_Role.Text & ”'“ Dim dr As SqlClient.SqlDataReader dr = myCommon.getData.get_dr(s) While dr.Read RoleID = dr!Role_ID End While dr.Close() s = ”select TypeId from gg_Menu where MenuName='“ & Cbox_Auth.Text & ”'“ dr = myCommon.getData.get_dr(s) While dr.Read TypeID = dr!TypeId End While dr.Close() s = ”insert into Role_Auth values('“ & RoleID & ”','“ & TypeID & ”')“ Try myCommon.getData.cmd_ex(s) MsgBox(”添加成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) Catch ex As Exception MsgBox(”添加失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) End Try Call show_Role_Auth() End Sub Private Sub Btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_del.Click Dim s As String Dim RoleID As String Dim TypeID As String s = ”select Role_id from Role where Role_name='“ & Cbox_Role.Text & ”'“ Dim dr As SqlClient.SqlDataReader dr = myCommon.getData.get_dr(s) While dr.Read RoleID = dr!Role_id End While dr.Close() s = ”select TypeId from gg_Menu where MenuName='“ & Cbox_Auth.Text & ”'“ dr = myCommon.getData.get_dr(s) While dr.Read TypeID = dr!TypeId End While dr.Close() s = ”delete from Role_Auth where Role_ID='“ & RoleID & ”'and Type_Id='“ & TypeID & ”' “ Try myCommon.getData.cmd_ex(s) MsgBox(”刪除成功!“, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) Catch ex As Exception MsgBox(”刪除失敗!“ & ex.Message, MsgBoxStyle.Information + MsgBoxStyle.OkOnly) End Try Call show_Role_Auth() End Sub Private Sub DGView_Role_Auth_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_Role_Auth.CellContentClick End Sub End Class 22 員工管理 Public Class Staff_Manager Private Sub Btn_show_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_show.Click Dim s As String s = ”select * from Staff where Staff_job='職員“ Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_staff.DataSource = ds.Tables(0) End Sub Private Sub Btn_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_add.Click Dim s As String s = ”insert into Staff values('“ & Txt_no.Text & ”','“ & Txt_name.Text & ”','“ & Cbox_sex.Text & ”','“ & Txt_pwd.Text _ & ”','職員'“ & Txt_address.Text & ”','“ & Txt_tel_no.Text & ”')“ Try myCommon.getData.cmd_ex(s) MsgBox(”添加成功!“) Catch ex As Exception MsgBox(”添加失敗“ & ex.Message) End Try End Sub Private Sub Btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_del.Click Dim s As String s = ”delete from Staff where Staff_no='“ & Txt_no.Text & ”'“ Try myCommon.getData.cmd_ex(s) MsgBox(”刪除成功!“) Catch ex As Exception MsgBox(”刪除失敗“ & ex.Message) End Try End Sub Private Sub Btn_chaxun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Btn_chaxun.Click 23 Dim s As String s = ”select * from Staff where Staff_no='“ & Txt_chaxun_no.Text & ”' and Staff_job='職員'" Dim ds As DataSet ds = myCommon.getData.get_ds(s) DGView_staff.DataSource = ds.Tables(0) End Sub Private Sub Staff_Manager_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Call Btn_show_Click(sender, e) End Sub Private Sub DGView_staff_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)Handles DGView_staff.CellClick Txt_no.Text = DGView_staff.CurrentRow.Cells.Item(0).Value.ToString Txt_name.Text = DGView_staff.CurrentRow.Cells.Item(1).Value.ToString Cbox_sex.Text = DGView_staff.CurrentRow.Cells.Item(2).Value.ToString Txt_address.Text = DGView_staff.CurrentRow.Cells.Item(5).Value.ToString Txt_tel_no.Text = DGView_staff.CurrentRow.Cells.Item(6).Value.ToString End Sub Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs)Handles Panel2.Paint End Sub End Class 第7章 總 結 經過這段時間的精心設計,系統的基本功能已經實現,并能實踐于一些業務管理過程中,但酒店業務管理系統是一個龐大的工程,要使網絡交互功能的實現,腳本的設計,網頁的構架,網頁的美工,文字的編輯,非一朝一夕可盡善盡美的,這需要一個長期的摸索與完善過程,同時還要在實踐中發現與操作者使用要求不相符合的 地方還要修改。子系統功能雖已基本實現,但仍有諸多地方需要修改。隨著酒店業務的擴展,服務的增加,酒店業務管理系統也逐漸發展、完善。如果沒有一套可靠的酒店業務管理系統,但憑手工操作,不僅效率低下,而且會極大地形象到酒店的服務質量。要在酒店服務中選擇好適合自己酒店實際情況的業務管理系統不僅 要考慮該系統在酒店的實用性,還要考慮酒店對該系統所能夠承擔費用的能力,以及這個系統對操作員來說的操作難易程度。通過本次課程設計中,我們掌握了VB.NET編程技能,SQL以及JDBC連接數據庫和動態頁面的用法。比較全面的鞏固了下面向對象的編程思想。在本次課程設計中,我們懂得了謹慎和團結的重要性,明確分工也使我們提高了實驗的效率,這對我們以后的學習工作都有很大的幫助。 “成績管理系統”課程設計指導書 課題名稱:學生成績管理系統 設計目標:按照軟件工程的規范,以SQL Server或Oracle為后臺數據庫,以Visual C++、Delphi等為前端開發工具,設計并實現一個能模擬高等學校學生成績管理的系統。 需求描述: 學生成績管理系統中: 1.系統用戶 系統的用戶是學校的學生、教師和管理員。學生使用本系統查詢自己的成績。教師使用本系統錄入和查詢自己所授課程的考試成績。教學管理員可以查詢所有課程成績,并使用本系統進行成績的統計和生成報表。 2.系統功能 (1)成績錄入: 教師可以查詢自己本學期所授課程,并錄入學生的考試成績。錄入過 程中,可以暫存已錄入的成績,當錄入完成后提交。 (2)成績維護: 教師在提交前,可以修改已錄入或暫存的學生成績;但提交后,則只 能查詢不能再進行任何修改。 教學管理員可以清除教師已提交的成績。 (3)成績查詢: 教師、教學管理員可以查詢學生考試成績。學生只允許查詢自己的考 試成績,教師只允許查詢自己所授課程的成績。 (4)成績統計: 教學管理員可以按課程、按學生、按班級等進行成績統計。 教學管理員根據核算出的總評成績統計處于優、良、中、及格、不及 格的學生人數以及占總人數的百分比。其中100-90為優,89-80為良,79-70為中,69-60為及格,60分以下為不及格。 按要求輸出成績在優、良、中、及格、不及格各區間的學生學號。 結果形式: 提交課程設計報告、源程序和可演示的軟件 課程設計報告要求:詳見課程設計模板 課程設計參考思路: (1)熟悉數據庫和開發工具,掌握開發工具與本地數據庫的連接方法。 (2)理解系統的信息需求,進行合理的數據庫設計,建立各數據庫表。 (3)理解系統的功能需求,設計應用軟件。結合Delphi 或VC++進行系統界面 (窗體、菜單以及相應控制按鈕)的設計、連接與操縱數據庫方案的設計,編寫程序。 (4)系統運行、調試并完善。 (5)撰寫設計報告。 學生選課管理系統規劃報告 1、系統的意義與目標 網絡的飛速發展深刻地影響了人們的日常生活和商業運作方式。社會的方方面面滲透著互連網的應用,使得一向煩瑣的手工程序變得方便,快捷,而學校網上選課系統正是基于這一思想而發展起來的。傳統的手工選課不僅復雜,也牽涉了很多的人力,對管理也造成了諸多不變,而借助網上選課系統,學生在規定選課時間段內,可以不受地點和時間的限制完成系統登錄、選修課的申請和查詢,而學校也可以方便地對系統進行管理和控制,提高工作效率。 2、系統的用戶需求 用戶的需求具體體現在各種學習成績的提供、保存、更新和查詢方面,這就要求數據庫結構能充分滿足各種信息的輸入和輸出。收集基本數據、數據結構及數據處理的流程,組成一份詳盡數據字典,為后面的具體設計打下基礎。學生選課管理系統的設計為選課及成績管理提供了一個良好的工具,此系統基本實現的設計要求有: (1)用戶登錄系統 提供良好的用戶登錄界面,輸入用戶名,密碼進行登錄。 (2)學生的需求 網上選課、選課情況查詢、成績查詢。 (3)管理員 (錄入、查詢、修改和刪 除)學生、課程基本資料。 (4)教師的需求 (錄入、查詢、修改和刪除)學生所選課程成績,統計每個學生的總分、平均分以及排名等功能。 3、系統經費概算 初步估算使用經費15萬元,包括硬件資源、技術資料、開發費用、培訓費用等。其中,開發開發期間約需9萬員,調試與運行期間約需6萬元。 4、系統開發計劃 本系統開發計劃由開發小組用10個月完成。具體時間安排計劃如下: (1)系統調研、系統分析:3個月。 (2)系統設計:2個月。 (3)系統程序設計:3個月。 (4)系統調試:1.5個月。 (5)系統試運行:1.5個月。第三篇:酒店管理系統課程設計
第四篇:課程設計--成績管理系統
第五篇:學生選課管理系統規劃報告