教学计划论证报告

教学计划论证报告 | 楼主 | 2017-08-09 14:09:24 共有3个回复
  1. 1计算机应用技术专业修改教学计划论证报告
  2. 2教学计划的编制设计报告
  3. 32017旅游管理专业实施性教学计划市场调研报告

核心摘要:计算机应用技术专业修订教学计划的论证报告,阅芰疚唬闫笠敌枨蟮乃枷胄薅扑慊到萄苹鞘直匾,辅助函数根据所给字符串在对应节点的前驱中删除,功能函数退出并将系统内信息保存至用户桌面。

计算机应用技术专业修改教学计划论证报告2017-08-09 14:06:25 | #1楼回目录

计算机应用技术专业修订教学计划的论证报告

我校计算机专业创办于1994年,我们以服务县域经济为己任,不断探索,改革创新,已建立以“宽基储活模块”为核心的适应市场经济和技术进步的计算机专业课程体系。先后与京津唐的多家企事业单位建立了稳定的用工关系,解决了企业紧缺的实用型、技能型专门人才缺口问题,也涌现出许多优秀的技术骨干,深受社会的欢迎。多年来在省市职业学校师生计算机技能大赛中,多次摘金夺银。

一、原教学计划局限性

1、事业规模

学校从1994年开始招收计算机专业的学生,迄今已连续开办该专业16年。目前,学校共有计算机专业的学生共6个班200多名学生。

2、教师队伍

目前,计算机应用技术专业专任教师8人,都已经取得各类高级职业资格。

3、装备设施

拥有计算机专用教室6个,有教学用计算机270台,计算机组装维修、网络系统集成教学实训室1间,附属各种网络设备、软件等,能满足学生实习实训要求和相关专业课教学需要。

二、修订计算机专业教学计划的必要性

随着计算机在社会各个领域的广泛使用,社会对计算机应用人才的需求量越来越大,尤其需要大量的计算机初、中级应用型和专业技能型人才。本着为地方经济建设培养专业人才的宗旨,本专业开办后,我们始终与地方经济组织及企业保持广泛的联系和合作,充分发挥地方经济组织及企业在专业开发与建设中的作用,使学校办学思路和培养目标能始终紧贴地方经济和社会发展的脉搏。同时,从教学设施、师资队伍、教材和 1

教学管理等诸多方面,制定并不断完善计算机应用技术专业建设规划和实施性教学计划,并认真组织实施,使本专业能够稳定、可持续地向前发展,取得了良好的教育、教学质量。

经过调查研究,认真论证,根据经济社会发展需求,确定了计算机应用技术专业作为骨干专业加以重点建设。近几年来,学生的知识结构、年龄结构、社会对计算机专业人才的要求和岗位群等,与过去比有了较大的变化。通过到企业调研,我们觉得:传统的计算机专业教学计划,无法满足为企业服务及教学改革的需要,本着提升素质为基础,以能力为本位,满足企业需求的思想修订计算机专业教学计划是十分必要的。

三、 立足市场需求,进行课程改革

在社会需求和计算机专业岗位职业能力分析的基础上,紧紧围绕人才培养目标,根据“以就业为导向,以能力为本位”的指导思想,对计算机应用技术专业的课程结构进行整体优化,对文化课、专业基础课、专业实践课在结构、比例、衔接等方面精心设计,以培养学生职业技能为主线,以夯实基础和专业技能为基点,实现学生专业知识和专业技能水平的提高。

四、与时俱进,充实教学内容

采用部颁和省颁的通用教学大纲,但少数课程无统一的教学大纲,我们则在市场调研的基础上,根据劳动力市场对专业知识和技能的要求,按照教学计划规定的培养目标、业务范围、教学时数制订。在此基础上,学校还不断调整和充实教学内容,如删减教材中比较陈旧的内容,增加网络应用、CorelDraw、I11ustrator、3DMax动画设计、动画前期设定、后期剪辑特效、网络综合布线、网络安全基储网络操作系统和服务器搭建等内容,充分满足学生就业岗位技能需求。

2

教学计划的编制设计报告2017-08-09 14:09:02 | #2楼回目录

《数据结构课程设计》报告

一、需求分析

在教学课程的安排中,人工进行排课的方式不仅工作量巨大,而且可用性不强,出错的概率大,耗费时间长,由此,该软件应运而生。

对于每个不同的学校来说,有不同的排课规则,但唯一不变的就是课程不允许有冲突,该冲突具体指,课程间有一定的先修关系,这种限制可以通过计算机的快速处理信息的能力迅速解决,以达到人们的日常需求。

由于每个规则的不同,软件必须可以通过修改相应的参数以达到不同的效果,例如学分限制、课程信息更新等诸多问题。该软件具体实现了学分限制、课程添加、课程关系添加、课程删除的修改功能,在一定程度上满足了普遍需求。

二、概要设计

1.主要功能调用(Main函数)

int main()

{

WelcomeInfo(); Print_Help(); while (true) { string Command; cout << "请输入命令:"; cin >> Command; Small2Big(Command); //将命令修改为大写字母 if (Command == "HELP") Print_Help(); else if (Command == "RF") ReadFile(); else if (Command == "TP") TopologicalSort(); else if (Command == "GETTOPORDER") PrintTopologicalOrder(); else if (Command == "GETLISTEN") PrintListenList(); else if (Command == "GETINFO") GetInfo(); else if (Command == "ADD") AddNewOne(); else if (Command == "ADDRELATION") AddRelation(); else if (Command == "UPDAtAFILE") UpDataFile(); else if (Command == "SETMAX") SetMaxScore(); else if (Command == "DELETE") Delete(); else if (Command == "EXIT") break; else if (Command == "EXITANDSAVE") { 1

} } } ExitAndSave(); break; else if (Command == "SETMAXSCORE") SetMaxScore(); elsecout << "命令无法识别,请重新输入。" << endl; return 0;

2.所需数组与函数列表(定义)

void WelcomeInfo();

void Print_Help();//功能函数,打印帮助文档

void ReadFile();//功能函数,读取文件

void Initialization();//初始化

void TopologicalSort();//功能函数,拓扑排序

void SetListenList();//辅助函数,生成课表

bool Judge(Info *Goal);

map <string, Info*>::iterator FindNoPriorOne(map <string, Info*> &Goal);//辅助函数,查找没有前驱的节点

void EraseFromPrior(vector <Info*>::iterator &Index, string &Goal);//辅助函数,根据所给字符串,在对应节点的前驱中删除

void GetInfo();//功能函数,获取系统内信息

void AddNewOne();//功能函数,添加一门新的课程

void AddRelation();//功能函数,给任意课程添加先修关系

void UpData();//辅助函数,更新数据

void UpDataFile();//辅助函数,更新数据

void UpDataListen();//辅助函数,更新数据

bool IsRepetition(string Goal);//辅助函数,判断是否存在相同名称的课程

void PrintNowListen();//辅助函数,打印当前课程信息

void PrintListenList();//辅助函数,打印课程表

void PrintListenRelation();//辅助函数,打印课程间关系

void PrintTopologicalOrder();//辅助函数,打印拓扑序列

void SetMaxScore();//功能函数,设置每学期学分最大值

void Delete();//功能函数,删除指定课程

void DelRelation(Info *Goal);//辅助函数,删除指定课程与其他课程之间的关系

void ExitAndSave();//功能函数,退出并将系统内信息保存至用户桌面

void Small2Big(string &Goal);

map <string, Info*> Listen;//保存课表信息

map <string, Info*> Listen_Transcript;//拓扑排序临时使用,保护课表信息不被更改

vector <Info*> TopologicalOrder;//保存拓扑序列

vector <vector <Info*> > ListenList;//保存课程表信息

double NowScore = 0;//记录当前正在安排课程的学期的学分

double MAX = 12;//最大学分限制

2

double MIN = 1000;//修改最大学分限制时的最少学分限制,保护拓扑排序的顺利进行

3.函数关系调用图

三、详细设计

1.保存课程信息的结构体定义

struct Info

{

}; Info(string _Number, string _Name, double _Score) { } string Number;//序号 string Name;//名称 double Score;//学分 bool Flag;//判断条件,用于拓扑排序 vector <Info*> Prior;//保存该节点的先修课程 vector <Info*> Next;//保存该节点的后继课程 Number = _Number; Name = _Name; Score = _Score; Flag = false;

2.主要函数(初始化函数、读取文件函数及拓扑排序函数)

(1)初始化函数(深拷贝)

void Initialization()

