C语言程序设计,纳税工资系统

合集下载

c语言课程设计__工资信息管理系统(修改版)

c语言课程设计__工资信息管理系统(修改版)

c语言课程设计__工资信息管理系统(修改版)计算机高级语言课程设计报告学生姓名:班学号:班级序号:指导教师:一、题目要求工资信息管理系统【要求】该系统能够实现工资信息管理。

系统包括录入、浏览、查询、统计等功能。

其中录入功能要求能够添加新的工资信息到文件;浏览功能要求能按照工资卡号、姓名分类浏览,提供分屏显示;有排序功能,排序后按照工资卡号升序或实发工资降序输出;查询功能要求能够按照工资卡号、姓名查询;统计功能要求能够按照月份累计统计某职工在某时间段实发工资总金额。

【提示】1.文件中一行数据对应一个职工工资信息2.工资信息的数据结构采用结构体数组,一个数组元素对应一条工资单记录3.工资单信息包括工资卡号、姓名、月份、应发工资、水费、电费、税金、实发工资等4.实发工资=应发工资-水费-电费-税金,其中税金的计算方法为a. 应发工资<800元,税金=0b. 800<应发工资<1400元,税金=(应发工资-800)*5%c. 应发工资>1400元,税金=(应发工资-1400)*10%另:课程实习报告的参考格式1.题目编号2.写出系统总设计的思路、功能模块划分。

给出合理的测试数据及运行结果,要求能够体现程序的正确性和完备性及对错误输入的处理。

总结算法或系统的优缺点,给出算法或系统进一步改进的设想。

在附录中给出源代码,3.附录二、需求分析根据题目要求,由于工资单信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览学生的信息,应提供录入、浏览、查询、统计等操作;另外还应提供键盘式选择菜单实现功能选择。

三、总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:数据输入,数据添加,数据浏览,数据查询,数据统计。

录入职工工资信息模块添加职工工资信息模块浏览职工工资信息模块查询职工工资信息模块统计职工工资信息模块功能选择工资信息管理系统图一系统功能模块图四、详细设计1.主函数主函数提供输入、处理和输出部分的函数调用。

c语言工资管理系统课程设计

c语言工资管理系统课程设计

c语言工资管理系统课程设计一、课程目标知识目标:1. 掌握C语言中数据类型、变量、运算符、控制结构等基本知识;2. 学会使用数组、结构体等C语言高级特性;3. 理解文件操作在C语言中的应用;4. 掌握工资管理系统的基本功能模块及其实现方法。

技能目标:1. 能够运用C语言编写简单的工资管理系统程序;2. 学会分析工资管理系统的需求,设计合理的程序结构;3. 掌握调试程序、解决常见编译错误和逻辑错误的方法;4. 提高学生的编程实践能力和问题解决能力。

情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发自主学习C语言的积极性;2. 培养学生的团队协作精神,提高沟通与协作能力;3. 增强学生的信息安全意识,注重保护用户隐私;4. 培养学生遵循编程规范,养成良好的编程习惯。

课程性质分析:本课程为C语言高级应用课程,以实现工资管理系统为项目驱动,结合实际应用场景,让学生在实践中掌握C语言编程技能。

学生特点分析:学生已具备C语言基础知识,具有一定的编程能力,但对复杂程序设计、模块化编程尚需进一步锻炼。

教学要求:结合课程性质和学生特点,注重实践操作,引导学生自主学习,培养编程思维和问题解决能力。

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

二、教学内容1. C语言基础回顾:数据类型、变量、常量、运算符、控制结构(条件语句、循环语句);2. 函数:函数定义、调用、参数传递、返回值;3. 数组与字符串:一维数组、二维数组、字符串操作;4. 指针:指针概念、指针运算、指针与数组、指针与函数;5. 结构体:结构体定义、结构体变量创建、结构体数组、结构体指针;6. 文件操作:文件打开与关闭、读写文件、文件定位;7. 工资管理系统功能模块设计:需求分析、模块划分、数据结构设计;8. 编程实践:编写工资管理系统各功能模块代码,如员工信息管理、工资计算、工资查询等;9. 系统调试与优化:编译错误处理、逻辑错误调试、性能优化;10. 代码规范与编程习惯:命名规范、代码组织、注释使用。

职工工资纳税管理信息系统 c 项目 源代码 功能强大

职工工资纳税管理信息系统 c  项目 源代码 功能强大

职工工资纳税管理信息系统 c 项目源代码功能强大#include<iostream>#include<fstream>#include<string>#include<iomanip>#include"conio.h"using namespace std;void login();void zhuye(string user);string username="";void insert();void update();void del();void select();void cont();void add();bool contain(char* ch,fstream &file); bool contain2(char* ch,fstream &file);float getam2(float bm,int am); char* getfname(fstream &file,char* ch);long getl(fstream &file); long getl2(fstream &file); long getl3(char *c,fstream &file); long l1,l2;int error=0;int i2=0;int i3=0;fstream iofile;fstream iofile2;//职工工资信息class worker{public:worker();worker(int a){}char* getno(){return no;}char* getname(){return name;}float getbm(){return bmoney;}float getam(){return amoney;}void setbm(float fl){bmoney=fl;} void setdel(bool bb){b=bb;}void setmmoney(float fl){mmoney=fl;} void setamoney(float fl){amoney=fl;} bool b;int title;private:char no[5];char name[7];float bmoney;float amoney;float mmoney;};worker::worker(){b=true;int x=0;title=1;cout<<"请输入第"<<i2+1<<"个"<<"职工号:";cin>>no;do{if(x!=0){system("cls");cout<<"工资低于底薪1600,请重新输入工资:"<<endl; }cout<<"请输入第"<<i2+1<<"个"<<"职工工资额:"; cin>>bmoney;x++;}while(bmoney<1600);mmoney=bmoney-1600; //应纳税所得额amoney=getam2(mmoney,bmoney); //税后所得工资strcpy(name,getfname(iofile2,no));//cout<<name<<"-----"; }//职工个人信息class worker2{public:worker2();worker2(int a){}char* getn();char* getname();private:char name[7];char no[5];};worker2::worker2() {cout<<"请输入第"<<i3+1<<"个"<<"职工号:";//职工号不能重复~~还要有权限fflush(stdin);cin>>no;cout<<"请输入第"<<i3+1<<"个"<<"职工姓名:";fflush(stdin);cin>>name;}char* worker2::getn(){return no;}char* worker2::getname(){return name;}//主函数int main(){login();return 0;}//登陆函数void login(){system("cls");char before;int abcd;string user;char pa[20];cout<<"请输入用户名:"; cin>>user;cout<<"请输入密码:"; for(int j=0;j<10;j++) {before=getch();if(before==13){pa[j]='\0';break;}if(before==8){before=getchar();}else{pa[j]=before;cout<<'*';}}if(strcmp(pa,"123")==0||strcmp(pa,"456")==0){zhuye(user);}else{do{error++;if(error==3){cout<<endl;cout<<"密码错误3次,系统自动退出,请稍后重新登录~"; for(abcd=1;abcd<=100000000;abcd++){}exit(1);}cout<<"密码错误~请重新输入";for(abcd=1;abcd<=100000000;abcd++){}login();}while(error<3);}}//登陆成功,进入主页void zhuye(string user) {while(true){system("cls");iofile.open("work.txt",ios::in|ios::out);iofile2.open("workinfo.txt",ios::in|ios::out); if(!iofile||!iofile2){cout<<"cuole";}username=user;cout<<"当前用户: "<<username<<endl;cout<<endl;cout<<" 1.职工工资信息录入"<<endl;cout<<" 2.职工工资信息修改"<<endl;cout<<" 3.职工工资信息删除"<<endl;cout<<" 4.查询纳税金额"<<endl; cout<<" 5.添加职工"<<endl; cout<<" 6.退出"<<endl;cout<<endl;char x;cout<<"请选择你要执行的功能:"; cin>>x;switch(x){case '1':insert();break;case '2':update();break;case '3':del();break;case '4':select();break;case '5':add();break;case '6':exit(1);break;default:cout<<"请输入1——6的数字~";for(int i=0;i<100000000;i++){}iofile.close();iofile2.close();break;}}}//添加职工工资信息void insert(){int size=0;i2=0;char e,e2,n,f;system("cls");iofile<<left;cout<<"请输入你要添加职工信息的数目:"; cin>>size;// while(i2<size)// {do{l1=getl(iofile);l2=getl2(iofile2);//有contain,worker的地方都要用worker work;if(contain(work.getno(),iofile2)){if(contain2(work.getno(),iofile)){cout<<"此前已有"<<work.getname()<<"的工资信息!"<<endl;cout<<"覆盖原来信息输'f',添加输't',退出输'n',其他任意键回主页:"; cin>>f;if(f=='t'){iofile.seekp(0,ios::end);iofile.write((char*)&work,sizeof(work));i2++;if(i2==size)break;}else if(f=='n'){exit(1);}else if(f=='f'){long l=getl3(work.getno(),iofile);cout<<l/sizeof(work);iofile.seekg(l);iofile.write((char*)&work,sizeof(work)); i2++;if(i2==size)break;}else{iofile.close();iofile2.close();return;}}else{iofile.seekp(0,ios::end);iofile.write((char*)&work,sizeof(work)); i2++;if(i2==size)break;}}else{cout<<"没有此号,请确认输入无误~继续输入输'y'"<<endl<<"添加用户输入't',退出输'n',其他任意键回主页:";cin>>n;if(n=='n'){exit(1);}else if(n=='t'){add();return;}else if(n=='y'){system("cls");cout<<"请继续输入:"<<endl;// i2++;}else{iofile.close();iofile2.close();return;}}}while(n=='y'||i2<size); // }cout<<"是否还要添加职工工资信息,"<<endl;cout<<" 若要继续请输'Y',退出输'N',回主页输其他任意键:"<<endl; cin>>e;if(e=='y'||e=='Y'){cout<<"请继续添加职工工资信息"<<endl;do{worker work2;if(contain(work2.getno(),iofile2)){cout<<"有";iofile.write((char*)&work2,sizeof(work2));cout<<"继续添加输'y',推出输'N',回主页输其他任意键:"<<endl; cin>>e2;}else{cout<<"没有";}}while(e2=='y'||e2=='Y'); if(e2=='n'||e2=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(e=='n'||e=='N') {iofile.close();iofile2.close();exit(1);}else{iofile.close();iofile2.close();return;}}void update(){system("cls");// int length=getl(iofile);char c[5],e,e2;float fl;int byte=0;worker work(1);cout<<"请输入您要修改的号码:";cin>>c;iofile.seekg(0);iofile.read((char *)&work,sizeof(work)); while(!iofile.eof()){if(strcmp(c,work.getno())==0){break;}iofile.read((char *)&work,sizeof(work)); byte++;}cout<<"请输入要修改的工资:";cin>>fl;work.setbm(fl);work.setmmoney(fl-1600);work.setamoney(getam2(fl-1600,fl));iofile.seekp(byte*sizeof(work));iofile.write((char *)&work,sizeof(work));cout<<"是否还要修改职工工资信息,"<<endl;cout<<" 若要继续请输'Y',退出输'N',回主页输其他任意键:"<<endl; cin>>e;if(e=='y'||e=='Y'){cout<<"请继续输入您要修改的号码:";cin>>c;iofile.seekg(0);while(!iofile.eof()){iofile.read((char *)&work,sizeof(work));if(strcmp(c,work.getno())==0){break;}byte++;}cout<<"请输入要修改的工资:";cin>>fl;work.setbm(fl);work.setmmoney(fl-1600);work.setamoney(getam2(fl-1600,fl));iofile.seekp(byte*sizeof(work));iofile.write((char *)&work,sizeof(work));cout<<"继续修改输'y',退出输'N',回主页输其他任意键:"<<endl; cin>>e2;while(e2=='y'||e2=='Y');if(e2=='n'||e2=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(e=='n'||e=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}void del(){system("cls");int length=getl(iofile);char c[5],e,e2;int byte=0;worker work(1);cout<<"请输入您要删除的号码:";cin>>c;iofile.seekg(0);while(!iofile.eof()){iofile.read((char *)&work,sizeof(work)); if(strcmp(c,work.getno())==0){break;}}byte=iofile.tellg()/sizeof(work)-1;/* work.setdel(false);iofile.seekp(byte*sizeof(work));iofile.write((char *)&work,sizeof(work));*/while(!iofile.eof()){iofile.seekg((byte+1)*sizeof(work));iofile.read((char *)&work,sizeof(work));iofile.seekp(byte*sizeof(work));iofile.write((char *)&work,sizeof(work));byte++;if(byte+1==length)break;}iofile.seekp(-sizeof(work),ios::end);for(int l=0;l<sizeof(work);l++){iofile.put(NULL);}cout<<"删除成功~"<<endl;cout<<"是否还要删除职工工资信息,"<<endl;cout<<" 若要继续请输'Y',退出输'N',回主页输其他任意键:"<<endl; cin>>e;if(e=='y'||e=='Y'){cout<<"请继续删除职工工资信息"<<endl;do{cout<<"请输入您要删除的号码:";cin>>c;iofile.seekg(0);while(!iofile.eof()){iofile.read((char *)&work,sizeof(work)); if(strcmp(c,work.getno())==0){break;}}byte=iofile.tellg()/sizeof(work)-1;while(!iofile.eof()){iofile.seekg((byte+1)*sizeof(work)); iofile.read((char *)&work,sizeof(work)); iofile.seekp(byte*sizeof(work));iofile.write((char *)&work,sizeof(work)); byte++;if(byte+1==length)break;}iofile.seekp(-sizeof(work),ios::end);for(int l=0;l<sizeof(work);l++){iofile.put(NULL);}cout<<"删除成功"<<endl;cout<<"继续删除输'y',退出输'N',回主页输其他任意键:"<<endl; cin>>e2;}while(e2=='y'||e2=='Y');if(e2=='n'||e2=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(e=='n'||e=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}void select(){char c,type;do{system("cls");char n[5];char name[7];cout<<left;long l=getl(iofile);worker work(1);cout<<" 欢迎进入信息查询"<<endl; cout<<" 1.查询所有"<<endl;cout<<" 2.按号码查询"<<endl; cout<<" 3.按姓名查询"<<endl; cout<<endl<<"请选择查询方式:";cin>>type;if(type=='1'){system("cls");cout<<setw(7)<<"号码"<<setw(9)<<"姓名"<<setw(16)<<"税前工资"<<setw(16)<<"税后工资"<<endl;iofile.seekg(0,ios::beg);/*iofile.read((char*)&work,sizeof(work));while(!iofile.eof())//此处需读一遍才会退出循环{if(work.b==true){cout<<!iofile<<setw(7)<<work.getno()<<setw(9)<<work.getname()<<setw( 16)<<work.getbm()<<setw(16)<<work.getam()<<endl;}iofile.read((char*)&work,sizeof(work));}*//* while(iofile.read((char*)&work,sizeof(work))){cout<<!iofile<<setw(7)<<work.getno()<<setw(9)<<work.getname()<<setw( 16)<<work.getbm()<<setw(16)<<work.getam()<<endl;}*/for(int i=0;i<l;i++){iofile.read((char*)&work,sizeof(work));if(work.getbm()!=0)cout<<setw(7)<<work.getno()<<setw(9)<<work.getname()<<setw(16) <<work.getbm()<<setw(16)<<work.getam()<<endl;}cout<<"退出输'n',回主页输其他任意键:";cin>>c;if(c=='n'||c=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(type=='2'){system("cls");cout<<"请输入要查询的学号:";cin>>n;long tl=getl3(n,iofile);iofile.seekg(tl);iofile.read((char*)&work,sizeof(work));cout<<setw(7)<<"号码"<<setw(9)<<"姓名"<<setw(16)<<"税前工资"<<setw(16)<<"税后工资"<<endl;iofile.seekg(0,ios::beg);cout<<setw(7)<<work.getno()<<setw(9)<<work.getname()<<setw(16) <<work.getbm()<<setw(16)<<work.getam()<<endl;cout<<"退出输'n',回主页输其他任意键:";cin>>c;if(c=='n'||c=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(type=='3'){system("cls");cout<<"请输入要查询的姓名:";cin>>name;long tl=getl3(name,iofile);iofile.seekg(tl);iofile.read((char*)&work,sizeof(work));cout<<setw(7)<<"号码"<<setw(9)<<"姓名"<<setw(16)<<"税前工资"<<setw(16)<<"税后工资"<<endl;iofile.seekg(0,ios::beg);cout<<setw(7)<<work.getno()<<setw(9)<<work.getname()<<setw(16) <<work.getbm()<<setw(16)<<work.getam()<<endl;cout<<"退出输'n',回主页输其他任意键:";cin>>c;if(c=='n'||c=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else{cout<<"请输入1——3的数字~";for(int i=0;i<100000000;i++){}}}while(type!='1'&&type!='2'&&type!='3');}//添加职工基本信息void add(){int size=0;i3=0;char e,e2;system("cls");iofile2.seekp(0,ios::end);iofile<<left;cout<<" 欢迎进入添加职工成员~"<<endl;cout<<"请输入你要添加职工信息的数目:"; cin>>size;while(i3<size){worker2 work2;iofile2.write((char*)&work2,sizeof(work2));i3++;}cout<<"是否还要添加职工信息,"<<endl;cout<<" 若要继续请输'Y',退出输'N',回主页输其他任意键:"<<endl; cin>>e;if(e=='y'||e=='Y'){cout<<"请继续添加职工信息"<<endl;do{worker2 work2;iofile2.write((char*)&work2,sizeof(work2));cout<<"继续添加输'y',推出输'N',回主页输其他任意键:"<<endl; cin>>e2;}while(e2=='y'||e2=='Y');if(e2=='n'||e2=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}else if(e=='n'||e=='N'){exit(1);}else{iofile.close();iofile2.close();return;}}//判断用户有无bool contain(char* ch,fstream &file) {worker2 work(1);file.seekg(0);int flag=0;for(int i=0;i<l2;i++){file.read((char*)&work,sizeof(work)); if(strcmp(ch,work.getn())==0){flag=1;break;}}if(flag==1){return true;}else{return false;}}//获取用户名char* getfname(fstream &file,char* ch) {worker2 work3(1);file.seekg(0);for(int i=0;i<l2;i++){file.read((char*)&work3,sizeof(work3)); if(strcmp(ch,work3.getn())==0){break;}}return work3.getname();}//获取数目long getl(fstream &file){file.seekg(0,ios::end);worker work(1);return (file.tellg())/sizeof(work); } long getl2(fstream &file){file.seekg(0,ios::end);worker2 work(1);return (file.tellg())/sizeof(work); } //获取位置long getl3(char *c,fstream &file) { worker work(1);file.seekg(0);for(int i=0;i<l1;i++){file.read((char *)&work,sizeof(work)); if(strcmp(c,work.getno())==0)break;}return file.tellg()-(long)sizeof(work); }//判断是否已有工资信息bool contain2(char* ch,fstream &file) { worker work(1);file.seekg(0);int flag=0;for(int i=0;i<l1;i++){file.read((char*)&work,sizeof(work)); if(strcmp(ch,work.getno())==0){flag=1;break;}}if(flag==1){return true;}else{return false;}}//获取职工税后工资float getam2(float bm,int am){if(bm<=500){return am-bm*5/100;}else if(bm<=2000){return am-500*5/100-(bm-500)*10/100;}else if(bm<=5000){return am-500*5/100-1500*10/100-(bm-2000)*15/100;}else if(bm<=20000){return am-500*5/100-1500*10/100-3000*20/100-(bm-5000)*20/100;}else if(bm<=40000){returnam-500*5/100-1500*10/100-3000*20/100-20000*20/100-(bm-20000)*25/100;}else if(bm<=60000){returnam-500*5/100-1500*10/100-3000*20/100-20000*20/100-20000*25/100-(bm-40000)*30/100;}else if(bm<=80000){returnam-500*5/100-1500*10/100-3000*20/100-20000*20/100-20000*25/100-20000*30/100-(bm-60000)*35/100;}else if(bm<=100000){returnam-500*5/100-1500*10/100-3000*20/100-20000*20/100-20000*25/100-20000*30/100-20000*35/100-(bm-80000)*40/100;}else{returnam-500*5/100-1500*10/100-3000*20/100-20000*20/100-20000*25/100-20000*30/100-20000*35/100-20000*40/100-(bm-100000)*45/100;}}。

c语言纳税课程设计

c语言纳税课程设计

c语言纳税课程设计一、教学目标通过本章节的学习,使学生掌握C语言编程的基本方法,能够运用C语言进行简单的数据处理和算法实现。

了解纳税的基本概念和计算方法,能够运用C语言编写简单的纳税计算程序。

培养学生对编程和纳税的兴趣,提高学生的动手能力和实际应用能力。

二、教学内容本章节主要内容包括C语言的基本语法、数据类型、运算符、控制结构、函数等。

通过学习,使学生能够掌握C语言编程的基本方法,并能够运用C语言进行简单的数据处理和算法实现。

同时,介绍纳税的基本概念、税率和计算方法,引导学生运用C语言编写纳税计算程序。

三、教学方法采用讲授法、案例分析法和实验法相结合的教学方法。

首先通过讲授法,向学生介绍C语言的基本语法和编程方法。

然后通过案例分析法,引导学生分析纳税的计算方法,并运用C语言进行编程实现。

最后通过实验法,让学生动手编写纳税计算程序,巩固所学知识。

四、教学资源教材:《C程序设计语言》参考书:《C语言编程实例教程》多媒体资料:C语言编程视频教程实验设备:计算机、编程环境五、教学评估本章节的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度和提问回答情况,占总评的20%。

作业主要评估学生对纳税计算程序的编写能力,占总评的40%。

考试主要评估学生对C语言编程和纳税知识的掌握程度,占总评的40%。

评估方式客观、公正,能够全面反映学生的学习成果。

六、教学安排本章节的教学安排如下:总共10课时,每课时45分钟。

第1-4课时,讲授C语言的基本语法和编程方法;第5-8课时,介绍纳税的基本概念和计算方法,引导学生编写纳税计算程序;第9-10课时,进行课堂讨论和实验操作。

教学安排合理、紧凑,确保在有限的时间内完成教学任务。

七、差异化教学针对不同学生的学习风格、兴趣和能力水平,本章节将设计差异化的教学活动和评估方式。

对于编程能力较强的学生,可以引导他们进行更复杂的纳税计算程序设计;对于编程能力较弱的学生,可以安排额外的辅导和练习。

c语言工资管理系统课程设计

c语言工资管理系统课程设计

c语言工资管理系统课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体、文件操作等基本知识,并能将其应用于工资管理系统。

2. 使学生了解工资管理系统的基本功能需求,如员工信息录入、查询、修改和删除等。

3. 帮助学生理解工资计算方法,包括基本工资、加班工资、税金和实发工资等。

技能目标:1. 培养学生运用C语言设计、编写和调试工资管理系统的能力。

2. 提高学生分析问题、解决问题的能力,使其能够根据实际需求,优化系统功能。

3. 培养学生团队协作和沟通能力,通过分组完成任务,共同完成课程设计。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神。

2. 培养学生认真负责的态度,对待课程设计任务,养成良好的编程习惯。

3. 引导学生关注实际应用,理解计算机技术在企业管理中的重要性,提高职业素养。

分析课程性质、学生特点和教学要求:1. 课程性质:本课程为C语言课程设计,旨在帮助学生将所学知识应用于实际项目中,提高编程能力和解决实际问题的能力。

2. 学生特点:学生已经掌握了C语言的基本知识,具有一定的编程基础,但对实际项目开发尚缺乏经验。

3. 教学要求:结合教材内容,以实用性为导向,注重培养学生的实际操作能力和团队协作能力。

二、教学内容1. 教学大纲:a. C语言数组、结构体和文件操作复习b. 工资管理系统功能需求分析c. 工资计算方法及实现d. 系统设计、编码与调试e. 团队协作与项目展示2. 教学内容安排与进度:a. 第一周:复习C语言数组、结构体和文件操作相关知识,讲解工资管理系统项目背景和功能需求。

b. 第二周:分析工资计算方法,引导学生设计系统功能模块,编写系统设计文档。

c. 第三周:根据设计文档,分组进行编码,实现工资管理系统的基础功能。

d. 第四周:优化系统功能,进行系统调试,确保系统稳定运行。

e. 第五周:团队协作,整理项目文档,准备项目展示。

3. 教材章节与内容:a. 数组、结构体和文件操作:教材第3章、第4章、第6章b. 工资管理系统功能需求分析:教材第10章 实践项目案例c. 工资计算方法及实现:教材第7章 循环与分支结构d. 系统设计、编码与调试:教材第8章 函数与模块化编程e. 团队协作与项目展示:教材第12章 软件工程实践4. 教学内容列举:a. 数组、结构体和文件操作:数组的使用、结构体定义和操作、文件读写。

C语言程序设计,纳税工资系统24页word文档

C语言程序设计,纳税工资系统24页word文档

第一章课程设计目的和要求1.1 课程设计的目的C语言一直是程序设计语言的主流之一数据类型丰富、齐全。

C 语言供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型,运算符丰富、齐全,运算能力强。

C 语言提供的运算符为常规运算:常规运算符——算术运算符、逻辑运算符、关系运算符等,这类运算符各种语言一般都具备;进一步巩固《C程序设计》所学的知识,加强语句类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养化程序设计的思想,加深对基本语言要素和结构的理解,锻炼程序设计的能力,以及用C语言解决实际问题的能力。

此课程设计着眼于知识的运用,把平常学的知识运用到实践中来,本身就是考察我们知识运用能力。

要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。

1.2 课程设计实现的要求如今公民纳税意识的增强,需要有方便、简单、快速的工具帮助大家解决工资,个人所得收入的纳税问题。

所以我们可以用程序来实现这个功能,在程序设计中,既可以用传统的程序设计方法,也可以用先进的面向对象程序设计方法。

对应用程序的要求:1、该系统软件可以根据输入的工资数额,得出所需缴纳的税额。

2、得出税后工资;工资g ;税:t;税后工资m;3、显示税率第二章程序设计任务内容用C语言实现一个工资纳税系统,该系统主要应用在个人工资纳税操作中,其中要求能够准确计算出个人工资或收入的所得税,能够查询到一个人的工资所得税,该系统涉及到的加,减,乘等简单运算,课程设计主要是使用if语句及switch语句实现。

按照国家规定,工资低于1600元时,不用缴纳所得税。

当工资高于1600时,需按以下规定缴纳所得税:(税前工资-1600)×税率=个人所得税税额级数含税级距税率%速算扣除数1不超过500元的 5 02超过500元至2000元的部分 10 253超过2000元至5000元的部分15 1754超过5000元至20000元的部分20 6255超过20000元至40000元的部分25 3625超过40000元至60000元的部分30 96257超过60000元至80000元的部分35 166258超过80000元至100000元的部分40 246259超过100000元的部分 4531625表中的应纳税所得额是指以每月收入额减1600元按公式计算后的余额。

工资管理系统课程设计C语言

工资管理系统课程设计C语言

工资管理系统 课程设计 C语言一、课程目标知识目标:1. 理解工资管理系统的基本概念和功能需求;2. 掌握C语言中的基本数据类型、运算符、控制结构等编程知识点;3. 学会使用C语言设计并实现一个简单的工资管理系统。

技能目标:1. 能够运用C语言编写出结构清晰、逻辑合理的程序代码;2. 能够运用数组、结构体等数据结构存储和管理工资数据;3. 能够运用文件操作实现工资数据的持久化存储。

情感态度价值观目标:1. 培养学生解决问题的能力和团队协作精神,激发学生对编程的兴趣;2. 增强学生对信息技术的认识,使其意识到信息技术在现实生活中的应用价值;3. 培养学生严谨、认真的学习态度,提高学生的编程素养。

课程性质:本课程为C语言编程实践课,旨在让学生通过动手实践,掌握C语言编程的基本技能,并能够运用所学知识解决实际问题。

学生特点:学生为高年级学生,已具备一定的C语言基础,有较强的逻辑思维能力,但对实际应用场景的编程经验不足。

教学要求:结合学生特点,注重实践操作,引导学生从实际问题出发,逐步培养编程思维,提高编程能力。

课程目标分解为具体学习成果,便于教学设计和评估。

二、教学内容1. 工资管理系统概述- 系统需求分析- 功能模块划分2. C语言基础知识回顾- 数据类型- 运算符与表达式- 控制结构(顺序、分支、循环)3. 数据结构设计- 数组- 结构体4. 函数与模块化编程- 函数定义与调用- 模块化设计5. 文件操作- 文件打开与关闭- 文件读写操作6. 工资管理系统功能实现- 员工信息管理- 工资计算- 工资查询- 数据存储与读取7. 测试与调试- 功能测试- 性能测试- 代码调试教学内容安排与进度:第1周:工资管理系统概述及需求分析第2周:C语言基础知识回顾第3周:数据结构设计第4周:函数与模块化编程第5周:文件操作第6周:工资管理系统功能实现(1)第7周:工资管理系统功能实现(2)第8周:测试与调试教材章节及内容:《C语言程序设计》第3章:数据类型、运算符与表达式第4章:控制结构第6章:函数与模块化编程第7章:数组和字符串第8章:结构体与共同体第9章:文件操作教学内容紧密结合课程目标,注重科学性和系统性,通过以上教学内容,使学生能够掌握C语言编程的核心知识,并能够将其应用于工资管理系统的设计与实现。

c语言课程设计工资纳税

c语言课程设计工资纳税

c语言课程设计工资纳税一、教学目标本章节的教学目标是让学生掌握C语言编程基础,能够运用C语言编写简单的工资纳税计算程序。

具体分为以下三个部分:1.知识目标:使学生了解C语言的基本语法和数据类型,掌握基本的输入输出操作,理解函数的定义和调用。

2.技能目标:培养学生运用C语言解决实际问题的能力,能够独立编写并调试工资纳税计算程序。

3.情感态度价值观目标:培养学生对编程的兴趣,增强其自主学习的动力,使其认识到编程在实际生活中的应用价值。

二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言基本语法和数据类型2.输入输出操作3.函数的定义和调用4.工资纳税计算程序的设计与实现三、教学方法为了达到本章节的教学目标,将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据类型和函数的定义等理论知识。

2.案例分析法:分析实际的工资纳税计算案例,引导学生运用C语言解决问题。

3.实验法:让学生动手编写和调试工资纳税计算程序,巩固所学知识。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:C语言编程教程,用于为学生提供理论知识的学习。

2.多媒体资料:工资纳税计算案例的视频讲解,用于辅助学生理解实际应用。

3.实验设备:计算机,用于让学生进行编程实践。

五、教学评估本章节的教学评估将采取多元化的评估方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:考察学生在课堂上的参与程度、提问回答等情况,以评价其对知识的掌握和运用能力。

2.作业:布置与工资纳税计算相关的编程作业,评估学生对所学知识的应用能力和编程技巧。

3.考试:进行期中和期末考试,测试学生对C语言编程理论和实践的全面掌握。

评估结果将作为学生成绩的重要依据,同时也将用于指导教师进行教学反思和调整。

六、教学安排本章节的教学安排将根据学生的作息时间、兴趣爱好等因素进行合理规划。

教学进度将保持紧凑,以确保在有限的时间内完成教学任务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章课程设计目的和要求1.1 课程设计的目的C语言一直是程序设计语言的主流之一数据类型丰富、齐全。

C 语言供了整数、实数、字符、字符串等基本数据类型,还提供数组、指针、结构体等构造数据类型,运算符丰富、齐全,运算能力强。

C 语言提供的运算符为常规运算:常规运算符——算术运算符、逻辑运算符、关系运算符等,这类运算符各种语言一般都具备;进一步巩固《C程序设计》所学的知识,加强语句类型的应用,熟悉面向过程的结构化和面向对象可视化程序设计方法,培养化程序设计的思想,加深对基本语言要素和结构的理解,锻炼程序设计的能力,以及用C语言解决实际问题的能力。

此课程设计着眼于知识的运用,把平常学的知识运用到实践中来,本身就是考察我们知识运用能力。

要求熟悉运用一些编程软件,对我们所学的理论知识进一步的深化。

1.2 课程设计实现的要求如今公民纳税意识的增强,需要有方便、简单、快速的工具帮助大家解决工资,个人所得收入的纳税问题。

所以我们可以用程序来实现这个功能,在程序设计中,既可以用传统的程序设计方法,也可以用先进的面向对象程序设计方法。

对应用程序的要求:1、该系统软件可以根据输入的工资数额,得出所需缴纳的税额。

2、得出税后工资;工资g ;税:t;税后工资m;3、显示税率第二章程序设计任务容用C语言实现一个工资纳税系统,该系统主要应用在个人工资纳税操作中,其中要求能够准确计算出个人工资或收入的所得税,能够查询到一个人的工资所得税,该系统涉及到的加,减,乘等简单运算,课程设计主要是使用if语句及switch语句实现。

按照国家规定,工资低于1600元时,不用缴纳所得税。

当工资高于1600时,需按以下规定缴纳所得税:(税前工资-1600)×税率=个人所得税税额级数含税级距税率% 速算扣除数1 不超过500元的 5 02 超过500元至2000元的部分10 253 超过2000元至5000元的部分 15 1754 超过5000元至20000元的部分 20 6255 超过20000元至40000元的部分 25 3625超过40000元至60000元的部分 30 96257 超过60000元至80000元的部分 35 166258 超过80000元至100000元的部分 40 246259 超过100000元的部分45 31625表中的应纳税所得额是指以每月收入额减1600元按公式计算后的余额。

例如:计算为:2500-1600=900应纳个人所得税额=500×5%+400×10% =65再比如:我们用一个大额工资计算,25000元应纳税所得额=25000-1600=23400应纳个人所得税税额=500×5%+1500×10%+3000×15%+15000×20%+3400×25%=4475要求:输入工资计算出纳税金额。

第三章详细设计说明3.1 模块3.1.1 模块描述声明函数,定义两个变量g和t,m;创建一个工资纳税系统计算函数,实现个人工资所得税的计算、查询。

在程序中输入的容包括:(1)输入个人工资实现过程:根据提示输入个人工资数据(2)个人所得税的计算实现过程(3)显示税率3.1.2 功能模块图此系统的函数功能模块图如图1所示。

图1 函数功能模块图3.2 性能该模块性能要求(1)灵活性要求输出的数据能准确的按照操作代码输出。

(2)时间特性要求输入的各项操作代码能及时反应其运行结果。

3.3 算法说明该程序采用一系列if语句及switch语句来达到计算目的3.4 函数说明工资纳税计算函数(1)原型:int main()(2)功能:该函数用来计算输入工资的所得税(3)流程图:如图2所示(4)对应代码#include<stdio.h>int main(){int g,c,j=1600;floatd1=0.05,d2=0.1,d3=0.15,d4=0.2,d5=0.25,d6=0.3,d7=0.35,d8=0. 4,d9=0.45,m,t;printf("欢迎进入工资纳税系统\n");printf(" 税率表\n");printf("级数含税级距税率(% %)\n");printf(" 1 不超过500元的 5 \n"); printf(" 2 超过500元至2000元的部分10\n "); printf(" 3 超过2000元至5000元的部分15\n "); printf(" 4 超过5000元至20000元的部分20\n "); printf(" 5 超过20000元至40000元的部分25\n "); printf(" 6 超过40000元至60000元的部分30\n "); printf(" 7 超过60000元至80000元的部分35\n "); printf(" 8 超过80000元至100000元的部分40\n ");printf(" 9 超过100000元的部分45\n "); printf("\n请输入工资:\n");scanf ("%d",&g);if (g<=j)t=0;// g不超过1600元时t的值else if(g>j)c=(g-j)/500;else if(c>200)t=(g-j-100000)*d9+31625;// (g-j)超过100000元时t计算方法switch(c){case 0:t=(g-j)*d1;// (g-j)不超过500元时t计算方法case 1:case 2:case 3:case 4:t=(g-j-500)*d2+25;break;//1~4;(g-j)超过500元但不超过2000元时t计算方法case 5:case 6:case 7:case 8:case 9:case 10:t=(g-j-2000)*d3+175;break;//5~10;(g-j)超过2000元但不超过5000元时t计算方法case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:t=(g-j-5000)*d4+625;break; //11~40;(g-j)超过5000元但不超过20000元时t计算方法case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 53: case 54: case 55: case 56: case 57: case 58: case 59: case 60: case 61: case 62: case 63: case 64: case 65: case 66: case 67: case 68: case 69: case 70: case 71: case 72: case 73:case 75:case 76:case 77:case 78:case 79:case 80:t=(g-j-20000)*d5+3625;break;// 41~80;(g-j)超过20000元但不超过40000元时t计算方法case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 92:case 93:case 94:case 96: case 97: case 98: case 99: case 100: case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: case 110: case 111: case 112: case 113: case 114: case 115: case 116:case 118:case 119:case 120:t=(g-j-40000)*d6+9625;break;// 81~120;(g-j)超过40000元但不超过60000元时t计算方法case 121:case 122:case 123:case 124:case 125:case 126:case 127:case 128:case 129:case 130:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 139: case 140: case 141: case 142: case 143: case 144: case 145: case 146: case 147: case 148: case 149: case 150: case 151: case 152: case 153: case 154: case 155: case 156: case 157: case 158: case 159:case 160:t=(g-j-40000)*d7+16625;break;// 121~160;(g-j)超过60000元但不超过80000元时t计算方法case 161:case 162:case 163:case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 179:case 180:case 181:case 182:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 195:case 196:case 197:case 198:case 199:case 200:t=(g-j-80000)*d8+24625;break;// 161~200;(g-j)超过80000元但不超过100000元时t计算方法}printf("个人所得税:t=%10.2f\n",-t);m=g-t;printf("税后工资:m=%10.2f\n",m);}3.5 限制条件在输入值时必须按照程序所规定的输入,否则将运行错误或无法运行。

相关文档
最新文档