c语言程序设计教师工资标准管理系统具体的设计方案报告_第1页
c语言程序设计教师工资标准管理系统具体的设计方案报告_第2页
c语言程序设计教师工资标准管理系统具体的设计方案报告_第3页
c语言程序设计教师工资标准管理系统具体的设计方案报告_第4页
c语言程序设计教师工资标准管理系统具体的设计方案报告_第5页
已阅读5页,还剩24页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计汇报学院:天津理工大学华信软件学院专业名称:软件工程课程设计科目C语言课程设计所在班级:一班学生学号:5945学生姓名:吴健指导老师:陈立娜完成时间:4月-6月老师工资管理系统每个老师信息为:老师号、姓名、性别、单位名称、家庭住址、联络电话、基础工资、津贴、生活补助、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、累计扣款、实发工资。注:应发工资=基础工资+津贴+生活补助;累计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-累计扣款。A、老师信息处理(1)输入老师信息 (2)插入(修改)老师信息:(3)删除老师信息:(4)浏览老师信息:提醒:具体功效及操作参考题1。B、老师数据处理:(1)按老师号录入老师基础工资、津贴、生活补助、电话费、水电费、房租、所得税、卫生费、公积金等基础数据。(2)老师实发工资、应发工资、累计扣款计算。提醒:计算规则如题目。(3)老师数据管理提醒:输入老师号,读出并显示该老师信息,输入新数据,将改后信息写入文件(4)老师数据查询:提醒:输入老师号或其它信息,即读出全部数据信息,并显示出来。(5)老师综合信息输出提醒:输出老师信息到屏幕。1.课程设计目标和要求 巩固和加强《c语言程序设计》课程理论知识。掌握c语言基础概念,语法,语义和数据类型使用特点。掌握c语言程序设计方法及编程技巧,能正确使用c语言编写程序。深入了解和利用结构化程序设计思想和放法。使学生掌握调试程序基础方法及上机操作方法。 经过查询手册和文件资料,培养学生独立分析问题和处理问题能力。初步掌握开发一个小型实用系统基础方法。培养学生创新能力和创新思维。 培养学生良好程序设计风格。深入了解和利用2.课程设计题目及内容老师工资管理系统每个老师信息为:老师名,姓名,性别,单位名称,家庭住址,联络电话,基础工资,津贴,生活补助,应发工资,电话费,水电费,房租,所得税,卫生费,公积金,累计扣款,实发工资。注:应发工资=基础工资+津贴+生活补助;累计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资—累计扣款。1老师信息处理输入老师信息插入(修改)老师信息删除老师信息;浏览老师信息;(提醒:具体功效及操作参考题1。)2老师数据处理;按老师号录入老师基础工资,津贴,生活补助,电话费,水电费,房租,所得税,卫生费,公积金等基础信息;老师实发工资、应发公资、累计扣款;老师数据管理;(提醒:输入老师号,读出并显示该老师信息,输入新数据,将改后信息写入文件。)老师数据查询;(提醒:输入老师好或其它信息,即读出全部数据信息,并显示出来。)老师综合信息输出;(提醒;输出老师信息到屏幕。)需求分析老师信息处理A输入老师信息B插入修改老师信息C删除老师信息D浏览老师信息老师数据处理A按老师号录入老师基础工资、津贴、生活补助、电话费、水电费、房租、所得税、卫生费、公积金等基础数据。B老师实发工资,应发工资,累计扣款计算。C老师数据管理D老师数据查询E老师综合信息输出二总体设计4.总体设计、输出界面输出界面选择操作选择0读取文件实施freeall()退出系统选择1输入数据Break结束选择2浏览数据break选择3查询数据选择3查询数据Break选择4选择5删除数据修改数据BreakBreak输出:无效选项Break结束建立动态链表。开辟一个新结点,并使开辟一个新结点,并使p1,p2指向它读入一个老师数据给P1所指结点head=NULLn=0当读入p1->num!=0表尾结点指针变量置NULLn=n+1n=n+1真n=1假head=p1p2->next=p1把p1所指结点把p1所指结点作为第一结点连接到表尾p2=p1在开辟一个新结点,使p1指向它读入一个老师数据给p1所指结点删除结点真链表是一个空表假p1=head真链表是一个空表假p1=head当num!=p1->num和p1所指结点不是表尾结点结点p2=p1p1=p1->next是p1是要删除结点否是p1所指头结点否输出找head=p1->nextp2->next=不到信息p1->next息输出空表插入结点pp1=head,p0=stud是原来链表是空表否当p0->num>p1->num和p1所指不是表尾结点将p0所p2指向p1位置指结p1向后移一个结点点作为p0->num<=p1->num唯一真假结点是p1指向头结点否p1->next=p0head=p0p2->next=p0p0->next=NULLp0->next=p1p0->next=p1修改调用调用query函数查找到相关结点地址修改相关结点值域是否存在该老师信息修改完成三、具体设计源程序#include<stdio.h>#include<stdlib.h>#include<conio.h>#defineLENsizeof(structteacher)structteacher*creat();structteacher{ charnum[11]; charname[10]; charsex[8]; charunit[10]; charaddress[10]; longtelnum; floatsalary_1; floatallowance; floatlife_allow; floatsalary_2; floattel_fee; floattax; floathealth_fee; floatwater_fee; floatrent; floatgrant; floattotal_fee; floatactual_salary; structteacher*next;};intn;structteacher*head;FILE*fp;structteacher*creat(void) { structteacher*p1,*p2; n=0; p1=p2=(structteacher*)malloc(LEN); printf("老师号:");scanf("%d",&p1->num);fflush(stdin);printf("老师姓名:");gets(p1->name);printf("老师性别:");gets(p1->sex);printf("单位名称:");gets(p1->unit);printf("家庭地址:");gets(p1->address);printf("电话号码:");scanf("%ld",&p1->telnum);fflush(stdin);printf("基础工资:");scanf("%f",&p1->salary_1);fflush(stdin);printf("津贴:");scanf("%f",&p1->allowance);fflush(stdin); printf("生活补助:");scanf("%f",&p1->life_allow);fflush(stdin);printf("电话费:");scanf("%f",&p1->tel_fee);fflush(stdin);printf("个人所得税:");scanf("%f",&p1->tax);fflush(stdin);printf("房租:");scanf("%f",&p1->rent);fflush(stdin);printf("公积金:");scanf("%f",&p1->grant);fflush(stdin);printf("水电费:");scanf("%f",&p1->water_fee);fflush(stdin);printf("卫生费:");scanf("%f",&p1->health_fee);fflush(stdin);p1->salary_2=p1->salary_1+p1->allowance+p1->life_allow;p1->total_fee=p1->tel_fee+p1->water_fee+p1->rent+p1->tax+p1->health_fee+p1->grant; p1->actual_salary=p1->salary_2-p1->total_fee; head=NULL; while(p1->num!=0) { n=n+1; if(n==1)head=p1; elsep2->next=p1; p2=p1; p1=(structteacher*)malloc(LEN); printf("老师号:");scanf("%d",&p1->num);fflush(stdin);printf("老师姓名:");gets(p1->name);printf("老师性别:");gets(p1->sex);printf("单位名称:");gets(p1->unit);printf("家庭地址:");gets(p1->address);printf("电话号码:");scanf("%ld",&p1->telnum);fflush(stdin);printf("基础工资:");scanf("%f",&p1->salary_1);fflush(stdin);printf("津贴:");scanf("%f",&p1->allowance);fflush(stdin); printf("生活补助:");scanf("%f",&p1->life_allow);fflush(stdin);printf("电话费:");scanf("%f",&p1->tel_fee);fflush(stdin);printf("个人所得税:");scanf("%f",&p1->tax);fflush(stdin);printf("房租:");scanf("%f",&p1->rent);fflush(stdin);printf("公积金:");scanf("%f",&p1->grant);fflush(stdin);printf("水电费:");scanf("%f",&p1->water_fee);fflush(stdin);printf("卫生费:");scanf("%f",&p1->health_fee);fflush(stdin);p1->salary_2=p1->salary_1+p1->allowance+p1->life_allow;p1->total_fee=p1->tel_fee+p1->water_fee+p1->rent+p1->tax+p1->health_fee+p1->grant; p1->actual_salary=p1->salary_2-p1->total_fee; } p2->next=NULL; return(head);}voidprint(structteacher*head){ structteacher*p; printf("\nNow,These%drecordsare:\n",n); p=head; if(head!=NULL) do { printf("老师号:%5d\t\t",p->num); printf("老师姓名:%-10s\n",p->name); printf("老师性别:%-6s\t\t",p->sex); printf("单位名称:%-10s\n",p->unit); printf("家庭地址:%-10s\t",p->address); printf("电话号码:%8ld\n",p->telnum); printf("基础工资:%5.0f\t\t",p->salary_1); printf("津贴:%5.0f\n",p->allowance); printf("生活补助:%5.0f\t",p->life_allow); printf("\t电话费:%5.0f\n",p->tel_fee); printf("个人所得税:%5.0f\t",p->tax); printf("卫生费:%5.0f\n",p->health_fee); printf("水电费:%5.0f\t\t",p->water_fee); printf("房租:%5.0f\n",p->rent); printf("公积金:%5.0f\t\t",p->grant); printf("应发工资:%5.0f\n",p->salary_2); printf("累计扣款:%5.0f\t\t",p->total_fee); printf("实发工资:%5.0f\n\n\n",p->actual_salary); p=p->next; }while(p!=NULL);}structteacher*insert(structteacher*head,structteacher*teach){ structteacher*p0,*p1,*p2; p1=head; p0=teach; if(head==NULL) { head=p0;p0->next=NULL; } else { while((p0->num>p1->num)&&(p1->next!=NULL)) {p2=p1;p1=p1->next;} if(p0->num<p1->num) { if(head==p1)head=p0; elsep2->next=p0; p0->next=p1; } else {p1->next=p0;p0->next=NULL;} } n=n+1; return(head);}structteacher*del(structteacher*head,intnumber){ structteacher*p1,*p2; if(head==NULL){printf("\nlistnull\n");return(head);} p1=head; while(number!=p1->num&&p1->next!=NULL) {p2=p1;p1=p1->next;} if(number==p1->num) { if(p1==head)head=p1->next; elsep2->next=p1->next; printf("删除:%d\n",number); n=n-1; } elseprintf("%ldisnotfound\n",number); return(head);}voidsave(){inti;structteacher*p1; p1=head;if((fp=fopen("teacher_list","wb"))==NULL){printf("cannotopenfile\n");return;}for(i=0;i<n;i++){if(fwrite(p1,sizeof(structteacher),1,fp)!=1)printf("filewriteerror\n");p1=p1->next;}fclose(fp);}voidload(){structteacher*p1,*p2; if((fp=fopen("teacher_list","rb"))==NULL) {printf("cannotopenfile\n");return;} p1=p2=(structteacher*)malloc(LEN);head=p1;do{ if(fread(p1,sizeof(structteacher),1,fp)!=1){printf("fileerror\n");gotoend;}if(p1->next!=NULL){p2=p1;p1=(structteacher*)malloc(LEN);p2->next=p1;}elsebreak;}while(1);end:fclose(fp);} voidquery(structteacher*p){ intno; p=head; printf("pleaseinputnum:\n"); scanf("%d",&no);while(p->num!=no) p=p->next; printf("基础工资:%5.0f\t\t",p->salary_1); printf("津贴:%5.0f\n",p->allowance); printf("生活补助:%5.0f\t",p->life_allow); printf("\t电话费:%5.0f\n",p->tel_fee); printf("个人所得税:%5.0f\t",p->tax); printf("卫生费:%5.0f\n",p->health_fee); printf("水电费:%5.0f\t\t",p->water_fee); printf("房租:%5.0f\n",p->rent); printf("公积金:%5.0f\t\t",p->grant); printf("应发工资:%5.0f\n",p->salary_2); printf("累计扣款:%5.0f\t\t",p->total_fee); printf("实发工资:%5.0f\n\n\n",p->actual_salary); } voidedit(structteacher*p){ inta; printf("pleaseinputnum:\n"); scanf("%d",&a); printf("%d\n\n",a); for(;;) {if(p->num==a) { printf("老师号:%5d\t\t",p->num); printf("老师姓名:%-10s\n",p->name); printf("老师性别:%-6s\t\t",p->sex); printf("单位名称:%-10s\n",p->unit); printf("家庭地址:%-10s\t",p->address); printf("电话号码:%8ld\n",p->telnum); printf("基础工资:%5.0f\t\t",p->salary_1); printf("津贴:%5.0f\n",p->allowance); printf("生活补助:%5.0f\t",p->life_allow); printf("\t电话费:%5.0f\n",p->tel_fee); printf("个人所得税:%5.0f\t",p->tax); printf("卫生费:%5.0f\n",p->health_fee); printf("水电费:%5.0f\t\t",p->water_fee); printf("房租:%5.0f\n",p->rent); printf("公积金:%5.0f\t\t",p->grant); printf("应发工资:%5.0f\n",p->salary_2); printf("累计扣款:%5.0f\t\t",p->total_fee); printf("实发工资:%5.0f\n\n\n",p->actual_salary); printf("请输入新数据:\n"); printf("老师号:");scanf("%d",&p->num);fflush(stdin);printf("老师姓名:");gets(p->name);printf("老师性别:");gets(p->sex);printf("工作单位:");gets(p->unit);printf("家庭地址:");gets(p->address);printf("电话号码:");scanf("%ld",&p->telnum);fflush(stdin);printf("基础工资:");scanf("%f",&p->salary_1);fflush(stdin);printf("津贴:");scanf("%f",&p->allowance);fflush(stdin); printf("生活补助:");scanf("%f",&p->life_allow);fflush(stdin);printf("电话费:");scanf("%f",&p->tel_fee);fflush(stdin);printf("个人所得税:");scanf("%f",&p->tax);fflush(stdin);printf("房租:");scanf("%f",&p->rent);fflush(stdin);printf("公积金:");scanf("%f",&p->grant);fflush(stdin);printf("水电费:");scanf("%f",&p->water_fee);fflush(stdin);printf("卫生费:");scanf("%f",&p->health_fee);fflush(stdin);p->salary_2=p->salary_1+p->allowance+p->life_allow;p->total_fee=p->tel_fee+p->water_fee+p->rent+p->tax+p->health_fee+p->grant; p->actual_salary=p->salary_2-p->total_fee; break; }p=p->next; }} voidwelcome(){printf("\t\t\t+---------------------------+\n");printf("\t\t\t||\n");printf("\t\t\t|欢迎使用老师工资管理系统|\n");printf("\t\t\t||\n");printf("\t\t\t+---------------------------+\n");printf("\n\n");}charmainmenu(){charchoice; printf("\n温馨提醒:为确保您操作得到保留,请按正常次序退出系统^_^\n"); printf("\n\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t|老师工资管理系统|\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t|[1]----输入老师信息|\n"); printf("\t\t\t|[2]----插入老师信息|\n"); printf("\t\t\t|[3]----删除老师信息|\n"); printf("\t\t\t|[4]----浏览老师信息|\n"); printf("\t\t\t|[5]----录入老师信息|\n"); printf("\t\t\t|[6]----查询老师信息|\n"); printf("\t\t\t|[7]----修改老师信息|\n");printf("\t\t\t|[8]----加载老师信息|\n"); printf("\t\t\t|[0]----退出系统|\n"); printf("\t\t\t|*·*·*·*·*·*·*·*·*·*·|\n"); printf("\t\t\t--------------------------------\n"); printf("请输入您选择:"); do {fflush(stdin);scanf("%c",&choice);fflush(stdin); }while(choice<'0'||choice>'8'); return(choice);} { case'0': system("cls"); exit(0); case'1':printf("inputrecords:\n"); head=creat(); break; case'2':printf("inputtheinsertedrecord:\n"); teach=(structteacher*)malloc(LEN); printf("老师号:");scanf("%d",&teach->num);fflush(stdin);printf("老师姓名:");gets(teach->name);printf("老师性别:");gets(teach->sex);printf("单位名称:");gets(teach->unit);printf("家庭地址:");gets(teach->address);printf("电话号码:");scanf("%ld",&teach->telnum);fflush(stdin);printf("基础工资:");scanf("%f",&teach->salary_1);fflush(stdin);printf("津贴:");scanf("%f",&teach->allowance);fflush(stdin); printf("生活补助:");scanf("%f",&teach->life_allow);fflush(stdin);printf("电话费:");

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论