欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年C++课程设计 .pdf

    • 资源ID:34878924       资源大小:320.64KB        全文页数:18页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年C++课程设计 .pdf

    学生成绩核算系统院系:国际学院班级:09 计算机网络技术姓名:马亚飞学号:092601111 日期:2011年 12 月 15日成绩:签名:2011-2012学年第 1 学期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 18 页 - - - - - - - - - 2 1. 系统概述通过设计一个较为简单的高校工资管理系统,进一步熟悉 C+ 中类的概念、类的封装、继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对 C+ 的理解与 Visual C+ 环境的使用; 逐步熟悉程序设计的方法,并养成良好的编程习惯。2. 总体设计2.1 职工类的设计基于 C+ 中类的概念,类的封装,继承和抽象。编写一个Person 的基类包含共有的相关信息和操作,然后使职工类都继承于此基类从而实现多态。2.2 应用类的设计编写一个 Person 类的友元类 College 类来实现添加,删除,查找等功能。2.3 文件的读写设计通过 College 类中的 Save ()函数来实现数据的存储, 保存在 Person.dat 中,而通过 Load()函数来实现 Person.dat数据的读入。3. 详细设计及系统实现3.1 Person类class Person / 人员类 (抽象类 ) protected : int No; / 编号char Name20; / 姓名char Duty; / 人员类别标志 (0- 教师,1- 实验员 ,2- 行政人员 ,3-教师兼实验员 ,4- 行政兼教师 ) double Salary; / 基本工资 Person *next; / 指针域public : Person() / 基类构造 next=0; / 指针域设置为空 virtual Person() / 基类虚析构 virtualvoid Input()=0; / 从键盘输入数据virtualvoid Input(ifstream& ifs)=0; / 从文件输入数据virtualvoid Output()=0; / 向屏幕输出数据virtualvoid Output(ofstream& ofs)=0; / 向文件输出数据名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 18 页 - - - - - - - - - 3 virtualdouble Incoming()=0; / 计算收入friendclass College; ; 3.2 Teacher类class Teacher: virtualpublic Person / 教师类 protected : int Hours; / 教师课时public : / 为对象设置数据分为两种途径,通过) 构造函数, ) 一般成员函数/ 分开可以使得程序中应用更加灵活/ 本程序采用 : 缺省构造 +Input() Teacher() / 构造函数,初始化部分数据 Duty=0 ; Salary=800; void Input() / 键盘补充输入其它数据 coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDutyHours; void Output() coutNotName t教师 ttHourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl; double Incoming() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 18 页 - - - - - - - - - 4 return Salary+(Hours-120)*20; ; 3.3 Assistant类class Assistant:virtualpublic Person / 实验员 protected : int Allowance; int Hours; public : Assistant() Duty=1 ; Salary=650; Allowance=150; void Input() coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDutyHours; void Output() coutNotName t实验员 ttHourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl; double Incoming() return Salary+Allowance+(Hours-70)*20; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 18 页 - - - - - - - - - 5 ; 3.4 Manager 类class Manager: virtualpublic Person / 行政人员 protected : int Allowance; public : Manager() Duty=2 ; Salary=750; Allowance=250; void Input() coutNo; coutName; void Input(ifstream& ifs) ifsNoNameDuty; void Output() coutNotName t行政人员 t Incoming()endl; void Output(ofstream& ofs) ofsNo Name Dutyendl; double Incoming() return Salary+Allowance; ; 3.5 Teacher_Assistant类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 18 页 - - - - - - - - - 6 class Teacher_Assistant:public Teacher, public Assistant / 教师兼实验员 public : Teacher_Assistant() Duty=3 ; Teacher:Salary=800; void Input() coutNo; coutName; coutTeacher:Hours; coutAssistant:Hours; void Input(ifstream& ifs) ifsNoNameDutyTeacher:HoursAssistant:Hours; void Output() coutNotName t教师兼实验员 Teacher:Hours Assistant:HourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name DutyTeacher:Hours Assistant:Hoursendl; double Incoming() return Salary+(Teacher:Hours-120)*20 +Allowance+(Assistant:Hours-70)*20; ; 3.6 Manager_Teacher类class Manager_Teacher: public Manager, public Teacher / 行政人员兼教师 public : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 18 页 - - - - - - - - - 7 Manager_Teacher() Duty=4 ; Manager:Salary=750; void Input() coutNo; coutName; coutHours; void Input(ifstream& ifs) ifsNoNameDutyHours; void Output() coutNotName t行政人员兼教师 HourstIncoming()endl; void Output(ofstream& ofs) ofsNo Name Duty Hoursendl; double Incoming() return Salary+Allowance+Hours*20; ; 3.7 College类3.7.1 头文件class College private : Person *PL; void Clear(); int College:Find(int ID,Person *p1,Person *p2); public : 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 18 页 - - - - - - - - - 8 College(); / 构造 College(); / 析构void Add(); / 增加职工void Delete(); / 删除职工void Modify(); / 修改职工void Print(); / 输出职工信息void Save(); / 职工信息存盘void Load(); / 职工信息装入void Finding(); / 查找职工; 3.7.2 构造函数College:College() / 构造函数 ( 创建个头结点的链表 ) Person *p=new Teacher; PL=p; coutnext; delete p; p=PL; PL=0; 3.7.4 Add函数void College:Add() / 增加职工 cout tt*高校工资管理系统 *nnn; coutnext)p=p-next; char ch= m ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 18 页 - - - - - - - - - 9 / 创建新结点 , 录入数据 , 连接到链表 Teacher *pt; Assistant *pa; Manager *pm; Teacher_Assistant *pta; Manager_Teacher *pmt; cout 职工分类码 0- 教师,1- 实验员 ,2- 行政人员 ,3- 教师兼实验员 ,4- 行政兼教师:nn; for (;ch!= x ;) coutch; switch (ch) case0 : pt=new Teacher; pt-Input(); p-next=pt; break; case 1 : pa= new Assistant; pa-Input(); p-next=pa; break; case 2 : pm= new Manager; pm-Input(); p-next=pm; break; case 3 : pta=new Teacher_Assistant; pta-Input(); p-next=pta; break; case 4 : pmt= new Manager_Teacher; pmt-Input(); p-next=pmt; break; p=p-next; 3.7.5 Find函数/ 查找职工结点 ( 返回-找到, - 未找到 . 结点指针由 p1 返回,p2 为前看指针 )int College:Find(int ID,Person *p1,Person *p2) *p1=PL-next; *p2=PL; while (*p1) if (*p1)-No=ID) break; / 找到else名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 18 页 - - - - - - - - - 10 *p2=*p1; / 继续查找 *p1=(*p1)-next; return *p1?1:0; 3.7.6 Clear函数void College:Clear() / 清除所有的职工结点 (仅保留头结点 ) Person *p=PL-next; while (p) PL-next=p-next; delete p; p=PL-next; 3.7.7 Delete函数void College:Delete() / 删除职工 cout tt*高校工资管理系统 *nnn; cout ntttt* 删除职工 *n ; int No; Person *p1,*p2; coutNo; if (!Find(No,&p1,&p2) coutnext=p1-next; / 连接delete p1; cout正确删除 !n ; 3.7.8 Modify函数void College:Modify() / 修改职工 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 18 页 - - - - - - - - - 11 cout tt*高校工资管理系统 *nnn; cout ntttt* 修改职工 *n ; int No; Person *p1,*p2; coutNo; if (!Find(No,&p1,&p2) coutOutput(); / 输出原来的职工信息 (做提示 ) p1-Input(); / 输入新的职工信息 ( 更新) cout修改完成 !n ; 3.7.9 Print函数void College:Print() / 输出职工信息 cout tt*高校工资管理系统 *nnn; cout n* 职工信息表 *nn; coutnext; if (!p) coutOutput(); p=p-next; 3.7.10 Save函数void College:Save() / 职工信息存盘名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 18 页 - - - - - - - - - 12 ofstream f(Person.dat,ios:out); / 打开文件/ 遍历输出至文件 Person *p=PL-next; while (p) p-Output(f); p=p-next; f.close(); / 关闭文件 coutbufbufDuty; if (f) / 根据人员类型创建新结点switch (Duty) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 18 页 - - - - - - - - - 13 case 0 : p2= new Teacher; break; case 1 : p2= new Assistant; break; case 2 : p2= new Manager; break; case 3 : p2= new Teacher_Assistant; break; case 4 : p2= new Manager_Teacher; break ; default : f.close(); return ; p-next=p2; p=p-next; f.seekg(t); p-Input(f); else break; / 关闭文件 f.close(); cout Person.dat 数据已装入 .n ; 3.7.12 Finding函数void College:Finding() couttt*高校工资管理系统 *nnn; coutntttt*查找职工 *n ; Person *p1,*p2; int ID; coutID; coutnext; p2=PL; while (p1) if (p1)-No=ID) coutOutput(); break; / 找到else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 18 页 - - - - - - - - - 14 p2=p1; / 继续查找 p1=(p1)-next; 3.8 界面函数char Meau() char c; int flag; do system( cls ); flag=1; couttt*高校工资管理系统 *nnn; couttttn ; couttttn ; coutttt 1、增加职工n ; coutttt 2、删除职工n ; coutttt 3、查找职工n ; coutttt 4、修改职工n ; coutttt 5、输出职工信息n ; coutttt 6、数据存盘n ; coutttt 7、数据装入n ; coutttt 8、退出n ; couttttn ; coutc; if (c=1 |c= 2 |c= 3 |c= 4 |c= 5 |c= 6 |c= 7 |c= 8 ) flag=0; while (flag); return c; / 显示主菜单,接受选择3.9 主函数void main() char ch; College c; / 定义大学对象do ch=Meau(); switch (ch) case 1 : system(cls );c.Add(); coutnntt按任意键结名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 18 页 - - - - - - - - - 15 束.n;getchar();getchar();break ; case 2 : system(cls );c.Delete();coutnntt按任意键结束.n;getchar();getchar();break ; case 3 : system(cls );c.Finding();coutnntt按任意键结束.n;getchar();getchar();break ; case 4 : system(cls );c.Modify();coutnntt按任意键结束.n;getchar();getchar();break ; case 5 : system(cls );c.Print(); coutnntt按任意键结束.n;getchar();getchar();break ; case 6 : system(cls );c.Save(); coutnntt按任意键结束.n;getchar();getchar();break ; case 7 : system(cls );c.Load(); coutnntt按任意键结束.n;getchar();getchar(); ; while (ch!= 8 );4. 系统评价该系统实现了职工的添加,删除,查找,显示,修改,和数据的存盘与装入操作,总体上来说功能比较全面,但仍有一些不足,如界面问题,以及程序中的许多繁琐之处。5. 设计结果与分析5.1 主界面实现各种功能的选择:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 18 页 - - - - - - - - - 16 5.2 添加功能实现添加功能,输入“ x“结束:5.3 删除功能5.4 查找功能名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 18 页 - - - - - - - - - 17 5.5 修改功能5.6 显示功能5.7 保存功能名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 18 页 - - - - - - - - - 18 5.8 读入功能6. 设计体会与建议6.1 体会通过这次对高校工资管理系统这个实验的设计,充分感受并体会到了C+ 中的面对对象设计的真意,以及学习了对一个程序的分解和分工完成的方法,掌握了一点编写的技巧。实际的操作与解决问题的能力更有了大幅的提升。6.2 建议希望在以后的课程设计中,能更多的得到老师的帮助,可以帮助我们更清晰地理清思路,以及一些编程上的技巧。7. 附录名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 18 页 - - - - - - - - -

    注意事项

    本文(2022年C++课程设计 .pdf)为本站会员(Che****ry)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开