{

cout<<"正在初始化..."<<endl;

Listen_Transcript.clear();

TopologicalOrder.clear();

ListenList.clear();

NowScore=0;

//拷贝Listen中各元素至Listen_Transcript

for(map<string,Info*>::iterator Listen_Iterator=Listen.begin();

{ Listen_Iterator!=Listen.end(); Listen_Iterator++)

3

} Info *transcript_Transcript = new Info(Listen_Iterator->second->Number,Listen_Iterator->second->Name,Listen_Iterator->second->Score); Listen_Transcript[Listen_Iterator->first]=transcript_Transcript;

//拷贝Listen中各元素的前驱和后继至Listen_Transcript

for(map<string,Info*>::iterator Listen_Iterator=Listen.begin();

{

Listen_Transcript[Listen_Iterator->first]->Next.push_back(Listen_Transcript[(*Next_Iterator)->Number]);

Listen_Transcript[Listen_Iterator->first]->Prior.push_back(Listen_Transcript[(*Prior_Iterator)->Number]);}

cout<<"初始化已完成!"<<endl;

} for(vector <Info*>::iterator Prior_Iterator=Listen_Iterator->second->Prior.begin(); Prior_Iterator!=Listen_Iterator->second->Prior.end(); Prior_Iterator++) for(vector <Info*>::iterator Next_Iterator=Listen_Iterator->second->Next.begin(); Next_Iterator!=Listen_Iterator->second->Next.end(); Next_Iterator++) Listen_Iterator!=Listen.end(); Listen_Iterator++)

(2)读取文件函数

void ReadFile()//对外接口

{

cout << "正在读取文件..." << endl;

UpDataListen();//读取文件

cout << "读取完成。" << endl;

TopologicalSort();//拓扑排序

}

void UpDataListen()//读取文件函数

{

FILE *stream;

freopen_s(&stream, "input.txt", "r", stdin);//定位在当前程序运行文件夹下的input.txt文件

string Number, Name;

double Score;

while (true)

{

cin >> Number >> Name >> Score; if (Number == "0" && Name == "0" && Score == 0) break; Info *transcript = new Info(Number, Name, Score); Listen[Number] = transcript; if (Score < MIN) MIN = Score;//确定最小学分

4

}

string Begin, End;

while (true)

{

}

cin >> MAX;

freopen_s(&stream, "CON", "r", stdin);//返回控制台输入

} cin >> Begin >> End; if (Begin == "0" && End == "0") break; Listen[Begin]->Next.push_back(Listen[End]);//添加“先->后”的关系 Listen[End]->Prior.push_back(Listen[Begin]);//添加“后->先”的关系

(3)拓扑排序函数

void TopologicalSort()

{

} Initialization(); cout << "正在进行拓扑排序并生成课表..." << endl; while (true) { } SetListenList(); cout << "拓扑排序已生成!" << endl; cout << "课表已生成!" << endl; map <string, Info*>::iterator Listen_Transcript_Iterator = FindNoPriorOne(Listen_Transcript); if (Listen_Transcript_Iterator != Listen_Transcript.end()) {} else break; vector <Info*> &prior = Listen_Transcript_Iterator->second->Prior; vector <Info*> &next = Listen_Transcript_Iterator->second->Next; TopologicalOrder.push_back(Listen[Listen_Transcript_Iterator->first]); for (vector <Info*>::iterator p = next.begin();p != next.end();p++) { } Listen_Transcript.erase(Listen_Transcript_Iterator); (*p)->Flag = true; EraseFromPrior(p, Listen_Transcript_Iterator->second->Name);

(4)拓扑排序中的查找函数FindNoPriorOne();

map <string, Info*>::iterator FindNoPriorOne(map <string, Info*> &Goal) {

map <string, Info*>::iterator Goal_Iterator; for (Goal_Iterator = Goal.begin();Goal_Iterator != Goal.end();Goal_Iterator++)5

}if (Goal_Iterator->second->Prior.empty() == true && Goal_Iterator->second->Flag == false) return Goal_Iterator; if(Goal.empty()) return Goal.end(); for(Goal_Iterator = Goal.begin();Goal_Iterator != Goal.end();Goal_Iterator++) Goal_Iterator->second->Flag=false; if (Goal_Iterator->second->Prior.empty() == true && Goal_Iterator->second->Flag == false) return Goal_Iterator; for (Goal_Iterator = Goal.begin();Goal_Iterator != Goal.end();Goal_Iterator++) return Goal.end();

3.设置或修改信息函数、

(1)设置最大学分限制

void SetMaxScore()

