学生成绩管理系统设计思路_第1页
学生成绩管理系统设计思路_第2页
学生成绩管理系统设计思路_第3页
学生成绩管理系统设计思路_第4页
学生成绩管理系统设计思路_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、学生成绩管理系统设计思路-基于VC的学生成绩管理系统制作人 05020804班 张军 20083013211. 实现功能:本管理系统主要实现对学生成绩的档案管理操作。通过操作,可实现输入、添加、修改、删除学生的个人信息以及英语、语文、数学三科成绩;对学生成绩进行总分合计、平均分计算、单科排名以及综合成绩排名按照学生姓名、学号进行学生及其成绩的综合查询;建立学生成绩数据档案,调入、存储相关信息。2. 设计思路设计结构简图3. 设计内容及函数实现本操作系统共9个菜单栏:1:输入学生的资料;2:从文件调入学生信息;3:查询学生成绩;4:删除学生成绩 ;5:追加学生资料;6:显示学生成绩 ;7:统计学

2、生成绩;8:保存输入的学生资料;9:学生成绩排序;操作者可以根据不同需求选择不同的操作。(1)主函数:主函数main,功能:通过调用creat, search, del, add, print, ststistics, save, taxis等函数,实现学生成绩查询与管理功能首先用while(1)控制,保障在每次菜单操作后返回主页面。之后调用menu (k)函数,用swtich对menu (k)的返回值进行判断,决定进行何种操作。对于具体的返回值,又调用其他函数,实现对学生成绩管理系统的各个功能的操作。(2 ) 菜单界面函数:int menu(int k)/*函数menu,功能:菜单选择界面*

3、/考试成绩管理系统作者:张军 班级:机电学院 学号:2008301321*1输入学生的资料 2从文件调入资料 3查询学生的成绩4删除学生的资料 5追加学生的资料 6显示学生的成绩 7统计学生的成绩 8保存输入的资料 9对成绩进行排序*该函数提供给使用者菜单形式的目录,供使用者选择想要进行的操作scanf("%d",&k)。使用者输入的操作编号后,此函数将k值返回给主函数,主函数又通过switch(k)此值传递给相应的子函数,实现函数的再次调用。(3) 输入学生信息:因为学号不可能为0,所以设计当输入学生信息时输入学号为零则自动返回菜单函数,这样就可以无限次输入直到输

4、入学号为零了。使用goto end函数当输入的学号为0时,转到末尾,结束创建链表。这时候输入结束,用户按任意键返回到主菜单;该函数中还包含一些校检函数像:while(p1->number<0) while(p1->yuwen<0|p1->yuwen>100),以及有重复学号或姓名提示的函数来帮助用户输入有效的、正确的学生信息。(4) 删除学生信息:该学号提供给用户按学号删除;首先判断文件中是否有学生信息,如果文件内容是空,就输出“没有该学生记录!”。请用户先调入文件或者输入学生的相关资料然后再进行相应的删除操作;对于要删除的的学生,利用while(numbe

5、r!=p1->number&&p1->next!=NULL)来控制指针的移动,直到找到学生的相关信息的节点,再把下一个节点的学生的档案信息赋值给该生,使该生的信息覆盖,后面的学生依次推进,这样就完成了该生的信息删除。最后提示用户删除成功并显示剩下的学生人数。 此外还有一些错误提示的设计如printf("%d不存在此学生!n",number);来提示用户正确的进行操作。(5) 查找学生信息函数:该程序用switch(a)函数设计了两种查询方式-1.按学号查找;2.按姓名查找。当用户选择了一种方式后,会提示用户输入查找学生的学号或姓名,如果还没有导入

6、或者输入学生的信息,就会提示“没有学生资料!”当函数中有了学生的资料或者用户已经调入资料之后,程序就使用while(number!=p1->number&&p1->next!=NULL)和if(strcmp(name,p3->name)=0)来控制指针的移动和找到相应学生的记录;再利用输出函数将指针指向的学生记录输出到屏幕上。该函数还使用了while(number!=0)来使用户可以连续查询学生信息直到输入的学号或姓名为0时就返回主菜单了。(6) 追加学生信息:该程序提供了向已经调入的文件中追加学生信息的操作,利用if(p1->next=NULL) p1

7、->next=p0;p0->next=NULL;等语句来找到文本的末尾并且创建新的链表使之与原来链表的结尾相连,再把新增加的学生信息写入指针指向的文本位置。成绩排序函数:(7) 显示所有学生信息函数:该函数主要使用输出函数printf来实现,首先看有没有学生信息,再用指针指向存在的文本,用do while()语句来实现所有信息的输出。(8) 统计学生信息:用switch(x)语句实现对1个人总分和平均分;2单科平均分;3总分最高分;4总分最低分等四个方面来进行学生相关信息的统计,用sum1=p->yuwen+p->yingyu+p->shuxue;来计算学生总分,

8、然后利用指针的移动找到相应的单科最高与最低分数。(9) 保存学生信息:先创建一个文本来写入学生信息:if(fp=fopen(filepn,"w+")=NULL)将相关的表头先写入该文本,再利用fprintf函数将指针指向的内容写入文本之中,关闭文件指针,文件就生成并且保存输入的学生信息了。(10) 学生成绩排序:利用switch(x)函数来实现对1按学生学号排序;2按学生姓名排序;3按语文成绩排序;4按英语成绩排序;5按数学成绩排序等操作,再利用if(max->number>p->number) k=max->number; max->numb

9、er=p->number; p->number=k;等语句来实现学生的学号排序,其他排序都是这种形式,这里就不在赘述。3. 心得体会通过本次C程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病(熬过好多个通宵),同时养成了多利用图书馆的这一很好的资源,因为借了好几本C语言的相关资料,查过好多书;这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常周密且逻辑性很强的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。通过本次课程设计,我初步学会了程序设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,这为以后的大学毕业设计论文打下了一个初步的基础使我收益最大的是享受到了一种成功的喜悦,在这两个星期之中从开始的确定论文题目,然后是上网和上图书馆查找资料,编写C语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之

温馨提示

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

评论

0/150

提交评论