C++课 程 设 计 报 告

合集下载

C++课程设计报告_复数计算器_2015_电信1401_曾立弘_0903140114

C++课程设计报告_复数计算器_2015_电信1401_曾立弘_0903140114

中南大学高级程序设计实践(C++)课程设计报告题目复数计算器学生姓名曾立弘指导教师陈丽萍学院信息科学与工程学院专业班级电子信息工程 1401 班完成时间2015年6月8日星期一目录第一章需求分析 (1)第二章概要设计 (2)第三章详细设计 (4)第四章调试分析 (21)第五章测试结果 (25)第六章课程设计总结 (36)第七章参考文献 (37)第八章附录 (37)第一章需求分析1.1程序设计的任务1.1.1编程目的1.本次程序设计的目的运用面向对象程序设计知识,利用C++语言设计和实现一个复数计算器,要求具备如下主要功能:(1)建立实数类、复数类(2)实现实数、复数信息的初始化(3)实现实数的加、减、乘、除、自增、自减、求平方、二次方根等操作(4)实现复数的加、减、乘、除、取模、求平方、求共轭复数、求单个复数的向量角、求两个复数的夹角等运算(5)实现实数、复数信息的输出1.1.2编程要求在实现过程中,需利用面向对象程序设计理论的基础知识,充分体现出C++语言关于类、继承、封装与多态等核心概念,每一个类应包含数据成员和成员函数。

1.1.3数据范围数据输入的形式为float型,输出形式亦是float型,数据(实数、复数的实部、虚部)范围是-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38。

1.2本程序能实现的功能1.2.1实数类(Complex)所实现的功能:实数的加法运算、减法运算、乘法运算、除法运算、前置自增运算、后置自增运算、前置自减运算、后置自减运算、求平方运算、求平方根运算;1.2.2复数类(Complex1)所实现的功能:复数的加法运算、减法运算、乘法运算、除法运算、模长运算、求平方运算、共轭复数运算、求单个复数的向量角运算、求两个复数的夹角运算。

1.2.3主函数所能实现的功能1.提供给操作者操作数据的类型(实数还是复数)的标识;2.操作者选择数据类型后,提供运算类型操作的标识;3.运用指针调用两个类的各成员函数分别完成各项计;第二章概要设计2.1构成部分2.1.1系统由三部分构成:实数类(Complex)、复数类(Complex1)、主函数main。

图书借阅管理系统课程设计报告

图书借阅管理系统课程设计报告

课程设计报告课程名称C语言程序设计课题名称图书借阅管理系统专业网络工程班级1002班学号************姓名指导教师唐北平、陈淑红、谭小兰2011年6 月30 日湖南工程学院课程设计任务书课程名称C语言程序设计课题图书借阅管理系统专业班级网络工程1002班学生姓名学号************指导老师唐北平、陈淑红、谭小兰审批任务书下达日期2011 年6 月20 日任务完成日期2011 年7 月03 日一、设计内容与设计要求1.设计内容:⑴问题描述:对一个有N本图书的图书馆,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。

⑵功能要求:(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:书号、书名、作者、出版社、出版日期、单价、是否借出等。

(2)、本系统显示这样的菜单:a.图书基本信息录入b.图书基本信息显示c.图书基本信息删除d.图书基本信息修改e.图书基本信息查询(按书号查询、书名等)g. 退出系统(3)、执行一个具体的功能之后,程序将重新显示菜单。

2.设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。

1.设计正确,方案合理。

2.界面友好,使用方便。

3.程序精炼,结构清晰。

4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5.上机演示。

6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。

源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。

并用A4的复印纸打印并装订;二、进度安排第 18 周星期一 08:00——12:00熟悉这次课程设计的目的和课程设计的要求,明确了解一些要用到的文件和调用函数等,然后再把整个程序设计的总体框架、流程图等构思出来,并进行上机程序设计。

c语言课程设计报告项目背景

c语言课程设计报告项目背景

c语言课程设计报告项目背景一、课程目标知识目标:1. 学生能理解C语言课程设计报告的项目背景,掌握C语言在工程项目中的应用。

2. 学生能够掌握C语言的基本语法,如变量定义、数据类型、运算符、控制结构等,并能够运用到实际项目中。

3. 学生能够了解C语言编程规范,培养良好的编程习惯。

技能目标:1. 学生能够独立完成C语言课程设计报告的撰写,包括项目背景、需求分析、设计思路、代码实现和测试结果等。

2. 学生能够运用C语言编写简单的程序,解决实际问题,提高编程实践能力。

3. 学生能够通过课程设计,培养自己的问题分析、解决方案设计和调试能力。

情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,提高自主学习能力。

2. 学生能够认识到C语言在计算机科学中的重要性,激发对计算机科学的热爱。

3. 学生通过团队协作完成课程设计,培养沟通协作能力和团队精神。

课程性质:本课程为C语言编程实践课程,强调理论与实践相结合,注重培养学生的编程能力和实际应用能力。

学生特点:学生为初中年级,对编程有一定的基础,具备基本的计算机操作能力,好奇心强,学习积极性较高。

教学要求:教师应关注学生的个体差异,提供针对性的指导,引导学生掌握C 语言基本知识,注重培养学生的实际操作能力和团队协作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. C语言基础知识回顾:变量定义、数据类型、运算符、控制结构(包括顺序、选择、循环结构)。

2. C语言编程规范:命名规则、注释、缩进、代码组织等。

3. 课程设计报告撰写方法:项目背景、需求分析、设计思路、代码实现、测试结果与分析。

4. 实践项目:选取与实际生活相关的问题,引导学生运用C语言进行程序设计。

- 项目一:计算器程序- 项目二:学生信息管理系统- 项目三:简易游戏开发(如:猜数字游戏)教学大纲:第一周:C语言基础知识回顾,重点讲解变量定义、数据类型和运算符。

《C语言程序设计基础》上机实验报告(模版)

《C语言程序设计基础》上机实验报告(模版)

成都信息工程学院计算机系






(说明:实验报告必须包含下面的每项内容,根据实验情况认真填写,封面必须打印或复印(A4纸),书写上机实验报告内容的纸张也用A4纸,最后从侧面装订)
一【上机实验目的】
(上机实验目的见老师给的上机实验计划表)
二【实验环境】
PC机每人1台
三【上机实验内容】
(此次上机实验老师布置的具体任务)
四【上机调试程序流程图】(注:可打印)
(可用盒图表示,也可用流程图的形式表示)
五【上机调试中出现的错误信息、错误原因及解决办法】
(记录下你调试程序中出现的错误信息的英文提示,分析出错原因及可能的解决办法)
六【上机调试后的源程序及还存在的问题】(注:源程序可打印)(如你的程序没有问题可不写,但可记录下你对你编写此程序的其它具体想法,)
七【上机实验中的其他它问题及心得】
(在上机实验中遇到的你不能解决的其它问题,如非C语言程序调试的问题等,简单描述一下你此次上机的收获及感想)。

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告

程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。

2.掌握赋值语句的特点、功能。

3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。

4.掌握编写程序和调试程序的方法。

二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。

#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。

(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。

基于51单片机的温度检测系统_单片机C语言课题设计报告

基于51单片机的温度检测系统_单片机C语言课题设计报告

单片机C语言课题设计报告设计题目:温度检测电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来1摘要本课题以51单片机为核心实现智能化温度测量。

利用18B20温度传感器获取温度信号,将需要测量的温度信号自动转化为数字信号,利用单总线和单片机交换数据,最终单片机将信号转换成LCD 可以识别的信息显示输出。

基于STC90C516RD+STC90C516RD+的单片机的智能温度检测系统,的单片机的智能温度检测系统,设计采用18B20温度传感器,其分辨率可编程设计。

本课题设计应用于温度变化缓慢的空间,综合考虑,以降低灵敏度来提高显示精度。

设计使用12位分辨率,因其最高4位代表温度极性,故实际使用为11位半,位半,而温度测量范围为而温度测量范围为而温度测量范围为-55-55-55℃~℃~℃~+125+125+125℃,℃,则其分辨力为0.06250.0625℃。

℃。

设计使用LCD1602显示器,可显示16*2个英文字符,显示器显示实时温度和过温警告信息,和过温警告信息,传感器异常信息设。

传感器异常信息设。

传感器异常信息设。

计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,当温度超过当温度超过设定值时播放《卡农》,当传感器异常时播放嘟嘟音。

单片机C 语言课题设计报告语言课题设计报告电动世界,气定乾坤2目录一、设计功能一、设计功能................................. ................................. 3 二、系统设计二、系统设计................................. .................................3 三、器件选择三、器件选择................................. .................................3 3.1温度信号采集模块 (3)3.1.1 DS18B20 3.1.1 DS18B20 数字式温度传感器数字式温度传感器..................... 4 3.1.2 DS18B20特性 .................................. 4 3.1.3 DS18B20结构 .................................. 5 3.1.4 DS18B20测温原理 .............................. 6 3.1.5 DS18B20的读写功能 ............................ 6 3.2 3.2 液晶显示器液晶显示器1602LCD................................. 9 3.2.1引脚功能说明 ................................. 10 3.2.2 1602LCD 的指令说明及时序 ..................... 10 3.2.3 1602LCD 的一般初始化过程 (10)四、软件设计四、软件设计................................ ................................11 4.1 1602LCD 程序设计流程图 ........................... 11 4.2 DS18B20程序设计流程图 ............................ 12 4.3 4.3 主程序设计流程图主程序设计流程图................................. 13 五、设计总结五、设计总结................................. ................................. 2 六、参考文献六、参考文献................................. ................................. 2 七、硬件原理图及仿真七、硬件原理图及仿真......................... .........................3 7.1系统硬件原理图 ..................................... 3 7.2开机滚动显示界面 ................................... 4 7.3临界温度设置界面 ................................... 4 7.4传感器异常警告界面 (4)电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来3温度温度DS18B20 LCD 显示显示过温函数功能模块能模块传感器异常函数功能模块数功能模块D0D1D2D3D4D5D6D7XT XTAL2AL218XT XTAL1AL119ALE 30EA31PSEN29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115U180C51X1CRYST CRYSTAL ALC122pFC222pFGNDR110kC31uFVCCGND234567891RP1RESPACK-8VCC0.0DQ 2VCC 3GND 1U2DS18B20R24.7K LCD1LM016LLS2SOUNDERMUC八、程序清单八、程序清单................................. .................................5 一、设计功能·由单片机、温度传感器以及液晶显示器等构成高精度温度监测系统。

操作系统课程设计实验报告用C实现银行家算法

操作系统课程设计实验报告用C实现银行家算法

操作系统实验报告2学院:计算机科学与技术学院班级:计091学号:姓名:时间:2011/12/30目录1.实验名称 (3)2.实验目的 (3)3.实验内容 (3)4.实验要求 (3)5.实验原理 (3)6.实验环境 (4)7.实验设计 (4)数据结构设计 (4)算法设计 (6)功能模块设计 (7)8.实验运行结果 (8)9.实验心得 (9)附录:源代码部分 (9)一、实验名称:用C++实现银行家算法二、实验目的:通过自己编程来实现银行家算法,进一步理解银行家算法的概念及含义,提高对银行家算法的认识,同时提高自己的动手实践能力;各种死锁防止方法能够阻止发生死锁,但必然会降低系统的并发性并导致低效的资源利用率;死锁避免却与此相反,通过合适的资源分配算法确保不会出现进程循环等待链,从而避免死锁;本实验旨在了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生;三、实验内容:利用C++,实现银行家算法四、实验要求:1.完成银行家算法的设计2.设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源;五、实验原理:系统中的所有进程放入进程集合,在安全状态下系统收到进程的资源请求后,先把资源试探性的分配给它;之后,系统将剩下的可用资源和进程集合中的其他进程还需要的资源数作比较,找出剩余资源能够满足的最大需求量的进程,从而保证进程运行完毕并归还全部资源;这时,把这个进程从进程集合中删除,归还其所占用的所有资源,系统的剩余资源则更多,反复执行上述步骤;最后,检查进程集合,若为空则表明本次申请可行,系统处于安全状态,可以真正执行本次分配,否则,本次资源分配暂不实施,让申请资源的进程等待;银行家算法是一种最有代表性的避免的算法;在避免死锁方法中允许进程动态地申请资源,但系统在进行资源分配之前,应先计算此次分配资源的安全性,若分配不会导致系统进入不安全状态,则分配,否则等待;为实现银行家算法,系统必须设置若干;要解释银行家算法,必须先解释操作系统安全状态和不安全状态;安全序列是指一个进程序列{P1,…,Pn}是安全的,如果对于每一个进程Pi1≤i≤n,它以后尚需要的资源量不超过系统当前剩余资源量与所有进程Pj j < i 当前占有资源量之和;安全状态:如果存在一个由系统中所有进程构成的安全序列P1,…,Pn,则系统处于安全状态;安全状态一定是没有死锁发生;不安全状态:不存在一个安全序列;不安全状态不一定导致死锁;我们可以把看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款;为保证资金的安全,银行家规定:1 当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;2 顾客可以分期贷款,但贷款的总数不能超过最大需求量;3 当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;4 当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金.操作系统按照银行家制定的规则为进程分配资源,当进程首次申请资源时,要测试该进程对资源的最大需求量,如果系统现存的资源可以满足它的最大需求量则按当前的申请量分配资源,否则就推迟分配;当进程在执行中继续申请资源时,先测试该进程本次申请的资源数是否超过了该资源所剩余的总量;若超过则拒绝分配资源,若能满足则按当前的申请量分配资源,否则也要推迟分配;六、实验环境:Win-7系统Visual C++七、实验设计:1.数据结构设计定义结构体:struct Process0, 0, 0;}}};class DataInit法设计class FindSafeListdb->available; db->pdb->ruleri.currentAvail db->pdb->ruleri-1.currentAvail;db->pdb->ruleri-1.allocation;db->pdb->ruleri.currentAvail{ return false; }db->sum{ return false; }}return true; laim_allocation{ return 1; }Source sdb->pi.allocation; db->ask;db->pi.db->ask;ifexsitSafeListdb db->ask;db->pi.db->ask;return 2;}db->0,0,0; 能模块设计class Data0, 0, 0;}}};class DataInitr1,r2,r3;cout<<'p'<<i<<" max allocationclaimR1,R2,R3: ";r1,r2,r3;r1=db->pi.>pi.;pi.;r3=db->pi.>pi.;db->pi.r1, r2, r3;}}};class Displaylaim;cout<<"\t\t";displaySourcepi.allocation;cout<<endl;}cout<<endl;}void displaySafeListData db urrentAvail;cout<<" ";displaySourcedb->pdb->ruleri.claim;cout<<" ";displaySourcedb->pdb->ruleri.allocation;cout<<" ";displaySourcedb->pdb->ruleri.claim_allocation;cout<<" true";cout<<endl;}}void displayAskResultData db,int n db->available;db->pdb->ruleri.currentAvail db->pdb->ruleri-1.currentAvail;db->pdb->ruleri-1.allocation;db->pdb->ruleri.currentAvail{ return false; }db->sum{ return false; }}return true; laim_allocation{ return 1; }Source sdb->pi.allocation; db->ask;db->pi.db->ask;ifexsitSafeListdb db->ask;db->pi.db->ask;return 2;}db->0,0,0; //找到安全序列,将请求资源置零,返回3return 3;}};void main{Data db;db=new Data;ifdb{ cout<<"errorno enough memory space"; return; } DataInit dataInit;db; //设置进程个数db; //设置系统总资源量db; //设置当前系统可获得资源量db; //设置t0时刻进程基本状态Display display;FindSafeList findSafeList;int r1=0,r2=0,r3=0;int c;db->r1,r2,r3; //设置请求资源为0,即无请求c=db,0; //寻找安全序列,返回结果ifc=3{ cout<<"t0时刻的进程组不存在安全序列\n"; return; }int choice=1;int pi;whilechoice{cout<<"\n 选择操作:\n 1 查看进程情况\n 2 请求分配资源\n 0 退出\n ";cin>>choice;switchchoice{case 1:{cout<<"当前资源量availableR1,R2,R3:\n ";db->available;cout<<endl;cout<<"\n当前进程资源分配情况piR1,R2,R3: \n";cout<<" 进程\tclaim\t\tallocation\n";db->p,db->pLength;break;}case 2:{cout<<"输入请求资源进程序号:";cin>>pi;cout<<"输入请求资源R1,R2,R3: 0,0,0表示当前进程组无请求\n";cin>>r1>>r2>>r3;db->r1,r2,r3;c=db,pi;db,c;cout<<endl;break;}case 0:{ break; }default:{ cout<<"input errortry again\n"; break; }}}}。

c语言实训报告

c语言实训报告

C课程设计一、课程设计目旳《C语言课程设计》是信息类专业旳主要实践性课程。

目旳在于学习完《C语言程序设计》课程后进行旳一次全方面旳综合练习。

经过课程设计, 一方面能够结合课程旳教学内容循序渐进地进行设计方面旳实践训练, 另一方面, 在参加一系列子项目旳实践过程中, 还能提升怎样综合利用所学知识处理实际问题旳能力, 以及取得有关项目管理和团队合作等众多方面旳详细经验。

为后续课程: 面对对象程序设计、Visual C++, 数据构造, 软件工程, 软件技术基础等奠定必要旳实践基础。

设计目旳如下:1、进一步培养学生构造化程序设计旳思想, 加深对高级语言基本语言要素和控制构造旳了解。

2、针对C语言中旳要点和难点内容进行训练, 独立完毕有一定工作量旳程序设计任务, 同步强调好旳程序设计风格。

3.掌握C语言旳编程技巧和上机调试程序旳措施。

4.掌握程序设计中旳常用算法。

二、课程设计题目及要求1.基础训练题目1.1基础1.1.1写出下面程序旳输出成果。

1)#include <stdio.h>main( ){int x;x=-3+4*5-6;printf(“%d\n”,x);x=3+4%5-6; printf(“%d\n”,x);x=-3*4%4-6/5; printf(“%d\n”,x);x=(7+6)%5/2; printf(“%d\n”,x);}2) # include<stdio.h>main(){int x=5;int y=6;int z=7;printf(" %d\n %d\n %d\n %d\n %d\n %d\n %d\n",x>y,y>x,x!=y,x==z-2,x=x-2,x>=z,x<=z); }3 ) #include <stdio.h>main(){int x=0,y=-1,z=1;printf("%d,%d,%d,%d,%d,%d",x&&y,x||y,y&&z,y||z,x&y,x|y);}1.2顺序构造1)已知三角形旳底和高, 求三角形旳面积法一、#include <stdio.h>main(){float a,b;scanf("a=%f,b=%f",&a,&b);printf("MJ=%.2f",(a*b)/2.0);}法二、#include <stdio.h>main(){float a,b,s;scanf("a=%f,b=%f",&a,&b);s=a*b/2;printf("s=%.1f",s);}2)若已知某银行一年定时旳存款年利率, 输入存款额, 计算三年后本利之和并输出。

C语言程序设计课程设计报告

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告(2011— 2012学年第 1 学期)专业:计算机科学与技术班级:姓名学号:指导教师:成绩:计算机科学与技术系2011 年12月31日目录一、课程设计的目的与要求 (3)二、方案实现与调试 (3)2.1 掷骰子游戏 (3)2.2 汽车加油 (6)2.3 大优惠 (8)2.4 金币 (9)2.5小型通讯录设计 (12)三、课程设计分析与总结 (14)附录程序清单 (14)一、课程设计的目的与要求(含设计指标)(1)实验目的C语言是一种编程灵活,特色鲜明的程序设计语言。

C语言除了学习必须的基本知识,如概念,方法和语法规则之外,更重要的是进行实训,以提高学习者的动手和编程能力,这是学习语言的最终目的。

结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。

达到如下目的:1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;2.让学生扎实掌握C程序设计语言的相关知识;3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。

(2)设计要求根据实验内容的要求自由选定题目。

编写程序要求遵循如下基本要求:●模块化程序设计●锯齿型书写格式●必须上机调试通过二、方案实现与调试2.1掷骰子游戏•2.1.1 题目内容的描述两人玩骰子,游戏规则如下:1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。

2) 将每人每次的分值累加计分3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。

4) 结束条件:当双方都掷10次或经过5次后一方累计分数为另一方的两倍。

最后显示双方分数并判定优胜者。

•2.1.2输入数据类型、格式和内容限制和输出数据的说明输入数据类型:整型数格式:srand(time(0));输入数=rand()%6+1;内容限制:产生最多十次随机数输出数据说明:掷骰子的获胜者•2.1.3主要模块的算法描述2.1.4调试过程及实验结果出现的问题:每次循环产生的随机数相同。

C语言循环结构程序设计实验报告

C语言循环结构程序设计实验报告
运行结果:1!+2!+3!+.+25!=1.61587e+25
while语句:
main()
{ float n=1,s=0,t=1;
while(n<=25)
{ t=t*n;
s=s+t;
n++;
}
printf(“1!+2!+3!+…+25!=%e\n”,s);
}
do-while语句:
main()
{ float n=1,s=0,t=1;
(3)计算并输出Σ(2n+1)超过1000的第一个n值。
n=1
main()
{ int n=1,sum=0;
for(; ; n++) sum=sum+(2*n+1);
if(sum>2000) break;
printf(“n=%d,sum=%d\n”,n,sum);
}
if(sum>1000)break;for中的表达式2不能省去
while语句do-while语句
#include<stdio.h>#include<stdio.h>
void main() void main()
{{
int i=1,sum=0; int i=1,sum=0;
while(i<=100) do
{ {
sum=sum+i; sum=sum+i;
i++;i++;
5.某班有学生n人,从终端读入n及n个人学生的成绩,试编程实现以下功能:
①印出前3个最好成绩及取得每个最好成绩的人数;

系统软件程序设计报告(linux下C语言程序课程设计报告)

系统软件程序设计报告(linux下C语言程序课程设计报告)
主函数将这五个模块直接地或间接地联系在一起,使它们构成本程序,现在就来介绍主 函数的算法。主函数对出题模块函数、评价模块函数进行了调用;首先提示开始答题,为了 要答 10 次题,就要设一个 for 语句来控制对出题模块函数调用的次数,即需要答一定次数 的题,与此同时用一个变量来累加由出题模块函数返回来每道题的小分数;接下来分别对评 分模块函数和评价模块函数进行调用。
一、 引言(简要说明设计题目的目的、意义、内容、主要任务等) 1.1 设计目的
本次系统软件课程设计的主要目的有两个:一方面是分析设计 linux 源代码,另一方面 是进行系统级的程序设计。 1.2 题目与要求
我计划编写的题目是:⑴小学算术运算测试程序。制作一个可供小学数学运算的程序: 10 以内加减法,能根据输入题数出题,判断题是否正确,最后计算分数。并用 make 工程管 理器编译,编写 makefile 文件。⑵简单聊天程序。在 linux 下用 C 语言编写一个简单的网络 聊天程序。实现网络传输功能。 1.3 内容及主要任务
2
⑴出题模块(question_out()):这一模块主要负责对题目的储存和调出这两个功能。 ⑵答题模块(answer()):这一模块主要负责将用户端的答案通过键盘输入到系统。 ⑶检查计分模块(check()):这一模块主要负责检查判断用户所提供的答案是否正确并 根据它来记录每题所的总分。 ⑷评分模块(count()):这一模块主要负责统计总得分并打印。 ⑸评价模块(assessment()) :这一模块主要负责根据给出的总得分打印相应的评语。 总之这五个模块都有着各自的功能且互相联系,五者在程序中缺一不可。 2.1.4 makefile 介绍 ⑴Makefile 文件介绍 Makefile 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中, makefile 定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些 文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile 就像一个 Shell 脚本一 样,其中也可以执行操作系统的命令。 ⑵makefile 主要功能 Make 工具最主要也是最基本的功能就是通过 makefile 文件来描述源程序之间的相互关 系并自动维护编译工作。而 makefile 文件需要按照某种语法进行编写,文件中需要说明如 何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文 件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开 发环境中,用户通过友好的界面修改 makefile 文件而已。 ⑶自动化编译 Makefile 带来的好处就是——“自动化编译”,一旦写好,只需要一个 make 命令,整 个工程完全自动编译,极大的提高了软件开发的效率。make 是一个命令工具,是一个解释 makefile 中指令的命令工具,一般来说,大多数的 IDE 都有这个命令,比如:Delphi 的 make, Visual C++的 nmake,Linux 下 GNU 的 make。可见,makefile 都成为了一种在工程方面的编 译方法。 2.1.5 makefile 规则

C语言实验报告2

C语言实验报告2
下面给出一个语句段,学生补充一个完整的程序后,上机进行调试。
for(i=1;i<=10;i++)
{ c1=getchar( );
c2=c1–32;
printf(“string %c\n”,c2);
}
【自编程序上机】
1 (判错)下述论断哪些是不对的?
1每个C语言程序有且仅有一个主函数 main()。
2C语言程序的每一行都用分号结尾。
printf(“c1=%c,c2=%c\n”,c1,c2);
}
3题:
#include <stdio.h>
void main()
{
float x,y,z,l;
scanf(“%f%f%f”,&x,&y,&z);
l=x-z%2*(x+y)%2/2;
printf(“%f\n”,l);
}
4题:main()
{ int x,y,z;
}
运行看看结果如何?为什么?
④ main()
{ int i;float x;long y;
i=100;x=200;y=300;
printf(“i=%d,x=%d,y=%d\n”,i,x,y);
printf(“i=%f,x=%f,y=%f\n”,i,x,y);
printf(“i=%ld,x=%ld,y=%ld\n”,i,x,y);
3C程序的执行从第一行开始到最后一行结束。
4C程序的每一行只能写一条语句。
5C程序的一条语句可以占多行。
6一个C程序可有一个或多个函数组成。
7在C程序中,注释说明只能写在一条语句的末尾。
8在一个C程序中,主函数必须放在程序的首部。

C语言实验报告

C语言实验报告

××××实验报告(×-×学年第二学期)课程名称:《C语言程序设计》班级:学号:姓名:实验室(中心)名称:教学单位:年月日实验名称:循环结构程序设计指导教师:实验日期:地点:同组学生姓名:(每人独立完成)实验过程:(可附页)1.写出以下程序的执行结果,并分析其实现的功能。

#include<stdio.h>main(){int i=1,sum=0;while(i<10){sum+=i;i=i+2;}printf("%d\n",sum);}执行结果:实现的功能:求小于10的奇数之和。

3. 比较以下两个程序,得出运行结构并分析原因。

程序一:#include <stdio.h>main(){int a=0;while(a<0){a++;}printf("%d\n",a);}执行结果:程序二:#include <stdio.h>main(){int a=0;do{a++;}while(a<0);printf("%d\n",a);}执行结果:分析2个程序结果不同的原因:程序一先判断是否满足条件再运行,而程序二先运行后再判断,故而输出结果不同。

6. 分析以下程序的运行结果为什么不是6?#include <stdio.h>main(){int i,s;for(i=1;i<=3;i++)s+=i;printf("%d\n",s);}执行结果:运行结果为什么不是6?由于s初始值未给出而导致结果不同。

7.分析以下程序运行后变量i的值。

#include <stdio.h>main(){int i,s=0;for(i=1;i<=100;i++){s+=i;if(s==55)break;}printf("%d\n",i);}分析以下程序运行后变量i的值:10.写出以下程序的输出结果。

24点游戏开发课程设计报告书

24点游戏开发课程设计报告书

C++课程设计报告24点游戏软件的开发专业计算机科学与技术学生姓名班级学号指导教师完成日期目录1概述 (1)1.1课程设计目的 (1)1.2课程设计内容 (1)2系统需求分析 (1)2.1系统目标 (1)2.2主体功能 (1)2.3开发环境 (2)3系统概要设计 (2)3.1系统功能模块划分 (2)3.2系统流程图 (3)4系统详细设计. (4)4.1设计步骤 (4)4.2界面设计 (4)4.3关键功能的实现 (5)5测试 (6)5.1测试方案 (6)5.2测试结果 (6)附录 (12)附录1 源程序清单 (12)24点游戏软件的开发1.1课程设计目的a、巩固并加深学生对C++语言程序设计知识的理解;b、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;c、进一步掌握和应用VC++ 6.0 集成开发环境;d、提高运用C++语言解决实际问题的能力;e、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的M IS 系统;f 、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。

1.2课程设计内容课题名称:24 点游戏软件的开发说明:24 点游戏是一种常见的纸牌游戏说明要求:a)实现随机发牌;b)能进行结果验算;c )计分;d)难度设置。

2系统需求分析2.1系统目标24 点游戏是个流行的数学运算游戏。

本次课程设计通过24 点游戏来加深我们对对话框编程的认识和理解,并介绍Visual C++在数学计算方面的应用,以及在按钮上设置位图和设置计时器的方法。

24 点扑克游戏的规则是:由系统发出4 张扑克牌,要求用户利用扑克牌上显示的数字(JQKA算10),通过加减乘除运算得出24。

2.2主体功能a.对游戏设计三个难易级别,分别为低级、中级和高级。

每次开始游戏前可以根据玩家的需要进行难度设置,如若不设置,系统默认难度级别为中级,设置完难度级别之后就可以开始游戏了,单击“发牌” 按钮,桌面上出现四张翻开的扑克牌,与此同时,游戏开始计时,进度条开始前进。

课程设计报告样板

课程设计报告样板

2013-2014学年第二《c语言程序设计》课程设计报告题目:专业:计算机科学与技术班级:10级计科(2)姓名:指导教师:成绩:计算机与信息工程系2013年 4 月 22日目录1设计内容及要求 (2)设计内容 (2)设计任务及具体要求 (2)2概要设计 (3)该系统的功能简介 (3)整体程序框图 (3)各个模块之间的主要关系 (4)3设计进程或程序代码 (5)各个模块的程序流程图及运行界面 (5)对关键代码加以分析说明 (15)4程序调试分析 (23)5小结 (25)参考文献 (27)附:源程序 (28)1 设计内容及要求设计内容《工资管理查询系统》主要按照课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:1)职工个人说得税的计算模块,按照工资多余5000,在1000—5000之间,少余1000三种情况进行计算。

2)添加职工的工资信息模块,用户按照输入职工编号后,对工资信息进行录入。

3)职工工资查询模块,按照用户输入职工编号后,方可进行查询。

4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。

5)数据输出模块,输出其相应的模块功能。

6)职工工资统计模块,按照输入的职工信息进行统计。

设计任务及具体要求主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、大体工资、实发工资、个人所得税进行查询和按部门进行分类统计。

操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:明确课程设计的目的,能按照课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和画图应用的编程技术水平;初步了解软件开发的一般方式和步骤;提高撰写技术文档的能力。

2 概要设计系统的功能简介该系统的主要功能是实现职工工资的录入,包括(录入职工的大体工资、实发工资、津贴、岗贴、补助、房帖、交通补助、储蓄、汇费)。

C语言实验报告

C语言实验报告

;dne ;eurt=:delbanE.7N nigeb neht ' 生 学 '=epytresu.nigol fi esle dne ;eurt=:delbanE.9N neht '员 卷 改 '=gnaixnauq.nigol fi esle eurt=:delbanE.6N neht '员入录 卷 试 '=gnaixnauq.nigol fi esle eurt=:delbanE.1N neht '员 理 管 统 系 '=gnaixn auq.nigol fi nigeb neht ' 员 理 管 '=epytresu.nigol fi nigeb neht kOrm=ladoMwohS.nigol fi ;eslaf=:delbanE.7N ;dlihcllaesolc nigeb ;)tcejbOT erudecorp :redneS(kcilC61N.m roFniaMT
�示所图下如。种 3 题答问和题空填、题择选了置设里这们我�中型题在 。息信等值分和案答、干题、号题题小、型题含包目题个每�息信的题试有所了录记表库题 表库题建创�5�
�示所图下如�入写时绩成总算计员卷改在�绩成总
;metIuneMT :9N ;metIuneMT :8N ;metIuneMT :7N ;metIuneMT :6N ;metIuneMT :5N ;metIuneMT :3N ;metIuneMT :2N ;metIuneMT :1N ;uneMniaMT :1uneMniaM ;raBsutatST :1raBsutatS )m roFT(ssalc = m roFniaMT epyt ;sglDtxE,suneM ,slrtCmoC ,sgolaiD ,sm roF ,slortnoC ,scihparG ,sessalC ,stnairaV ,slitUsyS ,segasseM ,swodniW sesu ecafretni ;em arfni am tinu
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高职学院C++程序设计语言上学期课程设计报告(2011 -2012第1学期)课程设计类型:C语言程序设计题目:人员信息管理系统学号:姓名:专业:计算机应用基础指导教师:章锐课程设计日期:2012.12.23-2012.12.27.目录1. 问题分析 (1)2. 总体设计 (2)2.1 功能分析 (2)3. 详细设计 (2)3.1 程序结构图 (2)3.2 程序类结构图 (2)3.3 程序类结构图 (5)4. 功能测试 (6)4.1 本系统的主界面 (6)5. 课设小结 (10)参考文献 (10)附录:源代码清单 (10)1. 问题分析1.1 问题描述在信息技术高速发展的今天,传统的数据统计方式在处理庞大繁杂的信息量时显得力不从心,于是,人们对于运用计算机来辅助和管理工作的需求正在逐步提高。

随着各个企业业务的逐步扩展,企业的员工人数也在迅速增加,由于管理人员水平有限,导致某些员工纪录管理并不完善,特别是繁杂的员工工资管理纪录,不易查询、修改,极易导致错误,而落后的员工管理方法随着社会的日益竞争,必将被淘汰。

由计算机来管理庞大而繁杂的企业员工纪录是非常合适的,不仅查询和修改方便,并且效率高,速度快,完全能够满足现代化企业管理的需要,同时也更利于实现全面办公自动化。

因此开发一套企业员工工资管理系统软件势在必行。

企业员工工资管理系统是企业管理系统中的一个重要组成部分,它为企业合理的员工调配与编制,以及有关问题的决策能够提供各种必要的基础数据,是公司管理现代化的一个重要方面。

利用微机对庞杂而繁锁的员工工资系统实现自动化管理,是计算机公司信息管理系统的重要内容。

我在陈勇老师指导下开发了《企业员工工资管理系统》。

《企业员工工资管理系统》旨在为商业人士及在社会团体、机构中负责管理关系的人士提供一个功能全面、使用方便的工资管理系统,以替代传统的手工管理工资纪录,同时利用先进信息技术为用户提供一些更为方便实用的功能。

本系统实现五种基本功能:输入员工工资信息、删除员工工资信息、修改员工工资信息、查找员工工资信息、列出所有员工工资信息。

所以该工资管理系统可以分为5个模块,分别为输入模块、删除模块、修改模块、查找模块、列表模块,每个模块都有其对应的功能以及其设计。

(1)输入模块输入模块的功能是创建存储职工工资信息的存储系统以及添加某职工的工资信息。

为实现输入的功能,有两个方面的任务:定义结构体以及建立链表。

(2)删除模块删除模块的功能是删除某职工的工资信息。

(3)修改模块修改模块的功能是修改某职工的部分工资信息。

(4)查找模块查找模块的功能就是输出指定编号职工的工资信息。

(5)列表模块列表模块的功能是输出当月全体职工的工资信息。

2. 总体设计2.1 功能分析使用面向对象的程序设计思想进行分析,整个系统涉及两大类信息和操作,公司,人员。

所以系统主要涉及两个大类:公司类business、人员类person。

系统的总体框架就是公司类,人员类的定义;主函数中定义一个公司对象,循环显示主菜单并根据用户选择调用公司类的相应方法(成员函数)。

3. 详细设计3.1 程序结构图3.2 程序类结构图class Worker{protected:Worker_pay * head; //链表的头结点指针public:Worker(){head=NULL;} //构造函数void Display(Worker_pay *); //输出函数Worker_pay * Find(int); //查找函数int ListCount(); //统计员工人数函数void AddItem(int,string,int,string,string,string,float,float); //创建链表并链表的插入void RemoveItem(int); //删除函数void ReplaceItem(int); //修改函数void ListL(); //遍历函数void Search(int); //查找并输出某个员工信息函数void Real_wage(float,float); //计算函数void Recordinfo(int,string,int,string,string,string,float,float,float,float); //存储函数};3.3 程序类结构图4. 功能测试4.1 本系统的主界面图3 系统主界面图4 输入员工信息测试图图5 删除员工信息测试图图6 修改员工信息测试图图7 查找员工信息测试图图8 输出全体员工信息测试图图9 退出系统测试图5. 课设小结根据课程设计的要求,我思考出了自己的课题,我用本学期所学的C++面向对象的知识来编写程序。

我利用面向对象的方法以及C++的编程思想来完成系统的设计,在设计的过程中,建立清晰的层次,当然在调试过程中我也遇到了许多问题。

本程序由雇员这个基类派生出多个派生类,并且调用多个函数。

主函数主要运用选择结构。

派生类中的保护类数据要通过定义公有类型的函数来从类外调用。

和一些相当复杂的算法,自己看了都乱,头都晕。

不过,我相信,不经历风雨怎么能见彩虹。

在解决了这一切后,我有一种:天将降大任于斯人也,必先劳其筋骨,饿其体肤的感觉!参考文献1.钱能主编,C++程序设计教程,清华大学出版社,2000.112.戴锋编著,Visual C++程序设计基础,清华大学出版社,2001.43.施平安主编,C++程序设计教程(第四版),清华大学出版社,2004.34.林丽闽主编,标准C++程序设计教程,电子工业出版社,2003.6.15.谭浩强主编,C++程序设计,清华大学出版社,2004.6附录:源代码清单/*****************************************************/#include<iostream>#include<string>#include<fstream>#include<iomanip>using namespace std;/*****************************************************//*定义一个员工信息的结构体Worker_pay*/struct Worker_pay{int num; //员工编号string name; //员工姓名int age; //年龄string sex; //性别string department; //部门string title; //职务float wage; //工资float allowance; //津贴float tax; //个人所得税float real_wage; //实发数Worker_pay * next; //链表结点的指针域};/*****************************************************//*定义一个员工类Worker*/class Worker{protected:Worker_pay * head; //链表的头结点指针public:Worker(){head=NULL;} //构造函数void Display(Worker_pay *); //输出函数Worker_pay * Find(int); //查找函数int ListCount(); //统计员工人数函数void AddItem(int,string,int,string,string,string,float,float); //创建链表并链表的插入void RemoveItem(int); //删除函数void ReplaceItem(int); //修改函数void ListL(); //遍历函数void Search(int); //查找并输出某个员工信息函数void Real_wage(float,float); //计算函数void Recordinfo(int,string,int,string,string,string,float,float,float,float); //存储函数};/*****************************************************///功能:用于统计员工人数int Worker::ListCount(){if(!head)return 0;Worker_pay * p=head;int n=0;while(p){n++;p=p->next;}return n;}/*****************************************************/ //功能:在链表中查找员工的编号Worker_pay * Worker::Find(int num){if(ListCount==0){cout<<"列表为空,请先输入数据!!!"<<endl;return NULL;}Worker_pay * p=head;while(p){if(p->num==num)break;p=p->next;}if(!p){cout<<"错误,找不到该信息!!!"<<endl;return NULL;}return p;}/*****************************************************///功能:创建链表及链表的插入void Worker::AddItem(int num1,string name1,int age1,string sex1,string department1,string title1,float wage1,float allowance1){if(!head){head=new Worker_pay;head->num=num1;head->name=name1;head->age=age1;head->sex=sex1;head->department=department1;head->title=title1;head->wage=wage1;head->allowance=allowance1;head->next=NULL;return;}Worker_pay * t=head;while(t&&t->num!=num1)t=t->next;if(t){cout<<"操作失败;员工编号为"<<num1<<"的信息已经存在!!!"<<endl;return;}Worker_pay * p=head;while(p->next)p=p->next;Worker_pay * p1=new Worker_pay;p1->num=num1;p1->name=name1;p1->age=age1;p1->sex=sex1;p1->department=department1;p1->title=title1;p1->wage=wage1;p1->allowance=allowance1;p1->next=NULL;p->next=p1;return;}/*****************************************************///功能:从链表中删除一个结点void Worker::RemoveItem(int num){Worker_pay * t=Find(num);if(!t)return;Worker_pay * p=head;if(head=t){head=head->next;delete p;cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;return;}while(p->next!=t)p=p->next;Worker_pay * p1=p->next;p->next=p1->next;delete p1;cout<<"成功删除员工编号为"<<num<<"的信息!"<<endl;return;}/*****************************************************///功能:修改员工信息void Worker::ReplaceItem(int num){Worker_pay * p=Find(num);if(!p)return;cout<<"请重新输入相应信息"<<endl;cout<<"员工编号:";cin>>p->num;cout<<"员工姓名:";cin>>p->name;cout<<"年龄:";cin>>p->age;cout<<"性别:";cin>>p->sex;cout<<"部门:";cin>>p->department;cout<<"职务:";cin>>p->title;cout<<"工资(元):";cin>>p->wage;cout<<"津贴(元):";cin>>p->allowance;return;}/*****************************************************///功能:输出员工信息void Worker::Display(Worker_pay * p){cout<<p->num<<setw(8)<<p->name<<setw(8)<<p->age<<setw(8)<<p->sex<<setw(8)<<p->department<<setw(8)<<p->title<<setw(8)<<p->wage<<setw(8)<<p->allowance<<setw(8)<<p->tax<<setw(8)<<p->real_wage<<endl;return;}/*****************************************************///功能:遍历链表void Worker::ListL(){float sum=0;float aver=0;int n=0;if(ListCount==0){cout<<"当前列表为空,请先输入数据!"<<endl;return;Worker_pay * p=head;cout<<"**********************************员工信息**************************************"<<endl;cout<<"共有"<<ListCount()<<"个员工信息"<<endl;cout<<"员工编号员工姓名年龄性别部门职务工资津贴个税实发数"<<endl;while(p){Display(p);n++;sum+=p->wage;p=p->next;}aver=sum/n;cout<<"员工平均薪水:"<<aver<<endl;return;}/*****************************************************///功能:查找并输出指定员工信息void Worker::Search(int num){cout<<"Search......"<<endl;Worker_pay * p=Find(num);if(p){cout<<"员工编号为"<<num<<"的员工工资信息:"<<endl;cout<<"员工编号员工姓名年龄性别部门职务工资津贴个税实发数"<<endl;Display(p);cout<<endl;return;}/*****************************************************/ //功能:程序内部函数计算的信息例如个人所得税,实发数void Worker::Real_wage(float tax,float real_wage){if(ListCount()==0){cout<<"当前列表为空,请先输入数据!"<<endl;return;}Worker_pay * p=head;while(p){if(p->wage<=2000)p->tax=0;else if(p->wage>2000&&p->wage<=2500)p->tax=p->wage*0.05;else if(p->wage>2500&&p->wage<=4000)p->tax=p->wage*0.1-25;else if(p->wage>4000&&p->wage<=7000)p->tax=p->wage*0.15-125;else if(p->wage>7000&&p->wage<=22000)p->tax=p->wage*0.2-375;else if(p->wage>22000&&p->wage<=42000)p->tax=p->wage*0.25-1375;else if(p->wage>42000&&p->wage<=62000)p->tax=p->wage*0.3-3375;else if(p->wage>62000&&p->wage<=82000)p->tax=p->wage*0.35-6375;else if(p->wage>82000&&p->wage<=102000)p->tax=p->wage*0.4-10375;else p->tax=p->wage*0.45-15375;p->real_wage=p->wage+p->allowance-p->tax;p=p->next;}return;}/*****************************************************///功能:存储员工信息void Worker::Recordinfo(int num1,string name1,int age1,string sex1,string department1,string title1,float wage1,float allowance1,float tax1,float real_wage1){ofstream file1("info1.txt",ios::app);file1<<"员工编号:"<<num1<<" 员工姓名:"<<name1<<" 年龄:"<<age1<<" 性别:"<<sex1<<" 部门:"<<department1<<" 职务:"<<title1<<" 工资(元):"<<wage1<<" 津贴(元):"<<allowance1<<" 个人所得税(元):"<<tax1<<" 实发数(元):"<<real_wage1<<endl;file1.close();}/*****************************************************//*定义一个对象Worker1*/Worker Worker1;/*****************************************************//*主菜单函数*/int Menu(){cout<<"\t\t╭───────────────────────╮\t"<<endl;cout<<"\t\t│欢迎来到上海开心有限公司│\t"<<endl;cout<<"\t\t╰───────────────────────╯\t"<<endl;cout<<"\t\t╭───────────────────────╮\t"<<endl;cout<<"\t\t│企业员工工资管理系统\t│"<<endl; cout<<"\t\t│*******主菜单******* \t│"<<endl;int n=1,select=-1;cout<<"\t\t│"<<n++<<".输入员工信息\t\t│"<<endl; cout<<"\t\t│"<<n++<<".删除指定员工编号信息\t\t│"<<endl; cout<<"\t\t│"<<n++<<".修改指定员工编号信息\t\t│"<<endl; cout<<"\t\t│"<<n++<<".查找指定员工编号信息\t\t│"<<endl; cout<<"\t\t│"<<n++<<".输出全体员工信息\t\t│"<<endl;cout<<"\t\t│0.退出\t\t\t\t│"<<endl;cout<<"\t\t╰───────────────────────╯\t\t"<<endl;cout<<"[请选择0-5(输入相应数字)]:";cin>>select;return select;}/*****************************************************///功能:退出程序char Exit(){char s;cout<<"确定要退出程序吗?[Y/N]:";cin>>s;return s;}/*****************************************************///功能:输入员工信息void Input(int * num,string * name,int * age,string * sex,string * department,string *title,float * wage,float * allowance){cout<<"现在输入员工信息!"<<endl;cout<<"员工编号:";cin>>* num;if(* num==-1)return;cout<<"员工姓名:";cin>>* name;cout<<"年龄:";cin>>* age;cout<<"性别:";cin>>* sex;cout<<"部门:";cin>>* department;cout<<"职务:";cin>>* title;cout<<"工资(元):";cin>>* wage;cout<<"津贴(元):";cin>>* allowance;return;}/*****************************************************///功能:把员工信息插入到链表中void AddNew(){int num=0;string name;int age=0;string sex;string department;string title;float wage=0;float allowance=0;float tax=0;float real_wage=0;cout<<"当输入的员工编号为-1是表示结束输入"<<endl;Input(&num,&name,&age,&sex,&department,&title,&wage,&allowance);while(num!=-1){Worker1.AddItem(num,name,age,sex,department,title,wage,allowance);Worker1.Real_wage(tax,real_wage);Worker1.Recordinfo(num,name,age,sex,department,title,wage,allowance,tax,real_wage);Input(&num,&name,&age,&sex,&department,&title,&wage,&allowance);}cout<<"员工工资信息已成功存储!!!"<<endl;return;}/*****************************************************///功能:查找指定员工编号信息void DoFind()int num;cout<<"当输入的员工编号为-1是表示结束输入"<<endl;do{cout<<"请输入要查找的员工的编号:";cin>>num;if(num==-1)continue;Worker1.Search(num);}while(num!=-1);return;}/*****************************************************/ //功能:删除指定员工编号信息void DoDelete(){cout<<"当输入的员工编号为-1是表示结束输入"<<endl;int num;do{cout<<"请输入要删除的员工的编号:";cin>>num;if(num==-1)continue;Worker1.RemoveItem(num);cout<<"已成功删除该员工信息!!!"<<endl;}while(num!=-1);return;}/*****************************************************/ //功能:修改指定员工编号信息void DoMotify()cout<<"当输入的员工编号为-1是表示结束输入"<<endl;int num;do{cout<<"请输入要修改的员工的编号:";cin>>num;if(num==-1)continue;Worker1.ReplaceItem(num);}while(num!=-1);cout<<"已成功修改该员工信息!!!"<<endl;return;}/*****************************************************///功能:输出全体员工信息void List(){Worker1.ListL();}/*****************************************************//*主函数*/int main(){int select;char s;while(1){select=Menu();switch(select){case 0:s=Exit();if(s=='y'||s=='Y')return 0;break;case 1:AddNew();break;case 2:DoDelete();break;case 3:DoMotify();break;case 4:DoFind();break;case 5:List();break;default:cout<<"无效输入!"<<endl;}}return 0;}。

相关文档
最新文档