?? 大作業(yè)排課.cpp
字號:
j=n%10;//表示輸出i行個元素后還有j個沒有輸出
i=(n-j)/10;//表示D[n]可以輸出i行
cout<<"┏━━━━┯━┯━┯━┯━┯━┯━┯━┯━┯━┯━┓"<<endl;
cout<<"┃老師編號";for(k=0;k<10;k++,m++)cout_t(m); cout<<"┃"<<endl;
cout<<"┠────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┨"<<endl;
cout<<"┃所教課程";for(k=0;k<10;k++,s++)cout_s(s,D);cout<<"┃"<<endl;
i--;
while(i!=0) {//輸出表中間部分
cout<<"┠────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┨"<<endl;
cout<<"┃老師編號";for(k=0;k<10;k++,m++)cout<<"│"<<m; cout<<"┃"<<endl;
cout<<"┠────┼─┼─┼─┼─┼─┼─┼─┼─┼─┼─┨"<<endl;
cout<<"┃所教課程";for(k=0;k<10;k++,s++)cout_s(s,D);cout<<"┃"<<endl;
i--;
}//while
if(j==0)
cout<<"┗━━━━┷━┷━┷━┷━┷━┷━┷━┷━┷━┷━┛"<<endl;//輸出表尾
else {
cout<<"┠────";for(k=0;k<=j;k++)cout<<"┼─";for(;k<10;k++)cout<<"┴─";cout<<"┨"<<endl;
cout<<"┃老師編號";for(k=0;k<j;k++,m++)cout<<"│"<<m; cout<<"│";cout<<setw((10-k)*4);cout<<"┃"<<endl;
cout<<"┠────";for(k=0;k<j;k++)cout<<"┼─";cout<<"┤";cout<<setw((10-k)*4);cout<<"┃"<<endl;
cout<<"┃所教課程";for(k=0;k<j;k++,s++)cout_s(s,D);cout<<"│";cout<<setw((10-k)*4);cout<<"┃"<<endl;
cout<<"┗━━━━";for(k=0;k<=j;k++)cout<<"┷━";for(;k<10;k++)cout<<"━━";cout<<"┛"<<endl;;
}//else
}//if
else {
cout<<"┏━━━━";for(k=0;k<n;k++)cout<<"┯━";cout<<"┓"<<endl;
cout<<"┃老師編號";for(k=0;k<n;k++,m++)cout_t(m); cout<<"┃"<<endl;
cout<<"┠────";for(k=0;k<n;k++)cout<<"┼─";cout<<"┨"<<endl;
cout<<"┃所教課程";for(k=0;k<n;k++,s++)cout_s(s,D);cout<<"┃"<<endl;
cout<<"┗━━━━";for(k=0;k<n;k++)cout<<"┷━";cout<<"┛"<<endl;
}//else
}
///////////////查看已經(jīng)安排的教學(xué)任務(wù)——陳振鋒/////////////////////
void print_screen(int D[],int n) {//分屏輸出所有元素
int i=1;//因為D[0]沒有放內(nèi)容,所以從D[1]開始輸出,輸出D[1]至D[n]
system("cls");
while(n>50) {//每輸出50個記錄暫停一次,按任意鍵繼續(xù)
print_list(D,i,50);//輸出D[1]~D[50]或D[51]~D[99]
n-=50;
i+=50;
system("pause");
system("cls");
}//while
if(n!=0) {
print_list(D,i,n);
system("pause");
system("cls");
}//if
else return;
}//print_screen
void print_segment(int D[],int n) {//分段輸出
int f,l;
system("cls");
while(1) {
cout<<"請輸入第一個老師的編號(1~"<<n<<"):";
while(1) {//檢查輸入
cin>>f;
if(f<=0||f>n)cout<<"老師編號超出范圍,請重新輸入老師的編號:";
else break;
}//while
cout<<"請輸入要輸出的記錄的個數(shù):";
cin>>l;
if(f+l-1>n)cout<<"輸入大于記錄總數(shù),請重新輸入"<<endl;
else break;
}
system("cls");
while(l>50) {//每輸出50個記錄暫停一次,按任意鍵繼續(xù)
print_list(D,f,50);//輸出D[f]至D[f+49]
l-=50;
f+=50;
system("pause");
system("cls");
}//while
if(l!=0) {
print_list(D,f,l);
system("pause");
system("cls");
}//if
system("cls");
return;
}
void print_single(int D[],int n) {//單個輸出
int m;
system("cls");
cout<<"請輸入要輸出的記錄老師的編號(1~"<<n<<"):";
while(1) {//檢查輸入
cin>>m;
if(m<=0||m>n)cout<<"老師編號超出范圍,請重新輸入老師的編號:";
else break;
}//while
system("cls");
print_list(D,m,1);//輸出D[m]
system("pause");//按任意鍵繼續(xù)
system("cls");//回到主函數(shù)前清屏
return;
}
////////////////陳振鋒///////////////////////
void display(MGraph &G,int n)
{
int c=0;//c選擇用
while(1)
{
cout<<" ┏━━━━━━━━━━━━┓ "<<endl;
cout<<"┏━━━━━┫ 請選擇要查看的內(nèi)容 ┣━━━━━┓"<<endl;
cout<<"┃ ┗━━━━━━━━━━━━┛ ┃"<<endl;
cout<<"┃ 1 -----分屏輸出 2 -----分段輸出 ┃"<<endl;
cout<<"┃ 3 -----單個輸出 0 -----返回上級 ┃"<<endl;
cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;
if(c>3||c<0)cout<<"輸入錯誤,請重新輸入: ";
else cout<<"請選擇: ";
cin>>c;
switch(c)
{
case 1 : print_screen(G.D,n);break;
case 2 : print_segment(G.D,n);break;
case 3 : print_single(G.D,n);break;
case 0 : return;
default : system ("cls");
}
}
}
//////////////主函數(shù)——胡磊////////////////
void main()
{
MGraph G;int k[max],i=0, n=0,w=0,a=0,b=0;//n 用來表示科目數(shù) w 檢查是否科目數(shù)設(shè)定 i 檢查是否專長課程設(shè)定 a檢查是否課程安排
char cx,ch;
while(1)
{
cout<<" ┏━━━━━━━━歡迎進(jìn)入教學(xué)任務(wù)安排系統(tǒng)━━━━━━━━┓"<<endl;
cout<<" § §"<<endl;
cout<<" § 1 -----確定科目數(shù) 2 -----教師專長課程設(shè)定 §"<<endl;
cout<<" § 3 -----課程安排 4 -----教師專長瀏覽 §"<<endl;
cout<<" § 5 -----教師專長課程修改 6------查看教學(xué)任務(wù)安排 §"<<endl;
cout<<" § 0 -----退出系統(tǒng) §"<<endl;
cout<<" └────────────────────────────┘"<<endl;
cout<<" 請選擇功能 "<<ends; cin>>ch;
cout<<endl;
switch(ch)
{
case '1': {
if (!w){ w=creat(G,k, n,b); ;break; } //初始化
else {
cout<<"你已經(jīng)確定了課程數(shù) ,是否要從新確定(是:Y/y 否:其余鍵 )";cin>>cx;
if(cx=='Y'||cx=='y') { w=creat(G,k, n,b); a=0;i=0;}
break;
}
}
case '2': {
if (!w) {cout<<"教師專長課程設(shè)定前,請先確定科目數(shù)!"<<endl<<endl;break;}
T:cout<<" * 0:不安排 "<<endl;
cout<<" * 1:手動安排 "<<endl;
cout<<" * 2:隨機(jī)安排 "<<endl<<endl;
cout<<"選擇安排方式:";
cin>>ch;
if(ch=='0')break;
if(ch=='2'){
sjcount(G,n,k); a=0; i=1;
cout<<"生成完畢"<<endl;
break;
}
if(ch=='1'){
if(i){
cout<<"你已經(jīng)教師專長課程設(shè)定 ,是否要從新設(shè)定(是:Y/y 否:其余鍵 )";cin>>cx;
if(cx=='Y'||cx=='y')
{ creat(G,k,n,b);i=techer_speciality(G, n); a=0; break;} //先用creat(G,k,n,b)初始化 G.[n]=0
else break;
}
else i=techer_speciality(G, n);//if(i)之前沒有設(shè)定
break;
}
goto T;
case '3': {
if (!w)cout<<"課程安排前,請先確定科目數(shù)!"<<endl<<endl;
else if(!i)cout<<"課程安排前,請先教師專長課程設(shè)定!"<<endl;
else {anpai(G,k,n); a=1; cout<<"教師專長課程安排成功!"<<endl; }
break;
}
case '4': {
if (!w) cout<<"教師專長瀏覽前,請先確定科目數(shù)和 教師專長課程設(shè)定!"<<endl<<endl;
else if(!i)cout<<"教師專長瀏覽前,請先教師專長課程設(shè)定!"<<endl;
else list(G, n);//教師專長瀏覽函數(shù)
break;
}
case '5':{
if (!w) cout<<"教師專長課程修改前,請先確定科目數(shù)!"<<endl;
else if(!i)cout<<"教師專長課程修改前,請先教師專長課程設(shè)定!"<<endl;//教師專長課程修改函數(shù)
else {edit(G, n,k) ; a=0;}//修改函數(shù)
break;
}
case'6':{
if (!w) cout<<"查看教學(xué)任務(wù)安排前,請先確定科目數(shù)!"<<endl<<endl;
else if(!i)cout<<"查看教學(xué)任務(wù)安排前,請先教師專長課程設(shè)定!"<<endl;//查看教學(xué)任務(wù)安排函數(shù)
else if (!a)cout<<"查看教學(xué)任務(wù)安排前,請先選擇課程安排!"<<endl;
else display(G, n) ;//查看教學(xué)任務(wù)安排函數(shù);
break;
}
case '0': {
cout<<" ************************************************************ "<<endl;
cout<<" * * * * * * * * * * * 謝謝使用 * * * * * * * * * * * * * *"<<endl;
cout<<" ************************************************************"<<endl;
return;
}
default: system("cls"); cout<<"選擇錯誤,重新選擇功能!"<<endl<<endl; break;
}
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -