班级成绩管理.docx
- 文档编号:11093180
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:11
- 大小:19.83KB
班级成绩管理.docx
《班级成绩管理.docx》由会员分享,可在线阅读,更多相关《班级成绩管理.docx(11页珍藏版)》请在冰豆网上搜索。
班级成绩管理
沈阳航空工业学院
课程设计
学号200604111007
班级6411101
姓名王闯
指导教师王晓岩
2007年3月10日
沈阳航空工业学院
课程设计任务书
院系:
材料科学与工程学院专业:
金属材料工程班级:
6411101
学号:
200604111007题目:
解读简单的加密文件
一、课程设计时间
2008年3月3日至2008年3月7日,共计1周,20学时。
二、课程设计内容
用C语言编写软件完成以下任务:
设一个文件中,前2个字节存储的是“解密码”;后面连续存储了5个浮点型数据(file09.dat,由指导教师提供,参考下图),它们是5个浮点型数据与“解密码”进行位的异或运算的结果数据。
要求用再次利用“解密码”数据,以及“位的异或运算”方法,将文件中的5个浮点型数据恢复成原始数据,并打印到屏幕上。
提示:
①一个整数与另一个整数“异或”运算2次,结果还是原来的整数,即:
若A^K的值为T,则T^K的值必为A。
请参考教材中有关“位运算”的内容。
②利用指针,可以把4个字节的浮点数据理解为由2个整型数据构成的。
三、课程设计要求
1.程序质量:
✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括“显示解密码”、“显示解密之前的浮点数据”、“显示解密之后的浮点数据”、“退出”4项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:
课程结束后,上交课程设计说明书和源程序。
课程设计说明书的格式和内容参见提供的模板。
四、指导教师和学生签字
指导教师:
____王晓岩____学生签名:
_王闯______
五、说明书成绩
六、教师评语
目录
一、需求分析1
二、程序流程图3
三.关键技术分析5
四、个人总结7
五、参考文献8
六、源程序8
一、需求分析
经过对程序题目的分析可知,整个程序的设计完成大体分为三摸块,其中每个模块对应一个函数。
他们的功能分别是:
显示解密码(mima),显示解密码之前的浮点型数据(oldfloat),显示解密码之后的浮点型数据(newfloat),在这些函数中,每个函数的实现严格按照程序要求。
(1)文件分析
文件file09.dat文件中共有六个数据,一个是由两个字节构成的整型数据,其余五个是由四个字节构成的浮点型数据。
(2)具体方法
一个整数与另外一个整数进行“异或”运算两次结果还是原来的整数。
利用指针可以把由四个字节构成的浮点型数据理解为由两个整型数据构成的。
(3)程序质量
[1]贯彻结构化程序设计思想。
[2]用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
[3]用户界面中的菜单包括“显示解密码”,“显示解密码之前的浮点型数据”,“显示解密码之后的浮点型数据”,“退出”4项。
[4]代码应适当缩进,并给出必要的注释,以增强程序的可读性。
二、程序流程图
1主流程
图
循环变量i=0
当i<4
输入ch的值
1
2
3
4
default
运行
Mima()
运行
Nowfloat()
运行
Oldfloat()
退出
请进行正确的操作
图1总程序图
2函数mima
判断文件file09.dat
是
是否不存在
否
打印“cannotopenfile”
将文件中的数据复制到整形数据b中
打印b
关闭文件
3函数nowfloat
判断文件file09.dat
是
是否不存在
否
打印“cannotopenfile”
fread(&b,2,1,fp)
循环变量i=0当i<5时
fread(&s[i],4,1,fp)
退出程序
输出s[i]的数据
i++
4函数oldfloat
判断文件file09.dat
真
是否不存在
否
打印“cannotopenfile”
fread(&b,2,1,fp)
循环变量k当k<5时
fread(&s[k],4,1,fp)
p=s
循环变量i=0当i<10时
y[i]=*p++
循环变量l=0j=0当l<10j<10时
退出程序
z[l]=y[j]^b
运行函数man(z,10)
l++j++
i++
k++
5函数man(intw[],intm)
q=w
循环变量i=0
i u[i]=*q++ 输出u[i] i++ 三.关键技术分析 1.如何将解密码输出 解密码是由一个整型数据构成,只要用一个整型变量将其输出即可。 涉及到文件的读取函数fread fread(&b,2,1,fp);//输出解密码// 1.怎样输出文件中的五个浮点型数据 要用一个浮点型数组将其输出 fread(&s[i],4,1,fp);//输出浮点型数据// 3.怎样求出原来的浮点型数据 一个整数与另外一个整数异或两次,结果还是原来的数。 可通过这求出原来的浮点型数据。 但要将浮点型转换成整型,进行异或运算,再将其转换成浮点型。 fread(&b,2,1,fp); for(k=0;k<5;k++) fread(&s[k],4,1,fp);//输出五个浮点型数据// p=s; for(i=0;i<10;i++)//将五个浮点型数据转换成整型// Y[i]=*p++; for(l=0,j=0;l<10,j<10;l++,j++) z[l]=Y[j]^b;//进行异或运算,求出原来的浮点型数据// man(z,10); 四、个人总结 新的学期刚刚到来,我就迎来了为期一周的C语言课程设计工作。 在这一周的学习当中,让我受益匪浅,上一学期的我只是了解它的初步知识而已。 通过这次C语言课程设计,使我更进一步了解认识C语言这一门学科,他不仅仅是简单的设计编辑程序,他需要更深度的理论和完整准确的数据作为支撑点,每个程序的编译都要掌握其真正的操作价值,明确他的目的. 这次课程设计任务主要对如何打开并读取所给的文件的内容,如何使用调用函数,如何对整形数据进行位的异或运算进行考察.在做这次课设之前,也学习了者门学科的初步知识,但是并不知怎样才能自己编写和更好的利用,,但通过这次课设,经过查找资料,并且通过老师和同学的帮助终于能够完成这项任务,并且掌握了运用方法,使我增强了对C语言的兴趣,同时还增强了我的动手能力和逻辑思维,提高了对C语言的应用能力,让我受益良多. 通过这次C语言课程设计,也让我重新认识了自己,原来我并不是一个对于电脑实足的白痴,通过自己不懈的努力,还是可以掌握其中的奥秘。 我想,通过这次C语言课程设计获得的精神和技术上的经验,将使我一生受用! 五、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 2刘成等.C语言程序设计实验指导与习题集.北京: 中国铁道出版社 3王晓岩《程序设计举例》 六、源程序 #include #include #include voidmima() { intb,i; floata[5]; FILE*fp; if((fp=fopen("D: \\file09.dat","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } printf("jiemima: \n"); b=getw(fp); printf("%d\n",b); printf("\n"); fclose(fp); } voidnowfloat() { inti; intb; floats[5]; FILE*fp; if((fp=fopen("D: \\file09.dat","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } printf("mimaqiandefloat"); printf("\n"); fread(&b,2,1,fp); for(i=0;i<5;i++) { fread(&s[i],4,1,fp); printf("%f",s[i]); printf("\n"); } fclose(fp); } voidman(intw[],intm) { float*q,u[5]; inti; q=w; for(i=0;i { u[i]=*q++; printf("%f\n",u[i]); } printf("\n"); } voidoldfloat() { inti,j,l,k; intb; intz[10]; intY[10]; int*p; floats[5]; FILE*fp; if((fp=fopen("D: \\file09.dat","rb"))==NULL) { printf("cannotopenfile\n"); exit(0); } printf("jiemihoudefloat: \n"); fread(&b,2,1,fp); for(k=0;k<5;k++) fread(&s[k],4,1,fp); p=s; for(i=0;i<10;i++) Y[i]=*p++; for(l=0,j=0;l<10,j<10;l++,j++) z[l]=Y[j]^b; man(z,10); } voidmain() { intch; inti; for(i=0;i<4;i++) { printf("************welcometousejiemima******************\n"); printf("*************************menu********************************\n"); printf("*==========================================*\n"); printf("*1>mima\n2>nowfloat*\n"); printf("*3>oldfloat\n4>exit(0)*\n"); printf("**\n"); printf("*---------------------------------------------------------*\n"); printf("*-------------www--------*\n"); printf("Pleaseinputwhichyouwant(1-4): "); scanf("%d",&ch); switch(ch) { case1: mima();break; case2: nowfloat();break; case3: oldfloat();break; case4: exit(0); default: printf("cuowu\nqingjinxingzhengquecaozuo\n"); } } }_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 班级 成绩 管理