C程序设计-日期系统.doc_第1页
C程序设计-日期系统.doc_第2页
C程序设计-日期系统.doc_第3页
C程序设计-日期系统.doc_第4页
C程序设计-日期系统.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计说明书(C程序设计)班级: 信管* 姓名: * 设计题目:_设计时间:_2008.9.1_至_2008.9.5 _指导教师:_*_评 语:_评阅成绩: 评阅教师: 一、 课程设计目的C语言程序设计是一门实践性较强的课程。通过进行C语言程序设计课程设计的学习与实践,能够更进一步的理解C语言程序设计的基本知识,掌握C语言编程的一般方法和程序设计的基本思想,并且能够提高调试程序的能力。特别地,我希望我设计的程序能够通过对文件的打开与关闭,向文件中输入学生数据scanf(%d,%s,%d,&stui.num,,&stui.score); 保存文件。并且还能够查看这个文件中存储的数据。通过利用数组,实现对数据的使用(如对学生成绩score的排序paixu与查询search)与保存。同时,在实践中,我还会使用到的有函数以及指针等许多知识。使我更好的理解与掌握C语言的核心内容。通过对该课程的学习与实践能够为我们以后学习计算机课程打好基础。二、 软件总体结构图及功能模块本程序主要内容有对年、月、日的判断,打开关闭文件,对文件内容的排序与查找。* 软件与年月日有关的计算问题 文件打开关闭排序查找1、判断该日在本年中是第几天 2、该月最后一天是本年中第几天直接从主函数中写入test1.txt文件,保存,再打开该文件排序,保存到test2.txt文件。在test2.txt文件中查找学生分数。查找可以分为按学号查询和按姓名查询两种。利用函数*三、源程序代码#include#include#define SIZE 2struct Rili /*数据结构*/int year;int month;int day;date;struct 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() /*保存与年、月、日计算有关的文件test1.txt*/ FILE *fp;int i;if(fp=fopen(test1.txt,wb)=NULL) printf(cannot open filen); return;for(i=0;i1;i+) if(fwrite(&date,sizeof(struct Rili),1,fp)!=1) printf(file write errorn); fclose(fp);void save1() /*写入学生数据并保存在文件test2,txt中*/FILE *fp;int i;if(fp=fopen(test2.txt,wb)=NULL) printf(cannot open filen); return;for(i=0;iSIZE;i+) if(fwrite(&stui,sizeof(struct student),1,fp)!=1) printf(file write errorn);fclose(fp);void save2() /*写入排序后的学生数据并保存在文件test3.txt中*/ FILE *fp;int i;if(fp=fopen(test3.txt,wb)=NULL) printf(cannot open filen); return;for(i=0;iSIZE;i+)if(fwrite(&studi,sizeof(struct students),1,fp)!=1) printf(file write errorn); fclose(fp);void fun1(int struct student x,int n) /*排序函数*/ int i,j,k,t;for(i=0;in-1;i+) k=i; for(j=i+1;jn;j+) if(xjxk) k=j; t=xk;xk=xi;xi=t;void float *search(struct p)SIZE,int n) /*查找函数*/float *pt; pt=*(p+n); return(pt); void nyr() /*与年月日有关的计算问题*/int i,days;int day_tab13=0,31,28,31,30,31,30,31,31,30,31,30,31;printf(input year,month,day:);scanf(%d,%d,%d,&date.year,&date.month,&date.day);days=0; /*判断该日在本年中是第几天*/for(i=1;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)days+=1;printf(The last day in the %dth month is the %dth day in %d.n,date.month,days,date.year);save();void open() /*开辟空间写入学生数据并保存*/FILE *fp;int i;for(i=0;iSIZE;i+)scanf(%d,%s,%d,&stui.num,,&stui.score);save1();void paixu() /*排序并保存*/FILE *fp;int i;fp=fopen(test2.txt,rb);for(i=0;iSIZE;i+) fread(&stui,sizeof(struct student),1,fp); ai=stui.score; fun1(a,10); fwrite(&studi,sizeof(struct student),1,fp);fclose(fp);save2();void numsearch() /*按学号查询*/ FILE *fp;int i;fp=fopen(test3.txt,rb);for(i=0;iSIZE;i+) fread(&stui,sizeof(struct student),1,fp); bi=stui.num; search(bSIZE,i); fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);void namesearch() /*按姓名查询*/FILE *fp;int i;fp=fopen(test3.txt,rb);for(i=0;iSIZE;i+) fread(&stui,sizeof(struct student),1,fp); ci=; search(cSIZE,i); fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);void main( ) /*主函数*/ char ch1; printf(-*-*-*-*-*-*-*-*-Welcome to my system-*-*-*-*-*-*-*-*-n); printf( 1. 与年月日有关的问题n); printf( 2. 保存文件1n); printf( 3. 查询系统n); printf( 4. 退出系统n); printf(-*-*-*-*-*-*-*-*- 请输入编号选择功能 -*-*-*-*-*-*-*-*-n); abc: printf(请选择要进入程序的序号:); ch1=getchar(); switch(ch1) case 1: nyr();break; case 2: open();break; case 3: search();break; case 4: goto end; goto abc; getch1(); end: ;getchar();getchar(); 验证test2.txt中是否保存数据的程序:#include#include#define SIZE 10struct studentint num;char name80;int score;stuSIZE;void main()FILE *fp; int i;printf(num,name,scoren);fp=fopen(test2.txt,rb);for(i=0;iSIZE;i+) fread(&stui,sizeof(struct student),1,fp); printf(%d %s%dn,stui.num,,stui.score); ;fclose(fp);三、 程序运行结果输出的test2.txt中的数据:所生成的文件:四、 总结通过进行C语言程序设计课程设计的实践,我更进一步的理解了C语言程序设计的基本知识,掌握了C语言编程的一般方法和程序设计的基本思想,提高了调试程序的能力,例如我设计程序void nyr(),解决了两个问题:1、判断该日在本年中是第几天,2、该月最后一天是本年中第几天。特别是通过对文件的打开与关闭的学习,我成功的打开了文件,并且能够将其保存在文件中。所以,我设计的这个程序,能够输入与学生的有关数据scanf(%d,%s,%d,&stui.num,,&stui.score);,保存在文件test2.txt中。然后,我又将这些学生的成绩按升序排列,保存在test3.txt中。此外,我在程序里还使用了数组,函数以及指针等许多知识。我希望我的程序能够很方便的保存学生的数据,并且能够便于查询,所以设计了排序函数和查询函数,为了避免因数组类型不同带来的麻烦,我定义了三个结构体数组。在查询时,我将查询方法分为按学号查询和按姓名查询两种。我把struct student studi.num 赋给 struct h2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论