版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
課程設(shè)計(jì)論文題目:用c++設(shè)計(jì)一個(gè)排課程序?qū)W院:專業(yè)名稱:電子科學(xué)和技術(shù)班級學(xué)號:學(xué)生姓名:指導(dǎo)老師:6月目錄TOC\o"1-3"\h\u1457一、課題背景 2174751.1選題意義
326778二、課題要求 4276802.1設(shè)計(jì)功效要求 476452.2匯報(bào)要求 427111三、系統(tǒng)總體方案: 5244383.1方案描述 5147033.3各功效模塊: 625733四、源程序代碼 715731五、測試數(shù)據(jù)及結(jié)果
2421639六、總結(jié) 2522629參考書籍 269575致謝 26摘要:伴隨社會(huì)經(jīng)濟(jì)快速發(fā)展和科學(xué)技術(shù)全方面進(jìn)步,計(jì)算機(jī)事業(yè)飛速發(fā)展,以計(jì)算機(jī)和通信技術(shù)為基礎(chǔ)信息系統(tǒng)正處于蓬勃發(fā)展時(shí)期。伴隨經(jīng)濟(jì)文化水平顯著提升,大家對生活質(zhì)量及工作環(huán)境要求也越來越高。怎樣經(jīng)過計(jì)算機(jī)為我們完成更多事情,進(jìn)而達(dá)成辦公自動(dòng)化和優(yōu)化日常工作目標(biāo),也就成了一個(gè)大眾化課題。作為計(jì)算機(jī)應(yīng)用一部分,使用計(jì)算機(jī)對信息進(jìn)行管理,含有和手工管理所無法比擬優(yōu)點(diǎn).比如:檢索快速、查找方便、可靠性高、存放量大、保密性好、壽命長、成本低等。關(guān)鍵詞:計(jì)算機(jī)c++程序語言排課系統(tǒng)課題背景1.1實(shí)際應(yīng)用需要近幾年來,伴隨各高校辦公自動(dòng)化工作推進(jìn),教務(wù)管理自動(dòng)化也被擺上了日程。在教務(wù)工作中占有很大比重一項(xiàng)就是每學(xué)期課程排定工作。因?yàn)榻坦?、教室和設(shè)備相對擔(dān)心,怎樣進(jìn)行合理地安排和分配,從而充足利用教學(xué)資源是我們不得不面正確問題。而人工進(jìn)行排課不僅任務(wù)重,效率低,而且易犯錯(cuò),難于維護(hù),想要排出一張各方面全部滿意課表很困難。而且伴隨高校規(guī)模擴(kuò)大手工排課難度和工作量呈幾何級數(shù)增加。學(xué)校教務(wù)管理作為高校教育信息化工作中一項(xiàng)關(guān)鍵工作,怎樣構(gòu)建一個(gè)含有開放性、實(shí)用性和靈活性平臺,是一個(gè)值得探討課題。其中,作為學(xué)校教務(wù)關(guān)鍵步驟之一排課系統(tǒng)也尤為關(guān)鍵。1.1選題意義
排課系統(tǒng)正是為了減輕教務(wù)人員工作量,實(shí)現(xiàn)教務(wù)工作自動(dòng)化,處理排課這一老大難問題教務(wù)辦公軟件。尤其針對高校排課一直全部沒有很好處理方法,不過此問題又是每個(gè)學(xué)校在每個(gè)學(xué)期全部會(huì)碰到必需行政作業(yè)。本文在相關(guān)理論指導(dǎo)下,在分析以往部分排課軟件基礎(chǔ)上,提出一個(gè)高校通用排課系統(tǒng)設(shè)計(jì)方法,并對部分具體問題給出對應(yīng)處理方案。不過,因?yàn)榧夹g(shù)、經(jīng)驗(yàn)有限和數(shù)據(jù)量過大,現(xiàn)在我們極難做出一個(gè)滿足全部需要排課系統(tǒng)。因?yàn)樗粌H要考慮到教室沖突問題和老師沖突問題,還要考慮到分段課、單雙周課時(shí)資源利用問題;另外因?yàn)楦咝=虒W(xué)特點(diǎn),還要處理合班課、分班課、體育課和選修課等特殊課程。針對這些問題,在此專門對數(shù)據(jù)庫設(shè)計(jì)作了部分探索,并于架構(gòu)選擇和模塊劃分上經(jīng)過精心調(diào)整,在菜單設(shè)計(jì)上也表現(xiàn)了人性化操作。該設(shè)計(jì)貼近用戶需求,功效完整,架構(gòu)合理,并用大量框圖模型表現(xiàn)了系統(tǒng)計(jì)劃。該系統(tǒng)實(shí)現(xiàn)上機(jī)時(shí)間安排,課程安排,教室安排,和它們之間不沖突和資源高效利用;這更切合學(xué)院教學(xué)需要,降低了排課管理工作工作量和節(jié)省了時(shí)間,同時(shí)課程安排完成后,學(xué)院可快速取得課表情況信息,為教學(xué)工作帶來方便。本系統(tǒng)界面友好,操作簡單,使用方便。課題要求2.1設(shè)計(jì)功效要求程序運(yùn)行時(shí),用戶輸入老師信息(姓名、老師號、工作量)、課程信息(課程名、課程號、周課時(shí)、總課時(shí)、優(yōu)先級)、老師對所期望講講課程期望值和教學(xué)工作量等相關(guān)信息,全部信息應(yīng)保留在文件中,程序依據(jù)課程優(yōu)先級和老師對課程期望值進(jìn)行排課。為了公平起見,程序隨機(jī)分配課程,假如10門課程全部有優(yōu)先級,程序以隨機(jī)次序?qū)⑦@些課程分給老師,假如10位老師對某門課程期望值為1,程序應(yīng)從10位老師中隨機(jī)選擇一個(gè)。最終輸出排課情況,即某位老師上某門課程,和某位老師工作量。測試數(shù)據(jù):程序應(yīng)能實(shí)現(xiàn)對不少于20門課和10個(gè)老師排課,而且使每個(gè)老師滿意度達(dá)成最大,不存在工作量不滿老師和未分配課等情況。2.2匯報(bào)要求封面
2.課程設(shè)計(jì)匯報(bào):
3.⑴
系統(tǒng)總體方案
⑵
設(shè)計(jì)思緒和關(guān)鍵步驟
⑶
各功效模塊和步驟圖
⑷
設(shè)計(jì)代碼
⑸
心得體會(huì)和參考資料系統(tǒng)總體方案:3.1方案描述某學(xué)校每位老師全部有教學(xué)工作量,老師對她所期望講授課程表示為一個(gè)期望值,1,2?,n,其中1是最高期望值。課程也有優(yōu)先級,1,2?,n,用來決定將課程分給老師次序,其中1是高優(yōu)先級。設(shè)計(jì)一個(gè)程序針對一些課程給一些老師進(jìn)行排課。要求:
(一)程序運(yùn)行時(shí),用戶輸入老師信息(姓名、老師號、工作量)、課程信息(課程名、課程號、周課時(shí)、總課時(shí)、優(yōu)先級),老師對所期望講講課程期望值和教學(xué)工作量等相關(guān)信息,全部信息應(yīng)保留在文件中。
(二)程序依據(jù)課程優(yōu)先級和老師對課程期望值進(jìn)行排課。最終輸出排課情況,即某位老師上某門課程,和某位老師工作量。
(三)能夠?qū)崿F(xiàn)對文件修改。
(四)能夠在各個(gè)界面中實(shí)現(xiàn)退出和進(jìn)入循環(huán)。
(五)能夠退出本系統(tǒng)。
(六)程序應(yīng)能實(shí)現(xiàn)對不少于20門課和10個(gè)老師排課,而且使每個(gè)老師滿意度達(dá)成最大,不存在工作量不滿老師和未分配課等情況。3.2系統(tǒng)設(shè)計(jì)框圖:3.3各功效模塊:命令對應(yīng)函數(shù)功效描述1input_teacher輸入數(shù)據(jù)并寫入文件2input_course
輸入數(shù)據(jù)并寫入文件3input_num
輸入數(shù)據(jù)并寫入文件4arranging排課
5print輸出排課結(jié)果6print_help
幫助7print_teacher輸出文件信息8print_course輸出文件信息
9print_num
輸出文件信息10change修改文件信息源程序代碼Teacher.h:#include<iostream.h>
#include<string.h>class
teacher
{
private:
char
name[11];
int
id;
int
work_load;
int
total;
public:
teacher();
void
set_teacher(char
*pn,int
i,int
w);
void
set_total(int
t)
{
total=t;
}char
*get_name()
{return
name;}
int
get_id()
{return
id;}
int
get_work_load()
{return
work_load;}
int
get_total()
{return
total;}
void
print();
};
teacher::teacher(){
strcpy(name,"無");
id=0;
work_load=0;
total=0;
}
void
teacher::set_teacher(char
*pn,int
i,int
w)
{
strcpy(name,pn);
id=i;
work_load=w;
}
void
teacher::print()
{
cout<<"姓名:"<<name<<endl;
cout<<"編號:"<<id<<endl;
cout<<"工作量:"<<work_load<<endl;
}Course.h:
#include<string.h>
class
course
{
private:
char
course_name[15];
int
course_id;
int
week_hour;
int
total_hour;
int
N;
public:
course(void);
void
set_course(char
*pname,inti,int
w,int
t,intn)
char
*get_course_name()
{return
course_name;}
int
get_course_id()
{return
course_id;}
int
get_week_hour()
{return
week_hour;}
int
get_total_hour()
{return
total_hour;}
int
get_N()
{return
N;}
void
print();
};course::course(void)
{
strcpy(course_name,"無");
course_id=0;
week_hour=0;
total_hour=0;
N=0;
}void
course::set_course(char
*pname,int
i,int
w,int
t,int
n)
{
strcpy(course_name,pname);
course_id=i;
week_hour=w;
total_hour=t;
N=n;
}void
course::print()
{
cout<<"課程名:"<<course_name<<endl;
cout<<"編號:"<<course_id<<endl;
cout<<"周課時(shí):"<<week_hour<<endl;
cout<<"總課時(shí):"<<total_hour<<endl;
cout<<"優(yōu)先級:"<<N<<endl;
}
void
course::print()
{
cout<<"課程名:"<<course_name<<endl;
cout<<"編號:"<<course_id<<endl;
cout<<"周課時(shí):"<<week_hour<<endl;
cout<<"總課時(shí):"<<total_hour<<endl;
cout<<"優(yōu)先級:"<<N<<endl;
}
{
x=0;
y=0;
}
void
set_x(int
a)
{
x=a;
}
void
set_y(int
b)
{
y=b;
}
int
get_x()
{return
x;}
int
get_y()
{return
y;}
};排課.cpp:
#include<iostream.h>
#include
<stdlib.h>
#include<fstream.h>
#include<iomanip.h>
#include<stdio.h>
#include"teacher.h"
#include"course.h"
#include"arrange.h"
#include
<time.h>
//using
namespace
std;void
input_teacher(teacher
*t,int
n,int
m);void
input_course(course
*c,int
m);void
input_num(int
**num,int
n,int
m);void
arranging(int
**num,teacher
*t,course
*c,arrange
*a,int
n,int
m);void
print(teacher
*t,course
*c,arrange
*a,int
m);
void
print_help();void
print_teacher();void
print_course();
void
print_num();
void
change(int
**num,teacher
*t,course
*c,arrange
*a,int
n,int
m);
void
change_teacher(teacher
*t,int
n);void
change_course(course
*c,int
m);
void
change_num(teacher
*t,course
*c,int
**num,int
n,int
m);
void
main(){
int
i,n,m;
cout<<"==========================老師排課系統(tǒng)==========================="<<endl;
cout<<"老師人數(shù):";cin
>>n;
cout<<"課程數(shù):";cin>>m;
int**
num=new
int*[n];for(i=0;
i<n;
++i)
{
num[i]=new
int[m];
}teacher
*t;
course
*c;
arrange
*a;
t=new
teacher[n];
c=new
course[m];
a=new
arrange[m];
if(t==NULL||c==NULL||a==NULL)
{
cout<<"內(nèi)存分配失敗"<<endl;
return
}cout<<"
1.
輸入老師基礎(chǔ)數(shù)據(jù)\n";
cout<<"
2.
輸入課程基礎(chǔ)數(shù)據(jù)\n";
cout<<"
3.
輸入老師對課程滿意度\n";
cout<<"
4.
排課\n";
cout<<"
5.
輸出排課結(jié)果\n";
cout<<"
6.
幫助\n";
cout<<"
7.
輸出老師信息\n";
cout<<"
8.
輸出課程信息\n";
cout<<"
9.
輸出老師對課程滿意度\n";
cout<<"
10.修改文件數(shù)據(jù)\n";
cout<<"
0.
退出\n";
cout<<"\n
輸入你選擇:";
int
ch;
Do{
//cout<<"\n\n
請選擇:\n";
//cout<<"
1.
輸入老師基礎(chǔ)數(shù)據(jù)\n";
//cout<<"
2.
輸入課程基礎(chǔ)數(shù)據(jù)\n";
//cout<<"
3.
輸入老師對課程滿意度\n";
//cout<<"
4.
排課\n";//cout<<"
5.
輸出排課結(jié)果\n";
//cout<<"
6.
幫助\n";
//cout<<"
0.
退出\n";
//cout<<"\n
輸入你選擇:";
cin>>ch;
switch(ch){
case
1
:
input_teacher(t,n,m);break;
case
2
:
input_course(c,m);break;
case
3
:
input_num(num,n,m);break;
case
4
:
arranging(num,t,c,a,n,m);break;
case
5
:
print(t,c,a,m);break;
case
6
:
print_help();break;
case
7
:
print_teacher();break;
case
8
:
print_course();break;
case
9
:
print_num();break;
case
10:
change(num,t,c,a,n,m);break;
case
0
:
break;
}}
while(ch);
for(i=0;
i<n;
++i)
{
delete[]
num[i];
}
delete[]
num;
delete
[]t;
delete
[]c;
delete
[]a;
}
void
input_teacher(teacher
*t,int
n,int
m)
{
fstream
teachers("d:\\teachers.txt",ios::out);
teachers<<"姓名"<<setw(20)<<"編號"<<setw(20)<<"工作量<<endl;
int
i,j,work,id;
char
name[11],nn[11];
cout<<"\n
請輸入老師基礎(chǔ)數(shù)據(jù):"<<endl;
while(1)
{
int
total=0;
for(i=0;i<n;i++)
{
cout<<"第"<<i+1<<"個(gè)老師:\n";
cout<<"編號:";
while(1)
{
if
(cin
>>
id)
break;
else
{
cout<<"編號應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();}}
cout<<"姓名:";
while(1)
{
cin>>name;
for(j=0;j<11;j++)
{
if
(
('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=name[j]&&name[j]<='~'
)
nn[j]=0;
else
nn[j]=1;
}
if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1)
break;
else
{cout<<"姓名應(yīng)為字母,請重新輸入”<<endl;
cin.clear();
cin.ignore();
}
}cout<<"工作量:";
while(1){
if
(cin
>>
work)
break;
else
{
cout<<"工作量應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();cin.ignore();
}
}
total=total+work;
if(total>m)
{cout<<"總工作量大于課程數(shù),請重新輸入:"<<endl;break;}
t[i].set_teacher(name,id,work);
teachers<<name<<setw(20)<<id<<setw(20)<<work<<endl;}
if(total==m)
break;
if(total>m)
continue;
}
teachers.close();
}
void
input_course(course
*c,int
m)
{
fstream
courses("d:\\courses.txt",ios::out);
courses<<"課程名"<<setw(10)<<"課程號"<<setw(10)<<"周課時(shí)"<<setw(10)<<"總課時(shí)"<<setw(10)<<"優(yōu)先級"<<endl;int
week_hour,total_hour,d1,id,i,j;
char
name[11];
char
nn[11];
for(i=0;i<m;i++)
{
cout<<"第"<<i+1<<"門課:\n";
cout<<"課程號:";
while(1)
{
if
(cin
>>
id)
break;
else
{
cout<<"課程號應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"課程名:";
while(1)
{
cin>>name;
for(j=0;j<11;j++)
{
if
(
('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=name[j]&&name[j]<='~'
)
nn[j]=0;
else
nn[j]=1;
}
if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1)
break;else
{
cout<<"課程名應(yīng)為字母,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"周課時(shí):";
while(1)
{
if
(cin
>>
week_hour
)
break;
else
{
cout<<"周課時(shí)應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"總課時(shí):";
while(1)
{
if
(cin
>>
week_hour
)
break;
else
{
cout<<"周課時(shí)應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}cout<<"總課時(shí):";
while(1)
{if
(cin
>>
total_hour
)
break;
else
{
cout<<"總課時(shí)應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}cout<<"優(yōu)先級:";
while(1)
{
if
(cin>>d1)
break;
else
{
cout<<"優(yōu)先級應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
c[i].set_course(name,id,week_hour,total_hour,d1);
courses<<name<<setw(10)<<id<<setw(10)<<week_hour<<setw(10)<<total_hour<<setw(10)<<d1<<endl;
}
courses.close();
}
void
input_num(int
**num,int
n,int
m)
//老師對課程滿意度輸入
{
fstream
nums("d:\\hope.txt",ios::out);
nums<<setw(4)<<"滿意度"<<setw(6);
int
nu,i,j,k;
for(k=0;k<m;k++)
{
nums<<"第"<<k+1<<"門課程"<<setw(5);
}nums<<endl;
for(i=0;i<n;i++)
{
nums<<"第"<<i+1<<"名老師"<<setw(3);
for(j=0;j<m;j++)
{
cout<<"第"<<i+1<<"位老師對第"<<j+1<<"門課程滿意度"<<endl;
//cin>>nu;
while(1)
{
if
(cin
>>
nu)
break;
else
{
cout<<"滿意度應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
num[i][j]=nu;
nums<<nu<<setw(13);
}
nums<<endl;
}
nums.close();
}
void
arranging(int
**num,teacher
*t,course
*c,arrange
*a,int
n,int
m)
//排課{
int
h,s,i,j,b,k=1,min,min1,q=0;
min=c[0].get_N();
srand((unsigned)time(NULL));
for(s=0;s<m;s++)
{
if(c[s].get_N()<min)
min=c[s].get_N();
}
while(h)
{
for(i=0;i<m;i++)
{
if(c[i].get_N()==min)
//判定課程優(yōu)先級
{
min1=num[0][i];
for(j=0;j<n;j++)
{
if
(
num[j][i]<min1&&t[j].get_total()<t[j].get_work_load()
)
min1=num[j][i];
}
while(1>0)
{
b=rand()%n;
if(b>n)
continue;
else
if(t[b].get_total()>t[b].get_work_load())
continue;
else
if(num[b][i]!=min1)
continue;
else
{
a[q].set_x(b);a[q].set_y(i);q++;
int
w=t[b].get_total()+1;
t[b].set_total(w);//k=0;
cout<<"第"<<q<<"次排課"<<endl;
}
break;
}
}
//if(i=m-1)
min++;}min++;
if(q<m)
h=1;
else
h=0;
}
}
void
print(teacher
*t,course
*c,arrange
*a,int
m)
//輸出排課結(jié)果
{
int
i,a1,b1;
for(i=0;i<m;i++)
{
a1=a[i].get_x();
b1=a[i].get_y();
cout<<"第"<<a1+1<<"位老師上第"<<b1+1<<"門課"<<endl;t[a1].print();
c[b1].print();
}
}
void
print_help()
//幫助函數(shù)
{
cout<<"
1.
輸入老師基礎(chǔ)數(shù)據(jù)\n";
cout<<"
2.
輸入課程基礎(chǔ)數(shù)據(jù)\n";
cout<<"
3.
輸入老師對課程滿意度\n";
cout<<"
4.
排課\n";
cout<<"
5.
輸出排課結(jié)果\n";
cout<<"
6.
幫助\n";
cout<<"
7.
輸出老師信息\n";cout<<"
8.
輸出課程信息\n";
cout<<"
9.
輸出老師對課程滿意度\n";
cout<<"
10.修改文件數(shù)據(jù)\n";
cout<<"
0.
退出\n";
}
void
print_teacher()
//輸出老師信息
{
ifstream
fin("d:\\teachers.txt",ios::nocreate);
if(!fin)
{
cout<<"File
open
error!\n";
return;
}
char
c[80];
while(!fin.eof())
//判定文件是否讀結(jié)束
{
fin.read(c,80);
cout.write(c,fin.gcount());
}
fin.close();
}
void
print_course()
//輸出課程信息
{
ifstream
fin("d:\\courses.txt",ios::nocreate);
if(!fin)
{cout<<"File
open
error!\n";
return;
}
char
c[80];
while(!fin.eof())
{
fin.read(c,80);
cout.write(c,fin.gcount());
}
fin.close();
}
void
print_num()
//輸出老師對課程滿意度
{
ifstream
fin("d:\\hope.txt",ios::nocreate);
if(!fin)
{
if(!fin)
{
cout<<"File
open
error!\n";
return;
}
char
c[80];
while(!fin.eof())
//判定文件是否讀結(jié)束
}
fin.read(c,80);
cout.write(c,fin.gcount());
}
fin.close();
}
void
change(int
**num,teacher
*t,course
*c,arrange
*a,int
n,int
m)
//修改文件信息
{
int
ch;
do
{
cout<<"\n\n
請選擇:\n";cout<<"
1.
修改老師基礎(chǔ)數(shù)據(jù)\n";
cout<<"
2.
修改課程基礎(chǔ)數(shù)據(jù)\n";
cout<<"
3.
修改老師對課程滿意度\n";
cout<<"
0.
退出\n";
cout<<"\n
輸入你選擇:";
cin>>ch;
switch(ch)
{
case
1
:
change_teacher(t,n);break;
case
2
:
change_course(c,m);break;
case
3
:
change_num(t,c,num,n,m);break;
case
0
:
break;
}
}
while(ch);
}
void
change_teacher(teacher
*t,int
n)
{
int
i,aa,bb,k,j,ii;
char
na[11];
char
nn[11];
cout<<"請輸入要修改老師編號:";
cin>>ii;
for(i=0;i<n;i++)if(t[i].get_id()==ii)
{
cout<<"此老師原信息:"<<endl;
t[i].print();
k=i;
}
cout<<"請輸入此老師新信息:"<<endl;
cout<<"編號:";
while(1)
{
if
(cin
>>
aa)
break;
else
{
cout<<"編號應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"姓名:";
while(1)
{
cin>>na;for(j=0;j<11;j++)
{
if
(
('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[j]<='~'
)
nn[j]=0;
else
nn[j]=1;
}
if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1)
break;
else
{
cout<<"姓名應(yīng)為字母,請重新輸入:"<<endl;"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"工作量:";
while(1)
{
if
(cin
>>
bb)
break;
else
{
cout<<"工作量應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
t[k].set_teacher(na,aa,bb);
fstream
teachers("d:\\teachers.txt",ios::out);
teachers<<"姓名"<<setw(20)<<"編號"<<setw(20)<<"工作量"<<endl;
for(j=0;j<n;j++)
{
if(j==k)
teachers<<na<<setw(20)<<aa<<setw(20)<<bb<<endl;else
teachers<<t[j].get_name()<<setw(20)<<t[j].get_id()<<setw(20)<<t[j].get_work_load()<<endl;
}
teachers.close();}
void
change_course(course
*c,int
m)
//修改課程信息
{
int
i,aa,bb,cc,dd,k,j,ii;
char
na[11];
char
nn[11];
cout<<"請輸入要修改課程編號:";
cin>>ii;
for(i=0;i<m;i++)
if(c[i].get_course_id()==ii)
{
cout<<"此課程原信息:"<<endl;
c[i].print();
k=i;
}
cout<<"請輸入此課程新信息:"<<endl;
cout<<"課程號:";
while(1)
{
if
(cin
>>aa)
break;
else
{
cout<<"課程號應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"課程名:";
while(1)
{
cin>>na;
for(j=0;j<11;j++)
{
if
(
('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[j]<='~'
)
nn[j]=0;
else
nn[j]=1;
}if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn[10]==1)
break;else
{
cout<<"課程名應(yīng)為字母,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"周課時(shí):";
while(1)
{
if
(cin
>>
bb
)
break;
else
{
cout<<"周課時(shí)應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
cout<<"總課時(shí):";
while(1)
{
if
(cin
>>
cc
)
break;
else
{
cout<<"總課時(shí)應(yīng)為數(shù)字,請重新輸入:"<<endl;cin.clear();
cin.ignore();
}
}
cout<<"優(yōu)先級:";
while(1)
{
if
(cin
>>
dd)
break;
else
{cout<<"優(yōu)先級應(yīng)為數(shù)字,請重新輸入:"<<endl;
cin.clear();
cin.ignore();
}
}
c[k].set_course(na,aa,bb,cc,dd);
fstream
courses("d:\\courses.txt",ios::out);
courses<<"課程名"<<setw(10)<<"課程號"<<setw(10)<<"周課時(shí)"<<setw(10)<<"總課時(shí)"<<setw(10)<<"優(yōu)先級"<<endl;for(j=0;j<m;j++)
{
if(j==k)
courses<<na<<setw(10)<<aa<<setw(10)<<bb<<setw(10)<<cc<<setw(10)<<dd<<endl;
else
courses<<c[j].get_course_name()<<setw(10)<<c[j].get_course_id()<<setw(10)<<c[j].get_week_hour()<<setw(10)<<c[j].get_total_hour()<<setw(10)<<c[j].get_N()<<endl;
}
courses.close();
}
void
change_num(teacher
*t,course
*c,int
**num,int
n,int
m)
{
int
ii,jj,i,j,k,nn,a1,b1,c1;
cout<<"請輸入要修改老師編號:";
while(1)
{if
(cin
>>
ii)
break;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《大學(xué)班會(huì)》課件
- 2020版 滬教版 高中音樂 必修2 歌唱 上篇《第一單元?dú)忭嵣鷦?dòng)》大單元整體教學(xué)設(shè)計(jì)2020課標(biāo)
- 《塑膠模具設(shè)計(jì)》課件
- 合建合同范本
- 《外科手術(shù)中的告知》課件
- 2025年青海貨運(yùn)從業(yè)資格考試模擬考試題庫答案大全
- 2025年資陽c1貨運(yùn)從業(yè)資格證考試內(nèi)容
- 2025年慶陽a2貨運(yùn)從業(yè)資格證模擬考試題
- 2025年吉林道路運(yùn)輸從業(yè)資格證考試
- 2025年山西年貨運(yùn)從業(yè)資格證考試從業(yè)從業(yè)資格資格題庫及答案
- 寶馬-n52正時(shí)圖-f18n52發(fā)動(dòng)機(jī)正時(shí)
- ABB定位器使用與調(diào)校解析課件
- 金融科技課件(完整版)
- 食管癌的護(hù)理PPT模板
- 杭州市檔案館投標(biāo)方案及概念解說
- 八年級上學(xué)期體育與健康教案全集(48課時(shí))
- 數(shù)據(jù)中心供配電系統(tǒng)概述(課堂PPT)
- 質(zhì)檢部組織架構(gòu)
- 注塑產(chǎn)品首件檢驗(yàn)表
- 當(dāng)事人送達(dá)地址確認(rèn)書
- 復(fù)合風(fēng)管施工方案
評論
0/150
提交評論