學生選課系統詳細設計說明書_第1頁
學生選課系統詳細設計說明書_第2頁
學生選課系統詳細設計說明書_第3頁
學生選課系統詳細設計說明書_第4頁
學生選課系統詳細設計說明書_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1引言21.1編寫目的21.2背景21.3定義21.4參考資料22程序系統的結構23程序1(標識符)設計說明33.1程序描述123.2功能123.3性能123.4輸人項133.5輸出項133.6算法133.7流程邏輯133.8接口133.9存儲分配133.10注釋設計133.11限制條件133.12測試計劃133.13尚未解決的問題144程序2(標識符)設計說明14詳細設計說明書1引言1.1編寫目的為了更好的描述軟件結構以及系統各組成成分之間的相互關系,因此撰寫詳細設計說明書。1.2背景a 待開發的軟件系統的名稱:大連交通大學學生選課系統;b 本系統主要為方便廣大學選課,避免選課高峰期選不上等

2、問題;c 本系統的受益人為:老師、學生和系統管理人員。 1.3定義詳見概要設計說明書。1.4參考資料【1】 張海藩,軟件工程導論【M】北京:清華大學出版社 2008年2月第五版【2】 王珊、薩師煊,數據庫系統概論【M】北京:高等教育出版社 2006年5月第四版2程序系統的結構 該詳細設計只針對學生信息管理中的信息查詢和信息維護兩個子功能作說明,其程序流程圖如下:圖4-1 學生信息查詢模塊程序流程圖 圖4-2學生信息管理模塊程序流程圖3程序1(標識符)設計說明#include<stdio.h>#include<stdlib.h>int N1,N2,kk1,kk2,kk3;

3、struct couse * head1;struct student * head2;struct couse/課程信息結構體 int num1; char name120; int score; int nelepeo;/課程已選人數 int Melepeo;/課程人數上限 struct couse * next;struct student/學生信息結構體 int num2; char name220; int nelenum50;/已選課程編號 int nelen;/已選課程數量 struct student * next;void Ms() for(kk1=0;kk1<1100

4、;kk1+) for(kk2=0;kk2<1200;kk2+) for(kk3=0;kk3<1200;kk3+);void keyboardc()/錄入課程子函數(從鍵盤錄入) struct couse *p1,*p2; N1=0; p1=p2=(struct couse*)malloc(sizeof(struct couse); printf("課程編號t課程名稱t學分t課程人數上限n"); scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1-&g

5、t;Melepeo); p1->nelepeo=0; head1=NULL; while(p1->num1!=0) N1=N1+1;if(N1=1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0; p2->next=NULL;void f

6、ilec()/錄入鍵盤子函數(從文件錄入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0; printf("輸入要讀入的文件路徑:"); getchar(); gets(filepath); if(fp=fopen(filepath,"r")=NULL) printf("找不到%s文件!n",filepath);exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,"%d%s%d

7、%d%d",&p1->num1,p1->name1,&p1->score, &p1->nelepeo,&p1->Melepeo); head1=NULL; while(!feof(fp) N1=N1+1;if(N1=1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1-

8、>score,&p1->nelepeo,&p1->Mele peo); p2->next=NULL;void inputc()/錄入課程主函數 int i; printf("ttt錄入課程信息n"); printf("n1.從鍵盤錄入n"); printf("2.從文件錄入n"); printf("3.返回主菜單n"); printf("請選擇(13):n"); scanf("%d",&i); switch(i) case(1)

9、:keyboardc();break;case(2):filec();break;case(3):break; void inputs()/錄入學生信息主函數 int i; printf("ttt錄入學生信息n"); printf("n1.從鍵盤錄入n"); printf("2.從文件錄入n"); printf("3.返回主菜單n"); printf("請選擇(13):n"); scanf("%d",&i); switch(i) case(1):keyboards()

10、;break;case(2):files();break;case(3):break; void elective()/學生選課主函數 int i; printf("ttt學生選課n"); printf("1.查詢可選課程n"); printf("2.查詢已選課程n"); printf("3.返回主菜單n"); printf("請輸入(13):n"); scanf("%d",&i); switch(i) case(1):cheak();break; case(2):h

11、cheak();break; case(3):break void listc()/輸出課程信息 struct couse * p; p=head1; printf("課程編號 課程名稱 學分 課程已選人數 課程人數上限n"); while(p!=NULL) printf("%-8d%10s%6d%8d%12dn",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);p=p->next; void lists()/輸出學生信息 struct student * p; p=h

12、ead2; printf("學生學號 學生姓名 已選課程數量n"); while(p!=NULL) printf("%-4d %10s %6dn",p->num2,p->name2,p->nelen); p=p->next; void intoc()/存儲課程信息 FILE * fp; struct couse * p; char filepath30; printf("輸入課程信息要保存的文件路徑:"); getchar(); gets(filepath); if(fp=fopen(filepath,&quo

13、t;w")=NULL) printf("n保存失敗!"); exit(0); p=head1; while(p!=NULL) fprintf(fp,"%d %s %d %d %dn",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; fclose(fp); printf("課程信息已保存在%s中!n",filepath); void intos()/存儲學生信息 FILE * fp; struct student *

14、p; char filepath30; printf("輸入學生信息要保存的文件路徑:"); getchar(); gets(filepath); if(fp=fopen(filepath,"w")=NULL) printf("n保存失敗!"); exit(0); p=head2; while(p!=NULL) fwrite(p,sizeof(struct student),1,fp); p=p->next; fclose(fp); printf("學生信息已保存在%s中!n",filepath); void

15、 into()/存儲信息 int i; printf("1.存儲課程信息n"); printf("2.存儲學生信息n"); printf("3.返回主菜單n"); printf("請輸入(13)n"); scanf("%d",&i); switch(i) case(1):intoc();break; case(2):intos();break; case(3):break; void store()/信息主函數 int i; printf("tt系統信息查看及存儲n"

16、); printf("1.查看課程信息n"); printf("2.查看學生信息n"); printf("3.存儲信息n"); printf("4.返回主菜單n"); printf("請輸入(14):n"); scanf("%d",&i); switch(i) case(1):listc();break; case(2):lists();break; case(3):into();break; case(4):break; int main()/主函數 int i;

17、start: printf("nttt歡迎使用學生選課系統!n"); printf("菜單:n"); printf("1.錄入課程信息n"); printf("2.課程管理n"); printf("3.錄入學生信息n"); printf("4.學生信息管理n"); printf("5.學生選課n"); printf("6.系統信息查看及存儲n"); printf("7.退出系統n"); printf("n請

18、輸入菜單選項(17):n"); scanf("%d",&i); if(i<1 | i>7) printf("輸入錯誤,請重輸:n"); goto start; switch(i) case(1): system("cls"); inputc(); goto start; break; case(2): system("cls"); managementc(); goto start; break; case(3): system("cls"); inputs();

19、goto start; break; case(4): system("cls"); managements(); goto start; break; case(5): system("cls"); elective(); goto start; break; case(6): system("cls"); store(); goto start; break; case(7): system("cls"); printf("感謝使用本系統!nn再見!n"); return(0);3.1程序描

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論