崔总走访供应商质量状况分析报告1024

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《程序设计》课程设计姓名:学号:班级:软件工程1334班指导教师:杨永强成绩:2015年6月实验一:谁拿了最多奖学金1.【问题描述】(1)问题描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1)院士奖学金,每人8000元,期末平均成绩高于80分(80),并且在本学期内发表1篇或1篇以上论文的学生均可获得;2)五四奖学金,每人4000元,期末平均成绩高于85分(85),并且班级评议成绩高于80分(80)的学生均可获得;3)成绩优秀奖,每人2000元,期末平均成绩高于90分(90)的学生均可获得;4)西部奖学金,每人1000元,期末平均成绩高于85分(85)的西部省份学生均可获得;5)班级贡献奖,每人850元,班级评议成绩高于80分(80)的学生干部均可获得;只要符合条件就可以得奖,每项奖学金的获奖人数没有限制,每名学生也可以同时获得多项奖学金。例如姚林的期末平均成绩是87分,班级评议成绩82分,同时他还是一位学生干部,那么他可以同时获得五四奖学金和班级贡献奖,奖金总数是4850元。2.【设计需求及分析】(1)设计思路先定义了一个Student的结构体,它里面定义了关于学生的各个属性。比如期末平均成绩,班级评议成绩,班干部等等。然后设计了一个判断函数,判断他得到奖学金的多少。接下来就是主函数了,在主函数里,有着输出输入变量,和赋值函数,最重要的是比较函数,比较出哪一位学生的奖学金多及所有金额的总计。最后输出。下面是关键步骤:(2)输出输入格式输入数据格式格式:输入的第一行是一个整数N(1=N=100),表示学生的总数。接下来的N行每行是一位学生的数据,从左向右依次是姓名,期末平均成绩,班级评议成绩,是否是学生干部,是否是西部省份学生,以及发表的论文数。姓名是由大小写英文字母组成的长度不超过20的字符串(不含空格);期末平均成绩和班级评议成绩都是0到100之间的整数(包括0和100);是否是学生干部和是否是西部省份学生分别用一个字符表示,Y表示是,N表示不是;发表的论文数是0到10的整数(包括0和10)。每两个相邻数据项之间用一个空格分隔。输出数据格式:输出包括三行,第一行是获得最多奖金的学生的姓名,第二行是这名学生获得的奖金总数。如果有两位或两位以上的学生获得的奖金最多,输出他们之中在输入文件中出现最早的学生的姓名。第三行是这N个学生获得的奖学金的总数。(3)名字为char类型,各类成绩及论文数量为int类型,判断类型为char类型。人数最多为100人。(4)测试数据:YaoLin8782YN0ChenRuiyi8878NY1LiXin9288NN0ZhangQin8387YN13.【设计功能的实现】#includestring#includeiostreamusingnamespacestd;stringstu_name[100];intstu_num[100];intmain(){intn;cinn;memset(stu_name,0,sizeofstu_name);memset(stu_num,0,sizeofstu_num);for(inti=0;in;i++){intsc1,sc2;charfl1,fl2;intc;cinstu_name[i];cinsc1sc2fl1fl2c;if(sc180&&c)stu_num[i]+=8000;if(sc185&&sc280)stu_num[i]+=4000;if(sc190)stu_num[i]+=2000;if(sc185&&fl2=='Y')stu_num[i]+=1000;if(sc280&&fl1=='Y')stu_num[i]+=850;}intmax_index=0;intmax_num=0;for(inti=0;in;i++){if(stu_num[i]stu_num[max_index])max_index=i;max_num+=stu_num[i];}coutstu_name[max_index]endlstu_num[max_index]endlmax_numendl;return0;}4.【实验结果】5.【使用说明】第一步是输入人数,第二步是输入你所要的数据,最后一步按换行键,得出结论。6.【心得体会】我最大的收获是对于结构体的理解和运用,比如创建,引用,赋值等等,还有.和-的区别。从以前的忘记到现在的熟悉。走过了一大段路。实验二:统计数字1.【问题描述】某次科研调查时得到了n个自然数,每个数均不超过1500000000(1.5*109)。已知不相同的数不超过10000个,现在需要统计这些自然数各自出现的次数,并按照自然数从小到大的顺序输出统计结果。2【设计需求及分析】(1)设计要求原始数据保存在文件count.in中,文件包含n+1行。第1行是整数n(1=n=200000),表示自然数的个数;第2~n+1行每行一个自然数。结果保存在文件count的尾部,其中结果包含m行(m为n个自然数中不相同数的个数),按照自然数从小到大的顺序输出。每行输出两个整数,分别是自然数和该数出现的次数,其间用一个空格隔开。(2)设计思路首先必须有文件的打开和关闭语句,将文件的内容读取到数组a[]中,然后对数组进行排列和对比,计数。最终输出数据和次数。并写入文件的尾部。A[]为容纳数据的数组,fopen为文件打开函数,fscanf为文件读取函数,然后进行冒泡排序。排序之后的内容由while设置条件,用if进行判断。在不等于时,中间嵌套了一个while循环,进行往后的排查。最后输出数据和次数。下面是关键步骤:FILE*fp=fopen(count.txt,a+);//用只读/的方式打开文件if(fp==NULL){printf(无文件);//若没有文件则返回—1return-1;}for(i=0;i9;i++){fscanf(fp,%d,&a[i]);//读取文件fscanf(fp,\n);}intj,t;for(i=1;i9;i++)for(j=0;j9-i;j++)if(a[j]a[j+1]){//冒泡排序t=a[j];a[j]=a[j+1];a[j+1]=t;}、for(i=0;i9;i++){count=1;if(a[i]!=a[i+1]){printf(%d\t%d\n,a[i],count);fprintf(fp,%d\t%d\n,a[i],a[i]);i++;}对数字的循环查找和控制条件,if(a[i]==a[i+1]){while(a[i]==a[i+1]){count++;i++;}}}(3)输出输入格式输入时,为竖行依此输入文件,且为数字。且为9个以内的数字。输出时,分为两行,第一列为数据,第二列为次数。3.【设计功能的实现】#includestdio.hintmain(){inta[100];//创建容纳文件数据的数组inti;FILE*fp=fopen(count.txt,a+);//用只读/的方式打开文件if(fp==NULL){printf(无文件);//若没有文件则返回—1return-1;}for(i=0;i9;i++){fscanf(fp,%d,&a[i]);//读取文件fscanf(fp,\n);}intj,t;for(i=1;i9;i++)for(j=0;j9-i;j++)if(a[j]a[j+1]){//冒泡排序t=a[j];a[j]=a[j+1];a[j+1]=t;}printf(结果为:\n数据结果\n);intcount;for(i=0;i9;i++){count=1;if(a[i]!=a[i+1]){printf(%d\t%d\n,a[i],count);fprintf(fp,%d\t%d\n,a[i],a[i]);i++;}if(a[i]==a[i+1]){while(a[i]==a[i+1]){count++;i++;}printf(%d\t%d\n,a[i],count);fprintf(fp,%d\t%d\n,a[i],count);}}fclose(fp);//关闭文件return0;}4.【实例测试及运行结果】测试分析内容包括:(1)我认为我的短板在于对语句的不熟悉程度,在编程过程中,经常需要询问他人,或者查询书籍;(2)我认为可以由文档输入与输出,减少了输入与输出的错误,增加了数据的准确性;5.【使用说明】有很大的限制,比如数字的个数,输入的格式,必须为9个以内的数字,必须为竖列输入,必须写到count.txt的文件中。6.【心得体会】此次编程有问题没有解决,在客户输入值的个数上,必须少于等于9个。因为文件中有很多东西,看不到但是总是赋值到数组中。只能有9个数字了。对于文件的打开和关闭语句有了更深的理解。有打开必须有关闭。在查重复次数的程序上,有着两个循环的嵌套。由while控制总循环,由if进行选择。实验三:文本文件单词的计数1.【问题描述】假设有如下的英文文本文档:(此处为太原理工大学学校简介英文版)TAIYUANUNIVERSITYOFTECHNOLOGYTaiyuanUniversityofTechnology(TUT)hasitshistorytracedallthewaybacktotheWesternLearningSchoolofShanxiGrandAcademy(1902),whichwasoneofthethreeearliestnationaluniversitiesinChina.Withthetraditionanddevelopmentofover100years,TUTisnowageneraluniversitywithengineeringasthemajor,sciencesandtechnologyintegratedandcoordinatedevelopmentofmultipledisciplines.Itisauniversitythatisincludedinthe“Project211”---thenationalhighereducationpromotionprogramfor100topuniversitiesinChina.……Recollectingthecentennialhistory,generationsofTUThavecreateditsmissionandgloryofacenturywithresponsibilityandconfidence;expectingthepromisingtomorrow,over30,000TUTstudentsandfacultyareproducingsplendorandperspectivesbytheirwisdomanddiligence.Inthenewera,TaiyuanUniversityofTechnology,followingtheConceptionofScientificDevelopment,isdeterminedtofurtherthereformationoneducation,toreinforcetheteachingmanagementsoastoupgradeitsteachingandresearchinglevels.TaiyuanUniversityofTechnologywillbeturningitselfintoaresearch-baseduniversity.设计C或C++程序,统计在这样的英文文本文件中,出现了多少个单词,每个单词出现了几次。连续的英文字符都认为单词(不包括数字),单词之间用空格或标点符号分隔。2【设计需求及分析】(1)设计要求要统计英文文本文件中出现了哪些单词,就要从文件中读取字符,读取出来的连续英文字符认为是一个单词,遇空格或标点符号单词结束。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功