C语言课程设计学生成绩管理系统报告书

目录一 课题意义 31.1 成绩管理系统的背景分析 31.2学生成绩管理系统设计的目标的分析 5二 算法分析 62.1学生成绩管理系统模块图 62.2学生成绩管理功能介绍 7三 学生成绩管理系统设计功能的实现 83.1 成绩管理系统的登录页面 83.2 学生成绩管理系统的录入 103.3 学生成绩管理系统的显示 123.4 学生成绩管理系统的删除 133.5 学生成绩管理系统的查询 163.6学生成绩管理系统的保存 17四 程序测试 20五 总结 21六 参考文献 22 一 课题意义1.1 成绩管理系统的背景分析 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境计算机的最大好处在于利用它能够进行信息管理使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性尤其对于复杂的信息管理,计算机能够充分发挥它的优越性 管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。
但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件因此,开发这样的一套成绩管理系统成为很有必要的事情 学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询等操作,同时一样的方面学生对自己各科成绩查询,学习1.2学生成绩管理系统设计的目标的分析《学生成绩管理系统》采用结构化程序设计,各函数模块功能单一,结构清晰,较好的利用了指针、结构体数组等数据类型以及不同的使用方法,主要语句都加了详细的注释,将难以理解的指针、结构体数组等数据类型、函数调用以及文件操作等内容较好的融合到该系统中。
该系统能够实现对整个学生信息的添加、修改、删除、查询,保存等操作在设计的过程中,建立了清晰的结构体层次,能进行简单的界面设计,能够实现友好的人机交互有清晰的程序流程图和数据结构定义当中主要是用了一些简单的C语言的语法,算法以及函数,文件跟数组在保存学生信息中用到了结构体数组和指针文件 二 系统模块的设计2.1学生成绩管理系统模块图学生成绩管理系统中分为六个功能:一是系统管理登录页面、二是系统管理录入、三是系统管理显示、四是系统管理删除、五是系统管理查询、六是系统管理保存模块图如下:2.2学生成绩管理功能介绍 各主要模块功能说明如下: 登录:各功能的选择界面,实现人机交互;录入:录入学生成绩或者添加学生记录在信息表末尾,并且在必要时可以返回上层保存信息;显示:显示全部已经排好序的学生记录,方便用户查看;删除:按学号删除一条或者多条学生记录,同时返回上层保存记录;查询:按学号查询学生记录,并显示出该学生所有信息;保存:把录入、删除、添加、并且排好序的学生信息保存在文件当中,方便下次查询或录入学生信息,文件名需要用户自己输入;(注:该系统中不要乱输入字母,最好一切都要提示进行,否则可能会出现死循环或界面无法返回等) 三 学生成绩管理系统设计功能的实现3.1 成绩管理系统的登录页面流程图如下:代码如下:void welcome()/*欢迎界面*/{printf("\n\n\n\n\n\n");printf("\t\t ╭══════┤成绩管理系统├═══════╮\n");printf("\t\t ║ ......欢迎进入航天技术学院....... \t║\n");printf("\t\t ║ ***********Enter 进入*********** \t║\n");printf("\t\t ╰════════════════╯\n\t\t\t\t\t"); getchar();} void menu() { system("cls");printf("\n\n\n\n\n");printf("\t\t╭══════┤成绩管理系统├═══════╮\n");printf("\t\t║ \t║\n");printf("\t\t║ 1. 录入学员信息 \t║\n");printf("\t\t║ 2. 显示学员信息 \t║\n");printf("\t\t║ 3. 成绩排序信息 \t║\n");printf("\t\t║ 4. 添加学员信息 \t║\n");printf("\t\t║ 5. 删除学员信息 \t║\n"); printf("\t\t║ 6. 修改学员信息 \t║\n");printf("\t\t║ 7. 查询学员信息 \t║\n");printf("\t\t║ 8. 从文件读入学员信息 \t║\n");printf("\t\t║ 9. 删除文件中学员信息 \t║\n"); printf("\t\t║ 10. 保存学员信息 \t║\n");printf("\t\t║ 11. 退出 \t║\n");printf("\t\t╰═════════════════════╯\n"); printf("\t\t \1选择菜单选项(1-11):Enter进入\n"); /*为下一功能选择模块*/}运行效果图如下:3.2 学生成绩管理系统的录入流程图如下:代码如下:void input()/*原始数据录入模块*/{ int i=0; char ch; do { printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1); printf("\n输入学生学号:"); scanf("%d",&stu[i].no); fflush(stdin);/*清除前面信息*/ printf("\n输入学员姓名:"); fflush(stdin); gets(stu[i].name); printf("\n输入学员性别:"); fflush(stdin); gets(stu[i].sex); printf("\n输入学员成绩1:"); fflush(stdin); scanf("%d",&stu[i].score1); printf("\n输入学员成绩2:"); fflush(stdin); scanf("%d",&stu[i].score2); printf("\n输入学员成绩3:"); fflush(stdin); scanf("%d",&stu[i].score3); printf("\n\n"); i++; now_no=i; printf("是否继续输入?(Y/N)"); fflush(stdin); ch=getch(); system("cls");/*系统清屏*/ } while(ch!=n&&ch!=N); if(ch==N||ch==n) menu();}运行效果图3.3 学生成绩管理系统的显示流程图如下:代码如下:void display()/*显示数据函数*/{ int i; char as; average(); do { printf("\t\t\t班级学员信息列表\n"); printf("\t学号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n"); for(i=0;i 我采用了各种不同的数据(如正常数据、错误数据等)对语法和逻辑上可能产生的错误进行了大量的测试,测试中发现该系统在运行中有太多的不稳定,同时跟设计要求有太大的出入,但后来我在老师的帮助下对其进行了一系列的改正、修复、以及重新编写某些函数,并且对程序中的每一个块、一条语句和逻辑思路都进行了反复测试,运行结果基本符合设计要求五 总结 通过本次课程设计使我对C语言有了更深一步的了解,加深了对C语言的印象让我了解更多的如何调试程序、处理错误的方法使自己对C语言的使用得到了进一步的提高,同时书本上的知识得到了进一步的巩固,加深了我对程序的深层理解,清楚的知道了程序中每一步的功能,在编写中是多么重要的,一个好的结构只能在程序中才能表现出它本身的价值,结构设计的合理性决定了这个程序的命运知道了一些函数的位置如何排放,在今后的学习中我会更加注意这些方面,争取让自己能有进一步的提高从这里我也体会到了,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件相信这次的课程设计为我今后的学习,工作会带来不一样的精彩非常感谢老师对我各个方面的指教六 参考文献[1].王萍. C++面向对象程序设计. 北京:清华大学出版社,2002 [2].徐孝凯. 面向对象程序设计实验. 北京:中央广播电视大学出版社,2003 [3].邵维忠,杨芙清. 面向对象的系统分析. 北京:清华大学出版社,1998 [4].郑人杰,殷人昆等. 实用软件工程. 北京:清华大学出版社,1997 [5].谭浩强. C程序设计(第二版). 北京:清华大学出版社,1999 [6].谭浩强. C语言程序设计教程(第二版). 北京:高等教育出版社,1997 [7].杨路明等. C/C++程序设计教程. 湖南:湖南科技出版社,2001 21。