⑴ 軟體工程專業(本科)的課程設置
軟體工程主要學科:馬克思主義理論、大學外語、高等數學、大學物理、物理實驗、線性代數、概率論與數理統計、編程語言、數據結構、離散數學、操作系統、編譯技術、軟體工程概述、統一建模語言,軟體架構,軟體需求,軟體項目管理。
就業方向:
1、Java方向:Java初級程序員、Java計算程序員、Java工程師、J2EE系統工程師等。
2、網路方向:網路程序員、網站開發工程師、網路工程師等。
3、其他方向:簡單管理信息系統開發和維護人員、網頁製作和客戶端腳本編程人員、主要資料庫管理和維護人員、資料庫開發工程師、系統分析和設計工程師、軟體項目配置經理,以及文件寫作工程師。
(1)軟體工程工程學生選課系統順序圖擴展閱讀:
軟體工程,涉及到編程語言、資料庫、軟體開發工具、系統平台、標准、設計模式等。在現代社會,軟體被應用於許多方面。典型軟體如電子郵件、嵌入式系統、人機界面、辦公套件、操作系統、編譯器、資料庫、游戲等。
同時,幾乎所有的行業都有計算機軟體應用,如工業、農業、銀行、航空、政府部門等,這些應用促進了經濟社會的發展,提高了人們的工作效率,提高了生活質量。
計算學科的分支,包括理論、抽象與設計、綁定、大問題復雜性、概念與形式模型、一致性與完整性、效率、進化、抽象層次、按空間排序、按時間排序、重用、安全性三種學科形式,數學方法和系統科學方法在軟體工程中起著重要的作用。
此外,軟體工程也非常重視管理過程,以提高軟體產品的質量,降低開發成本,保證項目的及時完成。系統性、規范性和可測量性也是軟體工程中的重要問題。
⑵ 急求c語言:學生選課系統程序設計(最好含流程圖 的)
#include<stdio.h>
#include<stdlib.h>
int N1,N2,kk1,kk2,kk3;
struct couse * head1;
struct student * head2;
struct couse//課程信息結構體
{
int num1;
char name1[20];
int score;
int nelepeo;//課程已選人數
int Melepeo;//課程人數上限
struct couse * next;
};
struct student//學生信息結構體
{
int num2;
char name2[20];
int nelenum[50];//已選課程編號
int nelen;//已選課程數量
struct student * next;
};
void Ms()
{
for(kk1=0;kk1<1100;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->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 filec()//錄入鍵盤子函數(從文件錄入)
{
FILE * fp;
char filepath[20];
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%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->score,&p1->nelepeo,&p1->Melepeo);
}
p2->next=NULL;
}
void inputc()//錄入課程主函數
{
int i;
printf("\t\t\t錄入課程信息\n");
printf("\n1.從鍵盤錄入\n");
printf("2.從文件錄入\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):keyboardc();break;
case(2):filec();break;
case(3):break;
}
}
void insertc(struct couse *incouse)//課程管理子函數(增加課程)
{
struct couse *p0,*p1,*p2;
p1=head1;
p0=incouse;
if(head1==NULL)
{
head1=p0;
p0->next=NULL;
}
else
{
while((p0->num1 > p1->num1) && (p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->num1 <= p1->num1)
{
if(head1==p1) head1=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
N1=N1+1;
}
void delc(int num1)//課程管理子函數(刪除課程)
{
struct couse *p1,*p2;
if(head1==NULL)
{
printf("\n沒有課程,無法刪除!\n");
goto end;
}
p1=head1;
while(num1!=p1->num1 && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num1==p1->num1)
{
if(p1==head1) head1=p1->next;
else p2->next=p1->next;
printf("已刪除該編號課程!\n");
N1=N1-1;
}
else printf("無該編號的課程!\n");
end:;
}
void managementc()//課程管理主函數
{
struct couse * incouse;
int i,num1;
printf("\t\t\t課程管理\n");
printf("1.新增課程\n");
printf("2.刪除課程\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):
{
incouse=(struct couse *)malloc(sizeof(struct couse));
printf("課程編號\t課程名稱\t學分\t課程人數上限\n");
scanf("%d%s%d%d",&incouse->num1,incouse->name1,&incouse->score,&incouse->Melepeo);
incouse->nelepeo=0;
insertc(incouse);
break;
}
case(2):
{
printf("請輸入要刪除課程的編號:\n");
scanf("%d",&num1);
delc(num1);
break;
}
case(3):break;
}
}
void keyboards()//錄入學生信息子函數(從鍵盤錄入)
{
int i;
struct student *p1,*p2;
N2=0;
p1=p2=(struct student *)malloc(sizeof(struct student));
printf("學生學號\t學生姓名\n");
scanf("%d%s",&p1->num2,p1->name2);
p1->nelen=0;
for(i=0;i<20;i++) p1->nelenum[i]=0;
head2=NULL;
while(p1->num2!=0)
{
N2=N2+1;
if(N2==1)head2=p1;
else p2->next=p1;
p2=p1;
p1=(struct student * )malloc(sizeof(struct student));
scanf("%d%s",&p1->num2,p1->name2);
p1->nelen=0;
for(i=0;i<20;i++) p1->nelenum[i]=0;
}
p2->next=NULL;
}
void files()//錄入學生信息子函數(從文件錄入)
{
int i=0;
FILE * fp;
char filepath[20];
struct student *p1,*p2;
N2=0;
printf("輸入要讀入的文件路徑:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"r"))==NULL)
{
printf("找不到%s文件!\n",filepath);
exit(0);
}
p1=p2=(struct student*)malloc(sizeof(struct student));
fread(p1,sizeof(struct student),1,fp);
head2=NULL;
while(!feof(fp))
{
i=0;
N2=N2+1;
if(N2==1)head2=p1;
else p2->next=p1;
p2=p1;
p1=(struct student * )malloc(sizeof(struct student));
fread(p1,sizeof(struct student),1,fp);
}
p2->next=NULL;
}
void inputs()//錄入學生信息主函數
{
int i;
printf("\t\t\t錄入學生信息\n");
printf("\n1.從鍵盤錄入\n");
printf("2.從文件錄入\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):keyboards();break;
case(2):files();break;
case(3):break;
}
}
void inserts(struct student * incouse)//學生信息管理子函數(填加學生信息)
{
struct student *p0,*p1,*p2;
p1=head2;
p0=incouse;
if(head2==NULL)
{
head2=p0;
p0->next=NULL;
}
else
{
while((p0->num2 > p1->num2) && (p1->next!=NULL))
{
p2=p1;
p1=p1->next;
}
if(p0->num2 <= p1->num2)
{
if(head2==p1) head2=p0;
else p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
N2=N2+1;
}
void dels(int num2)//學生信息管理子函數(刪除學生信息)
{
struct student *p1,*p2;
if(head2==NULL)
{
printf("\n沒有該學生信息,無法刪除!\n");
goto end;
}
p1=head2;
while(num2!=p1->num2 && p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(num2==p1->num2)
{
if(p1==head2) head2=p1->next;
else p2->next=p1->next;
printf("已刪除該學生信息!\n");
N2=N2-1;
}
else printf("無該學號的學生!\n");
end:;
}
void managements()//學生信息管理主函數
{
struct student * incouse;
int i,num2;
printf("\t\t\t學生信息管理\n");
printf("1.新增學生信息\n");
printf("2.刪除學生信息\n");
printf("3.返回主菜單\n");
printf("請選擇(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):
{
incouse=(struct student *)malloc(sizeof(struct student));
incouse->nelen=0;
incouse->nelenum[0]=0;
printf("學生學號\t學生姓名\n");
scanf("%d%s",&incouse->num2,incouse->name2);
inserts(incouse);
break;
}
case(2):
{
printf("請輸入要刪除學生的學號:\n");
scanf("%d",&num2);
dels(num2);
break;
}
case(3):break;
}
}
void elect(struct student * s)//選課
{
struct couse * p;
int num1,i;
printf("請輸入要選課的編號:\n");
scanf("%d",&num1);
for(i=0;s->nelenum[i]!=0;i++);
s->nelenum[i]=num1;
(s->nelen)++;
p=head1;
while(p->num1!=num1) p=p->next;
(p->nelepeo)++;
}
void cheak()//學生選課子函數(查詢可選課程)
{
char e;
struct couse * c;
struct student * s;
int num2,i,j=0,t=0;
printf("請輸入你的學號:");
scanf("%d",&num2);
s=head2;
while(s->num2!=num2 && s->next!=NULL) s=s->next;
if(s->num2!=num2)
{
printf("不存在你的信息,請進入主菜單錄入你的信息!\n");
goto end;
}
c=head1;
printf("你的可選課程編號:\n");
while(c!=NULL)
{
for(t=0,i=0;s->nelenum[i]!=0;i++)
{
if(c->num1==s->nelenum[i]) t=1;
}
if(t==0 && (c->nelepeo!=c->Melepeo))
{
printf("%d\n",c->num1);
j++;
}
c=c->next;
}
if(j==0)
{
printf("你已選完所有課程,無法再多選!\n");
goto end;
}
printf("選課(y/n)?:\n");
getchar();
e=getchar();
i=0;
while(e=='y')
{
elect(s);
printf("繼續選課(y/n)?:\n");
getchar();
e=getchar();
}
end:;
}
void back(struct student * p)//退課
{
struct couse * p1;
int num1,i,j;
printf("請輸入你要退掉的課程編號:\n");
scanf("%d",&num1);
p1=head1;
while(p1->num1!=num1) p1=p1->next;
for(i=0;p->nelenum[i]!=num1;i++);
for(j=i;p->nelenum[j]!=0;j++) p->nelenum[j]=p->nelenum[j+1];
p->nelenum[--j]=0;
(p1->nelepeo)--;
printf("退課成功!\n");
}
void hcheak()//學生選課子函數(查詢已選課程)
{
char c;
struct couse * p0;
struct student * p;
int num2,i,f=0;
printf("請輸入學號:\n");
scanf("%d",&num2);
p=head2;
while(p->num2!=num2 && p!=NULL) p=p->next;
if(p==NULL)
{
printf("不存在你的信息,請回主菜單錄入信息:\n");
goto end;
}
printf("已選課程編號:\n");
if(p->nelenum[0]==0)
{
printf("你還沒選課!\n");
goto end;
}
for(i=0;p->nelenum[i]!=0;i++)
{
printf("%d\n",p->nelenum[i]);
p0=head1;
while(p0->num1!=p->nelenum[i]) p0=p0->next;
f=f+p0->score;
}
printf("總學分:%d\n",f);
printf("是否進行退課(y/n)?");
getchar();
c=getchar();
while(c=='y')
{
back(p);
printf("繼續退課(y/n)?");
getchar();
c=getchar();
(p->nelen)--;
}
end:;
}
void elective()//學生選課主函數
{
int i;
printf("\t\t\t學生選課\n");
printf("1.查詢可選課程\n");
printf("2.查詢已選課程\n");
printf("3.返回主菜單\n");
printf("請輸入(1~3):\n");
scanf("%d",&i);
switch(i)
{
case(1):cheak();break;
case(2):hcheak();break;
case(3):break;
}
}
void listc()//輸出課程信息
{
struct couse * p;
p=head1;
printf("課程編號 課程名稱 學分 課程已選人數 課程人數上限\n");
while(p!=NULL)
{
printf("%-8d%10s%6d%8d%12d\n",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);
p=p->next;
}
}
void lists()//輸出學生信息
{
struct student * p;
p=head2;
printf("學生學號 學生姓名 已選課程數量\n");
while(p!=NULL)
{
printf("%-4d %10s %6d\n",p->num2,p->name2,p->nelen);
p=p->next;
}
}
void intoc()//存儲課程信息
{
FILE * fp;
struct couse * p;
char filepath[30];
printf("輸入課程信息要保存的文件路徑:");
getchar();
gets(filepath);
if((fp=fopen(filepath,"w"))==NULL)
{
printf("\n保存失敗!");
exit(0);
}
p=head1;
while(p!=NULL)
{
fprintf(fp,"%d %s %d %d %d\n",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 * p;
char filepath[30];
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 into()//存儲信息
{
int i;
printf("1.存儲課程信息\n");
printf("2.存儲學生信息\n");
printf("3.返回主菜單\n");
printf("請輸入(1~3)\n");
scanf("%d",&i);
switch(i)
{
case(1):intoc();break;
case(2):intos();break;
case(3):break;
}
}
void store()//信息主函數
{
int i;
printf("\t\t系統信息查看及存儲\n");
printf("1.查看課程信息\n");
printf("2.查看學生信息\n");
printf("3.存儲信息\n");
printf("4.返回主菜單\n");
printf("請輸入(1~4):\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;
start:
printf("\n\t\t\t歡迎使用學生選課系統!\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請輸入菜單選項(1~7):\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();
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("感謝使用本系統!\n\n再見!\n");
}
}
return(0);
}
⑶ 軟體工程學生選課系統所使用的開發工具
問題不清楚啊
看樣子應該是要做個網站
但這個要看開發的環境和語言的
如一樓所說,一般用java ,開發工具用myeclipse
⑷ 學生選課子系統流程圖
大概模塊就這樣。
⑸ 軟體工程順序圖怎麼畫
1. 在VP官網下載 Simple-Registration.vpp 。
2. 在Visual Paradigm中打開已下載的vpp文件。通過工具欄中的 Project > Open 可打開這個項目。
3. 打開類圖 Registration ,通過對圖表內容的查看,我們了解到這里有三個類——RegistrationUI 、 RegistrationController 和 User 。
4. 現在我們想要對在運行時這些類的對象實例間的交互進行建模。由於控制器類負責控制登記流程,因此添加一個它的子順序圖。將滑鼠指針移動到 RegistrationController ,點擊底部右下角的資源圖標然後從彈出菜單中選擇 New Diagram... 。
5. 在 New Diagram 窗口,選擇 Sequence Diagram ,然後點擊 Next 。保持默認圖標名稱不變,然後點擊 OK 進行確認。
6. 一個空的UML順序圖創建以後,從圖表工具欄中選擇 Boundary LifeLine (B) 。
7. 點擊圖表創建生命線的分界線。
8. 輸入 registrationUI 作為生命線名稱,然後敲擊回車鍵進行確認。
9. 右鍵點擊生命線,然後從彈出菜單中選擇 elect Class > Select Class... 。
10. 在 Select Class 窗口,選擇 RegistrationUI 類,然後點擊 OK 進行確認。
然後所繪制的生命線就:
11. 創建一個控制生命線( Control LifeLine ): registrationController : RegistrationController 和一個實體生命線(Entity LifeLine): user : User 。不要忘了為它們選擇合適的類。所繪制的圖表如下圖所示:
12. 讓我們為生命線之間所調用的方法進行建模,將滑鼠指針移動到生命線 registrationUI 。
13. 按住資源 Resource Catalog ,然後進行拖動。
14. 移動到生命線 registrationController ,然後釋放滑鼠按鈕。
15. 從Resource Catalog中選擇 Message 。
16. 這會彈出一個可供你選擇的新的序列信息的列表名稱。你可以看到這些選項都是classRegistrationController的操作,在其中選擇 createUser(name, password) 。
17. 關聯生命線 registrationController 和 user ,我們可以看到是 registrationController 創建了user生命線。因此,我們需要創建一條信息來關聯這兩者。將滑鼠指針移動激活生命線 registrationController 。
18. 按住資源 Resource Catalog 進行拖動。
19. 在生命線 user 處放開滑鼠指針。
20. 從Resource Catalog中選擇 Create Message 。
於是信息就被創建好了,所得的圖像如下圖所示:
21. 創建從生命線 registrationController 到user的信息 setName 和 setPassword ,到目前為止,圖表如下圖所示:
22. 您還可以指定操作的參數,以信息 createUser(name, password) 為例。右鍵點擊它,然後從下拉菜單中選擇 Open Specification... 。
23. 通過點擊按鈕上的省略號對行為屬性進行編輯,跳轉到 Action type 。
24. 在 Call Action Specification 窗口,點擊 Add > Text... 添加參數。在本例中,點擊 Add > Text... 添加參數 peter 。再次點擊 Add > Text... 添加參數 mypwd 。注意,這里的兩個參數指的是兩個通過操作賦予的參數,如果你再添加第三個參數,它將被自動忽略(因為只定義了兩個操作)。
25. 點擊 OK 關閉窗口,然後返回圖表。添加的參數被呈現在了圖表上
⑹ 軟體工程如何用順序圖說明類之間的工作流程及狀態
順序功能圖(Sequeential Function Chart)是一種新穎的、按工藝流程圖進行編程的圖形化編程語言,也是一種符合國際電工委員會(IEC)標准,被首選推薦地用於可編程式控制制器的通用編程語言,現在,在PLC的應用領域中得到廣泛的推廣和應用。 採用SFC進行PLC應用編程的優點是: 1、在程序中可以直觀地看到設備的動作順序。因為SFC程序是按照設備(或工藝)的動作順序編寫的,所以程序的規律性較強,容易讀懂,具有一定的可視性。 2、在設備發生故障時能很容易的找出故障所在位置。 3、不需要復雜的互鎖電路,更容易設計和維護系統。 根據國際電工委員會(IEC)標准,SFC的標准結構是: 步 該步工序中的動作或命令+有向連接+轉換和轉換條件=SFC,參見圖1: 圖1 SFC程序的運行規則是:從初始步開始執行,當每步的轉換條件成立時,就由當前步轉為執行下一步,在遇到END時結束所有步的運行。 現在大多PLC製造公司,都為自己的工控產品提供了相關的編程軟體,以便利用計算機實現在線編程。三菱公司提供的編程軟體GX Developer(版本號8) 對轉換條件梯形圖的編輯,可按PLC編程的要求,按上面的敘述可以自己完成,需注意的是,每編輯完一個條件後應按F4快捷鍵轉換,轉換後梯形圖則由原來的灰色變成亮白色,完成轉換後再看SFC程序編輯窗口中1前面的問號(?)會消失。 8、通用狀態的編輯。 在左側的SFC程序編輯窗口中把游標下移到方向線底端,按工具欄中的工具按鈕或單擊F5快捷鍵彈出步序輸入設置對話框見圖14。 圖14 SFC符號輸入 輸入步序標號後點擊確定,這時游標將自動向下移動,此時,可看到步序圖標號前面有一個問號(?),這是表明此步現在還沒進行梯形圖編輯,同時右邊的梯形圖編輯窗口呈現為灰色也表明為不可編輯狀態,見圖15。 下面對通用工序步進行梯形圖編程。將游標移到步序號符號處,在步符號上單擊後右邊的窗口將變成可編輯狀態,現在,可在此梯形圖編輯窗口中輸入梯形圖。需注意,此處的梯形圖是指程序運行到此工序步時所要驅動哪些輸出線圈,在本例中,現在所要獲得的通用工 圖15 還沒有編輯的狀態步 序步20是驅動輸出線圈Y0以及T0線圈,參見圖2程序梯形圖和指令表。 用相同的方法把控制系統一個周期內所有的通用狀態編輯完畢。需說明的是,在這個編輯過程中,每編輯完一個通用步後,不需要再操作「程序」\「MAIN」而返回到塊列表窗口(見圖6),再次執行塊列表編輯,而是在一個初始狀態下,直接進行SFC圖形編輯。 9、系統循環或周期性的工作編輯。 SFC程序在執行過程中,無一例外的會出現返回或跳轉的編輯問題,這是執行周期性的循環所必須的。要在SFC程序中出現跳轉符號,需用或(JUMP)指令加目標號進行設計。 現在進行返回初始狀態編輯見圖16所示。輸入方法是:把游標移到方向線的最下端,按F8快捷鍵或者點擊按鈕,在彈出的對話框中填入要跳轉到的目的地步序號,然後單擊確定按鈕。 圖16 跳轉符號輸入 說明:如果在程序中有選擇分支也要用JUMP 「標號」來表示。 當輸入完跳轉符號後,在SFC編輯窗口中我們將會看到,在有跳轉返回指向的步序符號方框圖中多出一個小黑點兒,這說明此工序步是跳轉返回的目標步,這為我們閱讀SFC程序也提供了方便,參見圖18。(信息來源.cn) 10,程序變換。 當所有SFC程序編輯完後,我們可點擊變換按鈕進行SFC程序的變換(編譯),如果在變換時彈出了塊信息設置對話框,可不用理會,直接點擊執行按鈕即可。經過變換後的程序如果成功,就可以進行模擬實驗或寫入PLC進行調試了。 如果想觀看SFC程序所對應的順序控制梯形圖,我們可以這樣操作:點擊工程\編輯數據\改變程序類型,進行數據改變(見圖19)。 圖18 完整的SFC程序 圖19數據變換 執行改變數據類型後,可以看到由SFC程序變換成的梯形圖程序見圖20。 圖20 轉化後的梯形圖 小結:以上介紹了單序列的SFC程序的編制方法,通過學習,我們已經基本了解了SFC程序中狀態符號的輸入方法。需要強調的是兩點:(1)在SFC程序中仍然需要進行梯形圖的設計;(2)SFC程序中所有的狀態轉移需用TRAN表示。
⑺ 學生選課系統的分析與設計
我們可以根據你的題目提供一套與需求相適應的源程序(教學版,個人版,專業版,企業版)
為獲取建議,你需要提供可用的電子信箱地址。
您還能直接通過網路Hi聯系我們, 或使用網路知道向我求助, 或憑借網路知道發送短消息
或QQ:六五七幺五六幺五('幺'讀 yao 一聲)
有時間能搞定你的題目
ES:\
交易提醒:預付訂金是陷阱
開發MIS系統,,B2B/B2C電子商務,企業/個人網站更有優惠
⑻ 求學生選課系統的ER圖
學工部:
學生基本情況(學號、姓名、性別、班級、班主任、照片、入學年份)
教務處:
選課情況(學號、姓名、班級、課程名稱、任課老師、學分、成績、學期)
教師:
成績情況(學號、姓名、班級、課程名稱、成績、班平均分、最高分、最低分、不及格人數)
學生:
綜合信息(學號、姓名、班級、已修課程門數、總學分、平均成績、每門課成績、不及格門數)