语言专业课程设计.doc
《语言专业课程设计.doc》由会员分享,可在线阅读,更多相关《语言专业课程设计.doc(32页珍藏版)》请在咨信网上搜索。
成 绩 评 定 表 学生姓名 班级学号 专 业 通信工程 课程设计题目 C语言课程设计 评 语 组长签字: 成绩 日期 年 月 日 课程设计任务书 学 院 信息科学与工程学院 专 业 通信工程 学生姓名 班级学号 课程设计题目 C语言课程设计 实践教学规定与任务: 运用C语言编写下题代码。 题目名称:查找分数与删除元素、工资记录程序设计 内容及规定: 1. 编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 2. 编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。 3. 工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金 设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。 (2) 显示全体职工数据。 (3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 工作筹划与进度安排: 第18-19周: 第18周.C语言基本编程练习 第18周.算法设计及编写程序代码 第19周.编写程序代码及程序调试 第19周.程序验收及答辩 指引教师: 月 日 专业负责人: 月 日 学院教学副院长: 年 月 日 目 录 一、题目规定 3 二、算法设计 4 三、编程实现 10 四、成果分析 25 五、参照文献 28 一、题目规定 题目名称:查找分数与删除元素、工资记录程序设计 内容: 1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 2、编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入 3、工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金。 设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。 (2) 显示全体职工数据。 (3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 规定: 运用C语言编写上述程序,开发环境可采用Turbo C 2.0 或Visual C++ 6.0等。 二、算法设计 1、编程,先从键盘输入一组学生成绩到数组中,然后输入某一种分数段,查找输出该分数段内所有成绩。 开始 定义一种数组a[N],变量i 输入N个数据给数组a i=0 i<N-1? 否 是 输入1个数据给数组a 输出“请按由小到大顺序输入分数段” 定义变量 m n 输入成绩给m 1 1 输入成绩给n k=0 k<N-1? n≤a[N]≤m? 定义变量k 否 是 否 k++ 是 输出a[k] 结束 注: 此函数功能是,输入一构成绩,然后在程序中输入所要查询成绩分数段,输出该分数段所有成绩。 2、编写函数fun(int xx[ ],int n ,int y),其中n代表数组元素个数,y中内容是要删除元素值。函数功能是数组xx中所有值为y元素。数组中值和y值由主函数通过键盘输入。 开始 定义一种数组xx[N],变量i,j,y 输入N个数据给数组xx i<N? i=0 否 是 输出“请输入要删除元素值” 输入一种数据 给数组x[] 输入一种 要删除值 i++ 调用函数fun(xx,N,y),j= fun(xx,N,y) 输出“删除后数组为:” 1 1 i<N-j? i=0 i++ 输入一种数据 给数组x[] 是 输出“\n”,换行 结束 注: fun(xx[ ],int n,int y)函数 功能是对数组中具有y元素删除。其中具有xx[ ],int n,int y 3个变量,xx[ ]是指定数组,n表达数组中元素个数,y表达要删除数组中元素值。 3、 工资记录程序设计 设计构造体数组,构造中包括职工数据为:编号、姓名、部门、应付工资、保险、税金、实付工资。其中实付工资由公式计算得到:实付工资=应付工资-保险-税金 设计各个函数,分别实现如下功能: (1) 输入职工数据,其中“实付工资”通过计算得到。 (2) 显示全体职工数据。 开始 定义变量a,flag=0,number=0 输入一种数据给a a==1? 调用函数 shuru(); 调用函数 shuchu(); 调用函数 caidan(); a==2? 1 2 flag==0? 输出“录入职工信息请按1,新增职工信息请按2” 结 束 (3) 输入某部门值,显示该部门职工数据、工资总额、平均工资。设计菜单,通过选取菜单调用以上各函数;系统启动时数据可由文献导入,录入新数据或修改数据后,可将数据重新写入文献。 是 否 否 是 否 是 调用函数 shuru(); 调用函数 shuchu(); 调用函数 caidan(); 2 调用函数 load ( ); 调用函数 zengjia ( ); 1 输出“没有这个选项” flag=1 输出请输入增长职工个数 输入一种数值给number zengjia(number) 注: 函数阐明: void shuru(); //用来输入增长职工信息 void shuchu(); //用来输出文献中所有职工信息 void save(int n); //将职工信息保存到文献中,实现导入 void zengjia(int n); //增长职工信息 void xiugai(); //修改职工信息 void chaxun(); //按照部门查询职工信息 void caidan(); //基本菜单,按提示操作 load(); //将职工信息从文献中导出 三、编程实现 程序详细C语言代码如下: 第1题: /* 编程人:楚天辞 完毕时间 7月5日 联系方式:*/ #include<stdio.h> main() { float m,n,a[6]; int i,k; printf(" 请输入一种数组:\n"); for (i=0 ;i<6;i++) scanf("%f",&a[i]); printf(" 请按由小到大顺序输入分数段\n"); scanf("%f",&n); scanf("%f",&m); printf(" 如下成绩属于该分数段\n"); for (k=0 ;k<6;k++) if(n<=a[k]&&a[k]<=m) printf("% 9.2f\n",a[k]); printf("\n"); } 第2题: #include<stdio.h> #define N 10 int fun(int xx[],int n,int y) { int i,j=0,k; for(i=0;i<n-j;i++) // j表达要删除数值个数,而n-j表达数组有效数值个数 if(xx[i]==y) { for(k=i;k<n-1;k++) //从删除位置背面第一种元素值开始向前移动 xx[k]=xx[k+1]; j++; } return j; } main() { int i,j,y,xx[N]; printf("请输入%d个数组元素值\n",N); for(i=0;i<N;i++) scanf("%d",&xx[i]); printf("请输入要删除元素值\n"); scanf("%d",&y); j=fun(xx,N,y); printf("删除后数组为:\n"); for(i=0;i<N-j;i++) printf("%5d",xx[i]); printf("\n"); } 第3题: #include<stdio.h> #include<string.h> struct zijin { int bianhao; char xingming[20]; char bumen[100]; float yfgz; float baoxian; float shuijin; float sfgz; } zhigong[100]; //定义构造体数组zhigong void shuru(); //用来输入增长职工信息 void shuchu(); //用来输出文献中所有职工信息 void save(int n); //将职工信息保存到文献中,实现导入 void zengjia(int n); //增长职工信息 void xiugai(); //修改职工信息 void chaxun(); //按照部门查询职工信息 void caidan(); //基本菜单,按提示操作 load(); //将职工信息从文献中导出 int sumNum; //商品总个数 main() { int a,flag=0,number=0; do { printf("录入职工信息请按1,新增职工信息请按2\n"); scanf("%d",&a); if(a==1) { shuru(); // 输入数据 shuchu(); caidan(); } else if(a==2) { sumNum=load(); //将文献中原有职工信息个数传给sumNum printf("请输入增长职工个数\n"); scanf("%d",&number); zengjia(number); } else { printf("没有这个选项\n"); flag=1; } }while(flag); } void caidan() { int a,flag=0,number=0; do { printf("增长职工信息请按1,修改职工信息请按2,查询职工信息请按3,退出请按4\n"); scanf("%d",&a); if(a==1) { printf("请输入增长职工个数\n"); scanf("%d",&number); zengjia(number); continue; } else if(a==2) xiugai(); else if(a==3) chaxun(); else if(a==4) { save(sumNum); break; } else { printf("没有这个选项\n"); flag=1; } }while(flag); } void shuru() { int i,n; printf("输入多少个职工信息\n"); scanf("%d",&n); for(i=0;i<n;i++) { printf("请输入第%d个职工编号\n",i+1); scanf("%d",&zhigong[i].bianhao); printf("请输入第%d个职工姓名\n",i+1); scanf("%s",zhigong[i].xingming); printf("请输入第%d个职工部门\n",i+1); scanf("%s",zhigong[i].bumen); printf("请输入第%d个职工应付工资\n",i+1); scanf("%f",&zhigong[i].yfgz); printf("请输入第%d个职工保险\n",i+1); scanf("%f",&zhigong[i].baoxian); printf("请输入第%d个职工税金\n",i+1); scanf("%f",&zhigong[i].shuijin); zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin; } sumNum=n; save(sumNum); } void shuchu() { int i; printf(" 编号 姓名 部门 应付工资 保险 税金 实付工资 \n"); for(i=0;i<sumNum;i++) printf(" %4d %8s %4s %.2f %.2f %.2f %.2f\n",zhigong[i].bianhao,zhigong[i].xingming,zhigong[i].bumen,zhigong[i].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz); } void save(int n) { int i; FILE *fp; if((fp=fopen("C:\\chutianci.txt","wt+"))==NULL) printf("you are wrong!\n"); for(i=0;i<n;i++) { fscanf(fp,"%d",&zhigong[i].bianhao); //将相应职工编号按照%d格式输入到fp所指向文献中 fscanf(fp,"%s",zhigong[i].xingming); fscanf(fp,"%s",zhigong[i].bumen); fscanf(fp,"%f",&zhigong[i].yfgz); fscanf(fp,"%f",&zhigong[i].baoxian); fscanf(fp,"%f",&zhigong[i].shuijin); fscanf(fp,"%f",&zhigong[i].sfgz); } for(i=0;i<sumNum;i++) fprintf(fp," %4d %8s %4s %.2f %.2f %.2f %.2f\n",zhigong[i].bianhao,zhigong[i].xingming,zhigong[i].bumen,zhigong[i].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz); fclose(fp); //文献关闭,防止数据流失 } load() { int i=0; FILE *fp; fp=fopen("C:\\chutianci.txt","rt+"); do { fscanf(fp,"%d",&zhigong[i].bianhao); fscanf(fp,"%s",zhigong[i].xingming); fscanf(fp,"%s",zhigong[i].bumen); fscanf(fp,"%f",&zhigong[i].yfgz); fscanf(fp,"%f",&zhigong[i].baoxian); fscanf(fp,"%f",&zhigong[i].shuijin); fscanf(fp,"%f",&zhigong[i].sfgz); i++; }while(feof(fp)==0); //feof函数,检测文献数据流与否结束 return (i-1); } void zengjia(int n) { int i; struct zijin temp; for(i=0;i<n;i++) { printf("请输入增长第%d个职工编号\n",i+1); scanf("%d",&temp.bianhao); printf("请输入增长第%d个职工姓名\n",i+1); scanf("%s",temp.xingming); printf("请输入增长第%d个职工部门\n",i+1); scanf("%s",temp.bumen); printf("请输入增长第%d个职工应付工资\n",i+1); scanf("%f",&temp.yfgz); printf("请输入增长第%d个职工保险\n",i+1); scanf("%f",&temp.baoxian); printf("请输入增长第%d个职工税金\n",i+1); scanf("%f",&temp.shuijin); temp.sfgz = temp.yfgz - temp.baoxian - temp.shuijin; zhigong[sumNum++]=temp; } save(sumNum); shuchu(); caidan(); } void xiugai() { int a,i,b,j=0; printf("请输入您要修改职工编号\n"); scanf("%d",&a); for(i=0;i<sumNum;i++) if(zhigong[i].bianhao==a) break; else j++; if(j==sumNum) { printf("没有该编号职工\n"); shuchu(); xiugai(); } printf("修改本职工哪一项?\n"); printf("编号请按1,姓名请按2,部门请按3,应付工资请按4,保险请按5,税金请按6,取消请按7\n"); scanf("%d",&b); if(b==1) { printf("本职工原编号为%d请输入本职工新编号\n",zhigong[i].bianhao); scanf("%d",&zhigong[i].bianhao); save(sumNum); shuchu(); caidan(); } else if(b==2) { printf("本职工原姓名为%s请输入本职工新姓名\n",zhigong[i].xingming); scanf("%s",zhigong[i].xingming); save(sumNum); shuchu(); caidan(); } else if(b==3) { printf("本职工原部门为%s请输入本职工新部门\n",zhigong[i].bumen); scanf("%s",zhigong[i].bumen); save(sumNum); shuchu(); caidan(); } else if(b==4) { printf("本职工原售价为%f请输入本职工新应付工资\n",zhigong[i].yfgz); scanf("%f",&zhigong[i].yfgz); zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin; save(sumNum); shuchu(); caidan(); } else if(b==5) { printf("本职工原保险为%d请输入本职工新保险\n",zhigong[i].baoxian); scanf("%d",&zhigong[i].baoxian); zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin; save(sumNum); shuchu(); caidan(); } else if(b==6) { printf("本职工原税金为%d请输入本职工新税金\n",zhigong[i].shuijin); scanf("%d",&zhigong[i].shuijin); zhigong[i].sfgz = zhigong[i].yfgz - zhigong[i].baoxian - zhigong[i].shuijin; save(sumNum); shuchu(); caidan(); } else if(b==7) { shuchu(); caidan(); } else { printf("没有这个选项\n"); shuchu(); xiugai(); } } void chaxun() { int i,a; struct zijin temp; printf("请输入查询部门\n"); scanf("%s",temp.bumen); printf(" 编号 姓名 部门 应付工资 保险 税金 实付工资 \n"); for(i=0;i<sumNum;i++) { int j=0; if(strcmp(zhigong[i].bumen,temp.bumen)==0) printf(" %4d %8s %4s %.2f %.2f %.2f %.2f\n",zhigong[i].bianhao,zhigong[i].xingming,zhigong[i].bumen,zhigong[i].yfgz,zhigong[i].baoxian,zhigong[i].shuijin,zhigong[i].sfgz); else j++; if(j==sumNum) { printf("没有这个名称部门\n"); chaxun(); } } caidan(); save(sumNum); } \ 四、成果分析 第1题: 程序运营成果如图1: 图1 程序运营成果1 第2题: 程序运营成果如图2 : 图2 程序运营成果2 第3题: 程序运营成果如图3: 图3 程序运营成果3 五、参照文献 [1]马秀丽,刘志妩,李筠.C语言程序设计.北京:清华大学出版社, [2]谭浩强.C程序设计(第2版).北京:清华大学出版社, [3]李大友.C语言程序设计.北京:清华大学出版社,1999 [4]高福成.C语言程序设计教程.天津:天津大学出版社,1998- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 专业课程 设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文