{

";

}} MAX = max; cout<<"设置成功!如需永久生效,请输入\"UpDataFile\"进行操作"<<endl; else cout << "无法设置,请输入大于零的实数(输入\"0\"放弃操作):"; double max; cout << "请输入需要设置的学分限制(大于零的实数,输入\"0\"放弃操作):"; while (cin >> max) {if (max > 0) break; else if (max == 0) return; else if (max < MIN) cout << "无法设置,该数小于课程中的最小学分,请重新输入(输入\"0\"放弃操作):

(2)添加课程信息

void AddNewOne()

{

if (Listen.empty()) cout << "系统中没有课程信息!" << endl; else PrintNowListen(); string number, name; double score; cout << "请输入新课程的序号(输入\"Over\"放弃操作):"; while (cin >> number) { string number_Transcript=number; Small2Big(number_Transcript);6

} if (number_Transcript == "OVER") { } else if (number == "0") cout << "请输入非零的值(原因:零是本程序的默认终止符):"; else if (Listen[number] != NULL) cout << "该序号已存在,请重新输入课程序号:"; else break; cout << "已放弃添加课程!" << endl; return; Listen.erase(--Listen.end()); cout << "请输入新课程的名称(输入\"Over\"放弃操作):"; while (cin >> name) {} cout << "请输入新课程的学分:"; while (cin >> score) {} Info *transcript = new Info(number, name, score); Listen[number] = transcript; if (score < MIN) MIN = score; cout << "添加课程成功!" << endl; cout << "是否永久添加此课程至课程列表?<Y/N>"; char c; cin >> c; if (c == 'Y' || c == 'y') UpDataFile(); else if (c == 'N' || c == 'n') cout << "已放弃永久添加!" << endl; else {} 7 cout << "输入指令错误,无法永久添加至课程列表!(如有需要,请输入\"UpDataFile\"进行自动添加!)if (score == 0) cout << "请输入非零的值(原因:零是本程序的默认终止符):"; else if (score > MAX) cout << "已超过一学期最大选修学分,该课程将无法安排入课表,请重新输入:"; else break; string name_Transcript=name; Small2Big(name_Transcript); if (name_Transcript == "OVER") { } else if (name == "0") cout << "请输入非零的值(原因:零是本程序的默认终止符):"; else if (IsRepetition(name) == true)cout << "该名称已存在,请重新输入课程序号:"; else break; cout << "已放弃添加课程!" << endl; return; " << endl;

}

(3)添加课程间关系

void AddRelation()

{

endl;

} else { } PrintNowListen(); cout << "请输入两门课程的序号,表示这两门课程之间的先修关系,中间用空格隔开(输入\"Over\"放弃string begin, end; while (cin >> begin) { } string begin_Transcript=begin; Small2Big(begin_Transcript); if (begin_Transcript == "OVER") break; else cin >> end; if (begin == "0" || end == "0") cout << "请输入非零序号(输入格式:\"先修序号空格后修序号\" 输入else if (Listen[begin] != NULL && Listen[end] != NULL) {} else cout << "输入的序号有误,请重新输入(输入格式:\"先修序号空格后修序号\" 输入\"Over\"Listen[begin]->Next.push_back(Listen[end]); Listen[end]->Prior.push_back(Listen[begin]); cout<<"这两门课程间已建立先修关系!"<<endl; if (Listen.empty()) cout << "系统中没有课程信息!(请输入\"RF\"导入或输入\"AddNewOne\"添加课程)" << 操作):"; \"Over\"结束操作):"; 结束操作):";

(4)删除课程信息

void Delete()

{

PrintNowListen(); cout<<"请输入需要删除的课程序号:(输入\"Over\"放弃操作)"; string Num; while(cin>>Num) { string Num_Transcript=Num; Small2Big(Num_Transcript); if(Num_Transcript=="Over") break; else if(Listen[Num]==NULL) cout<<"对不起,课程序号不正确,请重新输入:(输入\"Over\"放弃操作)";8

}

} else { } DelRelation(Listen[Num]); map<string,Info*>::iterator Goal=Listen.begin(); while(Goal->first!=Num) Goal++; Listen.erase(Goal); cout<<"已成功删除该课程!"<<endl; break;

void DelRelation(Info *Goal)

{

} vector <Info*> &next=Goal->Next; vector <Info*> &prior=Goal->Prior; //遍历对象后继 for(vector <Info*>::iterator next_Iterator=next.begin();next_Iterator!=next.end();next_Iterator++) { } //遍历对象前驱 for(vector <Info*>::iterator prior_Iterator=prior.begin();prior_Iterator!=prior.end();prior_Iterator++) { } //遍历前驱的后继,并找到要删除的位置 vector <Info*>::iterator p=(*prior_Iterator)->Next.begin(); while((*p)->Number!=Goal->Number) p++; (*prior_Iterator)->Next.erase(p); //遍历后继的前驱,并找到要删除的位置 vector <Info*>::iterator p=(*next_Iterator)->Prior.begin(); while((*p)->Number!=Goal->Number) p++; (*next_Iterator)->Prior.erase(p);

4.更新函数(本地文件)

void UpData()

{

cout << "正在写入文件..." << endl; FILE *stream; freopen_s(&stream, "input.txt", "w", stdout); for (map <string, Info*>::iterator p = Listen.begin();p != Listen.end();p++)cout << p->first << " " << p->second->Name << " " << p->second->Score << endl; cout << "0 0 0" << endl; for (map <string, Info*>::iterator p = Listen.begin();p != Listen.end();p++) {

9

}} {} vector <Info*> &next = p->second->Next; for (vector <Info*>::iterator q = next.begin();q != next.end();q++)cout << p->first << " " << (*q)->Number << endl; cout << "0 0" << endl; cout << MAX << endl; freopen_s(&stream, "CON", "w", stdout); cout << "写入完成。" << endl;

5.获取信息函数

(1)获取全部信息

void GetInfo()

{

} cout << setw(70) << setfill('-') << "" << endl; if (Listen.empty()){ } else {} cout << "课程数目:" << Listen.size() << endl; cout << "每学期所有课程学分不超过:" << MAX << "学分" << endl; PrintListenRelation(); PrintTopologicalOrder(); if(!ListenList.empty())PrintListenList(); cout << "系统中没有课程信息!(请输入\"RF\"导入或输入\"Add\"添加课程)" << endl; cout << setw(70) << setfill('-') << "" << endl;

(2)获取课程信息

void PrintNowListen()

{

cout << "当前课程列表:" << endl; cout << "课程数目:" << Listen.size() << endl; cout << setw(70) << setfill('-') << "" << endl; cout << "序号 课程名称 学分" << endl; for (map <string, Info*>::iterator p = Listen.begin();p != Listen.end();p++) {

}}<< p->second->Score << endl; cout << setw(70) << setfill('-') << "" << endl;

(3)获取课程先修关系

void PrintListenRelation()

{

} cout << "课程间的先修关系表:" << endl; cout << "序号 先修关系" << endl; for (map <string, Info*>::iterator p = Listen.begin();p != Listen.end();p++) { } cout << setw(70) << setfill('-') << "" << endl; cout << p->first << setw(8 - p->first.size()) << setfill(' ') << ""; cout << p->second->Name; vector <Info*> &next = p->second->Next; for (vector <Info*>::reverse_iterator q = next.rbegin();q != next.rend();q++)cout << "-->" << (*q)->Name; cout << endl;

(4)获取当前课表

void PrintListenList()

{

cout << "课表信息如下:" << endl; if(ListenList.empty()) {} cout << "学期 课程名称 学分" << endl; int MaxSum=0; for (vector <Info*>::size_type i = 0;i < ListenList.size();i++) {double Sum=0; for (vector <Info*>::size_type k = 0;k < ListenList[i].size();k++) { cout << "" << i+1 << setw(13) << setfill(' ') << ""; cout << ListenList[i][k]->Name << setw(21 - ListenList[i][k]->Name.size()) << setfill(' ') << ""; cout << ListenList[i][k]->Score << endl; Sum+=ListenList[i][k]->Score; cout << "未生成课表!(请输入\"TP\"进行拓扑排序并生成课表)" << endl; cout << setw(70) << setfill('-') << "" << endl; return;

} } cout<<"第"<<i+1<<"学期总学分为:"<<Sum<<endl; cout << setw(70) << setfill('-') << "" << endl; cout<<"所有课程总学分为:"<<MaxSum<<endl; cout << setw(70) << setfill('-') << "" << endl;

(5)获取拓扑排序信息

void PrintTopologicalOrder()

{

} if (TopologicalOrder.empty()){}cout << "拓扑序列如下:" << endl; for (vector <Info*>::iterator p = TopologicalOrder.begin();p != TopologicalOrder.end();p++) { } cout << endl; if (p != TopologicalOrder.begin()) cout << "-->"; cout << (*p)->Number << " " << (*p)->Name; cout << "未进行拓扑排序!(请输入\"TP\"进行拓扑排序)" << endl; cout << setw(70) << setfill('-') << "" << endl; return; cout << setw(70) << setfill('-') << "" << endl;

6.退出函数(保存并退出)

void ExitAndSave()

{

} cout<<"正在保存..."<<endl; FILE *stream; char *HOME=getenv("HOME"); string Desktop(HOME); Desktop+="\\桌面\\ListenInfo.txt"; const char *IPLocation=Desktop.c_str(); freopen_s(&stream,IPLocation, "w", stdout); GetInfo(); freopen_s(&stream,"CON", "w", stdout); cout<<"保存完成!\n保存地址为:"+Desktop<<endl;

四、调试分析

1.发现问题

(1)程序代码的可移植性不高,可扩展性不强。

原因:各个函数中都包含有输入与输出,这是导致无法移植的主要原因。

其次,写该程序前,并没有勾勒出该系统的初步模型,导致后期功能添加的时候出现各种各样的问题。

例如:初始化函数之前是没有的,当时为了方便,将课程信息的拷贝同步在读取文件中和每次修改课程信息中,结果发现该方法过于死板,无法应对其他情况的变化,因此为了保证每次修改课程信息的操作以及拓扑排序的操作可以顺利进行,才添加了这个初始化函数,也是课程信息的深拷贝方法。

(2)文本保存无法在当前用户桌面进行

原因:虽然该方法可以在win xp系统下正常运行,其他环境运行情况未知。

该方法在visual studio 2017中无法正常编译,原因:getenv()这个API在后续版本中被抛弃。 该方法获取的用户环境变量的值,虽然在绝大部分windows个人电脑中均有定义,但在编译运行时同样会给予警告性错误。

2.解决问题(未解决问题的解决方案)

(1)增强程序的可移植性

在写程序前,应该对当前程序的目的以及逻辑关系做一个简单的规划,最好能将每个函数提前声明,并设计各个函数的调用关系,确定哪些是面向控制台、面向用户的输入输出,确定哪些是面向后台的功能型函数,明确对外,对内等函数直接的关系。

目前总结如下的函数功能分类:输入输出函数,功能函数,辅助功能函数,数据更新函数这四类。 下面将对每个分类的函数做简单的说明。

● 输入输出函数:从控制台读取或用其他方式读取数据,均作为单个函数进行操作,并提供对外接口函数,使用户通过简单的命令或操作,间接调用具体的函数,即提示用户输入-->确认用户输入-->返回输入后的结果。输出是类似的,在此不再重复。

● 功能函数:同样需要提供对外接口函数,但由于该功能的特殊性(或许在功能函数执行后,还需要提示输入),这些提示性的信息应该简洁明了,统一进行规划,即拥有多少输入和输出,都要将其扩展为具体函数。C++提供的指向函数的指针,很好的可以解决这个问题。 ● 辅助功能函数:在功能函数进行的时候,辅助函数最好能静默、同时执行,即辅助函数要尽量避免对该功能函数运行时间的影响。

● 数据更新函数:由于每个阶段的数据情况有所不同,及时更新数据内容,是后续操作顺利进行的唯一保证。在选择更新方式时,最好以自动更新为主,避免手动更新的方式,除非有特殊需要,比如保存、永久修改等。最坏的更新方式是在用户需要从系统中获取信息时才更新具体数据,这样虽然让用户看到的结果是一样的,但如果更新的时间较长,或者未进行修改操作而再次获取信息,这些都导致了计算机在做很多既浪费时间,又没有价值的事情。所以合理的管理数据更新的时机,也是非常有必要的。

(2)将文本正确保存在当前用户桌面

从不同的运行环境来看,要想实现该功能,必须采用“%HOME%\Desktop\*.txt”这样的形式,所以获取用户环境变量是一定要采用的方式,如果C++可以安全的从当前运行环境中获取用户环境变量的值,那么就可以简单地实现该功能,目前参考的函数为:getenv_s()。具体是否可以解决该问题,不详。

五、用户手册

将“教学计划的编制 x86 for visual studio 2017.exe”与“input.txt”放入同一目录下,双击运行“*.exe”,根据屏幕的提示进行操作即可。

PS:“Help”命令是在未进行操作的情况下获取帮助信息的最好方法。

所有命令均不区分大小写,但自行设置课程信息时,请区分大小写。

运行环境必须在windows xp系统下运行,其他系统环境未知。

若其他环境需要运行,运行“教学计划的编制 x86.exe”或“教学计划的编制 x64.exe”即可。

六、测试结果

程序的各个功能都准确实现,退出并保存功能不能适应环境,其他功能均正常。

2017旅游管理专业实施性教学计划市场调研报告2017-08-09 14:07:44 | #3楼回目录

旅游服务与管理专业市场调研报告

一、淮安市旅游资源和旅游市场概况

淮安的旅游资源的特色可以用20个字概括:“名人故里、文化名城、漕运之都、美食之乡、生态家园”。从调查情况看,我市旅游资源比较丰富,质量较好,品位较高,整个旅游资源以人文景系历史遗产景类为主,并有相当一部分的自然景系,现代人文吸引物也占一定比例。在地域分布上,淮安市区以人文旅游资源为主,洪泽、金湖以自然旅游资源为主,而盱眙、涟水则是人文和自然旅游资源并重区域。市区集中于淮安历史文化名城的楚州区,名人故居、祠堂、寺庙、衙门及古文化遗址等类型众多。淮安地处苏北平原,水资源极为丰富,但是淮安水多山少,山只相对集中于盱眙,均为低矮丘陵,缺少奇景。

目前我市旅游市场主要以国内市场为主,且市场分布集中性强,以华东地区周边省份以及沿沪宁、京沪高速公路等大中城市为重要客源市常客源分布省内主要集中在淮安本地、宁镇扬、徐连等城市,省外以上海、安徽、北京、浙江、山东等省市为主。淮安国内游客中以城镇游客为主,男性明显多于女性;从职业来看,以公务员、职员为主;国内旅游者以观光旅游者居多,其次为商务、会议和公务,以休闲度假等其他旅游目的旅游者所占比重相对较校来淮游客对名胜古迹和自然生态情有独钟,对淮扬美食也有相当的偏爱。非团队旅游是淮安国内旅游的主体,团队旅游近年来呈现上升趋势。。

二、淮安市旅游业发展现状

近年来,我市旅游业发展得到各级党委、政府和社会各界高度重视和关注,通过积极实施“政府主导、政策引导、社会齐上”的大旅游发展战略,进一步加强政府对旅游行业的管理,加大了对旅游资源开发的力度,加大了旅游宣传促销力度,全市的旅游业呈现出加快发展势头,具体体现在以下几个方面:

1.资源开发步伐不断加快。近几年来,我市紧紧围绕“突出重点、分类指导、分步实施”的原则,对旅游业加大投入,新建、改建、扩建了一批旅游项目。大运河文化广尝淮扬美食街、中洲公园、清江浦楼、御龙园相继完工,古运河文化长廊主城区段初具雏形。苏北野生动物园、楚秀园、桃花坞的建设为市民提供了更多、更好的休闲场所。楚州区修建了漕运遗址公园、古运河御码头,修缮了“淮安府署”,建成了“猴王世家艺术馆”;盱眙县建设了铁山禅寺、天文观测基地、明祖陵、黄花塘新四军军部纪念馆等工程;洪泽县建成了老子山温泉山庄;淮阴区完成了韩信故里、葫芦岛度假村一期工程。旅游总投入为15亿元,新建旅游项目24个。截止目前,全市已有售票旅游景区(点)31个,初步形成了淮安人文景区、洪泽湖风景名胜区、盱眙山水旅游景区、金湖生态农业观光景区等四大景区。

2、产业规模日益壮大。经过积极培育和大力扶持,到目前为止,我市已拥有旅游饭店40家(其中四星级2家,三星级10家,二星级26家,一星级2家);旅行社41家(其中国际旅行社1家,国内旅行社40家);可供游览的旅游区(点)43个,其中国家4A级旅游

区(点)1个,3A级旅游区(点)4个,年接待20万人次以上旅游区(点)11个,年接待50万人次以上旅游区(点)3个;拥有持证导游1400多人,旅游产业规模逐步壮大,“食、注行、游、购、娱”的旅游服务体系进一步完善。

3、市场开发力度不断加大。近年来,我市本着“立足江苏、着眼华东、面向全国、拓展境外”的市场开发战略,通过媒体广告发布、参加旅交会、办好旅游网站、组织外出促销等多种形式,加强了我市红色旅游、绿色旅游、美食旅游产品的宣传促销。我市相继推出了“淮安红色之旅”、“淮安名人故里游”、“康熙运河水上游”、“韩信故里游”、“洪泽湖水上风情游”、“盱眙山水风光游”“金湖生态农业观光游”等一批特色旅游线路,日益得到游客的青睐。

4、旅游品牌逐渐凸现。我市各级党政领导对旅游品牌打造非常重视,取得了实实在在的效果,“名人故里”、“文化名城”、“漕运之都”、“美食之乡”、“生态家园”等城市旅游品牌日益凸现。2002年9月份,我市举办了首届“淮扬菜美食文化节”,以美食文化带动旅游经济和社会全面发展。美食文化节已经连续举办了8届,加上盱眙的“中国龙虾节”、金湖的“荷花艺术节”和涟水的“白鹭节”,淮安已经形成了富有自身特色的系列节庆品牌。

三、存在问题

1、市区缺乏软、硬件都过硬的高星级酒店,现有的酒店对外开放程度不高,缺少先进管理模式和理念。功能不够完善,缺少大型会展接待场所,服务存在不规范、不到位现象,难以满足大型节庆会展的需

求。

2、旅行社仍然还处于孝散、弱的状态,导游人员多为初级导游,服务水平普遍不高。讲解不够生动感人,导游及讲解员整体素质不高,知识面狭窄,讲解缺乏“激情”,缺少对游客的吸引力。

3、旅游人才,特别是高级管理、规划、策划方面的人才严重缺乏。旅游从业人员的整体素质也有待于进一步提高。

综上所述,淮安旅游产业发展迅速,但人才非常匮乏。无论是普通员工还是高级管理人才都非常缺乏!!

第二部分我校旅游管理专业发展现状

1.旅游管理专业培养的学生质量

笔者对用人单位的进行调查,(五家旅行社、两家酒店)旅游企业对于旅游管理专业毕业生的反映突出体现在这样几个方面:

一是充分肯定了专业教育的作用,专业人才的综合素质比较高;

二是学生实际动手能力普遍较差;

三是学生所学理论与实际需求之间存在较大的差距;

四是学生对实际情况了解太少,进入社会后心理调适时间较长。这从教育的结果上对教育给予了一个非常权威性的评估。

2 专业发展

在多年教学工作中,笔者深切感受到我校该专业一直呈现一种现象即:就业形势比较良好,但招生一直存在困难,招收不到学生,形

成了一个制约我校旅游专业发展的最主要瓶颈。究其原因,笔者认为,不外乎以下三个方面:

1、社会对该专业发展的消极影响

近几年来,职业教育得到了蓬勃发展,尤其是2017年以后,伴随着中央到地方一系列优惠政策的出台,职业教育发展的又一个春天已经到来。但老百姓心目中的传统的观念还没有完全转变过来,还存在着重普通教育,轻职业教育意识。总认为上职业学校是无奈之举,是为了高中文凭,是把小孩关关,这些思想还普遍存在,并且在一定时期内还将长期存在。甚至可以从教育界的一些人士对待职业学校与普通学校学生犯错误的看法上也可以看出一二来。他们认为:普通学校学生违反纪律,犯了错误,是难免的;而职业学校学生,则冠之以素质差,不犯错误是不可能的,等等。再加上旅游服务行业,社会上一些丑恶、不合理现象的存在,更使得社会对职业学校开设的旅游服务专业带有偏见。尤其是在招生时,这种偏见显得尤为明显。

2、家庭影响

近几年来,经济迅猛发展,老百姓的生活普遍得到了改善。但众多家长的观念并没有随着经济的发展而进步,面子观念比较强烈。对从事三产服务业,家长、学生普遍有低人一等的感觉,特别是从事旅游服务行业,直接是面对面的服务,总觉得面子上过不去抹不开,现在的家庭基本上都是三口之家,家长对子女还存在着或多或少的溺爱,宁可工资少一点,子女要舒服一点。再加上淮安经济发展的迅速,就业机会、就业岗位、挑选余地相对比较多,这些都影响着家长和学

生的专业选择。而且在学生实习期间,学生往往很快就跳槽改行了,职业稳定性比较差。

3、学校影响

学校实验实习设备严重不足。旅游服务专业不仅仅是几张餐

桌、几块口布的事情。众所周知,根据旅游服务行业的流程来看,涉及到的实验实习设备还是非常丰富的,比如导游服务、前厅预定、机票预订服务、康乐服务、导游讲解等等。学校设备越不到位,越让社会、家长、学生产生这个专业技术含量低的偏见。

师资力量不足,目前在校有六个教学班,但只有7名专业教师,连应付正常的教学工作都比较困难,更别说专业的建设与发展了!!

三、教学计划修订

鉴于我市旅游业发展状况,本专业对教学计划做一定的调整。具体实施“2.5+0.5”人才培养方案,并根据方案不断更新教学设备和教学内容。

旅游教研室

2017年7月

回复帖子
标题:
内容: