2022年程序设计方案基础学习课程设计方案 .pdf
《2022年程序设计方案基础学习课程设计方案 .pdf》由会员分享,可在线阅读,更多相关《2022年程序设计方案基础学习课程设计方案 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序设计基础课程设计实验报告班级: 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 #include #include #define N 5/ 文件中字符的行数int m
2、ain() FILE *fp1,*fp2。/文件指针 char str1N80,str2N80。 char AN80,BN80。 int i,k,flag=0 。 printf(Please enter the first text A:n) 。 if(fp1=fopen(num1.text,w)=NULL)/建立文本文件 printf(cannot open the file!)。 exit(0) 。 for(i=0 。 iN。 i+)/ 输入字符并写入文件 gets(str1i) 。 fputs(str1i,fp1) 。 fputs(n,fp1) 。 printf(n) 。 printf(
3、Please enter the second text B:n) 。 if(fp2=fopen(num2.text,w)=0)/ 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 13 页 printf(cannot open the file!n)。 exit(0) 。 for(i=0 。 iN。 i+) gets(str2i) 。 fputs(str2i,fp2) 。 fputs(n,fp2) 。 fclose(fp1) 。 fclose(fp2) 。 fp1=fopen(num1.text,r)。/打开文件 fp2=fopen(n
4、um2.text,r)。 for(i=0 。 iN。 i+)/ 对两个文件中的字符进行行比较 fgets(str1i,80,fp1) 。 fgets(str2i,80,fp2) 。 if(strcmp(str1i,str2i)!=0) k=i 。 flag=1 。 break。 if(flag)/ 如果存在不同行 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
5、 contents!n)。 fclose(fp1) 。 /关闭文件 fclose(fp2) 。 return 0。 测试数据:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 13 页第 1_3 题: 现有两个文本文件db1.txt和 db2.txt。 db1.txt中第一列为姓名,第二列为英语成绩;db2.txt中第一列为姓名,第二列为数学成绩。通过姓名字段将db1.txt文件关联到db2.txt文件生成db3.txt文件。 db3.txt文件第一列为姓名,第二列为英语成绩,第三列为数学成绩,第四列为平均成绩算法描述:定义三个文件指针,
6、输入数据分别存在两个文件文本,输入时用结构存储数字和字符的混合输入;打开文件,对文件中的结构体存储的字符比较遇到两个文件中相同的name ,将两个文件对应该name的内容整合,写到第三个文件中,并在屏幕输出文件内容。源程序:no1_3.c #include #include #include #define N 1 struct Student/定义前两个文件内容的结构体,结构体元素是姓名和分数 char name10。 double score。struct Student1/定义第三个文件内容的结构体,元素是姓名和分数数组(含三个元素) char name10。 double score3
7、。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)。 for(i=0。 iN 。 i+) scanf(%s%lf,stu0i.name,&stu0i.score)。 fwrite(&stu0i,sizeof(struct Student),1,fp1)。/ 读取结构体中的一元素存入文件 精选学习资料 - -
8、 - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 13 页 printf(nPlease input db2.txt:n)。 fp2=fopen(db2,w)。 for(i=0。 iN 。 i+) scanf(%s%lf,stu1i.name,&stu1i.score)。 fwrite(&stu1i,sizeof(struct Student),1,fp2)。 fp1=fopen(db1.txt,r)。 / 打开文件,只写 fp2=fopen(db2,txt,r)。 for(i=0。 iN 。 i+) fread(&stu0i,sizeof(struct S
9、tudent),1,fp1)。 for(j=0。 jN 。 j+) fread(&stu1j,sizeof(struct Student),1,fp2)。 if(strcmp(stu0i.name,stu1j.name)=0) flag=1。 strcpy(stu1k.name,stu1i.name)。 stu1k.score0=stu0i.score。 stu1k.score1=stu1j.score。 stu1k.score2=(stu1k.score0+stu1k.score1)/2。 k+。 printf(n)。 /输出 if(flag) fp3=fopen(db3.txt,w)。 p
10、rintf(Names Maths English Averagen)。 for(i=0。 ik 。 i+) fwrite(&stu1i,sizeof(struct Student1),1,fp3)。 printf(%s ,stu1i.name)。 for(j=0。 j3 。 j+) printf(%10.2f,stu1i.scorej)。 printf(n)。 fclose(fp3)。 else 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 13 页 printf(Maybe the lists are taken by mista
11、ke!n)。 fclose(fp1)。 fclose(fp2)。 return 0。 测试数据:第 2_2 题:统计一个英文文本文件中26 个英文字母出现次数并按英文字母序输出统计结果,查找并替换此英文文本文件中某字符串。算法描述 : 建立文本文件并输入数据(二维字符数组的形式),存储于文件,打开文件读出字符!用个英文字符与从文件读出的文件比较,建立累加器对每个字母出现的次数赋值!源程序:no2_2.c #include #include #include #define N 2 int main() FILE *fp1,*fp2。 int i,j,k,cout 。 char strN80,c
12、h,c 。 printf(Please input file_num1:n)。 fp1=fopen(num1,w)。/建立文件并写入数据 for(i=0 。 iN。 i+) gets(stri) 。 fputs(stri,fp1) 。 fputs(n,fp1) 。 printf(n) 。 /打开文件并读出数据 fp2=fopen(num1,r)。 for(i=0 。 iN。 i+)。 fgets(stri,80,fp2) 。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 13 页 printf(The showing times of
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年程序设计方案基础学习课程设计方案 2022 程序设计 方案 基础 学习 课程设计
限制150内