欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年程序设计方案基础学习课程设计方案.docx

    • 资源ID:57625744       资源大小:47.12KB        全文页数:20页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年程序设计方案基础学习课程设计方案.docx

    精选学习资料 - - - - - - - - - 程序设计基础课程设计试验报告班级: 1403013 姓名:熊清锋 学号: 14030130063 所选题目: 1_1, 1_3, 2_2, 3_1, 3_2 ,3_3, 3_4, 5_1, 5_2, 第 1_1 题:比较两个文本文件并打印出它们第一个不相同的行(文件每行字符数不多于 80);算法描述 : 定义两个不同的指针,建立两个不同的文本文件并存入字符;打开文本文件并一行一行的比较,定义一个计数器,如发觉了不同行,立刻跳出循环,分别打印两个不同文件中计数 器所指的行;源程序:no1_1.c #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 5/ 文件中字符的行数 int main FILE *fp1,*fp2;/文件指针 char str1N80,str2N80; char AN80,BN80; int i,k,flag=0 ; printf"Please enter the first text A:n" ; iffp1=fopen"num1.text","w"=NULL/ 建立文本文件 ; printf"cannot open the file." exit0 ; fori=0 ; i<N ; i+/ 输入字符并写入文件 getsstr1i ; fputsstr1i,fp1 ; fputs"n",fp1 ; printf"n" ; printf"Please enter the second text B:n" ; iffp2=fopen"num2.text","w"=0/ 名师归纳总结 - - - - - - -第 1 页,共 13 页精选学习资料 - - - - - - - - - printf"cannot open the file.n"; exit0 ; fori=0 ; i<N ; i+ getsstr2i ; fputsstr2i,fp2 ; fputs"n",fp2 ; fclosefp1 ; fclosefp2 ; fp1=fopen"num1.text","r";/打开文件 fp2=fopen"num2.text","r"; fori=0 ; i<N ; i+/ 对两个文件中的字符进行行比较 fgetsstr1i,80,fp1 ; fgetsstr2i,80,fp2 ; ifstrcmpstr1i,str2i.=0 k=i ; flag=1 ; break; ifflag/ 假如存在不同行 printf"nThe first different row between A and B:n";/分别输出不同行 printf"A: %sn",str1k; printf"B: %sn",str2k; else printf"The two text have the same contents.n"; fclosefp1 ; /关闭文件 fclosefp2 ; return 0; 测试数据:名师归纳总结 - - - - - - -第 2 页,共 13 页精选学习资料 - - - - - - - - - 第 1_3 题: 现有两个文本文件 db1.txt 和 db2.txt; db1.txt 中第一列为姓名,其次列为英语成果;db2.txt 中第一列为姓名,其次列为数学成果;通过姓名字段将 db1.txt 文件关联到db2.txt 文件生成 db3.txt 文件; db3.txt 文件第一列为姓名,其次列为英语成果,第三列为数学成果,第四列为平均成果算法描述:定义三个文件指针,输入数据分别存在两个文件文本,输入时用结构储备数字和字符的混合输入;打开文件,对文件中的结构体储备的字符比较遇到两个文件中相同的 name,将两个文件对应当 name的内容整合,写到第三个文件中,并在屏幕输出文件内容;源程序:no1_3.c #include<stdio.h> #include<stdlib.h> #include<string.h> #define N 1 struct Student/ 定义前两个文件内容的结构体,结构体元素是姓名和分数 char name10; double score ;struct Student1/ 定义第三个文件内容的结构体,元素是姓名和分数数组(含三个元素) char name10; double score3 ;int main FILE *fp1,*fp2,*fp3; struct Student stu2N; / 定义二维结构体数组 struct Student1 stu1N; int i,j,k=0; int flag=0; / 输入 printf"Please input db1.txt:n"; fp1=fopen"db1.txt","w"; fori=0; i<N ; i+ scanf"%s%lf",stu0i.name,&stu0i.score; fwrite&stu0i,sizeofstruct Student,1,fp1 存入文件 ;/ 读取结构体中的一元素名师归纳总结 - - - - - - -第 3 页,共 13 页精选学习资料 - - - - - - - - - printf"nPlease input db2.txt:n"; fp2=fopen"db2","w"; fori=0; i<N ; i+ scanf"%s%lf",stu1i.name,&stu1i.score; fwrite&stu1i,sizeofstruct Student,1,fp2; fp1=fopen"db1.txt","r"; / 打开文件,只写 fp2=fopen"db2,txt","r"; fori=0; i<N ; i+ fread&stu0i,sizeofstruct Student,1,fp1; forj=0; j<N ; j+ fread&stu1j,sizeofstruct Student,1,fp2; ifstrcmpstu0i.name,stu1j.name=0 flag=1; strcpystu1k.name,stu1i.name stu1k.score0=stu0i.score; stu1k.score1=stu1j.score; stu1k.score2=stu1k.score0+stu1k.score1/2 k+; printf"n"; / 输出 ifflag fp3=fopen"db3.txt","w"; printf"Names Maths English Averagen"; fori=0; i<k ; i+ fwrite&stu1i,sizeofstruct Student1,1,fp3; printf"%s ",stu1i.name; forj=0; j<3 ; j+ printf"%10.2f",stu1i.scorej printf"n"; fclosefp3; else 名师归纳总结 - - - - - - -第 4 页,共 13 页精选学习资料 - - - - - - - - - printf"Maybe the lists are taken by mistake.n"; fclosefp1; fclosefp2; return 0 测试数据:第 2_2 题:统计一个英文文本文件中 26 个英文字母显现次数并按英文字母序输出统计结果,查找并替换此英文文本文件中某字符串;算法描述 : 建立文本文件并输入数据(二维字符数组的形式),储备于文件,打开文件读出字符!用 个英文字符与从文件读出的文件比较,建立累加器对每个字母显现的次数赋值!源程序:no2_2.c #include<stdio.h> #include<ctype.h> #include<string.h> #define N 2 int main ; FILE *fp1,*fp2 int i,j,k,cout ; char strN80,ch,c ; printf"Please input file_num1:n"; fp1=fopen"num1","w";/建立文件并写入数据 fori=0 ; i<N ; i+ getsstri ; fputsstri,fp1 ; fputs"n",fp1 ; printf"n" ; /打开文件并读出数据; fp2=fopen"num1","r" fori=0 ; i<N ; i+ ; fgetsstri,80,fp2 ;名师归纳总结 - - - - - - -第 5 页,共 13 页精选学习资料 - - - - - - - - - printf"The showing times of letters:n"; forch='a',k=1 ; ch<='z'; ch+ cout=0; fori=0 ; i<N ; i+ forj=0 ; j<strlenstri ; j+ ifisalphastrij ;/大写转化小写 c=tolowerstrij ifch=c cout+ ; ifcout printf"%c: %2d ",ch,cout; k+ ; ifk%4=0 printf"n" ; /查找并替换字符串 my->my printf"nThe adverted article:n"; fori=0 ; i<N ; i+ forj=0 ; j<strlenstri ; j+ ifstrij='m'&&strij+1='y' strij+1='e' ; printf"%sn",stri; return 0; 测试数据:名师归纳总结 - - - - - - -第 6 页,共 13 页精选学习资料 - - - - - - - - - 第 3_1 题:将输入的 2 进制字符串转换为10 进制数输出;0 字符就是他们的十进制数值,在乘以2算法描述:输入二进制的字符串,每个字符减去的 n-1 次方,再加和!源程序:no3_1.c #include<stdio.h> #include<string.h>/ 为 strlen 函数供应原型 #include<math.h>/ 为 pow 函数供应原型 int main char str10; int i,sum=0; printf"Please input binary number:n"; getsstr; fori=0;i<strlenstr;i+ sum+=stri-'0'*pow2,i;/ 运算每个位上的字符再加和 printf"The decimal number is:n "; printf"%dn",sum;/ 输出所对应的十进制数 return 0; 测试数据:第 3_2 题:设计一个复数类型,输入实部和虚部生成一个复数,可进行两个复数求和、两个复数求 差、两个复数求积运算;算法描述:复数分为实部和虚部,因此一个复数的输入是要分两部分的,输出也是,输出时在虚部后 加 i. 源程序:no3_2.c 名师归纳总结 - - - - - - -第 7 页,共 13 页精选学习资料 - - - - - - - - - #include<stdio.h> int main int a,b,c,d; char ch; printf"Please enter two complex numbers:n"; scanf"%d%d%d%d",&a,&b,&c,&d; printf"n1calculate the sumn2calculate the diffn3calculate the productn"; printf"Please choose 1,2 or 3:q to quit:n";/ 挑选模式 getchar; whilech=getchar.='q'/ 循环 whilegetchar.='n'; switchch case'1': printf"%d+%din",a+c,b+d; break; case'2': ifb-d>=0 printf"%d+%din",a-c,b-d; else printf"%d%din",a-c,b-d; break; case'3': printf"%d+%din",a*c-b*d,a*d+b*c; break; default: break; return 0; 测试数据:第 3_3 题:名师归纳总结 - - - - - - -第 8 页,共 13 页精选学习资料 - - - - - - - - - 用一个整型数组表示 10 进制大整数,数组的每个元素储备大整数的一位数字,将这个大整 数转换为 2 进制数输出;算法描述:存入大整数时,将数值的各个位上的数分别存到数组中;由于整数数值大,肯定留意了溢 出,在运算时,再用数组下标与数值各个位上的关系,整合再输出所对应的二进制数!源程序:No3_3.c #include<stdio.h> #include<math.h> #define N 20 int main void to_base_nlong long n, unsigned int base ; int aN,i=0,j,k,m; char ch; long long n=0; printf" 请输入数字( #终止) :n"; printf"n" whilescanf"%d",&ai=1 i+; j=i-1; i<=j; i+ fori=0 fork=j; k>=0 ; k- n+=ai*pow10,k; printf"n转换过后的等值二进制数:n" ; printf"n"; to_base_nn,2; printf"n"; return 0; void to_base_nlong long n, unsigned int base/ 进制转换超级函数 int r; r = n % base; if n >= base 名师归纳总结 to_base_nn / base, base;第 9 页,共 13 页- - - - - - -精选学习资料 - - - - - - - - - putchar'0' + r; return; 测试数据:第 3_4 题:依据输入的数字 N,运算 N以内(包括 N)数据链并统计数据链末尾数字是 1 的数据个数;例如 N=44,就数字链为:44->32->13->10->1,其规章为: 4*4+4*4=32 ,3*3+2*2=13 ,1*1+3*3=10 ,1*1+0*0=1 ;算法描述:对输入数字进行各个位拆分并运算各个位上数字的平方和,每运算一次的和与 1 进行比较,知道等于 1 时程序终止;源程序:no3_4.c #include<stdio.h> int main int n,sum,a10; int i,cout=0; printf" 请输入数字 N: " ; scanf"%d",&n; printf"n 数据链 :n"; whilen.=1 printf"%d->",n; sum=0; i=0; whilen>0/ 对每次的各位数字平方和再拆 ai=n%10; ifa0=1 cout+;/ 统计末尾数字为1 的计数器 sum+=ai*ai; n=n/10 i+; 名师归纳总结 - - - - - - -第 10 页,共 13 页精选学习资料 - - - - - - - - - n=sum; printf"%dn",1;1 的数字个数 :n"; printf"n数据链末尾数字为 printf"%dn",cout; return 0; 测试数据:第 5_1 题:程序自动生成一个位于 99 内的随机数,要求用户猜这个数;用户输入一个数后,程序有三种应答: too big,too small,you win ;算法描述:播下产生随机数的种子,随时间不同每次生成的随机数不同,用户依据提示进行猜数游戏;源程序:no5_1.c #include<stdio.h> #include<stdlib.h>/ 为 rand 函数供应原型#include<time.h>/ 为种子供应原型int main int n,m; printf"Ready. Let's go.nInput the correct number you thought:n"; scanf"%d",&n; srandtimeNULL; / 种子 m=rand%100; whilen.=m/ 猜数进行时的提示 ifn>m printf"Too big. Come on,do't give up.n"; else printf"Too small. Why are you so silly.n"; printf"Try again:n"; scanf"%d",&n; 名师归纳总结 printf"%c%c You win. You are so smart.n",1,1;第 11 页,共 13 页 return 0;- - - - - - -精选学习资料 - - - - - - - - - 测试数据:第 5_2 题:产生一组随机数,要求每个数字不能重复;例如:1,20,3,17, 80,4, 35,88 符合要求, 3 ,20,1,17,80, 3,35, 88 不符合要求算法描述:Rand 函数一次只能产生一个随机数,于是使用循环结构让其多产生几个随机数,为了对随机数是否重复进行判定,将产生的随机数存放在数组中;源程序:no5_2.c #include<stdio.h> #include<stdlib.h> #include<time.h> #define N 10 int main int aN,n,i,j,k; int flag=1; n=N; srandtimeNULL; whileflag fori=0; i<n ; i+/ 多次产生随机数并存到数组; ai=rand%100 fori=0; i<n ; i+ forj=0; j<n ; j+ 产生 名师归纳总结 - - - - - - -第 12 页,共 13 页精选学习资料 - - - - - - - - - if.flag flag=1; else flag=0;产生的不重复的随机数:n" ; printf" printf"n"; fori=0,k=1; i<n ; i+,k+ printf"%-4d",ai; ifk%10=0 printf"n"; return 0; 测试数据:名师归纳总结 - - - - - - -第 13 页,共 13 页

    注意事项

    本文(2022年程序设计方案基础学习课程设计方案.docx)为本站会员(H****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开