个人程序设计

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

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

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

资源描述

北方民族大学课程设计课程名称:高级语言程序设计院(部)名称:信息与计算科学学院组长姓名学号:曹永利20124473同组人员姓名:张婷、马义花指导教师姓名:董建强设计时间:2013年6、7——6、27个人程序设计(一)曹永利:1、编写冒泡排序和选择排序的程序,主函数中编写菜单调用排序函数。#includestdio.hvoidsort(inta[],intsize){inti,j;for(i=0;isize-1;i++)for(j=0;jsize-i-1;j++)if(a[j]a[j+1]){intt;t=a[j];a[j]=a[j+1];a[j+1]=t;}}main(){inti,a[10];for(i=0;i10;i++)scanf(%d,&a[i]);sort(a,10);for(i=0;i10;i++)printf(%4d,a[i]);printf(\n);}6、从文件读入一个字符处,统计该字符串中单词的个数单词之间用空格分开,空格数可以是多个。#includestdio.h#includestdlib.h#defineIN1#defineOUT0intmain(){charszFilename[256];FILE*fp;printf(inputthefile:);scanf(%s,szFilename);if((fp=fopen(szFilename,r))==NULL){printf(thefiledon'texist!);exit(1);}intflag=OUT;intc;intnw=0;while((c=fgetc(fp))!=EOF){if(c==''){flag=OUT;}elseif(OUT==flag){flag=IN;nw++;}}printf(THenumis:%d\n,nw);return0;}24.输入学生人数后输入每个学生的成绩,最后输出学生的平均成绩以及最高成绩和最低成绩的学生学号、姓名和成绩。要求用动态分配存储空间来实现(学生信息包括学号、姓名、成绩)#includestdio.h#includemalloc.hintmain(){int*p,m,i,total=0,max=0,min=100;printf(输入学生人数);scanf(%d,&m);p=(int*)malloc(m*sizeof(m));for(i=0;im;++i){printf(输入第%d个成绩,i+1);scanf(%d,&p[i]);total+=p[i];if(maxp[i])max=p[i];if(minp[i])min=p[i];}printf(成绩的和是%d\nmax=%d\nmin=%d,total,max,min);}个人程序设计(二)张婷:9,输出100-2000之间的所有素数,每行输出8个。要求调用求素数函数#includestdio.h#includemath.hintmain(void){intcount,i,m,n;count=0;for(m=100;m=2000;m++){n=sqrt(m);for(i=2;i=n;i++)if(m%i==0)break;if(in){printf(%6d,m);count++;if(count%8==0)printf(\n);}}printf(\n);return0;}#includestdio.hintmain(void){longa;intb[50],n,i;scanf(%ld,&a);i=0;while(a9){b[i]=a%10;a/=10;i++;}b[i]=a;for(;i=0;i--){printf(%d,b[i]);if(i!=0)printf(,);}printf(\n);},22,用递归法实现一个正整数的逆序输出。#includestdio.hvoidprintData(intdata){if(data==0){return;}printf(%d,data%10);printData(data/10);}intmain(){intdata;printf(Enteranumber:);scanf(%d,&data);printData(data);printf(\n);return0;}23,输入一个长整形数,从高位开始逐位分割并输出。如输入123456,逐位输出1,2,3,4,5,6.#includestdio.hintmain(void){longa;intb[50],n,i;scanf(%ld,&a);i=0;while(a9){b[i]=a%10;a/=10;i++;}b[i]=a;for(;i=0;i--){printf(%d,b[i]);if(i!=0)printf(,);}printf(\n);}个人程序设计(三)马义花:2.编写顺序查找和二分查找程序,主函数中编写菜单调用查找函数。#includestdio.hintshunxuchazhao(inta[],intn,intx)//顺序查找{inti;for(i=0;in;i++){if(x==a[i])returni;}return-1;}interfenchazhao(inta[],ints,inte,intx)//二分查找{intindex=(s+e)/2;if(a[index]==x)returnindex;elseif(a[index]x){e=index;returnerfenchazhao(a,s,e,x);}elseif(a[index]x){s=index;returnerfenchazhao(a,s,e,x);}return-1;}intmain(){inta[]={1,2,3,4,5,6,7,8,9};inti,chose,index=-1;printf(输入1顺序查找输入2二分查找输入其他退出程序);scanf(%d,&chose);switch(chose){case1:index=shunxuchazhao(a,8,2);break;case2:index=erfenchazhao(a,1,8,2);break;default:return0;}printf(index=%d\n,index);4.自己编写字符串求长、拷贝、连接、删除、插入指定字符的函数,要求主函数中编写菜单,可以分别实现调用。#includestdio.h#includestring.h#includestdlib.hintgetLenth(char*s)//求长度{inti=0;for(i=0;s[i]!='\0';i++){}returni;}char*copyString(char*s)//复制{intn=strlen(s);inti;char*cs=(char*)malloc(n*sizeof(char));for(i=0;in;i++){cs[i]=s[i];}returncs;}char*lianjie(char*s1,char*s2){intn1=strlen(s1);intn2=strlen(s2);inti,j;char*cs=(char*)malloc((n1+n2)*sizeof(char));for(i=0;in1;i++){cs[i]=s1[i];}j=0;for(i=n1;in1+n2;i++){cs[i]=s2[j++];}returncs;}char*insert(char*s,intindex,charch){intn=strlen(s);inti,j;char*cs=(char*)malloc((n+1)*sizeof(char));for(i=0;iindex;i++){cs[i]=s[i];}for(i=index;in;i++){cs[i+1]=s[i];}cs[index]=ch;cs[n+1]='\0';s=cs;returns;}intmain(){intchose;char*s=12345;char*s1=qwe;char*s2=qqqqqqqqqqqqqqqqqqqqqqqqq;printf(输入1求长度输入2复制输入3链接输入4插入字符输入其他退出程序);scanf(%d,&chose);switch(chose){case1:printf(lenth==%d\n,getLenth(s));break;case2:printf(复制出的字符串是);puts(copyString(s));break;case3:printf(连接成的新的字符串是);puts(lianjie(s1,s2));break;case4:printf(插入字符后新的字符串是);puts(insert(s,2,'y'));break;default:return0;}}12、利用结构体变量求两个复数的和、差、积。要求设计一个菜单分别调用函数。#includestdio.htypedefstructTYPE_PLURAL{doublerealpart;doubleimaginarypart;}plural;pluraloperator*(constplural&lp,constplural&rp){pluralrtn;rtn.realpart=lp.realpart*rp.realpart-lp.imaginarypart*rp.imaginarypart;rtn.imaginarypart=lp.imaginarypart*rp.realpart+lp.realpart*rp.imaginarypart;returnrtn;}intmain(intargc,char*argv[]){pluralplr_a={5,10};pluralplr_b={2,3};pluralplr_c=plr_a*plr_b;}小组设计1:销售管理系统某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表一:设计目的通过本次实训使我们在实际应用中熟悉C语言编程步骤,掌握编程方法,并具有初步的编程能力。C语言课程设计是教学实践环节中一项重要内容,进行此课程设计旨在:提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。二:总体设计程序流程图程序整体流程图如图A所示:#includestdio.h#includemath.hintmain(void){intcount,m;intprime(intm);count=0;for(m=100;m=2000;m++){if(prime(m)){printf(%6d,m);count++;if(count%8==0)printf(\n);}}printf(\n);图A整体流程图三:详细设计模块详细说明系统的功能是通过子函数调用的方式来完成的,下面对程序中用到的函数及其功能做一下说明。voidmenu():显示主菜单界面。voiddata_count(data*x):以写方式打开文件,对商品信息清零,读入职工编号、产品编号、销售量等信息,对相同职工的相同产品的销售量求和后写入文件。voidrange_sxy(data*x)

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

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

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

×
保存成功