1、1课程设计说明书(C 程序设计)班级: 信管* 姓名: * 设计题目:_设计时间:_2008.9.1_至_2008.9.5 _指导教师:_*_评 语:_评阅成绩: 评阅教师: 2一、课程设计目的C 语言程序设计是一门实践性较强的课程。通过进行 C 语言程序设计课程设计的学习与实践,能够更进一步的理解 C 语言程序设计的基本知识,掌握 C 语言编程的一般方法和程序设计的基本思想,并且能够提高调试程序的能力。特别地,我希望我设计的程序能够通过对文件的打开与关闭,向文件中输入学生数据 scanf(“%d,%s,%d“, 保存文件。并且还能够查看这个文件中存储的数据。通过利用数组,实现对数据的使用(如
2、对学生成绩 score 的排序 paixu 与查询 search)与保存。同时,在实践中,我还会使用到的有函数以及指针等许多知识。使我更好的理解与掌握 C 语言的核心内容。通过对该课程的学习与实践能够为我们以后学习计算机课程打好基础。二、软件总体结构图及功能模块本程序主要内容有对年、月、日的判断,打开关闭文件,对文件内容的排序与查找。*三、源程序代码#include#include#define SIZE 2struct Rili /*数据结构*/int year;int month;int day;date;软件与年月日有关的计算问题文件1、判断该日在本年中是第几天 2、该月最后一天是本年中
3、第几天直接从主函数中写入 test1.txt文件,保存,再打开该文件排序,保存到 test2.txt 文件。在 test2.txt 文件中查找学生分数。查找可以分为按学号查询和按姓名查询两种。查找利用函数排序关闭打开3struct studentint num;char name20;int score;stuSIZE;struct studentsint num;char name20;int score;studSIZE;struct h1int score; aSIZE;struct h2int num;bSIZE;struct h3int name ;cSIZE;void save()
4、 /*保存与年、月、日计算有关的文件 test1.txt*/ FILE *fp;int i;if(fp=fopen(“test1.txt“,“wb“)=NULL)printf(“cannot open filen“);return;for(i=0;i=3)days+=1;printf(“%d/%d is the %dth day in %d.n“,date.month,date.day,days,date.year);days=31; /*该月最后一天是本年中第几天*/for(i=1;i=3)5days+=1;printf(“The last day in the %dth month is
5、the %dth day in %d.n“,date.month,days,date.year);save();void open() /*开辟空间写入学生数据并保存*/FILE *fp;int i;for(i=0;i#include#define SIZE 10struct studentint num;char name80;int score;stuSIZE;void main()7FILE *fp; int i;printf(“num,name,scoren“);fp=fopen(“test2.txt“,“rb“);for(i=0;iSIZE;i+)fread(printf(“%d %
6、s%dn“,stui.num,stui.name,stui.score);fclose(fp);三、程序运行结果输出的 test2.txt 中的数据:8所生成的文件:9四、总结通过进行 C 语言程序设计课程设计的实践,我更进一步的理解了 C 语言程序设计的基本知识,掌握了 C 语言编程的一般方法和程序设计的基本思想,提高了调试程序的能力,例如我设计程序 void nyr(),解决了两个问题:1、判断该日在本年中是第几天,2、该月最后一天是本年中第几天。特别是通过对文件的打开与关闭的学习,我成功的打开了文件,并且能够将其保存在文件中。所以,我设计的这个程序,能够输入与学生的有关数据scanf(“
7、%d,%s,%d“,,保存在文件 test2.txt 中。然后,我又将这些学生的成绩按升序排列,保存在 test3.txt 中。此外,我在程序里还使用了数组,函数以及指针等许多知识。我希望我的程序能够很方便的保存学生的数据,并且能够便于查询,所以设计了排序函数和查询函数,为了避免因数组类型不同带来的麻烦,我定义了三个结构体数组。在查询时,我将查询方法分为按学号查询和按姓名查询两种。我把 struct student studi.num 赋给 struct h2 bi数组,把 struct student studi.name 赋给struct h3 ci数组。在排序函数中,我 struct student stui.score 赋给 struct h1 ai。但是在调试程序的时候,系统显示出错误:error C2115: = : incompatible types。由于时间有限,最终我未能成功的将这个查询问题解决,比较遗憾。希望在以后的学习中能够更进一步的学习 C+程序设计,写出更好的程序。