專業(yè)課程設(shè)計(jì)用c設(shè)計(jì)一個(gè)排課程序_第1頁
專業(yè)課程設(shè)計(jì)用c設(shè)計(jì)一個(gè)排課程序_第2頁
專業(yè)課程設(shè)計(jì)用c設(shè)計(jì)一個(gè)排課程序_第3頁
專業(yè)課程設(shè)計(jì)用c設(shè)計(jì)一個(gè)排課程序_第4頁
專業(yè)課程設(shè)計(jì)用c設(shè)計(jì)一個(gè)排課程序_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論