ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:162.46KB ,
资源ID:14388059      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14388059.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统C语言Word文件下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统C语言Word文件下载.docx

1、 张玉印 200800800439 1 概述1.1 目的回顾并加深对C/C+程序设计相关知识的理解,能够用C/C+独立完成简单数据管理软件的编写。1.2 计划1.2.1 看到这些C/C+的设计题目,首先想到要用C做因为C+毕竟没有学过,要在这么短的时间内学好C+,并能运用自如做出这么大的题目有点困难。1.2.2 首先,温习一下C语言课本,重拾一下当时学C时的好的思想和方法。1.2.3 再者,拿出一下午和晚上的时间做完排序题目。1.2.4 最后,拿出全部精力攻克学生成绩管理软件编程。1.2.5 写实验报告2 课程设计过程及结果2.1 编程环境及工具2.1.1 环境变量的应用和设置2.1.2 批处

2、理及命令行编译2.1.3 C/C+工程的组成,软件开发环境的使用,重点掌握软件调试。2.2 排序与简单分析简单分析:题目是 “把一个完全由小写字母组成字符串按照每个字母的出现次数从低到高重新排序”。首先分析题目要求的是字母,而且是小写字母,不同字母出现的次数相同的在一起并按字母表顺序排列,出现次数越多越靠后,如aassdfkjiowea回车后变成defijkowssaaa。程序设计思路:首先对输入的字符串用比较法进行排序,然后从前往后找字母个数分别为1,2,3,4,5直到N的字符,输出即可。由于字母是事先排好序的,所以从前往后输出字母的顺序是字母表顺序。2.3 综合设计2.3.1 功能实现2.

3、3.1.1 文件读入fscanf(文件指针,格式字符串,输入表列);文件的读入是fscanf的应用。首先在工程文件夹中建立一个文本文件,fscanf以“r”(只读方式)打开这个文本文件,并将这个文本文件中的内容以空格键为分隔符读入内存中。读入程序如下图:2.3.1.2 信息显示信息显示同样是fscanf函数的应用,首先将文件中的数据读入内存中,然后用标准输出函数printf输出,学生信息表的信息输出如右图,编写的程序如下图,成绩表显示时其中的课程号要换成课程名称输出。此功能遇到的问题:用fscanf函数时写入浮点数成绩时,只能写成如下格式:fscanf(p2,%s%s%f,stusi.num,

4、um,&stusi.score);而不能写成:%s%s%.1f否则将显示一团乱码。2.3.1.3 数据录入fprintf(文件指针,格式字符串,输入列表);fprintf 函数和fscanf 函数都是格式化读写函数,对象都是磁盘文件。Fprintf和fscanf功能相反,它是把内存中的数据写到文件型指针fp指定的文件上去。首先用fopen函数以“w”方式打开文件,如果没有此文件就以该文件名在工程文件夹中新建一个文件。数据录入的设计思路是:在屏幕中输入一条记录,通过scanf函数写入结构体(即内存)中,再通过fprintf函数把内存中的数据输出到指定的文件中。注意输入时要做一下判断,判断输入的学

5、号是否是学生表中存在的数据,如是在学生表中不存在则不往内存中输,屏幕打印“error num input!”,需重新输入。输入的课程号和输入学号一样需做一下判断。再者成绩文件打开时要以文本追加形式打开,也可以用读写文本形式打开,再用指针定位到文件末尾进行数据录入。输入完成后可以查看输入后的学成成绩表,如图。数据录入的部分主要程序如下所示:p2=fopen(C.txt,r+); fseek(p2,0,2);/对文件的追加 for(i=0,c= ;c=i+) printf(n输入学生的成绩记录:n学号: for(j=0;j=0;) scanf(%s,stusi.num); for(k=0;kN;k

6、+) if(strcmp(stusi.num,studk.num)=0) j=1; if(j=1) break; else printf(error num input! 课程号:,um); if(strcmp(um,um)=0)成绩: scanf(%f,& fprintf(p2,%4s%4s %.1f n,stusi.num,um,stusi.score); L=L+1;n *n c=getch(); fclose(p2);2.3.1.4 成绩查询成绩查询是文件中的数据输入数据区后,进行的一系列逻辑性的查找。通过输入学号进入事先定义的字符型数组,然后通过在“C.txt”中查找该学号的学生所修

7、课程的成绩输出。改程序的算法为: Step1:用scanf函数将文件中的数据导入内存数据区中; Step2:定义字符型数组存储输入的学生学号; Step3: 输入学号在文件3中查找是否有相同的字符串,若有则执行step4,若无则执行step ; Step4:通过学号在文件1中查找到该生的姓名班级输出; Step5:通过学号找到对应的课程号,在文件2中找到相对应的课程名称和相应的学分。课程名称输出,学分要根据文件3中所得的分数输出,如果分数小于60分则输出实得学分为0,如果分数大于60,则学分按原样输出,执行step7; Step6: 输出“该学生无修课程记录请重新输入学号”; Step7:输入

8、一个字符判断该字符是否为空格键,若是的则跳到step3,否则往下执行; Step8:算法结束。2.3.1.5 对指定的课程的成绩排序功能 此功能的算法为:Step1:建立一个整型数组和一个字符型数组;Step2:输入课程号存在字符型数组中;Step3:将字符型数组中的字符串和文件3中的课程号进行比较,如果有相同的字符串则把此结构体的标号记下来存到整形数组中;Step4:用整形数组的值作为文件3结构体的标号,在文件3中找相同的值,若存在相同的值则执行step5,否则执行step ;Step5:,进行比较为此标号的分数,比较法进行从大到小排列输出;Step6:根据文件3中的课程名找到相应的学号,找

9、到学号后在文件1中输出对应的姓名;Step7:根据文件3中的课程号在文件2中找到相应的课程名输出,执行step9;Step8:输出“*”;Step9:输入一个字符,判断是不是空格键若是则返回step2;否则输出“*”,算法结束。2.3.1.6 对成绩记录的删除设计思路:要想删除文件中的数据,首先以只读方式“r”打开,将这个文件中的数据输入内存中关闭文件型指针,然后以只读方式“w”打开(此时文件为空文件),然后将内存中的和要删除的数据不相同的记录再输出到文件,即可完成删除。此功能设计算法:将文本中的数据输入内存中;将该文本删除后重新建立,创建字符型数组。要是删除学生记录,则输入学号,在文件1中逐

10、个查找当学号和文件1中的记录不相同时输出到文件中;在文件3中查找当文件3中的数据和输入时学号不相同时导出到文件3中;要是删除课程中的记录,则采用相同的方法在文件2和文件3中查找,不相同时重新导出到相应的文件中;接收一个字符,判断是不是空格键,若是则返回step2判断是否打印已经删除后的文件,若是则把相应的文件打印出来,结束;否则不打印,算法结束。2.3.1.7 保存功能重新建立三个文件用来存放上次操作后保存的数据,当执行保存功能时因为原来的文件已经在操作中更改,故不需任何操作推出即可;当不执行保存功能时,由于要恢复上次操作后(及本次操作前的数据),就可以把新建的三个文件中的数据重新输出到本次操

11、作的文件中即可完成不保存。2.3.2 程序异常处理指针定位问题:如果用fopen打开文件往内存中输入数据后,此时文件型指针已经指向末尾,若此时再想调用文件中的数据就会出错,必须再关闭文件再打开或者使用文件型指针定位使文件指针指向文件开头。删除功能问题:删除时当输入的数据较少时该功能能够准确无误的把删除后的数据输出到文件夹中,并能正确显示;当删除数据较多时如删到五个以上时就会出现问题,其实输出到文件中的数据没有问题,显示时就会有少的数据。成绩录入功能问题:该功能存在和删除功能同样的问题,当文件中的成绩记录小于20时该功能能够成功录入,并能正确显示,超过20条记录时,就会出现如下图的对话框,我知道

12、这是内存分配问题导致的,但始终未能改出来。2.3.3 特色功能界面友好:功能菜单选择时,看到大部分学生的程序运行时,遇到需要选择的情况就要输入功能但后的数字,通过switch()语句进行转换到相应的功能,感到很乏味就想到了本程序的选择法,运用了转义字符“r”的回车不换行功能,用Tab键实现跳格(也可以换成其他键的ASCII)。选择时就只需按一个键(如Tab键)选择相应的功能再按回车键就行了,无需满键盘找相应的字母按,这种方式实现了操作界面友好。进入菜单时,有几个光标闪几下才能进入功能菜单,这运用了时间延迟函数,老师您验程序时很生气地说我是故意的,说实在的我是怕您看不到,之前故意把闪动次数调大的

13、。这个设计对我这样的小程序无疑是毫无用处,我想对以后编的大程序是不是会有一定的缓冲作用,再此只是表明了我的一个想法。能够完成保存功能:未想到用保存功能之前,添加或删除时总是在操作前备份一次,操作后在复制进去,这样很是麻烦,想到程序运行结束时能不能自己把原来操作前的数据再导进已经操作的文件中去。保存函数功能是:删除数据或者添加数据时如果添加错了或删除错了能够恢复原来的数据即不保存。3 课程设计总结此次课程设计不仅让我们回顾了C语言,也让我们更好的了解C语言的应用和编程方法,尤其是最后一道编程题,虽然编的程序不尽是非常完美,但让我学到了很多东西。猛然发现当初在课堂上学到的还不到C的一个角,C语言的许多功能都未曾涉及到。上课时编的程序最多不过五十行,如今编的程序竟然达到五六百行,这是当时想都没有想到的。以前看到的那些眼花缭乱的程序我也可以实现,心中莫名升起一种自豪感。软件各功能之间除基础的之外几乎没有什么联系,这让我明白了各大公司为什么分模块编程,有的功能很好而有的功能不是很完美,这也许是软件之间的优异性所在吧。以前觉得文件是很高级的编程方法,如今用起来也能得心应手,对该软件

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1