关联两个文件中的数据.docx
- 文档编号:3223308
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:13
- 大小:96.70KB
关联两个文件中的数据.docx
《关联两个文件中的数据.docx》由会员分享,可在线阅读,更多相关《关联两个文件中的数据.docx(13页珍藏版)》请在冰豆网上搜索。
关联两个文件中的数据
课程设计
学号
班级
姓名
指导教师
2008年6月26日
课程设计任务书
一、课程设计时间
2007~08第2学期第17周,即6月23~27日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
设有两个文件(教师提供):
file07_1.txt,file07_2.txt。
file07_1.txt中存储着学生名单,每位学生有学号、姓名2项内容;file07_2.txt存储着学生成绩,每位学生有学号、数学成绩、英语成绩3项内容。
可见,学号是2个文件的共有的数据。
请按照一定顺序在用户屏幕显示所有同学的学号、姓名、数学成绩、英语成绩4项内容。
三、课程设计要求
程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“显示file07_1.txt”、“file07_2.txt”、“全部显示”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
课程设计说明书:
✧课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、需求分析1
二、程序流程图2
三、核心技术的实现说明及相应程序段4
四、个人总结6
五、运行截图6
五、参考文献8
六、源程序9
一、需求分析
经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:
显示文件file07_1.txt函数,显示文件file07_2.txt函数,全部显示函数。
其中我认为最主要的是对文件的读取,以及将文件内的数据按要求显示在界面上。
文件中包括学生的姓名,学号,数学成绩,英语成绩,因此在读取文件时要建立结构体,将所要显示的内容定义为结构体,而在读取文件时要用到fopen和fscanf这两个函数,掌握了以上两点我认为写出这个程序就简单了。
除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。
二、程序流程图
1、程序总体结构图:
.
2、具体功能框图:
(1)显示文件file07_1函数part1():
是是否能打开否
打开文件
退出
读取文件中的数据
显示在界面上
关闭文件
(2)显示文件file07_2函数part2()(同上)
(3)全部显示函数part3():
是文件1是否能打开否
是文件2是否能打开否
退出
打开两个文件
退出
分别读取两个文件
除去相同的部分,将其余部分都显示在截面上
关闭文件
三、核心技术的实现说明及相应程序段
本程序主要由三个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。
在这些函数当中,对文件中数据的读取是核心内容。
尤其要注意文件中的数据格式为结构体,因此定义时要注意,还有就是文件的读取,要将文件先打开,再读出数据,并显示在屏幕上。
下面分别进行说明。
1.显示文件file07_1函数
先判断文件能否打开,将所要显示的内容定义为结构体,读取再打印,具体程序如下:
voidpart1()
{
FILE*fp;
inti;
system("cls");
if((fp=fopen("E:
\\file07_1.txt","rb"))==NULL)
{printf("无法打开文件\n");}
for(i=0;i<8;i++)
{fscanf(fp,"%s%s",&stu[i].size,&stu[i].name);
printf("\n%s%s\n",stu[i].size,&stu[i].name);
if(feof(fp))
break;
}
}
2.显示文件file07_2函数(同上)
3.全部显示函数
判断两个文件是否能打开,将所要显示的内容定义为结构体,分别读取,除去相同的部分打印,具体程序如下:
voidpart3()
{
system("cls");
menu();
FILE*fp1,*fp2;
inti;
system("cls");
if((fp1=fopen("E:
\\file07_1.txt","rb"))==NULL)
{
printf("无法打开文件\n");
}
if((fp2=fopen("E:
\\file07_2.txt","rb"))==NULL)
{printf("无法打开文件\n");}
for(i=0;i<8;i++)
{
fscanf(fp1,"%s%s",&stu[i].size,&stu[i].name);
fscanf(fp2,"%s%d%d",&stu[i].size,&stu[i].math,&stu[i].english);
printf("\n%10s%10s%5d%5d\n",stu[i].name,stu[i].size,stu[i].math,stu[i].english);
if(feof(fp1)||feof(fp2))
break;
}
}
四、个人总结
在课程设计过程中,我懂得怎幺样去制定计划,怎幺样去实现这个计划,不断地克服制作中的种种困难,并掌握了在执行过程中怎幺样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,给我印象最为深刻的是在关联两个文件中数据程序的编译过程中,先前我的各个子程序都已经编辑成功,那幺这最后的程序就将是我成功的关键。
在未来的日子里我们还要继续与C语言这个我们刚刚接触到的新事物打交道,我知道未来的路还很漫长。
以后我们还要接触更多的计算机语言,知识的海洋是无边无际的,我相信在老师的引导下我定会自由遨游,事物是向前发展的,不久的将来期望也希望我能成为中国IT业的精英,而我所学的专业也正是与计算机息息相关的,深知他的重要性,也希望在未来的日子里老师这个引路人能带我走向更加灿烂的远方。
五、运行截图
1.开始菜单
2.显示file07_1
3.显示file07_2
4.全部显示
五、参考文献
1谭浩强着《C语言程序设计》清华大学出版社,2005
2刘成等着《C语言程序设计实验指导与习题集》中国铁道出版社,2006
、源程序
#include"stdio.h"
#include"conio.h"
#include"stdlib.h"
structstudent
{
charsize[20];
charname[10];
intmath;
intenglish;
}stu[8];
voidmenu()
{printf("\n<<菜单>>\n");
printf("\n-----------------------------------------------------------------------------------------");
printf("\n-----------------------------------------------------------------------------------------\n");
puts("\n1.显示file07_1.txt");
puts("\n2.显示file07_2.txt");
puts("\n3.显示file07_1.txt,file07_2.txt");
puts("\n4.退出\n");
printf("\n-----------------------------------------------------------------------------------------");
printf("\n-----------------------------------------------------------------------------------------\n");
printf("\n程序功能:
关联两个文件中的数据\n");
}
voidpart1()
{
FILE*fp;
inti;
system("cls");
if((fp=fopen("E:
\\file07_1.txt","rb"))==NULL)
{printf("无法打开文件\n");}
for(i=0;i<8;i++)
{fscanf(fp,"%s%s",&stu[i].size,&stu[i].name);
printf("\n%s%s\n",stu[i].size,&stu[i].name);
if(feof(fp))
break;
}
}
voidpart2()
{
system("cls");
menu();
FILE*fp;
inti;
system("cls");
if((fp=fopen("E:
\\file07_2.txt","rb"))==NULL)
{printf("无法打开文件\n");}
for(i=0;i<8;i++)
{fscanf(fp,"%s%d%d",&stu[i].size,&stu[i].math,&stu[i].english);
printf("\n%s%d%d\n",stu[i].size,stu[i].math,stu[i].english);
if(feof(fp))
break;
}
}
voidpart3()
{
system("cls");
menu();
FILE*fp1,*fp2;
inti;
system("cls");
if((fp1=fopen("E:
\\file07_1.txt","rb"))==NULL)
{
printf("无法打开文件\n");
}
if((fp2=fopen("E:
\\file07_2.txt","rb"))==NULL)
{printf("无法打开文件\n");}
for(i=0;i<8;i++)
{
fscanf(fp1,"%s%s",&stu[i].size,&stu[i].name);
fscanf(fp2,"%s%d%d",&stu[i].size,&stu[i].math,&stu[i].english);
printf("\n%10s%10s%5d%5d\n",stu[i].name,stu[i].size,stu[i].math,stu[i].english);
if(feof(fp1)||feof(fp2))
break;
}
}
voidpart4()
{
system("cls");
menu();
}
voidmain()
{
charchoice;
menu();
choice=ge
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关联 两个 文件 中的 数据