成等绩统计系统 C语言.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
xxxxxxx大学 课程设计 学 号: 班 级: 姓 名: 指导教师: 课程设计任务书 一 , 课设设计时间 2008~09第2学期第15周,共计一周,20学时。 二,课程设计内容 用C语言编写软件完成以下任务: (1)录入学生的信息,并保存到一个磁盘文件;、 (2)录入学生的平时成绩和考试成绩; (3)统计学生的总成绩(计算方法:总成绩=考试成绩*70%+平时成绩30%); (3)按照总成绩对学生进行排序; (4)查询某个学生的成绩(按照学号,姓名,成绩等关键词进行查询)。 三, 课程设计要求 程序质量: 1.贯彻结构化的程序设计思想。 2.用户界面友好,功能明确,操作方便。 3.用户界面中的菜单至少应包括“录入学生信息”,“录入成绩”,“统计”,“退出”等项。 4.代码应适当缩进,并给出必须的注释,以增强程序的可读性。 课程设计说明书; 课程结束后,上交课程设计说明书的源程序。课程设计说明书的内容参见提供的摸板 四 指导教师和学生签字 指导教师: 学生签名: 目录 一、需求分析 1 二、程序流程图 2 三、核心技术的实现说明及相应程序段 5 四、个人总结 9 五、参考文献 10 六、源程序 10 一、需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为以下模块,其中每一个模块对应一个函数,他们的功能分别是:1输入学生姓名学号,考试成绩和平时成绩,2算出总成绩等于平时成绩乘以30%加上考试成绩乘以70%,3算出总成绩后按照分数排序,4查询某个学生的成绩(输入学号可以查询学生成绩信息),5最后退出程序。 每一个学生记录都包含学号、姓名,以及平时成绩(pscj),考试成绩(kscj)和总成绩(zcj)。在程序当中,将学生记录类型定义为结构体类型,添加的学生信息直接写入C盘的student.txt文件中,其他函数每次对学生记录的访问,其数据来源都是student.txt文件,这样做不但可以保证学生数据的一致性,而且可以对学生数据进行永久保存,保证每次运行程序都可以采用原来的数据。 1、输入学生信息 主要实现程序最初运行时学生数据的录入以及其后的运行中学生数据的追加功能; 2、统计学生总成绩 总成绩=平时成绩乘以30%+考试成绩乘以70% 3、总成绩排序 按照题目的具体要求实现的是总成绩的排序 4、成绩查询 允许按照姓名对学生的各科成绩进行查询; 5、退出 二、程序流程图 1、程序总体结构图 2、具体功能框图 (1)输入学生信息 (2)按照学生总成绩排序(zpx) 三、核心技术的实现说明及相应程序段 本程序主要由4个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,输入学生信息,平时成绩,考试成绩,排序是程序中较为核心的部分,下面分别进行说明。 1、输入学生信息 添加数据分为两种情况,其一是在学生文件(student.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的学生信息写入该文件当中;其二是在学生文件(student.txt)已经存在的情况下,此时文件要以读写方式或追加的方式打开,这样才可以保证以前已经存在的数据不丢失。输入平时成绩和考试成绩,首先输入学生的学号,姓名,在定义的结构体中,运用指针变量分别输出该学生的相关信息。再对该生的平时成绩和考试成绩进行输入,同样运用指针来实现对数据的输入。总成绩等于平时成绩*30%+考试成绩*70%,具体的程序段如下: if((fp=fopen(c: \\student.txt,rb))==NULL) { printf(文件打开失败!\n); return; } else { *n=getw(fp); for(i=0;i*n;i++) fread(stu[i],sizeof(struct student),1,fp); } fclose(fp); } void luru()/*录入学生信息*/ {FILE *fp; int n,i,j; struct student stu; if((fp=fopen(c: \\student.txt,rb+))!=NULL) {j=getw(fp);//读取文件下一个整数值 rewind(fp);/*文件位置指针返回文件开头*/ printf(请输入要添加的学生数量,按回车键确认:); scanf(%d,n); putw(j+n,fp);//将一个整数写到文

文档评论(0)

zzabc001 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档