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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C课程设计学生成绩管理系统Word下载.docx

1、数据的删除:如删除指定学号、或者指定姓名的学生及其选修课的信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出 学生信息;列出不及格学生清单(学号、姓名、不及格的课程和成绩)。考虑用文件把数据保存起来(可选)。可行性分析2.3.1如上所示,该系统要求处理一些学生成绩的基本数据,包括两个方面:学生身份信息和学生成绩信息。具体可以考虑创建两个类,一个学生基本信息类,一个学科基本信息类。这样既可以保持二者的独立性,也可以使之相关联。2.3.2该系统不仅要求能录入一些基本数据外,还要能对这些数据进行处理,比如修改,删除,插入,查询等。对这些操作的实现可以暂时放开面向对象

2、,而采用面向过程的方法。另外,因为对数据库了解不多,可以考虑用文件保存的形式将数据保存起来,最后在查找的时候采用文件读取。3.功能模块设计类的分析与设计由上面的需求分析可以知道,在本程序中,需要处理两大类数据:一个是学生的身份基本信息,另一个是该同学的课程基本信息。而且要求二者既要相互联系,又不能太相互制约。于是可以考虑创建两个类: Stu 类(学生信息类)和 Course 类(课程信息类)。为了使二者相互关联,可以让 Course 的一个类对象作为Stu 对象的一个基本数据成员。具体如下:3.1.1 Course类由于学生只需要一些课程信息,故在该类中只有一些基本的成员数据,不涉及成员函数之

3、类的对数据进行操作的函数。把对学生信息进行处理的函数放在Stu类中。成员成员属性访问类型course_num数据成员publiccourse_nameregular_scoreFinal_scoreaverage_scorestudy_scorerebulid由于这些数据信息是作为Stu类的一个信息的,为了使stu类中的函数可以访问这些成员数据,故要将访问类型定义为public型。3.1.2 Stu类正如上面所述,Course类的一个对象作为Stu类的一个数据成员,但是正常情况下,一个同学是不只一门科目的,所以要定义一个Course类的数组来存放同一学生的不同科目信息Course course

4、20。为了其信息的隐蔽性,我们把所有的数据成员都声明为private。接下来,要处理的就是函数了。有两种处理方式,但到底是采用成员函数还是采用友元函数呢在本例中,我采用的是友元函数。原因如下:(1)采用友元函数,可以使类的结构变得更加简单,有助于整个设计过程的思考。(2)使用友元函数,将函数独立于类的结构之外而采用类对象传参的方式,可以使该函数的独立性大大提高,有助于在其他地方的使用。Class_numprivatenumnamesexageroomtelaverageNum_of_courseorderCourse20友元函数:Input( Stu stud )输入学生信息Statistic

5、( Stu stud )学生信息输出Lookup( Stu stud )查找学生信息Modify( Stu stud )修改学生信息Delete( Stu stud ) 删除学生信息Output( Stu stud )输出全部信息Sort( Stu stud )对学生进行排序Insert( Stu stud ) 插入学生信息Showfail( Stu stud ) 查找不及格学生Write( Stu stud )文件写入函数Read( Stu stud ) 文件读取函数void menu()菜单函数,以供选择整体流程 上面已经主要分开介绍了两个独立的类及其内部成员,现在来介绍整个学生系统功能实

6、现的流程。 4.主要模块的算法说明信息的保存和读取 在本次课程设计中,因为还没有接触到数据库的有关知识,故采用文件流来写入和读取信息。主要涉及到fstream类。在系统运行过程中,会利用该类将学生的基本身份信息和基本课程信息全部存到自定义的一个文件中,当需要使用这些数据时,例如查询,修改,显示等,再将需要的读取出来进行相关的操作。 对信息的处理4.2.1 数据的录入和插入 数据的录入和插入基本一样,这里只介绍录入。 当在主菜单里选择信息录入时,会跳出录入页面,只需依次输入提示的信息即可。在整个大体框架上,采用一个while语句判断是否继续录入。注意在录入学生成绩信息时。需要输入要登记的课程数目

7、。其中成绩信息的各科综合成绩和是否重修不需要手动录入,它会在登记完平时成绩和末考成绩后自动生成。当所有信息录入完成后,该生所有科目的平均成绩average也会自动计算。4.2.2 数据的查询 所谓数据的查询,就是把存放在文档中的学生数据读取出来并加以输出。 当只针对某个人的查询时,需要输入学号或姓名,再调用read()函数将相关的数据读取出来,至于需要输出哪些,可以自己控制。 当要输出所有学生的数据是时,首先调用read()函数返回数据的个数count,即学生的个数。最后采用for循环控制依次输出每一个学生的信息。4.2.3 数据的修改当修改数据时,只需输入需要修改学生的学号即可。首先会将该生

8、的相关信息输出出来。然后再提示重新输入信息。执行到这里时基本就和前面的数据录入,插入一样了。4.2.4 数据的删除 本例中,对数据的删除比较简单。只需输入学号或姓名,当查找到该生的相关信息后。将后面一个学生的信息赋值给他,相当于该生的信息被覆盖,也就是删除。4.2.5 数据的排序 在需求分析中,有一项功能,按学生成绩平均分降序排列。此功能还是比较好实现的。在输入学生数据时,当所有课程分数输入完毕,会自动生成一个平均分,该数值就是学生类Stu中的average数据成员。然后采用冒泡法比较大小,把这些学生的数据重新排列,最后再依次输出。5.程序运行结果 菜单欢迎界面 信息的录入如上所示,依次输入需

