第一篇:校园导游系统设计与实现
校园导游系统设计与实现
目录 1.设计要求 2.1需求分析 2.2概要设计
2.3各个模块名称和功能 2.4 系统导游主界面
2.4.1前台系统
2.4.2后台系统
2.4.3退出系统 3实验总结 参考文献 附件
1.设计要求
设计一个校园导游程序,为来访的客人提供各种信息查询服务。
2.1需求分析
⑴设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图(无向网),所含景点不少于 30 个。以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。
⑵存放景点代号、名称、简介等信息供用户查询。⑶为来访客人提供图中任意景点相关信息的查询。⑷为来访客人提供图中任意景点之间的问路查询。
⑸可以为校园平面图增加或删除景点或边,修改边上的权值等。
景点距离图
2.2概要设计
校园旅游模型是由景点和景点之间的路径组成的,所以这完全可以用数据结构中的图来模拟。用图的结点代表景点,用图的边代表景点之间的路径。所以首先应设计一个图类。结点值代表景点信息,边的权值代表景点间的距离。结点值及边的权值用顺序表存储,所以需要设计一个顺序表类。本系统需要查询景点信息和求一个景点到另一个景点的最短路径长度及路线,为方便操作,所以给每个景点一个代码,用结构体类型实现。计算路径长度和最短路线时可用迪杰斯特拉(Dijkastra)算法实现。最后用 switch 选择语句选择执行浏览景点信息或查询最短路径。
1、主界面设计
为了实现校园导游系统各功能的管理,首先设计一个含有多个菜单项的主控菜单子程序以链接系统的各项子功能,方便用户使用本系统。
2、存储结构设计
本系统采用图结构类型(mgraph)存储抽象校园图的信息。其中,各景点间的邻接关系用图邻接矩阵类型(adjmatrix)存储;景点(顶点)信息用结构数组(vexs)存储,其中每个数组元素是一个结构变量,包含景点编号、景点名称及景点介绍三个分量;图的顶点个数及边的条数由分量 vexnum、arcnum 表示,它们是整型数据。
3、系统功能设计
本系统除了要完成图的初始化功能外还设置了9个子功能。图的初始化由 initgraph()函数实现。依据读入的图的顶点个数和边的条数,分别初始化图结构中图的顶点数组和图的邻接矩阵。9个子功能的设计描述如下。⑴ 景点信息查询
景点信息查询由函数 seeabout()实现。该功能根据用户输入的景点编号输出该景点的相关信息。如景点编号、名称等。⑵ 学校景点介绍
学校景点介绍由函数 browsecampus()实现。当用户选择该功能,系统即能输出学校全部景点的信息:包括景点编号、景点名称及景点介绍。⑶ 相邻的景点及其距离
为使游客能够知道其周围的景点和路径,方便他们迅速知道其所在位置和周围信息 ⑷ 查看浏览线路
查看浏览线路由函数 shortestpath_dij()实现。该功能采用迪杰斯特拉(Dijkstra)算 法实现。当用户选择该功能,系统能根据用户输入的起始景点编号,求出从该景点到其他景点的最短路径线路及距离。当用户选择该功能,系统能根据用户输入的起始景点及目的景点编号,查询任意两个景点之间的最短路径线路及距离。⑸ 更改图信息
修改一个已有景点的相关信息、删除一个景点及其相关信息、删除一条路径、加一条路径、修改路径长度、添加一个景点 ⑹ 数据安全防范
设置密码,能保证数据不会被随便更改,由pass()判定密码是否正确,可由changepw()函数修改密码,初始密码为gdufsx ⑺ 写入文件并保存修改
打开该软件,若没有graph.txt,则会由系统初始化生成一个graph.txt,若已存在该文档会由该文档中的内容初始化系统。⑻ 恢复初始状态
若数据已经显得很杂乱并很难修理,就可以启用这个功能 ⑼ 退出
即退出校园导游系统,由 exit(0)函数实现
2.3函数结构
void initgraph(mgraph &G);
//依据读入的图的顶点个数和边的条数,//分别初始化图结构中图的顶点向量数组和图的邻接矩阵 void browsecampus(mgraph G);//输出学校全部景点的信息 :编号、名称、介绍
void cgraph(mgraph &G,Password &pw);//构造无向图和读写文件graph。txt void writetxt(mgraph &G,Password &pw);//写入文件
int pass(Password pw);
//认证密码的正确与否,正确返回1,错误返回0
void reception(mgraph &G);
//前台服务函数 void seeabout(mgraph &G);
//景点信息
void shortestpath_dij(mgraph G);//该景点到其他景点的最短路径线路及距离 void near(mgraph G);
//相邻的景点及其距离
void changegraph(mgraph &G,Password &pw);
//后台函数,并调用
void changeP(mgraph &G,Password &pw);
//修改一个已有景点的相关信息 void deleteP(mgraph &G,Password &pw);
//删除一个景点及其相关信 void deleteL(mgraph &G,Password &pw);
//删除一条路径 void addL(mgraph &G,Password &pw);
//添加一条路径 void changeL(mgraph &G,Password &pw);
//修改路径长度
void Add(mgraph &G,Password &pw);
//添加一个景点 void changepw(mgraph &G,Password &pw);//修改密码 void regraph(mgraph &G,Password &pw);
//恢复初始状态
2.4 2.4校园导游主界面
程序运行,后台对图结构进行初始化,运行结果如图2.4.1。
2.4 主界面 2.4.10前台系统
前台系统是游客浏览查询界面。如图2.4.10
2.4.10 游客浏览界面 2.4.11个别景点的相关信息查询
景点的相关信息查询是通过seeabout()函数来调用输出的,在前台系统输入1,输入任一景点编号即可知道其信息。运行结果如图2.4.11
2.4.11 信息查询 2.4.12任意两景点间最短路径查询
根据用户的需求,在用户输入了起点和终点后计算出最短路径是哪一条路径。例如起点是3.中国银行,终点是15.教学楼A栋。运行结果如图2.4.12
2.4.12 任意两景点间最短路径查询 2.4.13输出所有景点信息
为方便用户一次性知道所有景点信息,设置了查询所有景点的信息如图2.4.13
2.4.13 输出所有景点信息 2.4.14相邻的景点及其距离
为使游客能够知道其周围的景点和路径,方便他们迅速知道其所在位置和周围信息。如图2.4.14
2.4.14相邻的景点及其距离
2.4.20后台系统
输入密码
为防止他人随意修改景点信息,需密码验证身份,初始密码为gdufsx,进入后台系统后可修改密码,如图2.4.200
2.4.200 输入密码
后台服务
后台服务具有以下功能: 修改一个已有景点的相关信息;删除一个景点及其相关信息;删除一条路径;添加一条路径;修改路径长度;添加一个景点;修改密码;恢复初始状态。如图2.4.20。功能如图2.4.21至2.4.28
2.4.20 后台服务
2.4.21修改一个已有景点的相关信息
2.4.22 删除一个景点及其相关信息
2.4.23删除一条路径
2.4.24添加一条路径
2.4.25修改路径长度
2.4.26 添加一个景点
2.4.27修改密码
2.4.28恢复初始状态
在后台系统输入8,就会询问你是否恢复初始状态,暗“Y”将会使之前一切修改的数据信息都恢复原样,重新初始化。
2.4.28恢复初始状态 2.4.3退出系统
用户满足了需求之后,只要在主界面菜单处输入0便可退出此次校园导游系统。运行结果如图2.4.9。
退出系统
3总结
由于设计者水平有限,本导游图系统的功能还比较简单,没有求出两景点间的多条可行路径供游客选择,无法在界面中显示出地图;由于邻接矩阵是30*30的,所以无法在一个界面中完整简洁的显示出来。还有个很好的想法也没有实现,就是怎样求出游完所有景点是的最短路径和线路,这样游客就不需要重复走过几个景点。在这次作业中,我积累了不少经验,提高了动手能力。在编程序过程中不要急于求成,如果一下字把所有的功能编出来了再去编译,一旦出错,就很难找出是哪里错误了,这就需要一个一个的实现了。这次作业也让我增加了对文件流的理解。
参考文献
[1]严蔚敏,李冬梅,吴伟民.数据结构(C语言版).人民邮电出版社.2011.[2]王珊珊,臧洌,张志航.C++程序设计教程 第二版.机械工业出版社.2011 附件:
//程序名称:校园导游系统设计与实现 //程序员:Joebug //编写时间:2015年6月
#include
#define N 50 #define M 10
typedef struct Infor{
//景点结构体
char name[20];
//景点名称
char inf[100];
//景点信息
}Infor;
typedef struct{ int adj[N][N];
//各景点间的邻接关系用图邻接矩阵类型
Infor vexs[N];
//景点(顶点)信息: int vexnum,arcnum;
//图的顶点个数及边的条数 }mgraph;
typedef struct{
char p[6];
}Password;
char inform[30][100]={
“信息男宿舍,后面是内环,与风采园相近,前面是南苑9-12栋!”,“一楼价格还好,但饭菜比较难吃,二楼较贵,饭菜还行!”,“中国银行营业厅,如果要办理业务,需很早地去排队;有ATM机!”,“二楼有自强社办公室、校学生会办公室„一楼有健身房!”,“东西较贵但品类基本齐全!”,“主要是老师居住。喜祥数码港要收费,云山数码港在不换硬件条件下免费修!”,“主要接待外来人员,招待所!”,“一楼有糖水和奶茶供应,晚上总有很多部门在此开会。二楼有许多套餐!”,“一楼大众点菜,品类比三饭多。二楼的价格在8元左右!”,“女生宿舍,北苑三栋楼下有创业园!”,“组成巡逻队,协助学校保障校园安全。!”,“位于保卫处后面,在校生校内看病只需支付很少的费用!”,“具有防空洞;连接宿舍区和教学区!”,“在隧道口的上方,可以乘坐很多路的公交车!”,“一楼有中国银行ATM。早上和中午前面有校巴。不少活动的举办地点!”,“是学习的主要地方,教室里面设施较为齐全,有多媒体、空调、电视等,后面是语心湖和实验楼!”,“早上会有学生在那里练嗓子,以及读书!”,“多种会议比赛的场所!”,“学校政要的办公室所在地!”,“各学院老师的办公室所在地!”,“拍毕业照时,校友回来时的聚集之地!”,“摆放着很多电脑的地方!”,“位于教学楼和实验楼之间,湖水平静,还有黑天鹅嬉戏于水上!”,“各种活动的举办场所!”,“主要是艺术生上课的地方,周六日为雅思考场!”,“重要会议进行的地方,党课和军训理论课在这里上,有空调!”,“图书馆除了中英文借阅区与杂志借阅区外,还有自习区;前面有大广场,最前面是学校正门!”,“内有排球场、篮球场,外有足球场。还有游泳池、网球场!”,“体育馆有多个观众席;中央可用做正规比赛场所。日常用来上羽毛球课、跆拳道课!”,“位于图书馆前面,学术报告厅与艺术楼中间,虽然不宏伟,但是也是一个标志!”
};char Name[30][20]={
“南苑13栋”,“风采园(三饭)”,“中国银行”,“学活&水榭”,“又康超市”,“师苑&数码港”,“广外友苑”,“博雅园(二饭)”,“文采园(一饭)”,“创业园”,“后勤&保卫处”,“校医室”,“隧道口”,“广外公交站”,“教学楼A栋”,“教学楼E、F栋”,“凤凰山坡”,“八角楼”,“校办公楼”,“院系办公楼”,“校友林”,“实验楼”,“语心湖”,“学术报告厅”,“艺术楼”,“大会堂”,“图书馆”,“泳池&操场”,“体育馆&场”,“正校门”};
void initgraph(mgraph &G);
//依据读入的图的顶点个数和边的条数,//分别初始化图结构中图的顶点向量数组和图的邻接矩阵 void browse(mgraph G);
//输出学校全部景点的信息 :编号、名称、介绍
void cgraph(mgraph &G,Password &pw);//构造无向图和读写文件graph。txt void writetxt(mgraph &G,Password &pw);//写入文件
int pass(Password pw);
//认证密码的正确与否,正确返回1,错误返回0
void reception(mgraph &G);
//前台服务函数 void seeabout(mgraph &G);
//景点信息
void shortestpath_dij(mgraph G);//该景点到其他景点的最短路径线路及距离 void browsecampus(mgraph G);//输出学校全部景点的信息 :编号、名称、介绍
void near(mgraph G);
//相邻的景点及其距离
void changegraph(mgraph &G,Password &pw);
//后台函数,并调用
void changeP(mgraph &G,Password &pw);
//修改一个已有景点的相关信息 void deleteP(mgraph &G,Password &pw);
//删除一个景点及其相关信 void deleteL(mgraph &G,Password &pw);
//删除一条路径 void addL(mgraph &G,Password &pw);
//添加一条路径 void changeL(mgraph &G,Password &pw);
//修改路径长度
void Add(mgraph &G,Password &pw);
//添加一个景点
void changepw(mgraph &G,Password &pw);
//修改密码 void regraph(mgraph &G,Password &pw);
//恢复初始状态
int main(){ mgraph campus;Password pw;strcpy(pw.p,“gdufsx”);
//初始化密码
initgraph(campus);cgraph(campus,pw);int n,m=1;while(m)
{
system(“cls”);
cout<<“
欢迎使用GDUFS校园导游系统”< cout<<“ **************************************”< cout<<“ (1)前台服务(游客身份登陆)”< cout<<“ (2)后台服务(管理员身份登陆)”< cout<<“ (0)退出”< cout<<“ **************************************”< cout<<“ 请输入您的选择(0-2):”; cin>>n; switch(n) { case 1: reception(campus); break; case 2: if(pass(pw)==1) changegraph(campus,pw);//后台函数 break; case 0: m=0; cout<<“谢谢您的使用!” < getch(); exit(0); default: cout<<“ 您的输入有误,任意键继续...”; getch(); } } } void initgraph(mgraph &G){ //依据读入的图的顶点个数和边的条数,//分别初始化图结构中图的顶点向量数组和图的邻接矩阵 int i,j;for(i=0;i for(j=0;j G.adj[i][j]=9999;for(i=0;i<30;i++){ strcpy(G.vexs[i].name,Name[i]); strcpy(G.vexs[i].inf,inform[i]);} G.vexnum=30;G.arcnum=45; G.adj[0][1]=55; G.adj[1][0]=55; G.adj[0][5]=287; G.adj[5][0]=287;G.adj[1][2]=243; G.adj[2][1]=243;G.adj[2][3]=28; G.adj[3][2]=28;G.adj[3][4]=31; G.adj[4][3]=31;G.adj[4][5]=42; G.adj[5][4]=42;G.adj[4][9]=106; G.adj[9][4]=106; G.adj[5][6]=87; G.adj[6][5]=87;G.adj[5][7]=71; G.adj[7][5]=71;G.adj[7][8]=132; G.adj[8][7]=132;G.adj[7][9]=97; G.adj[9][7]=97;G.adj[7][12]=150; G.adj[12][7]=150;G.adj[8][9]=111; G.adj[9][8]=111;G.adj[8][11]=151; G.adj[11][8]=151;G.adj[8][13]=126; G.adj[13][8]=126;G.adj[9][11]=257; G.adj[11][9]=257;G.adj[10][11]=33; G.adj[11][10]=33;G.adj[10][13]=128; G.adj[13][10]=128;G.adj[10][27]=287; G.adj[27][10]=287;G.adj[12][13]=117; G.adj[13][12]=117;G.adj[12][14]=83; G.adj[14][12]=83;G.adj[12][16]=160; G.adj[16][12]=160;G.adj[13][26]=359; G.adj[26][13]=359;G.adj[14][15]=118; G.adj[15][14]=118;G.adj[14][16]=245; G.adj[16][14]=245;G.adj[15][22]=94; G.adj[22][15]=94;G.adj[15][26]=176; G.adj[26][15]=176;G.adj[16][18]=62; G.adj[18][16]=62;G.adj[17][18]=74; G.adj[18][17]=74;G.adj[17][19]=88; G.adj[19][17]=88;G.adj[17][22]=218; G.adj[22][17]=218;G.adj[19][20]=64; G.adj[20][19]=64;G.adj[20][21]=167; G.adj[21][20]=167;G.adj[21][22]=68; G.adj[22][21]=68;G.adj[21][23]=132; G.adj[23][21]=132;G.adj[23][26]=203; G.adj[26][23]=203;G.adj[23][29]=60; G.adj[29][23]=60;G.adj[24][25]=129; G.adj[25][24]=129;G.adj[24][28]=263; G.adj[28][24]=263;G.adj[24][29]=80; G.adj[29][24]=80;G.adj[25][26]=181; G.adj[26][25]=181;G.adj[25][27]=212; G.adj[27][25]=212;G.adj[25][28]=192; G.adj[28][25]=192;G.adj[26][27]=164; G.adj[27][26]=164;G.adj[27][28]=354; G.adj[28][27]=354;} void cgraph(mgraph &G,Password &pw){ 化 int i,j,dist;char c;ifstream infile(“graph.txt”);if(!infile){ infile.close(); writetxt(G,pw);} else{ infile.close(); ifstream infile(“graph.txt”); //写入文件并初始 infile>>G.vexnum>>G.arcnum; for(i=0;i infile>>G.vexs[i].name; infile>>G.vexs[i].inf; } for(i=0;i for(j=0;j infile>>dist; G.adj[i][j]=dist; } } for(i=0;i<6;i++) infile>>pw.p[i]; infile.close();} } void writetxt(mgraph &G,Password &pw){ //写入文件 int i,j;ofstream outfile(“graph.txt”);outfile< outfile< } for(i=0;i for(j=0;j outfile< } } for(i=0;i<6;i++) outfile< //输出学校全部景点的信息 :编号、名称 int j=0,k;for(int i=0;i k=i+1; cout< j++; if(j%3==0)cout< 请输入密码:”;for(int i=0;i<6;i++){ ch[i]=getch(); cout.flush(); cout<<“*”; } for(int i=0;i<6;i++){ if(pw.p[i]!=ch[i]) judge=0;} return judge;} void changepw(mgraph &G,Password &pw){ int i,b=1;char ch[6],ch1[6],judge1=1,judge2=1;while(b==1){ cout<<“请输入原密码:”< for(i=0;i<6;i++){ ch[i]=getch(); cout.flush(); cout<<“*”; } for(i=0;i<6;i++){ if(pw.p[i]!=ch[i]) judge1=0; } if(judge1){ cout< for(i=0;i<6;i++){ ch[i]=getch(); cout.flush(); cout<<“*”; } cout< for(i=0;i<6;i++){ ch1[i]=getch(); cout.flush(); cout<<“*”; } for(i=0;i<6;i++){ if(ch[i]!=ch1[i])judge2=0; } if(judge2){ for(i=0;i<6;i++){ pw.p[i]=ch[i]; } cout< writetxt(G,pw); } else cout< } else cout<<“密码错误!”< cout< cin>>b; cout< } /////////////////////////前台///////////////////////////////////////// void reception(mgraph &G){ //前台函数 int n,i,j; while(1) { system(“cls”);//清屏 cout<<“*********************欢迎使用前*******************”< cout<<“(1)个别景点信息查询”< cout<<“(2)问路查询”< cout<<“(3)输出所有景点信息”< cout<<“(4)相邻的景点及其距离”< cout<<“(0)返回上一级菜单”< cout<<“请输入您的选择(0-4):”; cin>>n; switch(n) { case 1: seeabout(G); break; case 2: shortestpath_dij(G); break; case 3: browsecampus(G); break; case 4: 系统 台 near(G); break; case 0: return; break; default: cout<<“您的输入有误,任意键继续...”< getch(); } } } void seeabout(mgraph &G){ //景点信息 int a; int b=1;system(“cls”);browse(G); while(b){ cout<<“请输入要查找的景点信息”< cin>>a;a--; if(a>=0&&a cout< } else { cout<<“输入错误,无此景点”< } cout<<“返回前台系统按0,继续查找按1”< cin>>b; while(b!=0&&b!=1){ cout<<“返回前台系统按0,继续查找按1”< cin>>b; } } } void shortestpath_dij(mgraph G){ //该景点到其他景点的最短路径线路及距离 int b=1,i,j,vt,v,v0,w,min; bool S[N]; int D[N],Path[N]; int n=G.vexnum; system(“cls”); browse(G); while(b){ cout<<“请输入要查询路径的两个景点的编号”< cin>>v0;v0--; cin>>vt; vt--; for(v=0;v S[v]=false; D[v]=G.adj[v0][v]; if(D[v]<9999) Path[v]=v0;//v0是v的前趋 else Path[v]=-1;//v无前趋 } D[v0]=0; S[v0]=true; for(i=1;i min=9999; for(w=0;w if(!S[w]&&D[w] S[v]=true; //将v加入S for(w=0;w if(!S[w]&&(D[v]+G.adj[v][w] D[w]=D[v]+G.adj[v][w]; Path[w]=v; } } cout<<“距离为:”< cout< cout<<“要经过”< int f=Path[vt],e[N]; i=0; while(f!=-1){ e[i]=f; f=Path[f]; i++; } for(v=i-1;v>=0;v--){ cout< } cout< cout<<“返回后台系统按0,继续查询按1”< cin>>b;} } void browsecampus(mgraph G){ //输出学校全部景点的信息 :编号、名称、介绍 int k;for(int i=0;i k=i+1; cout< } cout<<“按任意键返回前台系统”< //相邻的景点及其距离 int b=1,i,j; bool a[50][50];system(“cls”); while(b){ browse(G); for(i=0;i<50;i++) for(j=0;j<50;j++) a[i][j]=false; for(i=0;i for(j=0;j if(G.adj[i][j]!=9999){ if(!a[i][j]){ cout< ”< a[i][j]=true;a[j][i]=true; } } } } cout<<“返回后台系统按0”< cin>>b; } } ////////////////////////////后台函数/////////////////////////////////// void changegraph(mgraph &G,Password &pw){ //修改图信息 int n; while(1) { system(“cls”); cout<<“*********************欢迎使用后台系统************************”< cout<<“(1)修改一个已有景点的相关信息”< cout<<“(2)删除一个景点及其相关信息”< cout<<“(3)删除一条路径”< cout<<“(4)增加一条路径”< cout<<“(5)修改一条路径长度”< cout<<“(6)增加景点”< cout<<“(7)修改密码”< cout<<“(8)恢复初始状态”< cout<<“(0)返回上一级菜单”< cout<<“请输入您的选择(0-8):”; cin>>n; switch(n) { case 1: changeP(G,pw); break; case 2: deleteP(G,pw); break; case 3: deleteL(G,pw); break; case 4: addL(G,pw); break; case 5: changeL(G,pw); break; case 6: Add(G,pw); break; case 7: changepw(G,pw); break; case 8: regraph(G,pw); break; case 0: return; break; default: cout<<“您的输入有误,任意键继续...”< getch(); } } } void changeP(mgraph &G,Password &pw){ //修改一个已有景点的相关信息 int a; int b=1; while(b){ system(“cls”); browse(G); cout<<“请输入要修改景点信息的编号:”< cin>>a;a--; if(a>=0&&a<=G.vexnum){ cout< cout<<“请输入该景点的修改后的信息”< cin>>G.vexs[a].inf; cout<<“修改成功!!”< cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } } else{ cout<<“error!输入有误!”< } cout<<“返回后台系统按0,继续修改按1”< cin>>b; } } void deleteP(mgraph &G,Password &pw){ //删除一个景点及其相关信息 int b=1,i,j,k; while(b) { system(“cls”); browse(G); cout<<“请输入要删除的景点的编号”< cin>>i;i--; if(i>=0&&i<=G.vexnum){ for(j=i;j G.vexs[j]=G.vexs[j+1]; for(k=0;k G.adj[k][j]=G.adj[k][j+1]; } for(j=i;j for(k=0;k G.adj[j][k]=G.adj[j+1][k]; } G.vexnum--; G.arcnum=0; for(i=0;i for(j=0;j if(G.adj[i][j]!=9999) G.arcnum++; } } G.arcnum=G.arcnum/2; b=0; cout<<“删除成功!!”< } if(b!=0){ cout<<“输入有误!请看清楚!”< } else{ cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } } cout<<“返回后台系统按0,继续删除按1”< cin>>b; } } void deleteL(mgraph &G,Password &pw){ //删除一条路径 int b=1,i,j; bool a[50][50];system(“cls”); while(b){ browse(G); for(i=0;i<50;i++) for(j=0;j<50;j++) a[i][j]=false; for(i=0;i for(j=0;j if(G.adj[i][j]!=9999){ if(!a[i][j]){ cout< ”< a[i][j]=true;a[j][i]=true; } } } } cout<<“请输入要删除的路径连接的两个景点编号”< cin>>i; i--; cin>>j; j--; if(G.adj[i][j]!=9999){ G.adj[i][j]=9999; G.adj[j][i]=9999; b=0; cout<<“删除成功!”< G.arcnum--; cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } } if(b!=0){ cout<<“输入有误!”< } cout<<“返回后台系统按0,继续删除按1”< cin>>b; } } void addL(mgraph &G,Password &pw){ //添加一条路径 int b=1,i,j,distance; system(“cls”); browse(G); while(b){ cout<<“请输入要添加的路径连接的两个景点编号”< cin>>i; i--; cin>>j; j--; cout<<“请输入要添加的路径长度”< cin>>distance; if(G.adj[i][j]==9999){ G.adj[i][j]=distance; G.adj[j][i]=distance; b=0; cout<<“添加成功!”< G.arcnum++; cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } } if(b!=0){ cout<<“输入有误!”< } cout<<“返回后台系统按0,继续添加按1”< cin>>b; } } void changeL(mgraph &G,Password &pw){ //修改路径长度 int b=1,i,j,distance;bool a[50][50]; while(b){ system(“cls”); browse(G); for(i=0;i<50;i++) for(j=0;j<50;j++) a[i][j]=false; for(i=0;i for(j=0;j if(G.adj[i][j]!=9999){ if(!a[i][j]){ cout< ”< a[i][j]=true;a[j][i]=true; } } } } cout<<“请输入要修改的路径连接的两个景点编号”< cin>>i; i--; cin>>j; j--; if(G.adj[i][j]!=9999){ cout<<“请输入要修改的路径长度”< cin>>distance; G.adj[i][j]=distance; G.adj[j][i]=distance; b=0; cout<<“修改成功!”< cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } } if(b!=0){ cout<<“无此路径!”< } cout<<“返回后台系统按0,继续添加按1”< cin>>b; } } void Add(mgraph &G,Password &pw){ //添加一个景点 system(“cls”);int i,b=1;while(b==1){ cout<<“请输入景点名称:”< cin>>G.vexs[G.vexnum].name; cout<<“请输入景点信息:”< cin>>G.vexs[G.vexnum].inf; for(i=0;i G.adj[G.vexnum][i]=9999; for(i=0;i G.adj[i][G.vexnum]=9999; G.adj[G.vexnum][G.vexnum]=9999; G.vexnum++; cout<<“添加成功!”< cout< cout<<“是否要保存?保存按1,不保存按2”< int c; cin>>c; if(c==1){ writetxt(G,pw); } else{ cgraph(G,pw); } cout<<“返回后台系统按0,继续添加按1”< cin>>b; } system(“pause”);system(“cls”);} void regraph(mgraph &G,Password &pw){ //恢复初始状态 system(“cls”);cout<<“是否要恢复初始状态,是按Y,不是按N”< char c; cin>>c; if(c=='Y'){ strcpy(pw.p,“gdufsx”); //初始化密码 initgraph(G); writetxt(G,pw); } cout<<“已恢复初始状态”;} xx大学 本科毕业设计(论文) (题 目:校园网络安全问题及对策 学生姓名:xx 系 别:计算机系 专 业:计算机科学与技术 2011年2月 摘要 网络安全的本质是网络信息的安全性,包括信息的保密性、完整性、可用性、真实性、可控性等几个方面,它通过网络信息的存储、传输和使用过程体现。校园网络安全管理是在防病毒软件、防火墙或智能网关等构成的防御体系下,对于防止来自校园网外的攻击。防火墙,则是内外网之间一道牢固的安全屏障。安全管理是保证网络安全的基础,安全技术是配合安全管理的辅助措施。学校建立了一套校园网络安全系统是必要的。 本文从对校园网的现状分析了可能面临的威胁,从计算机的安全策略找出解决方案既用校园网络安全管理加防火墙加设计的校园网络安全系统。通过以下三个步骤来完成校园网络安全系统: 1、建设规划; 2、技术支持; 3、组建方案。 关键词:网络; 安全; 设计 ABSTRACT Network security is the essence of the safety of network information, including information of confidentiality, integrity, and availability, authenticity and controllable etc, it is through the network information storage, transport and use process.Campus network security management is in anti-virus software, a firewall or intelligence gateway, etc, the defense system to prevent from outside the campus.A firewall is a firm between inner and outer net security barrier.Safety management is the basis of network security and safety technology is the auxiliary measures with safety management.The school has established a set of campus network security system is necessary.Based on the analysis of the status of the network could face threats, from the computer security strategy to find solutions in the campus network security management is designed with the campus network firewall security system.Through three steps to complete the campus network security system: 1, the construction plan.2 and technical support.3 and construction scheme.Keyword: Network, Safe ;Design 目 录 绪 论.....................................................1 1.校园网络安全..............................................2 1.1 校园网概述........................................................2 1.2 校园网络安全概述.................................................3 1.3 校园网络安全现状分析.............................................3 1.4 校园网络安全威胁................................................5 2.校园网络安全策略..........................................8 2.1 校园网络安全管理.................................................8 2.2 校园网络安全措施.................................................9 3.校园网络安全系统设计......................................11 3.1 校园网建设需求分析..............................................11 3.1.1 需求分析....................................................11 3.1.2 关键设备....................................................12 3.1.3 校园网络拓扑................................................13 3.2 技术方案........................................................13 3.2.1 校园网的建设规划............................................13 3.2.2 组网技术....................................................16 3.2.3 网络操作系统................................................18 3.2.4 INTERNET 接入技术...........................................18 3.2.5 防火墙技术..................................................19 3.2.6 建网方案....................................................19 3.3 校园网的运行....................................................23 3.3.1 校园网的应用................................................23 3.3.2 校园网的管理................................................23 总 结....................................................25 参考文献....................................................26 绪 论 随着人们对于信息资源共享以及信息交流的迫切需求,促使网络技术的产生和快速发展,计算机网络的产生和使用为人类信息文明的发展带来了革命性的变化。主要包括各种局域网的技术思想,网络设计方案,网络拓扑结构,布线系统,Internetde 应用,网络安全,网络系统的维护等内容。而网络的高速发展,网络的安全问题日益突出,近年来,黑客攻击、网络病毒等屡屡曝光,国家相关部门也一再三令五申要求切实做好网络安全建设和管理工作。但是在高校网络建设的过程中,由于对技术的偏好和运营意识的不足,普遍都存在“重技术、轻安全、轻管理”的倾向,随着网络规模的急剧膨胀,网络用户的快速增长,关键性应用的普及和深入,校园网从早先教育、科研的试验网的角色已经转变成教育、科研和服务并重的带有运营性质的网络,校园网在学校的信息化建设中已经在扮演了至关重要的角色,作为数字化信息的最重要传输载体,如何保证校园网络能正常的运行不受各种网络黑客的侵害就成为各个高校不可回避的一个紧迫问题。 随着教育信息化的不断推进,各高等院校都相继建成了自己的校园网络并连入互联网,校园网在学校的信息化建设中扮演了至关重要的角色。但必须看到,随着校园网络规模的急剧膨胀,网络用户的快速增长,尤其是校园网络所面对的使用群体的特殊性(拥有一定的网络知识、具备强烈的好奇心和求知欲、法律纪律意识却相对淡漠),如何保证校园网络能正常的运行不受各种网络黑客的侵害就成为各个高校不可回避的一个紧迫问题,解决网络安全问题刻不容缓。 计算机管理和教育信息服务的要求越来越高。 3、我国各级教育研究部门、软件开发单位、教学设备供应商和各级学校不断开发提供了各种在网络上运行的软件及多媒体系统,并且越来越形象化、实用化,迫切需要网络环境。 4、现代教育改革的需要。 5、计算机技术的飞速发展,使相应产品价格不断下降;同时人们的认识水平和经济实力不断提高。大量计算机进入学校和家庭,使得计算机用于教育信息管理和信息服务是完全可行的。[1] 1.2校园网络安全概述 自信息系统开始运行以来就存在信息系统安全问题,通过网络远程访问而构成的安全威胁成为日益受到严重关注的问题。根据美国FBI的调查,美国每年因为网络安全造成的经济损失超过170亿美元。 由于校园网络内运行的主要是多种网络协议,而这些网络协议并非专为安全通讯而设计。所以,校园网络可能存在的安全威胁来自以下方面: 1.操作系统的安全性,目前流行的许多操作系统均存在网络安全漏洞,如UNIX服务器,NT服务器及Windows桌面PC; 2.防火墙的安全性,防火墙产品自身是否安全,是否设置错误,需要经过检验; 3.来自内部网用户的安全威胁; 4.缺乏有效的手段监视、评估网络系统的安全性; 5.采用的TCP/IP协议族软件,本身缺乏安全性; 6.应用服务的安全,许多应用服务系统在访问控制及安全通讯方面考虑较少,并且,如果系统设置错误,很容易造成损失。 1.3校园网络安全现状分析 随着网络技术的发展,可以说现在的大部分学校都建立了校园网络并投入使用,这对加快信息处理、提高工作效率、实现资源共享都起大了无法估量的作用,但在积极发展办公自动化、信息电子化、实现资源共享的同时,网络的安全问题越来越成为一个非常严惩的隐患,就好像一颗定时炸弹一样,深深的埋在教育现代化的进程中,如果这一个隐患不除,那么也许有一天,学校信息平台服务器遭到攻击而停止工作、整个校园网络被迫停止、学校积累的各种数据和信息被删除了,导致辛苦积累的大量教育资源被破坏。比如2003年暴发的“震荡波、冲击波、FORM.A” 综上所述,网络必须有足够强的安全措施。无论是公众网还是校园网中,网络的安全措施应是能全方位地针对各种不同的威胁和脆弱性,这样才能确保网络信息的保密性、完整性和可用性。[7] 1.4 校园网络安全威胁 计算机病毒 计算机病毒是一组通过复制自身来感染其它软件的程序。当程序运行时,嵌入的病毒也随之运行并感染其它程序。计算机病毒种类繁多,形形色色,但就已经发现的计算机病毒而言,其危害性主要表现为破坏性、传染性、寄生性、潜伏性和激发性几大特征。 破坏性是指计算机病毒可能会干扰软件的运行,或者无限制地侵占系统资源使系统无法运行,又或者毁掉部分数据或程序,使之无法恢复,甚至可以毁坏整个系统,导致系统崩溃。传染性则是计算机病毒能通过自我复制传染到内存、硬盘甚至文件中。寄生性表现为病毒程序一般不独立存在.而是寄生在磁盘系统区或文件中。潜伏性则是指计算机病毒可以长时间地潜伏在文件中,在相应的触发机制出现前并不影响计算机,但当被触发后,则后果严重。激发性是指病毒程序可以按照没计者的要求,例如指定的日期、时间或特定的条件出现在某个点激活并发起攻击。 计算机病毒的传染性证明其具有传播性,防止病毒传播,首先必须认识其传播途径和传播机理。计算机病毒最初传播主要是通过被病毒感染的软件的相互拷贝、携带病毒的盗版光盘的使用等传播。这时候的病毒传播还是线下传播。随着计算机网络的发展,计算机病毒传播主要是通过磁盘拷贝、互联网上的文件传输、硬件设备中的固化病毒程序等方式实现。 病毒还可以利用网络的薄弱环节攻击计算机网络。在现有的各计算机系统中都存在着一定的缺陷,尤其是网络系统软件方面存在着漏洞。因此.网络病毒利用软件的破绽和研制时因疏忽而留下的“后门”大肆发起攻击。网络攻击校园网面临的另一个安全威胁就是网络攻击。 广义的网络攻击包括很多方面。这里结合校园网络安全的特点,重点介绍拒绝服务(DoS,Daniel of Service)攻击。之所以介绍拒绝服务攻击,因为拒绝服务攻击在校园网发牛的更为普遍。这是因为校园网用户集中度高、密度大.为拒绝服务攻击提供了天然条件。加之学生的好奇心的因素,导致拒绝服务攻击发生频率较高,是危害校园网安全的重要类型之一。 洞来进行病毒传播的,加上带毒的木马程序,一感染便驻留在你的计算机当中,在以后的计算机启动后,木马就在机器中打开一个服务,通过这个服务将你计算机的信息、资料向外传递。 3)目录共享导致信息的外泄, 在校园网络中,利用在对等网中对计算机中的某个目录设置共享进行资料的传输与共享是人们常采用的一个方法。但可以说几乎所有的人都没有充分认识到当一个目录共享后,就不光是校园网内的用户可以访问到,而是连在网络上的各台计算机都能对它进行访问。这也成了数据资料安全的一个隐患。我曾经搜索过外地机器的一个C类IP网段,发现共享的机器就有十几台,而且许多机器是将整个C盘、D盘进行共享,并且在共享时将属性设置为完全共享,且不进行密码保护,这样只要将其映射成一个网络硬盘,就能对上面的资料、文档进行查看、修改、删除。因而对目录共享安全意识的单薄,会导致了信息的外泄。 4)网络安全意识淡薄,校园网络上的攻击、侵入他人机器,盗用他人帐号非法使用网络、非法获取未授权的文件、通过邮件等方式进行骚扰和人身攻击等事件经常发生、屡见不鲜,我校应用服务器和普通计算机平均一个星期会经受到数千次甚至上万次的非常访问尝试,而其中一大部分的非法访问源自校内,说明校园网络上的用户安全意识淡薄;另外,没有制定完善而严格的网络安全制度,各校园网在安全管理上也没有任何标准,这也是网络安全问题泛滥的一个重要原因.由此可见,构筑具有必要的信息安全防护体系,建立一套有效的网络安全机制显得尤其重要.4、严格规范上网场所的管理,集中进行监控和管理。上网用户不但要通过统一的校级身份认证系统确认,而且,合法用户上网的行为也要受到统一的监控,上网行为的日志要集中保存在中心服务器上,保证了这个记录的法律性和准确性。 5、根据相关部门的要求,配备专门的安全管理人员,出台网络安全管理制度。网络安全的技术是多样化的,现状还是“道高一尺,魔高一丈”,因此管理的工作就愈发重要和艰巨,必须要做到及时进行漏洞修补和定期询检,保证对网络的监控和管理。[2] 2.2 校园网络安全措施 前述各种网络安全威胁,都是通过网络安全缺陷和系统软硬件漏洞来对网络发起攻击的。为杜绝网络威胁,主要手段就是完善网络病毒监管能力,堵塞网络漏洞,从而达到网络安全。 1、杀毒软件。 杀毒产品的部署.在该网络防病毒方案中,要达到一个目的就是:要在整个局域网内杜绝病毒的感染、传播和发作。为了实现这一点,应在整个网络内可能感染和传播病毒的地方采取相应的防病毒手段;同时为了有效、快捷地实施和管理整个网络的防病毒体系,应能实现远程安装、智能升级、远程报警、集中管理、分布查杀等多种功能.。 (1)在学校网络中心配置一台高效的Windows2000服务器安装一个杀毒软件的系统中心,负责管理校内网点的计算机。(2)在各办公室分别安装杀毒软件的客户端。 (3)安装完杀毒软件,在管理员控制台对网络中所有客户端进行定时查杀毒的设置,保证所有客户端即使在没有联网的时候也能够定时进行对本机的查杀毒。(4)网络中心负责整个校园网的升级工作。 2、采用VLAN技术。 VLAN技术是在局域网内将工作站逻辑的划分成多个网段,从而实现虚拟工作组的技术。VLAN技术根据不同的应用业务以及不同的安全级别,将网络分段并进行隔离,实现相互间的访问控制,可以达到限制用户非法访问的目的。 3、内容过滤器。 加强网络管理主要是要做好两方面的工作。首先,加强网络安全知识的培训和普及;其次,是健全完善管理制度和相应的考核机制,以提高网络管理的效率。[6] 学校校园网是为学校师生提供教学、管理、科研和综合信息服务的宽带多媒体网络;是学校信息化教学环境的基础设施和实现各项管理的物质基础;是建立远程教育体系的基本保证;是提高全民素质的重要手段;也是一项灵魂工程。其设计方案应注意以下原则: 实用性校园网设计应能满足学校目前对网络应用的要求,充分实现学校内部管理、教学和科研的网络化、信息化的要求,使网络的整体性能尽快得到充分的发挥,并且便于掌握。 可靠性校园网的系统及网络结构较为复杂,同时在部分子系统中存在较高的技术性,因此必须保证系统的稳定、可靠和安全运行,具有很高的MTBF(平均无故障工作时间)和极低的MTBR(平均无故障率),提高容错设计,支持故障检测和恢复,可管理性强。 统一性在系统的设计过程中,坚持“三统一”,即统一规划、统一标准、统一出口。 先进性在系统的开发过程中,既能满足当前院校对网络的应用需求,又可以在将来需要扩展的时候,能方便地扩展,保护目前的所有投资;设计的配置可以灵活变通,以便适应客户的其他要求。 3.1.2 关键设备 在产品选购之前一定要经过认真的分析,这次参与组网的机构选用美国Cisco公司的Catalyst 6506作为数据网络系统的内部核心交换机,Catalyst 6506是大容量的具有高交换能力的第三层模块化交换机,Catalyst 6506的交换容量以及端口数量等技术指标足以满足网络目前的需求。选择Catalyst 3548作为外网交换机。可以通过千兆的光纤链路连接到核心交换机,而所有的用户终端可以通过10/100M自适应通道接入到Cisco Catalyst 3524和Catalyst 3548交换机上。选择Catalyst 3524和Catalyst 3548作为计算机网络系统的二级汇聚交换机,为终端用户提供10/100M到桌面。选择Cisco 3662作为计算机网络系统DDN、ISDN访问路由器,既可以满足上级单位Internet的DDN、ISDN接入的需求,又可以满足继续扩展的需求。同时Cisco 3662作为计算机网络系统的拨号服务器,提供分支机构的拨号接入。 网络核心层:用一台Cisco的高端三层交换机Catalyst 6506作为整个交换系统的核心,由网络中心网络管理员统一调度,从而使计算机网络系统成为一个具有整合的千兆以太网主干并具备第三层交换功能的综合网络通信平台。其中配置两个电源同时供电,彼此分担负荷并互为备份。一块WS-X6K-S1A-MSFC2交换引擎是交换机的心脏,它控制交换机的寻址、数据转发、模块控制等。Catalyst6506交换机引擎卡上的MSFC2(Multilayer Switching Feature Card)卡具有极强的三层交换能力,2 前都要根据工程的特点事先进行详细的工程规化与技术需求分析,它的成功与否都直接影响到工程的建设质量以及今后网络能否可靠运行都有直接的关系,因此要特别认真地进行系统规划。对于校园网来说,必须对技术和教育的发展前景有着清醒的认识,只有这样,才能从很好地为校园网进行合理的规划。 1. 校园网的应用特点 随着现代化教学活动的开展和与国内外教学机构交往的增多,对通过网络进行信息交流的需求越来越迫切,为促进教学、方便管理和进一步发挥师生的创造力,校园网络建设成为现代教育机构的必然选择。校园网大都属于中小型系统,以园区局域网为主,一个基本的校园网具有以下的特点: 高速的局域网连接--校园网的核心为面向校园内部师生的网络,因此园区局域网是该系统的建设重点,由于参与网络应用的师生数量众多,而且信息中包含大量多媒体信息,故大容量、高速率的数据传输是网络的一项基本要求; 信息结构多样化--校园网应用分为电子教学(多媒体教室、电子图书馆等)、学校管理和远程通讯(远程教学、互联网接入)三大部分内容:电子教学包含大量多媒体信息,学校管理以数据库为主,远程通讯则多为。 人事管理系统设计与实现 目 录 前 言....1 1 需求分析....2 1.1 系统需求...2 1.1 功能需求...2 1.3 可靠性要求...3 1.4 性能需求...3 2 开发环境简介....4 2.1 Delphi简介...4 2.1.1 Delphi7的集成开发环境(IDE)...5 2.1.2 Pascal简介...9 2.2 SQL Server 2000 简介...10 2.2.1 SQL Server 数据平台...10 2.3 TQuery部件在SQL编程中的运用...12 3 总体设计....14 3.1 基本设计...14 3.1.1 设计概念...14 3.1.2 功能分析...14 3.1.3 数据流图...14 3.1.4 系统模块...16 3.2 用例图...18 4 数据库设计....21 4.1 数据库概念设计...21 4.2 数据库逻辑结构设计...23 5 详细设计....30 5.1 系统主窗体...30 5.2 数据库连接...31 5.3 用户登陆界面...32 5.4 用户功能选择...34 5.5 用户信息录入...34 5.6 查询功能窗体...36 5.7 数据备份和还原窗体...37 5.8 工作日记及工作日记管理...39 5.9 用户管理及用户密码修改...41 5.10 打印报表模块...43 5.11 数据公用模块...45 5.12 其它模块...46 6 总 结....47 参考文献....49 致谢....50 人事管理系统 网络工程 雷灵明 指导老师:曹步青 摘要:随着企业自身人力资源的日益庞大、复杂程度逐渐增强,人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事管理系统。人事管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。人事管理系统是对工作人员进行统一的管理,可以方便的进行录入,查询,修改,删除,退出。经过以上分析,本系统使用Delphi 7.0作为界面和功能开发工具和SQL Sever 2000作为后台数据库,利用其提供的各种面向对象的开发工具进行界面和数据库开发。软件过程结合了快速原型模型与增量模型的优点:首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成可行系统。关键词:人事管理;DEPHI;ADO;SQL server 2000 Personnel Management System Network engineering Lei Lingming Teacher:Cao Buqing Abstract: Along with their own human resources increasing, complexity growing, the man-machine workshop also is unable adapt the present enterprise’s personnel management again, but the personnel management system that make use of knowledge in different fields and computer science and technology.Personnel management system is a typical management information system(MIS), including the establishment and maintenance of the background-database and front-end application development.To the former, the request for the data which is powerful in consistency and integrity, database which is good in security.For the latter, the request for the applications program which is integrity and easy to easy, Personnel management system can manage the staff and admit input, enquiries, modify, delete, and exit.Through such analysis, the system use Delphi 7.0 as the interface and functions of development tools and take SQL Sever 2000 database as background-database, the development of the interface and database which made use of its object-oriented tools, the software process is formed which is combine the advantage of rapid prototype models and incremental model, as follows: At first application prototype of system is built in a short time, Secondly, the initial prototype system needs to be revised and improved, Finally, it is feasible that the system is built.Key words: human resource management;DEPHI;ADO;SQL server 2000 前 言 背景 在竞争越来越激烈的社会里,企业人事管理就越显示出其不可缺性,成为企业一个非常重要的模块。企业人事管理系统主要是用于员工个人相关信息的管理。使用人事管理系统,便于公司领导掌握人员的动向和人员的综合素质,及时调整人才的分配,使用计算机对人事劳资信息进行管理,具有检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等优点,能够极大地提高人事资源管理的效率,也是企业科学化、正规化管理的重要条件。目标 设计一个企业人事信息管理系统,此系统要以人为中心,为企业提供全面的人事管理解决方案; a)为企业建立规范化、实时化人事管理机制; b)提高企业人事管理的效率、节约相关的管理成本,增强人事管理的安全性; c)满足企业管理层,人事业务操作层和全体员工的不同层次和不同方面的需要; d)对企业将来的整体信息化建设提供必要的支持。需求分析 需求分析是系统开发必要环节,也是重中之重。作为该过程的结果,需求规格说明书是对系统的功能和行为完整的描述。系统设计将来自于需求分析的抽象规格说明转变为面向真实世界的设计。一旦构建完成,该系统就会投入使用,同时会不可避免地产生更多的新需求。同时,需求过程与分析活动之间有相当程度的重叠,分析建模对于设定工作的范围和其他一些事来说是必要的,所以我们利用分析模型来描述需求过程,随着开发工作的继续,分析活动在工作中占的比例将变得越来越大,直到所有需求都已知。[1] 1.1 系统需求 企业的人事管理职能主要分为人事档案信息管理、人事变动管理、员工培训管理、奖惩管理等内容。 a)在人事系统开发时应考虑以下需求: b)满足人事管理职能的基本要求; c)进行多层次数据汇总,为各层次管理者的决策分析提供数据; d)具有完整的系统接口,满足灵活的数据导入与导出; e)对操作人员的技能要求比较低,操作方便; f)能够实现方便的扩展,满足企业发展的需要; g)能够保障人事管理数据的安全、准确。 1.1 功能需求 基于系统需求分析,该系统需要实现以下基本功能: a)用户管理:管理系统操作人员,设置操作人员口令和权限。在满足不同系统用户的操作需求的基础上,提高系统的安全性。 b)人事档案管理:完成企业对员工个人档案(包括员工的基本档案和在职信息)的管理及相关操作。操作员进行员工档案信息录入及更改,其中包括员工的基本信息、工作经历、家庭关系、奖惩记录和培训经历,要求对这些员工档案信息进行新增、修改、删除操作,同时可以进行查询和浏览操作。该模块是本系统的重点,用户可以通过该模块为单位建立一个比较完整的人事档案系统,同时可以对档案进行查看。 c)基础数据管理:维护人事管理相关的一些基础数据。主要包括以下功能: (a)民族档案设置:维护职工中民族档案信息; (b)职工类型设置:维护当前企业职工与企业的关系的类别信息;(c)文化程度设置:维护企业职工的文化程度类别信息;(d)政治面貌设置:维护企业职工的政治面貌类别信息;(e)部门类别设置:维护企业中设立的部门类别信息;(f)职务类别设置:维护企业中设立的职务类别信息;(h)职称类别设置:维护企业职工的职称类别信息; d)人事变动管理:对于人事上的变动调整进行管理,对人员档案的信息进行更新(如:员工职务、员工职称、员工性质等的变动)。 e)工作日志管理:记录部门或系统用户的一些备忘信息,包括日常的一些事件记录,以及工作日记的管理维护。 f)数据库管理:对现有的数据库进行管理,包括数据备份和恢复,以方便用户对数据库的管理和维护工作,提高系统的数据安全性。1.3 可靠性要求 a)计算机稳定可靠,网络服务和数据库服务稳定可靠; b)网络通畅、稳定;软件运行稳定;数据计算及数据传输无误;提供数据备份和数据恢复方案。1.4 性能需求 1)硬件环境 在最低配置的情况下,系统的性能往往不尽如人意,现在的硬件性能已经相当出色,且 价格也很便宜,因此通常给服务器端配置高性能硬件。推荐配置为: ·处理器:Intel 奔腾Ⅲ 或更高 ·内存:128MB ·硬盘空间:40GB ·显卡:Geforce系列显示适配器或更高。2)软件环境 ·操作系统:windows 98/ME/2000/N ·数据库:Microsoft SQL server 2000 开发环境简介 2.1 Delphi简介 Delphi这个名字源于古希腊的城市名。它集中了第三代语言的优点。以Object Pascal为基础,扩充了面向对象的能力,并且完美地结合了可视化的开发手段。Delphi自1995年3月一推出就受到了人们的关注,并在当年一举夺得了多项大奖。 Delphi的出现打破了Visual系列可视化编程领域一统天下的局面。并且Delphi使用了本地编译器直接生成技术,使程序的执行性能远远高于其它产品生成的程序。它还是真正的面向对象的编程语言。PASCAL语言的严谨加上可视化的优势和强大的数据库功能使得它有充分的资本和微软的VB叫板。许多人当时都认为Pascal 是最有前途的程序设计语言,并预测Delphi将会成为可视化编程的主流环境。 Delphi在你编好程序后自动转换成。EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。 Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作——Delphi的每一个设计细节,都将带给您一份欣喜。 Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。因此,可以说应用程序框架通过提供所有应用程序共有的东西,为用户应用程序的开发打下了良好的基础。 Delphi已经为您做好了一切基础工作——程序框架就是一个已经完成的可运行应用程序,只是不处理任何事情。您所需要做的,只是在程序中加入完成您所需功能的代码而已。在空白窗口的背后,应用程序的框架正在等待用户的输入。由于您并未告诉它接收到用户输入后作何反应,窗口除了响应所有Windows的基本操作(移动、缩放等)外,它只是接受用户的输入,然后再忽略。Delphi把Windows编程的回调、句柄处理等繁复过程都放在一个不可见的Romulam覆盖物下面,这样您可以不为它们所困扰,轻松从容地对可视部件进行编程。 面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。 说它是一场革命,不是对对象本身而言,而是对它们处理工作的能力而言。对象并不与传统程序设计和编程方法兼 其中多媒体音频视频播放器是通过TMediaPlayer组件来实现的,支持的格式与系统已安装的解码器有关。 总 结 6.1 程序设计风格 在设计的时候采用了增量模型的思想:把软件作为一系列的构件来设计,编码,集成和测试。 用户管理,密码修改,用户登陆,万年历,这些模块都有高度的独立性,因此他们的可重用性比较高,基本上是一个单元完成一个功能,模块规模也比较小,模块的作用域在控制域之内,只使用了两个全局变量来存储用户名和用户权限。[1] 在人机界面设计方面,本系统做到了以下几点: a)保持一致性(界面,背景的致性); b)提供有意义的反馈(用户验证和用户管理,提供了比较精确的反馈信息); c)在执行有较大破坏性的动作之前要求用户确认(数据备份与还原); d)允许大多数取消操作(大多数单元有取消操作功能); e)允许犯错误(由于权限的限制,系统能保护自己不受严重错误的破坏); f)按功能对动作分类(在主窗口就是按动作类型组织菜单的); 6.2 有待加强项 a)帮助的制作 一个完整的应用程序必须具有完整的帮助系统;帮助系统可以在必要的时候给用户信息提示和一些系统相关服务。 b)声音制作在这里主要是对声音的加载,我们可以加载一些一般的声音;主要来源有:音频CD盘;波形音频文件;MP3文件等等。其中波形音频文件以WAV作为文件的后缀,我们可以播放现成的,也可以播放自己录制的文件。c)我们还可以使用各种组件和ActiveX控件等技术来完善系统。利用一些做好的activeX组件,会缩短开发周期。 由于在开发工程方面缺少经验,所以这个系统还存在着许多不足之处,在测试过程中总结如下: a)数据表的设计还不是很合理; b)数据异常处理要更加人性化,错误信息的反馈要更加精确; 6.3 心得 经过一个月的设计和开发,人事管理系统基本开发完毕,其基本功能符合用户需求,能够完成基础数据录入,数据查询等基本功能,以及相关报表的打印。在这次毕业设计中,我获益良多。首先我明白了需求分析对于一个系统的开发的重要性。其次我还学到了如何把一个软件作为一个工程来做,在真正的软件开发中,一个软件系统的开发不是一个人来做,而是很多人合作来完成的,另外还有软件的后期维护等等,这时就显现出了把软件作为一个工程来做的优越性,而这些都离不开数据流图和模块的分解。 Delphi是一个非常强大的开发工具,它具有运行速度快、易于学习和使用以及开发效率高的特点,使用起来真的是很顺手。学习好一门编程语言以后可以为今后的学习和工作带来很大的便利。 虽然本系统实现了基本的用户需求功能,但是还有待于完善和加强,总之通过这次设计和开发过程,我对软件开发有了进一步的了解。 参考文献 [1] 张海藩编著.软件工程导论[M].清华大学出版社出版,2003,1-173. [2] 宋一兵,赵景波,李春艳著.Delphi 7.0基础教程[M].机械工业出版社,2003,2-30. [3] 刘瑶儒著.新概念SQL Server2000教程[M].北京科海集团公司出,2001,12-23. [4] 韩强编著.SQL SERVER 2000 程序员手册[M].机械工业出版社出版,2000,4-35. [5] 萨师煊著.数据库系统概论(第二版)[M].高等教育出版社,1991,8-40. [6] 施伯乐,丁宝康,汪卫著.数据库系统教程[M].高等教育出版社,2002,1-202. [7] 肖健著.SQL Server2000实践与提高[M].中国电子出版社,2002,13-53. [8] 林金霖著.Delphi6 实务经典[M].中国铁道出版社,2002年5月,6-110. [9] 黄超,王志伟著.Delphi企业经营管理系统开发实例导航[M].人民邮电出版社,2003,20-90. [10] 程文刚主编.Delphi数据库实用编程100例[M].中国铁道出版社,2004,8-63. [11] 王晟,万科著.Delphi数据库开发经典案例解析[M].清华大学出版社,2005,85-89. [12] 王惠刚,唐晨光彭为著.delphi7/8程序设计[M].清华大学出版社, 2002,42-63. [13] 潇湘工作室,邢增平著.Delphi 6.0最佳专辑[M].人民邮电出版社,2003,1-404. [14] 心铃.Delphi问答.软件报[N],2004-07-5. [15] 高永惠.浅谈Delphi中的异常处理方法[J].湖南轻工业高等专科学校学报,2002-04,9-10. [16] 徐萌飞.在Delphi中使用ADO技术对数据库操作[J].中国学术期刊(光盘版)电子杂志社,2001,12-13. [17] 陈建兵.Delphi中基于安全灵活的动态连接远程数据库SQL的实现[J].福建电脑,2005,12-13. [18] 孙育红.关于地方法院管理信息系统分析设计与实施[D].中国学术期刊电子杂志社,2001,8-9. [19] 岳冰.南部引嫩工程信息管理系统开发[D].中国学术期刊电子杂志社,2003,20-21. [20] 庞芳,王丽玫.南宁市自动气象站业务服务数据库系统[D].中国学术期刊电子杂志社,2004,21-23. [21] 徐军.研究生院综合管理信息系统的研究与实现[D].中国学术期刊)电子杂志社,2004,32-33. [22] 鲁媛媛.硕士生导师综合素质能力评价指标体系的研究[D].中国学术期刊电子杂志社,2005,18-19. 办公自动化系统的设计与实现 1、摘要 多年以来人们都使用传统的人工方式管理企业内部信息。这种管理方式不仅让企业信息管理者感到非常的厌倦,也存在着不可避免的缺点,如效率太低、保密性太差。时间一长,伴随着企业规模的壮大,企业所需要管理的信息就会越来越多,就会产生大量的文件和数据,这样就会对查阅、更新、保存等方面都产生不少的困难。随着科学技术的不断提高,计算机科学日渐成熟, 其强大的功能已逐渐被人们认识并掌握。如果使用计算机对企业信息进行管理,具有传统的手工管理所没法比拟的优点。例如:检索迅速、查找方便、可靠性高、保密性好、更新方便等。这些优点能够极大地提高企业信息管理的效率,大大降低企业在信息管理上的投入,使企业获得更大的利润空间。因此,开发一个能够管理企业各种信息的办公自动化管理系统是一件十分必要的事情。 关键词:文件,数据,科学技术,信息管理,自动化管理 第一章,导论 第二章,主要研究内容 要求实现一个比较完整的网上办公系统,该系统可以采B/S结构实现,能够通过网络进行办公及信息交互功能。基本功能包括:电子邮件、公告通知、日程安排、通讯簿、工作计划、讨论区、电话区号查询、邮政编码查询等。 第三章,拟解决的关键性问题。 (1)界面简单可操作性强 (2)安全性 (3)简便有效的维护手段 (4)可扩充性 (5)功能性强大 (6)强大的纠错能力 第四章,立论根据及研究创新之处 第五章,参考文献目录 企业人事管理系统设计与实现 2011-3-2 您是第 1013 位阅读者 页面文字: [小] [中] [大] 一、概述 企业人事管理是企业管理的一项重要内容,在整个企业的管理中具有重要地位。随着计算机技术的飞速发展,企业信息化的发展趋势,人事管理系统已经成为企业管理内不可缺少的一部分,是适应现代企业制度要求、推动企业劳动人事管理走向科学化、规范化的必要条件。计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。 二、企业人事管理系统的分析与设计 1.需求分析 随着信息时代的到来以及办公自动化的全面发展,企业人事管理工作的需求也不断提高。传统的手工作业效率较低,操作也较复杂,已不能满足企业发展的要求。人事管理系统打破了传统手工操作的模式,动态的实现了职工信息管理、人事变动、职工考勤信息管理和部门机构管理等功能。 (1)系统用户管理 对使用系统的用户进行管理,为他们分配一定的权限,使他们规范的使用系统。本系统的用户及其操作权限都是由管理员添加的,管理员添加完毕之后,再将登录名(即职工编号)和密码分配给员工。 (2)职工信息管理 职工信息管理包括对职工基本信息和职工调动情况的记录进行查询、添加、删除和修改。 (3)职工考勤管理 用于对职工的考勤情况进行记录,同时管理和查询企业职工出勤情况。其中包括日考勤记录、请假、加班、出差等情况的查询、添加、删除和修改。 2.系统功能模块设计 根据对人事管理系统的功能需求分析,本系统的主要模块包括:系统用户管理、职工信息管理、职工考勤管理以及机构编制管理四个部分,具体如图1所示。 3.数据库设计 数据库是MIS的重要组成部分。本系统采用SQL作为数据库管理系统。一个数据库管理系统(Database Management System,简称DBMS)是一系列软件程序的集合,一般具备以下功能:以规范的、一致的方式存储数据;以规范的、一致的方式将数据组织成记录;允许用规范、一致的方式存取记录。在数据库管理系统中,应用程序不能直接从存储介质获得所需的数据,它必须先将请求提交给DBMS,由DBMS负责从存储介质检索数据并提供给应用程序使用。因此一个数据库管理系统就是应用程序与数据之间的接口。在数据库管理系统中,多用户可以不必关心数据存储和其它实现的细节,可以在更高的抽象级别上观察和访问数据,适合不同类型用户的多种用户界面,保证并发访问时数据一致性的并发控制,增进数据安全性的访问控制。 三、企业人事管理系统的实现 各模块的实现: 1.登录模块 在本系统中,不同级别的使用者拥有不同的权限,本系统的用户身份分为职工、管理员、考勤员、主管四种:职工登录后能进行的操作包括修改登录密码和查询个人信息;管理员负责维护职工基本信息和职工流动信息,同时也具备修改密码和查询个人信息的权限;考勤员主要负责所有职工的各项考勤信息记录的维护,也拥有一般职工的权限;主管主要负责组织机构编制的管理,对新增子公司和各下属机构部门信息的管理。也可更改登录密码或查询个人信息。 2.系统用户管理模块 系统用户模块分为两个部分。第一部分是系统为每个系统的使用者提供了修改登录密码的权限。第二部分是登录人员可对个人基本信息、调动信息以及各项考勤信息进行查询。 修改登录密码:在管理人员添加用户时,系统会把每个新添用户的密码设置为一个默认值,管理人员无法对此默认值进行修改。用户一旦被分配了职工编号和权限,就可登录本系统,并对个人登录密码进行修改。 查询个人信息:用户登录后可以查看个人基本信息并进行核对,但为了系统安全性考虑,本系统没有给职工修改个人基本信息的权限,所以当用户基本信息发生变更,或者用户发现显示的基本信息与现实不符时,须向人事管理人员提出人事基本信息修改的申请。 3.职工信息管理模块 职工信息管理主要包括职工基本信息的管理和职工流动信息的管理,由管理员来完成此模块的操作。职工基本信息管理模块提供对职工基本信息的添加、删除、查询和修改功能。由于考虑到职工人数很多,查找起来可能很费力,所以提供了以职工姓名来对所有记录进行模糊查找。在查找的结果中,再根据职工编号,选择相应的职工记录便可。职工流动信息管理模块提供职工调动信息的添加、删除、查询和修改功能。 4.职工考勤信息管理模块 职工考勤信息管理模块包括日考勤信息管理和其他考勤信息管理,对于每一项考勤,本系统都提供了添加、编辑、删除的功能。除此以外,根据考勤信息记录量大的特点,特别对各项考勤设置特殊的查询方式。查询条件一共有三个,包括职工编号、起始日期和终止日期。 其他考勤信息管理模块包括请假信息管理、加班信息管理和出差信息管理三个部分。这三个模块都具备添加、删除和修改功能。第二篇:毕业论文--校园网络安全系统设计与实现
第三篇:人事管理系统设计与实现
第四篇:办公自动化系统的设计与实现
第五篇:企业人事管理系统设计与实现