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

更新时间:2023-06-06 05:04:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

C语言课程设计报告

题 目:设 计 者:专业班级:学 号:指导教师:

学生成绩管理系统

计算机应用技术101班 高国红

2011年 12 月 23

张帅 20101712101 日

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

学生成绩管理系统课程设计

报 告 目录

一.系统软件环境 (3) 二.课程设计目的 (3) 三.内容与要求 (3) 四.程序主要功能 (4) 五.系统功能设计 (4) 六.函数实现功能说明 (6) 七.调试分析 (9) 八.心得与体会 (10) 九.各功能模块的实现及其程序清单 (10) 十、附页源程序清单 (11)

学生成绩管理系统课程设计

报 告

一.系统软件环境:

本程序主要运行在:Visual C++ 6.0(主要)

Turbo C/C++ 3.0

Turbo C 2.0 二.课程设计目的:

本课程设计的系统是早已在很多领域均有应用,是一个很不错的教学管理系统,而且其功能更是相当强大、界面更加友好的应用型软件。

而现在我的设计并非是重走旧路,而我的设计主要目的在于学习并深刻地掌握对C语言的基础知识以及其实践经验,更好地在以后的学习中能够更好地运用学习。特别是像这种比较多运用

到一些课本上没有教的知识,比如说,像清屏函数CLRSCR、菜单函数MENU等。许多都是一开始就没有涉及到的知识,在自已的设计中得到了提升,更加重要的一点就是增加了自已的实践操作能力。 三.内容与要求:

内容:成绩信息,内容如下:

姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 03 68 82 56 王露 04 56 45 77

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

陈东明 05 67 38 47

请用C/C++编写一系统,实现学生信息管理,软件的入口界面应包括如下几个方面: 要求:

(一)功能要求: (1)信息维护:

要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息 (2)信息查询:

要求:查询时可实现按姓名查询、按学号查询 (3)成绩统计:

要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(二)其它要求:

(1)只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读 (2)至少采用文本菜单界面(如果能采用图形菜单界面更好) (3)可自动增加新功能模块(视情况可另外加分) (4)写出课程设计报告,具体要求见相关说明文档

四.程序主要功能:

本系统的主要功能有如下: (1)、新输入学生的详细信息(包括:学号、姓名、语文成绩、数学成绩、英语成绩) (2)、增加学生的信息 (3)、删除学生的信息 (4)、查询学生的信息 (5)、统计学生的成绩

注:由于本人能力有限,不能完全地将所有的功能模块做出来;但我相信我能够再接再

厉,继续开发下去的,并向人性化发展。

五.系统功能设计: (一)、本系统的总体框架图:

(二)、本系统的总体流程图:

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

(1)、MENU函数

是定义一个菜单函数,其功能在于输出菜单界面供使用者选择。

其运行结果如下图:(以下的皆是在Visual C++ 6.0 中的运行结果)

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

(2)、CREAT函数

是定义用于创建新的链表,并带回一个指向链表头的指针。其功能是输入最初

的学生信息。其运行结果如下图:

(3)、ADD函数

是定义用于再次输入学生信息,并将所有的学生信息按学号排序。

其运行结果如图:

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

(4)、DEL函数

是定义用于删除学生信息。

其运行如下图:

(5)、SEARCH函数

是定义义用于查询学生信息,主要是学号的查询。

其运行结果如下图:

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

(6)、TAXIS函数

是定义用于统计学生的成绩信息,采用排序函数的方式对学号/数学等的排序。

其运行结果如下图:

七.调试分析:

因在不同的环境中运行是有不同的结果,以下分三个环境中说明: (1)、在Turbo C 2.0

在这个环境下运行警告之处比较多,在调试时采用的图象处理函数在其它两个环境中不能运

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

行。

例如:在原程序中加入

#include “graphics.h” { int gdtiver=DETECT,gmode;

Initgraph(&gdriver,&gmode,“图象处理函数的路径”); Cleardevice(); Setbkcolor(颜色值); }

**在Turbo C/C++ 3.0 中的Error提示是:

Undefined symboc _c closegraph in module 原因在于:TC 3.0中对图象的处理函数有不足之处。 **在Visual C++ 6.0 中的Error提示是:

BGI Error:Graghics not initialized (use’initgraph’) Cannot open includefile:”graphics.h” No such file or diretory

原因在于:VC 6.0中对图象处量理的函数与TC中的不一样。 (2)、在Turbo C/C++ 3.0

在这个环境中运行到输入学生姓名时就出错: Error:(在用户窗口中可以看到)

Scanf:floating point formats not linked Ab mormal program termination **原因在于:连接浮点库错误。

**解决办法:在主函数中加入:fioat arg,*pointer=&arg; 即可运行。

(3)、在Visual C++ 6.0

在此环境下运行比较好,其界面十分友好并且能正常运行。 如有需要可加入清屏函数: #include “process.h” { system(“cls”); } 八.心得与体会: (1)、通过本次对C

功地运用各类函数、循环变量、结构化的程序设计,以及结构体、指针的使用。 (2)、但在学习中发现,编程确实不是很好做的,并非是你想要就能完成的,它需要的是认真、仔细地对待每一个程序块,特别是在对指针的使用时更加困难,那些指针指来指去,一不小心就会看错,编译不出来。 (3)、由于学生的我只是大一而已,没能够完完全全地把程序做出来,而且程序中有许多不足之处不能够正确地将它改正,但总体上是可以运行的。

九.各功能模块的实现及其程序清单: (1)、各功能模块的实现(请参照第六点:函数实现功能说明) (2)、程序清单(请见附页)

参考文献

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

[1] 谭浩强编著.C程序设计第三版.北京:清华大学出版社,2005 [2] 林瑞仲等编著.C语言实例解析精粹.北京:人民邮电出版社,2005

附页:

学生成绩管理系统源程序清单

#include "stdio.h" #include "stdlib.h" #include "malloc.h"

#define ABC sizeof(struct scoreflie) #define ABCDE

#include "string.h" struct scoreflie {int number; char name[10]; float yuwen; float shuxue; float yingyu;

struct scoreflie *next; }; typedef struct scoreflie score; int n,k;

功能(1):创建链表,输入学生成绩信息

score *creat(void) {score*head;

score *p1,*p2,*p3,*max; int i,j; float fen; char t[10]; n=0;

p1=p2=p3=(score *)malloc(ABC);head=p3; /*开辟一个新单元*/ printf("Please Input Students Message,Piess(0)is out!\n");

repeat1: printf("Input the numder(N.>0):");/*输入学号,学号应大于0*/ scanf("%d",&p1->number); while(p1->number<0) {getchar();

printf("Is wrong, Input again the numder:");

scanf("%d",&p1->number);}/*输入学号为字符或小于0时程序报错,提示重新输入学号*/ if(p1->number==0)

goto end;/*当输入的学号为0时,转到末尾,结束创建链表*/ else

{ p3=head; if(n>0)

{for(i=0;i<n;i++)

{if(p1->number!=p3->number)

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

p3=p3->next; else

{ printf("The numder is Repetition,Input again!:\n");

goto repeat1;/*当输入的学号已经存在,程序报错,返回前面重新输入*/ } } } }

printf("Input The Name:");

scanf("%s",&p1->name);/*输入学生姓名*/

printf("Input yuwen Score(0~100):");/*输入语文成绩,成绩应在0-100*/ scanf("%f",&p1->yuwen);

while(p1->yuwen<0||p1->yuwen>100) {getchar();

printf("Is wrong,Input again:");/*输入错误,重新输入语文成绩直到正确为止*/ scanf("%f",&p1->yuwen);}

printf("Input shuxue Score(0~100):");/*输入数学成绩,成绩应在0-100*/ scanf("%f",&p1->shuxue);

while(p1->shuxue<0||p1->shuxue>100) {getchar();

printf("Is wrong,Input again:");/*输入错误,重新输入数学成绩直到正确为止*/ scanf("%f",&p1->shuxue);}

printf("Input yingyu Score(0~100):");/*输入英语成绩,成绩应在0-100*/ scanf("%f",&p1->yingyu);

while(p1->yingyu<0||p1->yingyu>100) {getchar();

printf("Is wrong,Input again:");

scanf("%f",&p1->yingyu);}/*输入错误,重新输入英语成绩直到正确为止*/ head=NULL;

while(p1->number!=0) { n=n+1; if(n==1) head=p1; else

p2->next=p1; p2=p1;

p1=(score *)malloc(ABC);/*开辟一个新单元 以下的注释内容同上*/ printf("Please Input Students Message,Piess(0)is out!\n"); repeat2:printf("Input the numder(N.>0):"); scanf("%d",&p1->number); while(p1->number<0) {getchar();

printf("Is wrong, Input again the numder:"); scanf("%d",&p1->number);} if(p1->number==0) goto end; else

{p3=head;

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

if(n>0)

{for(i=0;i<n;i++)

本文来源:https://www.bwwdw.com/article/vk11.html

Top