分享
分销 收藏 举报 申诉 / 20
播放页_导航下方通栏广告

类型c课程设计报告书.doc

  • 上传人:天****
  • 文档编号:2938460
  • 上传时间:2024-06-11
  • 格式:DOC
  • 页数:20
  • 大小:86.50KB
  • 下载积分:10 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    课程设计 报告书
    资源描述:
    安徽工业大学 《面向对象程序设计》课程设计报告书 设 计 题 目:企业人事管理系统 指 导 老 师:汤亚玲 学 生 学 号:119074292 学 生 姓 名:黄飞 时 间:2012年12月21日 19 第1章 选 题 1.1 题目背景 企业人事管理系统是企业管理中的一个重要内容,随着时代的进步,企业人员数量也不断增加、分工的不断细化、各个行业间联系的不断密切,对人事管理的要求也不断提高。早期的人工方式的管理系统已不适合现代企业的公司的发展,实现企业人事管理的系统化、规范化、自动化,是现代企业管理的首选。 1.2系统实现的具体分工 系统分为职工类、职工数据类、权限设置类以及主函数等几大模块,其中职工类实现对公司职工个人基本信息的描述,职工数据类实现公司对职工的维护,权限设置类实现对使用者的操作权限设置功能,main() 函数实现对程序主界面的引导。 1.2.1 标题 企业人事管理系统 1.2.2 题目要求 设计一个小型人事管理系统,假设公司只有经理、业务经理、普通职工,需要描述他们的信息,如职工编号、姓名、电话、住址等信息,且需要设置系统操作权限,实现界面的转换,增、删、查、改、显示功能。 1.3开发环境 Visual C++ 6.0 第2章 设计内容 2.1实现功能 系统主要包括企业系统管理人员对企业职工信息的增、删、查、改等功能和普通职工对职工信息的查看功能。用户只需在进入操作界面后选择相应的登陆身份就可以进行相应的操作。 2.2 概要设计(涉及类的框图) 企业人事管理系统 用户身份验证类 Jusrition 职工信息类 Employee 职工数据类 Database 主程序 main 设置帐号、密码 setData 判断权限操作 judge 职工基础信息定义 职工基础信息设置 职工基础信息的增加、删除 、显示 构造Database()函数 系统的主界面输出 由主界面进入子界面或退出 增、删、全删、查、改、显示职工信息 void empdata() 职工维护 2.3 界面设计 界面设计在工作流程上分为结构设计、交互设计、视觉设计三个部分。 结构设计 Structure Design 结构设计也称概念设计 (Conceptual Design),是界面设计的骨架。该人事管理系统运行时界面上的目录体系和词语定义易于用户理解和操作,例如主界面的目录体系包括1操作、0返回。选择1操作又会进入登陆界面,其目录体系包括 1系统管理员、2 职工。选择 1系统管理员会进入管理员操作界面,其目录体系包括1增加2更改3删除4查找5显示6全删7 帮助0退出,选择2会进入职工操作界面,其目录包括1查找 2退出,然后选择相应的操作进行操作。这些都充分体现了结构化的界面设计理念。 交互设计 Interactive Design 交互设计的目的是使产品让用户明白、清楚,且能简单使用。 任何产品功能的实现都是通过人和机器的交互来完成的。该人事管理系统中包含1)清楚的错误提示,误操作后,系统提供有针对性的提示。例如管理员输入的帐号或密码错误时,系统会给出相应的提示,以指导管理员进行正确的操作。以及增、删、查、改等功能实现中的提示信息。2) 使用用户的语言,而非技术的语言。 3)方便退出。4)导航功能。随时转移功能,很容易从一个功能跳到另外一个功能。例如操作者所需各服务间功能转换。人的因素被作为设计的核心体现出来。 视觉设计 Visual Design 该管理系统界面清晰明了,在结构设计的基础上,参照目标群体的心理模型和任务达成进行了视觉设计。 第3章 系统实现 3.1 涉及知识点 类封装、面向对象程序设计、字符串的应用、条件语句、循环语句的使用、库函数(屏幕清零函数)的应用、过程化设计的思想等。 源代码 #include <iostream.h> #include <iomanip.h> #include <string.h> #include <fstream.h> #include<map> using std::map; const int Maxr=100; class Jusrition //身份验证类 { private: char zh[11];//用户帐号 char mm[21];//用户密码 int mi; public: void setData(char a[],char b[]) { strcpy(zh,a); strcpy(mm,b); } int judge() //用户权限判断函数 { int s,t,i=1; do { cout<<setw(20)<<"请输入帐号:"; cin>>zh; cout<<setw(20)<<"请输入密码:"; cin>>mm; s=strcmp(zh,"abc"); t=strcmp(mm,"1234"); if(s||t) cout<<"您输入的信息错误,请重新输入!\n"; else return 0; i++; }while(i); }; class Employee //职工类 { int tag;//删除标记 int no;//职工编号 char name[20];//职工姓名 char zw[20];//职务 int salary;//职工工资 char cellphone[20];//职工电话 char address[50];//家庭住址 public: Employee(){} char *getname() {return name;}//获取名字 int gettag() {return tag;}//获取标记 int getno() {return no;}//获取编号 int getsalary(){return salary;} char *getaddress(){return address;} char *getcellphone(){return cellphone;} void setzw(char q[])//设置职务 { strcpy(zw,q); } void setname(char na[])//设置名字 { strcpy(name,na); } void setaddress(char a[]) {strcpy(address,a);} void setcellphone(char c[]) {strcpy(cellphone,c);} void getsalary(int sa){salary=sa;} void delna(){tag=1;cout<<"删除成功!"<<endl;}//删除 void addemp(int n,int sa,char *na,char *q,char *a,char* c)//增加 { tag=0; no=n; salary=sa; strcpy(name,na); strcpy(zw,q); strcpy(address,a); strcpy(cellphone,c); } void disp()//显示职工信息 { cout<<setw(5)<<no<<setw(8)<<name<<setw(8)<<salary<<setw(10)<<zw<<setw(15) <<cellphone<<setw(15)<<address<<endl; } }; class Database//职工数据类 { int top; Employee read[Maxr]; Jusrition user;//用户权限对象定义 public: Database()//将职工信息从employee.txt读取到read[]中 { Employee s; top=-1; fstream file("employee.txt",ios::in); while (1) { file.read((char *)&s,sizeof(s)); if (!file) break; top++; read[top]=s; } file.close(); } void clear()//删除所有 { top=-1; } int addemp (int n, int sa,char *na,char*q,char *a,char* c) //增加职工 { Employee *p=query(n); if (p==NULL) { top++; read[top].addemp(n,sa,na,q,a,c); return 1; } return 0; } Employee *query(int empid) { for (int i=0;i<=top;i++) if (read[i].getno()==empid && read[i].gettag()==0) return &read[i]; return NULL; } Employee *query1(char empna[20]) { for (int i=0;i<=top;i++) if ((read[i].getname()==empna) && read[i].gettag()==0) return &read[i]; return NULL; } Employee *query2(char empa[50]) {for (int i=0;i<=top;i++) if (read[i].getaddress()==empa && read[i].gettag()==0) return &read[i]; return NULL; } Employee *query3(char empc[20]) { for (int i=0;i<=top;i++) if (read[i].getcellphone()==empc && read[i].gettag()==0) return &read[i]; return NULL; } void disp() //职工信息显示 { for (int i=0;i<=top;i++) if (read[i].gettag()==0) read[i].disp(); } void empdata(); ~Database() //将read[]中的信息读入到employee.txt中 { fstream file("employee.txt",ios::out); //文件操作 for (int i=0;i<=top;i++) if (read[i].gettag()==0) file.write((char *)&read[i],sizeof(read[i])); file.close(); } }; void Database::empdata()//职工维护 { int choice=1; int m=1;int b=1;int k; char rname[20]; char raddress[50],rcellphone[20]; int empid; int empsa;int q; Employee *r; cin>>k; if(k==1) { user.setData("abc","1234"); user.judge(); } system("cls");//屏幕清零 while(choice!=0) { if(k==1) { cout<<"职工维护 1:新增 2:更改 3:删除 4:查找 5:显示 6:全删 7:帮助 0:退出=>"; cin>>choice; system("cls");//屏幕清零 switch (choice) { case 1: …………………………….(新增)break; case 2: …………………………………(修改)break; case 3: cout<<"输入需要删除的职工编号=>"; cin>>empid; r=query(empid); if (r==NULL) { cout<<"该职工不存在"<<endl; break; } r->delna();break; case 4: cout<<"请输入需要查找的职工的编号:\n"; cout<<setw(50)<<" ┌---------------------------------------┐\n"; cout<<setw(50)<<" │ 请选择您所需的操作 │\n"; cout<<setw(50)<<" │ 按编号查找1,并按回车键 │\n"; cout<<setw(50)<<" │ 返回 2,并按回车键 │\n"; cout<<setw(50)<<" └---------------------------------------┘\n"; cin>>b; system("cls");//屏幕清零 switch(b) { case 1: cout<<"输入职工编号:"; cin>>empid; r=query(empid); if (r==NULL) { cout<<"该职工不存在"<<endl;break; } cout<<setw(5)<<" 编号"<<setw(8)<<" 姓名"<<setw(8)<<" 工资"<<setw(10)<<" 职务"<< setw(15)<<" 电话"<<setw(15)<<" 家庭地址"<<endl; r->disp();break; case 2:break; }break; case 5: …………………………….break; case 6: clear(); break;//删除所有 case 7: cout<<"工资计算方式:\n"<<"1.经理:基本工资(8000)+奖金.\n"<<"2.业务经理:基本工资(4000)+提成.\n"<<"3.普通员工:基本工资\n"; break; }} else if(k==2) { cout<<"职工维护 1:查找 0:退出=>"; cin>>choice; system("cls");//屏幕清零 switch (choice) { case 1: cout<<setw(50)<<"┌----------------------------------------┐\n"; cout<<setw(50)<<" │ 请选择您所需的操作 │\n"; cout<<setw(50)<<" │ 按编号查找1,并按回车键 │\n"; cout<<setw(50)<<" │ 返回 2,并按回车键 │\n"; cout<<setw(50)<<" └---------------------------------------┘\n"; cin>>b; system("cls");//屏幕清零 switch(b) { case 1: cout<<"请输入需要查找的职工编号:"; cin>>empid; r=query(empid); if (r==NULL) { cout<<"该职工不存在"<<endl; break; } cout<<setw(5)<<" 编号"<<setw(8)<<" 姓名"<<setw(8)<<" 工资"<<setw(10)<<" 职务"<< setw(15)<<" 电话"<<setw(15)<<" 家庭地址"<<endl; r->disp();break; case 2:break;} break; case 0:break;}}}} void main() { int choice=1;Database EmpDB; while(choice!=0) { cout<<"********************************************************************************"<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<setw(50)<<"欢迎进入人事管理系统"<<endl; cout<<endl; cout<<endl; cout<<endl; cout<<setw(20)<<"********************************************************************************"<<endl; cout<<endl; cout<<endl; cout<<setw(50)<<" ┌---------------------------------------┐\n"; cout<<setw(50)<<" │ 请选择您所需的操作 │\n"; cout<<setw(50)<<" │ │\n"; cout<<setw(50)<<" │ 操作 1.并按回车键 │\n"; cout<<setw(50)<<" │ │\n"; cout<<setw(50)<<" │ 返回 0.并按回车键 │\n"; cout<<setw(50)<<" └--------------------------------------┘\n"; cin>>choice; system("cls");//屏幕清零 switch(choice) { case 1: while(1) { cout<<setw(50)<<" **************************************\n"; cout<<setw(50)<<" * 请选择您的登陆身份! 并以回车结束 *\n"; cout<<setw(50)<<" * *\n"; cout<<setw(50)<<" * 1.系统管理员 *\n"; cout<<setw(50)<<" * *\n"; cout<<setw(50)<<" * 2. 职工 *\n"; cout<<setw(50)<<" **************************************\n"; cout<<setw(20); EmpDB.empdata();break; case 0: cout<<endl<<endl<<endl; cout<<" **************************************************************"<<endl; cout<<endl<<endl; cout<<" 谢 谢 使 用 !"<<endl; cout<<endl<<endl<<endl; cout<<" **************************************************************"<<endl; cout<<endl<<endl<<endl;break; } } } } 第4章 结束语(心得体会) 通过这一个段时间的学习,发现了自己的很多不足,自己知识的很多漏洞,也有很多闻所未闻的东西,从而更加明白知识扎实的重要性,理解实践能力的重要性!因为基础知识的不扎实让我在这次课程设计中走了许多弯路,不过我认为是值得的,它大大的补充了我知识不足的那一面,我始终相信付出必有收获。 这次的课程设计,可以说是苦乐交加。在程序设计过程中,不仅检验、巩固了我所学的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。 它为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生运用所学知识解决实际问题的能力。课程设计这类实践训练是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础。 通过这次人事管理系统的设计,我在多方面都有所提高。首先,整体与局部的把握,在系统设计前,需要整体思考人事管理系统所包含的信息及其实现的功能,在设计过程中,再思考局部功能实现的完整性与整个程序的结合。其次,在实现用户权限设置这个功能时,通过查阅课本、资料,实践,对字符串的使用更加熟悉、了解,能够熟练运用字符串,而且加强了对类中参数传值的使用,巩固了类定义,函数成员使用等知识,并通过条件语句实现不同的人设置不同的操作。再者,实现删除功能时,通过查询资料、借鉴前人的经验,明白由于使用的是文件链表操作,可以使用标记实现删除功能,且保证删除和全删的标记不同。然后,在实现查找功能时,更熟练了指针对象的使用。最后,在整个程序运行时,考虑到屏幕出现的效果,查阅资料及其前人的登录系统代码,了解了库函数中的屏幕清零函数并能正确使用。课程设计使我对c++课程又进行了系统的复习,独立思考的能力也有了提高。 在此感谢我们的汤亚玲老师对我们细心的指导,同时也非常感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。 参考文献 1.《C++语言程序设计》(第四版) 2.《高质量c++编程指南》 3.《深入浅出MFC》 4.《c++primer》
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:c课程设计报告书.doc
    链接地址:https://www.zixin.com.cn/doc/2938460.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork