C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章

上传人:E**** 文档编号:89346036 上传时间:2019-05-23 格式:PPT 页数:409 大小:1.25MB
返回 下载 相关 举报
C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章_第1页
第1页 / 共409页
C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章_第2页
第2页 / 共409页
C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章_第3页
第3页 / 共409页
C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章_第4页
第4页 / 共409页
C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章_第5页
第5页 / 共409页
点击查看更多>>
资源描述

《C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章》由会员分享,可在线阅读,更多相关《C语言程序设计项目化教程高职 教学课件 ppt 作者 李培金 全书教案 第3章(409页珍藏版)》请在金锄头文库上搜索。

1、,项目3 学生成绩管理系统的,3.1 问题情境 3.2 问题分析 3.3 项目设计与实施 3.4 知识拓展 3.5 应用实践,本项目要求通过指针和数组配合使用的方式,完成学生成绩管理系统中的学生成绩录入、成绩查询、成绩修改等操作。将各个操作功能设计成独立的函数,各函数间设计良好的接口参数,通过数组存储学生的学号和成绩信息,通过指针实现对学生学号和成绩信息的录入、查找和修改等操作。,3.1 问 题 情 境,项目2通过数组基本实现了学生成绩管理系统的常用功能。但是,数组作为函数参数在函数调用、参数传递过程中显得比较繁琐,而且数组采用数组名和下标的方式引用数据元素对于数据元素处理起来也显得不便。有没

2、有更为简便的实现方法呢?那就是采用指针类型。使用指针类型能够更为简便和高效地解决函数调用过程中地址的传递问题,通过指针还能方便地访问数组中的元素。通常在C语言程序设计中,指针和数组配合使用是一种常用的方式。,3.2 问 题 分 析,根据本项目的任务需求,在设计思路上,首先,通过自顶向下、逐步求精的结构化设计思想对整个程序进行功能模块划分;其次,根据各个功能模块进行函数接口的设计和函数调度关系的设计;最后,在各个函数功能实现过程中应注意:,3.3 项目设计与实施,(1) 对用户输入的可能错误检查是否严格? 程序的容错性如何。(如学号重复、成绩不符合规定等。) (2) 如何实现插入(添加)、删除、

3、排序等的一般处理功能。 (3) 如何实现多门课程的处理。 (4) 如何保存输入及修改结果。 (5) 菜单如何组织。,【项目分析】 学生成绩管理系统从功能上来讲,包含学生成绩的录入、修改、查询、输出等一系列具体任务,因此,本系统在设计思路上仍然按照模块化程序设计的基本思想去完成各功能模块的程序设计,在数据处理上引入了指针,主要通过指针实现数据的传递与操作,完成系统各项功能的实现。,【项目实施】 程序实现所需要的预处理命令及函数声明语句如下: #include #include #include /控制台相关函数定义 #include #define MAX_NUM 45 void input(i

4、nt *StudentID,int *StudentScore,int Max); /成绩输入,int findStudentID(int StudentID,int findID,int Max); /查找指定学号的学生 void DisplayScore(int *StudentID,int *StudentScore,int Max); /显示所有记录 void DlspMainMenu(); /显示主菜单 void DlspQueryMenu(); /显示查询子菜单 char choice(); /获取用户在菜单中的选择,int ScoreInput(int *ID,int *Scor

5、e); void QueryScore(int *ID,int *Score,int Max); void EditScore(int *ID,int *Score,int Max); 功能模块1:主菜单设计模块 (1) 模块功能:主菜单操作界面程序设计。 (2) 接口函数:DispMainMenu()。 (3) 程序代码如下: void DispMainMenu() ,printf(“*学生成绩管理系统V1.0*n“); printf(“*t1-成绩录入 2-成绩修改 *n“); printf(“*t3-成绩查询 0-退出 *n“); printf(“*n“); printf(“请选择(0-

6、3):“); /*显示菜单信息*/ 程序运行结果如图3-1所示。,图3-1 主菜单显示程序运行结果,功能模块2:成绩录入模块 (1) 模块功能:完成录入学生学号及成绩的C语言程序设计。 (2) 接口函数:ScoreInput(int *ID, int *Score),input(int *StudentID, int *StudentScore, int Max)。 (3) 程序代码如下: void input(int *StudentID, int *StudentScore, int Max) ,int i; for (i=0;iMax;i+) printf(“n请输入第%d个学生的学号:

7、t“,i+1); scanf(“%d“,StudentID+i); printf(“tt成绩:t“); scanf(“%d“,StudentScore+i); ,printf(“n您的输入信息是:n“); DisplayScore(StudentID, StudentScore, Max); int ScoreInput(int *ID, int *Score) int number; printf(“n请输入本次录入的学生人数:“); scanf(“%d“, ,if (numberMAX_NUM) printf(“您输入的人数太多,大于%d人n“, MAX_NUM); return (0);

8、 input(ID,Score,number); /number是局部变量 return (number); ,图3-2 录入学生成绩的运行图,功能模块3:成绩查询模块(查询所有学生成绩) (1) 模块功能:显示所有学生的成绩信息。 (2) 接口函数:DispMainMenu(),void DisplayScore(int *StudentID, int *StudentScore, int Max)。 (3) 程序代码如下: /查询菜单设计 void DispQueryMenu() ,printf(“*请选择查询方式*n“); printf(“*tl-按学号查询 2-查询全部记录 *n“);

9、 printf(“*n“); printf(“请选择(1-2):“); /显示菜单信息 ,/*取用户对菜单的选择,返回用户选择的对应字符键ASCII值*/ char choice() char select; while(!kbhit(); /kbhit()等待用户输入,非0有击键,适用Microsoft平台 select=getche(); /取用户输入,回显,getch()则不回显,适用Microsoft平台 return (select);, /*显示所有的学生成绩信息*/ void DisplayScore(int *StudentID, int *StudentScore, int

10、Max) int i; printf(“n序号t学号tt成绩n“); for(i=0;iMax;i+) printf(“%dt%dt%dn“,i+1,*(StudentID+i),*(StudentScore+i); printf(“n“); void QueryScore(int *ID, int *Score, int Max) char select; int i, findID;,DispQueryMenu(); select=choice(); switch(select) case 1: printf(“n按学号查询n请输入学生的学号:“); scanf(“%d“, if (i=f

11、indStudentID(ID,findID,Max)!=-1) ,printf(“n查找结果如下:n“); printf(“t学号tt成绩n“); printf(“t%dt%dn“,IDi,Scorei); else /没有找到 printf(“您输入的学号不存在!n“); break; case 2:,printf(“n查询全部学生信息!n“); DisplayScore(ID,Score,Max); break; default: printf(“选择错误!n“); ,图3-3 所有学生成绩查询运行结果,功能模块4:成绩查询模块(按学号查询学生成绩) (1) 模块功能:按照指定的学生学号

12、查询学生成绩信息。 (2) 接口函数:int findStudentID(int *StudentID,int findID,int Max)。 (3) 程序代码如下: int findStudentID(int *StudentID,int findID,int Max) ,int i; for (i=0; iMax; i+) if (*(StudentID+i)=findID) break; if (iMax) /找到iMax,说明是执行break后结束循环,即找到指定的学生 return i; else return -1; ,图3-4 按学号查询程序运行结果,功能模块5:学生成绩修改模块 (1) 模块功能:按照输入的学生学号,修改指定的学号所对应的成绩信息。 (2) 接口函数:void EditScore(int *

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号