学生成绩管理系统实践指导.doc_第1页
学生成绩管理系统实践指导.doc_第2页
学生成绩管理系统实践指导.doc_第3页
学生成绩管理系统实践指导.doc_第4页
学生成绩管理系统实践指导.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程项目实践指导课程项目1:学生成绩管理系统 问题描述随着我国高等教育的快速发展,高校在校学生人数不断增加和教学管理模式的转变,使学生成绩管理工作越来越复杂和繁重,因此各高校迫切需要一款易用的学生成绩管理系统来简化教学管理。本课程项目要求完成一个简单的学生成绩管理系统。具体要求如下: 要求(1) 信息录入功能(10分)。按班录入学生信息,包括:学生姓名,学号,性别,以及五门课(高等代数、英语、数据结构、大学物理、C语言程序设计)成绩,并把学生相关信息保存至文件,文件以班为单位存取,例如信计07-1班的文件为:xj071.txt文件格式如下:学生姓名 学号 性别 高等代数、英语、数据结构、大学物理、C语言程序设计张三 000000001 男 70 80 90 76 89李四 000000002 女 80 89 70 20 30(2)信息查询功能(10分)包括:a. 按名字查看某个学生的所有信息b. 按学号查看某个学生的所有信息c. 按班查看某个班所有学生的所有信息(3)信息载入功能(10分)输入班级名称后,能把相对应的文件信息读入至内存,进行(2)功能的各项查询功能。(4)成绩统计功能(10分)输入班级名称后,在屏幕上输出该班的平均分。 Step by Step(1) 建立项目:CourseManage建立工作空间建立项目项目类型为:An empty project(空项目)添加文件:C+ source File最终结果main函数有多种形式:(1) void main(int argc,char * argv)(2) void main()(3) int main(int argc,char * argv)(4) int main()argc表示从命令行传入的参数个数,argv表示传入的参数,argv0表示应用程序的名称,argv1表示第一个参数,argv2表示第二个参数加入main函数后(2) 创建应用程序菜单(框架):#include void buildmenu()printf(n);printf(*n);printf(学生成绩管理系统n);printf(*n);printf(功能列表n);printf(1:信息录入n);printf(2:信息查询n);printf(3:信息载入n);printf(4:成绩统计n);printf(n);void buildInfoQueryMenu()printf(-n);printf(ta:按名字查询n);printf(tb:按学号查询n);printf(tc:按班级查询n);printf(-n);int main(int argc,char *argv)int choice;char querychoice;dobuildmenu();printf(你选择的功能:(按其他键退出):);scanf(%d,&choice);switch(choice)case 1:/TO DO:此处加入信息录入功能,以函数的形式实现此处为注释,/为C+风格的注释,可以用/*/代替break;case 2:此函数的作业时清空输入缓冲区,VC6.0如果不用此函数,querychoice取得的是上次敲键的结果。stdin表示标准输入文件/TO DO:信息查询dobuildInfoQueryMenu();printf(你选择的功能(按其他键返回上一层菜单):);fflush(stdin);scanf(%c,&querychoice);switch(querychoice) case a: /TO DO:按名字查询 break; case b: /TO DO:按学号查询 break; case c: /TO DO:按班级查询 break; while(querychoice = a & querychoice =1 & choice =4);return 0;运行一下:自己测试一下,(enjoy!)(3)下面开始做各个功能,让我们先完成功能1:信息录入从键盘输入各项学生信息,首先需在内存中维护下面的数据结构(想像一下手工怎么做,肯定是先在纸上画一张表格,然后把信息填入,再在纸上做各项统计工作,内存的作用跟纸相近):张三00000001男信计1班7890658966李四00000002男信计1班那我们应该怎样表达这样的数据结构呢?观察上面的表,我们发现表示由行组成的,每行的结构(列)又是一样的,这样我们可以把表看成是由行组成的有序集合,那我们的问题就转变成两个小问题:(1) 怎样表达一行?(2) 怎样表达一个有序集合?对于问题(1),我们可以用struct表达任何东西,所以我们定义如下结构体来代表一行信息:对于问题(2):如何表达一个类型全为studentinfo的集合,最自然的想法是用数组,但开辟多大空间的数组呢,可以采用如下方案,先定义一个最大可能的数组容量(表示可能的学生总数),再定义一个整数表示真实填入的学生数,定义如下:试着加入班级信息!存储表格的数据结构!MAXSTUDENTNUM和studentnum的含义如下图:张三00000001男studentnum = 2信计1班7890658966李四00000002男信计1班MAXSTUDENTNUM = 5在内存中有了对于数据的表达后,我们就可以写输入数据的函数了,如下(部分,需补全):上面代码的功能是把从键盘输入的数据存入我们定义的数据结构(线性表),接下来的功能是根据要求把这些数据存入文件,所以我们再写一个方法:下面有定义,注意调用方式注意:此处用了C+中的引用类型,表示传过来的是地址,如果参数是结构体,一般需要传地址,也可用studentinfo *代替需补全需要注意的是,在写函数的时候,为了使得所有函数不管位置都能被调用,需要在文件的开头,进行函数原型说明,如下:在实际操作中,为了调试功能,一般在没写函数实际内容之前,先写好调用方式!在功能选择后调用这些函数:至此,功能1基本完成。(4)功能2为信息查询

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论