9、要填写的信息,其中“该门课的综合成绩”和“是否重修”是不需要输入,系统自动执行的。最后还会提示是否继续填写(YN)。信息的显示在这个功能里面主要显示全部同学的身份信息和平均分: 信息的查询信息的查询分两种方式:当你选择1 时,表示按学号查询,当你选择2 时,表示按姓名查询。下面介绍的是按学号查询。如上所示,当输入需要查询的同学的学号时,会输出该同学的身份信息以及每一门课的综合成绩,还有这些课的平均成绩。 信息的修改当输入需要修改的学生学号时,会首先输出该同学现在的已经存在的信息:然后提示重新输入:输入完成后,会提示是否保存: 信息的删除信息的删除也分两种类型:选择不同的方式,进入不同的界面按姓

10、名删除按学号删除 按平均分降序排列会输出学生的一些基本信息和平均分与名次。 查看全部信息由于一个同学的全部信息较多,于是分成两部分输出:身份信息和成绩信息在身份信息中,主要包括班级,学号,姓名,年龄,性别,宿舍,电话等。在成绩信息中,包括该同学的各科成绩,是否重修,获得的学分,以及所有科目的平均分。 输出不及格学生信息 当选择该功能时,首先会输出该同学的学号,姓名和班级,然后再输出他的不及格科目以及分数,如下所示。 退出系统6.课程设计总结(1)回顾此次课程设计,感慨良多,从刚拿到题目时的一脸茫然,到最后能成功解决,觉得此次课程设计我又学到了好多知识。首先在这里要感谢一下王磊指导老师,经过他的

11、细心讲解,我才有了一个完整的设计思路。(2)在这次课程设计的过程中,最大的感觉就是对知识的不熟悉,一些C+基础知识似懂非懂,结果总要去查书才能写出不出错误的代码,结构就是耗费了大量的时间,事倍功半。经历这次教训,我想会对我以后的计算机语言学习起到一定的帮助。(3)在这次的课程设计过程中,通过查书的学习,对C+的了解又加深了不少,包括类的结构,以及怎样在类外访问类类的私有成员等,我想下次再写基于对象的程序时,一定会得心应手。(4)还有比较重要的收获就是类的相互嵌套使用,就拿本例来说,在一个类中设置一个数据成员,而该数据成员确是另一个类的对象。这对理解数据类型起到了不少的作用。(5)总的来说,这次

12、程序设计让我获益匪浅,对C+语言也有了进一步的认识:语言功能高、表达能力强、使用灵活方便、目标程序效率高等等。C+语言是在国内外广泛使用的一种计算机语言,相信除了以上优点,还有许多我们还未发现,希望能在以后的学习中有更深入的认识。7.参考文献(1)C+程序设计(第二版) 谭浩强 编着(2)visual C+从入门到精通 明日科技 编着(3)C+编程思想 (美)埃克尔 编着 刘宗田 译8.附录(源代码)#include fstreamlass_num studi.numstudi.namestudi.age studi.sexstudi.roomstudi.telstudi.num_of_cou

13、rsestudi.averageendl; for(int j=0; jstudi.num_of_course; j+) myFilestudi.coursej.course_numstudi.coursej.course_namestudi.coursej.regular_scorestudi.coursej.final_scorestudi.coursej.average_scorestudi.coursej.study_scorestudi.coursej.rebulidstudi.numstudi.namestudi.agestudi.sexstudi.roomstudi.telstu

14、di.num_of_coursestudi.average; myFilestudi.coursej.course_numstudi.coursej.course_namestudi.coursej.regular_score studi.coursej.final_scorestudi.coursej.average_scorestudi.coursej.study_scorestudi.coursej.rebulid; return count ; lass_num;loop: um; int c=0; while(ci) c+; if(studi.num=studi-c.num) cou

15、tstudi.name;年龄:studi.age;性别:studi.sex;宿舍:studi.room;电话:studi.tel;请输入需要登记的学科数目: int j; float sum=0; for(j=0;请登记第j+1门课的信息:课程编号:studi.coursej.course_num;studi.coursej.course_name;平时成绩:studi.coursej.regular_score;末考成绩:studi.coursej.final_score;学分:studi.coursej.study_score; studi.coursej.average_score=st

16、udi.coursej.regular_score*+studi.coursej.final_score*;该门课的综合成绩是: if(studi.coursej.average_score提示:是否继续写入学生成绩(Y/N)sign; i+; Write(stud,i); lass_numt system(pause);void Lookup(Stu stud) um-s1)!=0&i对不起,无法找到该学生的信息!-班级:studi.class_num学号:平均分: break; case 2:clsendl 查找学生成绩 =请输入需要查找学生的姓名:s2; int flag=0; for(i=0; in; i+) if(studi.name=s2) flag=1; if(flag=0)void Modify(Stu stud) um-s)!对不起,无该学生的成绩-该学生的信息-班级学号姓名年龄性别宿舍电话-请重新输入该学生的信息studi.class_num;studi.num; 请输入需要登记的学科数目: studi.coursej.average_score=studi.coursej.regular_score*+studi.coursej.final_sc

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

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