C语言课程设计--学生成绩的文件管理

上传人:lizhe****0001 文档编号:31221485 上传时间:2018-02-06 格式:DOC 页数:9 大小:101.50KB
返回 下载 相关 举报
C语言课程设计--学生成绩的文件管理_第1页
第1页 / 共9页
C语言课程设计--学生成绩的文件管理_第2页
第2页 / 共9页
C语言课程设计--学生成绩的文件管理_第3页
第3页 / 共9页
C语言课程设计--学生成绩的文件管理_第4页
第4页 / 共9页
C语言课程设计--学生成绩的文件管理_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C语言课程设计--学生成绩的文件管理》由会员分享,可在线阅读,更多相关《C语言课程设计--学生成绩的文件管理(9页珍藏版)》请在金锄头文库上搜索。

1、1C 语 言课 程 设 计 说 明 书题目: C 语言程序设计综合训练 院 系: 计算机科学与工程学院 专业班级: 计算机*班 学 号: 学生姓名: 指导教师: 2010 年 12 月 28 日安徽理工大学程序训练任务书2计算机学院 院系 计算机科学与技术 教研室学 号 学生姓名 专业(班级) 计算机科学与技 术*班设计题目 1.身份证校验2.学生成绩的文件管理设计技术参数(1)用 C 语言实现设计任务;(2)所设计的程序可读性好,执行效率高;(3)有良好的操作界面;(4)设计说明书能很好地反映设计内容设计要求(1)问题分析及解决方案框架确定(2)详细设计和编码(3)上机前编写程序与检查(4)

2、上机调试程序(5)完成课程设计报告工作量要求设计说明书的字数在 3000 字以上。工作计划2010.11.10-11.20 根据课程设计大纲的要求,查找相关资料,完成需求分析;2010.11.21-12.30 进行系统的概要设计;2010.12.01-12.10 进行系统的详细设计和源代码的书写;2010.12.11-12.25 对系统进行调试分析,写出程序训练报告。参考资料1 何钦铭. C 语言程序设计. 北京:高等教育出版社,20082 颜晖. C 语言程序设计实验指导. 北京:高等教育出版社,20083 谭浩强编著 .C 程序设计(第二版) .北京:清华大学出版社,1999指导教师签字

3、教研室主任签字2010 年 12 月 28 日3目 录1.身份 证校验 .11.1 设计内容 .11.2 解题思路 .11.3 调试过程 .11.4 程序清单 .21.5 测试数据 .21.6 小结 .22. 学生信 息管理 .32.1 设计 内容 .32.2 解题思 路 .32.3 调试 过程 .32.4 程 序清单 .42.5 测试 数据 .62.6 小 结 .611.身份证校验 1.1 设计内容 题目描述 我国国标GB 11643-1999中规定:公民身份号码是 18 位特征组合码,由十七位数字本体码和一位数字校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数

4、字顺序码和一位数字校验码。其校验码(最后一位)计算方法和步骤为:(1)十七位数字本体码加权求和公式S = Sum(Ai * Wi), i = 0, . , 16 ,先对前 17 位数字的权求和其中 Ai:表示第 i 位置上的身份证号码数字值Wi:表示第 i 位置上的加权因子,前 17 位加权因子从左到右分别为Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)计算模Y = mod(S, 11)(3)通过模 Y 查下表得到对应的校验码Y 0 1 2 3 4 5 6 7 8 9 10校验码 1 0 X 9 8 7 6 5 4 3 2例如:某身份证前 17 位为 110

5、10519491231002i 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2身份证号1 1 0 1 0 5 1 9 4 9 1 2 3 1 0 0 2积 7 9 0 5 0 20 2 9 24 27 7 18 30 5 0 0 4得到和为:167;则模为 y=167%11=2查(3)得校验码为 x请按上面所述步骤编程,输入一个二代身份证号,检查该身份证是否正确。 1.2 解题思路考虑到加权因子和身份证号码都很长,在定义时用二维数组将两者放到一起,又身份证号码中有 X 出现,该数组定

6、义为字符型。另外,加权因子中的“10”用 ASCII 码中的字符相减即可。 1.3 调试过程1. 因为身份证号码中有 X,导致运行程序时出现 ASCII 码;2. 因为加权因子中的“10”, 导致运行程序时出现乱码;3. 个别行尾缺少分号。 1.4 程序清单#include int main(void)int i,Y,sum=0;char y11=1,0,x,9,8,7,6,5,4,3,2;char 2a218=7,9,0,5,8,4,2,1,6,3,7,9,0,5,8,4,2,0,;printf(请输入 18 位二代身份证号码 :);for(i=0;i#include int main(vo

7、id)FILE *fp1,*fp2;int i,j;struct studentslong num;char stname20;int score1,score2,score3;int score;student5;if(fp1=fopen(C:stdu1.dat.txt,r)= NULL)printf(File open error! n);exit(0);studenti.score=0;printf( 学号 姓名 C语言 英语 高数n);for(i=0;i5;i+)fscanf(fp1,%ld%s%d%d%d,&studenti.num,studenti.stname,&studenti

8、.score1,studenti.score=studenti.score1+studenti.score2+studenti.score3;printf(%-8ld%6s%8d%6d%7dn,studenti.num,studenti.stname,studenti.score1,studenti.score2,studenti.score3);printf(nn);for(i=1;i5;i+)for(j=0;j5-i;j+)5struct students t;if(studentj.scorestudentj+1.score)t=studentj;studentj=studentj+1;

9、studentj+1=t;printf( 学号 姓名 C语言 英语 高数 平均分 名次n);for(i=0;i5;i+)printf(%-8ld%6s%8d%6d%7d%11.3f%4dn,studenti.num,studenti.stname,studenti.score1,studenti.score2,studenti.score3,studenti.score/3.0,i+1);fp2=fopen(C:stdu2.dat.txt,w);fprintf(fp2, 学号 姓名 C语言 英语 高数 平均分 名次n);for(i=0;i5;i+)fprintf(fp2,%-8ld%6s%8d%6d%7d%11.3f%4dn,studenti.num,studenti.stname,studenti.score1,studenti.score2,studenti.score3,studenti.score/3.0,i+1);if(fclose(fp2)printf(Can not close the file! n);exit(0);return 0;6 2.5 测试数据 2.6 小结通过这次程序设计,使我加深了对结构数组的认识和使用,对文件也有2文件题图7了更加深刻的了解,对以后运用文件解决问题有了一定的基础。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号