C语言课程设计报告要求与示例

合集下载

c语言课程设计报告详细版

c语言课程设计报告详细版

c语言课程设计报告详细版一、课程目标知识目标:1. 掌握C语言的基本语法和结构,包括变量声明、数据类型、运算符、表达式和语句。

2. 理解并能运用控制结构,如顺序、选择和循环结构进行程序设计。

3. 学会使用数组、函数和指针进行程序开发,并能理解它们在解决复杂问题中的应用。

4. 熟悉基本的输入输出操作,文件操作以及简单的错误处理机制。

技能目标:1. 能够编写简单的C程序,解决实际问题,展现出逻辑思考和问题解决的能力。

2. 能够阅读和分析C程序代码,理解程序的结构和执行过程。

3. 能够使用调试工具检查和修正程序中的错误,提高程序的稳定性和可靠性。

4. 能够通过小组合作,完成一个综合性的项目,培养团队协作和项目管理的初步技能。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发探究计算机科学的热情,形成主动学习和终身学习的习惯。

2. 培养学生的创新思维和批判性思维,鼓励尝试不同的解决方案,勇于面对编程中的挑战。

3. 增强学生的信息意识和责任感,理解程序在现实生活中的应用和影响,认识到编程对社会发展的贡献。

4. 通过项目实践,培养学生的集体荣誉感,加强沟通能力,形成良好的团队合作精神。

课程性质分析:本课程为高年级的C语言程序设计,旨在通过项目驱动的教学方法,使学生在实践中掌握C语言的编程技能,并能够在日常生活和学习中应用。

学生特点分析:学生具备一定的逻辑思维能力,对计算机编程有一定兴趣,但个体差异较大,需要针对不同层次的学生设计不同难度和类型的教学活动。

教学要求:1. 结合实际案例进行教学,强调理论知识与实践操作的结合。

2. 注重培养学生的实际编程能力和问题解决能力,鼓励学生自主探索和协作学习。

3. 通过形成性评价和总结性评价相结合的方式,全面评估学生的学习成果。

二、教学内容1. C语言基础- 变量与数据类型- 运算符与表达式- 输入输出函数- 顺序结构程序设计2. 控制结构- 选择结构(if-else)- 循环结构(for、while、do-while)3. 函数与数组- 函数定义与调用- 数组的使用- 二维数组4. 指针与字符串- 指针的概念与使用- 指针与数组- 字符串处理函数5. 文件操作与错误处理- 文件的打开与关闭- 文件的读写操作- 简单错误处理6. 综合项目实践- 项目需求分析- 功能模块划分- 编程实现与调试- 项目展示与评价教学内容安排与进度:第一周:C语言基础第二周:控制结构第三周:函数与数组第四周:指针与字符串第五周:文件操作与错误处理第六周至第八周:综合项目实践教材章节关联:《C程序设计》第一章至第五章,涵盖课程教学内容中的所有知识点,为综合项目实践打下基础。

c课程设计报告案例

c课程设计报告案例

c 课程设计报告案例一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构和算法,能够运用C语言编写简单的程序。

具体包括以下三个方面的目标:1.知识目标:学生需要了解C语言的基本语法、数据结构和常用算法,能够阅读和编写简单的C程序。

2.技能目标:学生能够运用C语言进行编程实践,掌握基本的编程技巧和调试方法,提高解决问题的能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和好奇心,引导学生运用计算机技术解决实际问题,培养学生的创新精神和团队合作意识。

二、教学内容根据教学目标,本课程的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点和优势。

2.第二章:基本数据类型和表达式,学习C语言的基本数据类型、运算符和表达式。

3.第三章:控制语句,掌握C语言的条件语句、循环语句和跳转语句。

4.第四章:函数,学习C语言的函数定义、函数调用和参数传递。

5.第五章:数组和字符串,掌握一维、多维数组的操作和字符串的处理方法。

6.第六章:指针,理解指针的概念和用途,掌握指针的基本操作。

7.第七章:结构体和联合体,学习用户自定义数据类型,掌握结构体和联合体的使用。

8.第八章:文件操作,了解文件的概念和文件操作的基本方法。

9.第九章:算法和程序设计,学习常用的排序算法和查找算法,培养学生的程序设计能力。

三、教学方法为了实现教学目标,本课程采用多种教学方法相结合的方式,包括讲授法、案例分析法和实验法等。

1.讲授法:教师通过讲解C语言的基本概念、语法和算法,帮助学生建立知识体系。

2.案例分析法:教师通过分析典型程序案例,引导学生学会运用C语言解决实际问题。

3.实验法:学生通过上机实验,动手编写C程序,巩固所学知识,提高编程能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程、在线编程练习平台4.实验设备:计算机、网络环境、编程调试工具五、教学评估本课程的教学评估采用多元化的评估方式,包括平时表现、作业、考试等,以全面客观地评价学生的学习成果。

C语言课程设计实验报告要求

C语言课程设计实验报告要求

题名学生:***** 电子** 学号****实验地点:现代教育技术中心 ***房间实验日期和时间:2014年*月*日-*月*日实验类别:课程设计实验类型:设计性一、实验环境操作系统:windows XP编程工具:Microsoft Visual C++ 6.0二、实验目的和要求实验目的:(1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作算法。

(2)使学生进一步掌握程序设计、编写、调试能力。

(3)使学生了解软件开发的基本步骤和内容。

实验要求:实验设备信息包括:设备编号、设备种类(如:微机打印机扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。

试设计一实验设备信息管理系统,使之能提供以下功能:(1)能够完成对设备的录入和修改(2)对设备进行分类统计(3)设备的查询三、实验内容和结果1)总体设计和模块划分2) 详细设计数据结构定义:*********A. 主函数void main(){Node *equip;FILE *fp;int flag;Node *p,*q;printf("\t\t\t\t设备管理系统\n");printf("\n1添加记录\n");printf("\n2修改记录\n");printf("\n3显示记录\n");printf("\n4统计分类记录\n");printf("\n0*-EXIT-*\n");printf("请输入你要操作的序号:");scanf("%d",&flag);switch(flag){case 0: printf("\n>>>>>>>>>>提示:已经退出系统,ByeBye!\n");break;case 1: Add(equip); break; //增加记录case 2: Modify(equip); break;//修改记录case 3: Disp(equip); break;//显示记录信息case 4: Tongji(equip); break;//统计记录default: printf("\n>>>>>>>>>>提示:输入错误!\n"); break;}}}B. 各功能模块设计(1)输入模块Struct shebei{ char ID[10]; char name[15]; char kind[15]; char over[15]; char yesno[10]; char time[10]; char price[10];};…….(2)追加模块void Add(Node *equip) //添加记录{Node *p,*r,*s;char id[10]; //先用于输入ID,也用于判断是否跳出循环r=equip;s=equip->next; //使s为第一个有用的结点while(r->next!=NULL) //这个循环的作用是使rr=r->next; //将指针置于最末尾while(1){printf(">>>>>>>>>>提示:输入0则返回主菜单!\n");printf("\n请你输入设备ID号:");scanf("%s",id);if(strcmp(id,"0")==0) break;p=(Node *)malloc(sizeof(Node)); //申请空间strcpy(p->data.ID,id);printf("\n 请输入设备名称:"); scanf("%s",p->); printf("\n 请输入设备种类:");scanf("%s",p->data.kind);printf("\n 请输入报废日期:"); scanf("%s",&p->data.over);printf("\n 请输入设备是否报废:"); scanf("%s",&p->data.yesno); printf("\n 请输入设备购买时间:"); scanf("%s",&p->data.time); printf("\n 请输入设备价格:"); scanf("%s",&p->data.price);printf(">>>>>>>>>>提示:已经完成一条记录的添加。

c语言课程设计报告模板及范文

c语言课程设计报告模板及范文

c语言课程设计报告模板及范文一、引言引言部分在课程设计报告中扮演了导读的角色,通常包括以下内容:•背景:简要介绍课程设计的背景和目的。

•目的:阐述课程设计的目标和意义。

•项目概述:对设计项目的总体概况进行描述。

•报告结构:简要介绍后续报告的组织结构。

二、需求分析需求分析是课程设计过程中的重要环节,它用于明确项目的目标和功能,通常包括以下内容:•问题定义:对设计中需要解决的问题进行明确定义。

•功能需求:详细描述设计项目需要实现的各项功能。

•性能需求:根据设计的要求,确定设计项目的性能指标。

•接口需求:描述设计项目与其他模块或系统之间的接口要求。

三、设计方案设计方案部分是课程设计报告的核心,通常包括以下内容:•总体设计思路:对设计方案的总体思路进行简要介绍。

•模块划分:按照功能将设计项目分成各个模块,并描述各个模块的功能和关系。

•模块设计:对各个模块进行详细的设计说明,包括算法、数据结构等。

•界面设计:如果设计项目包含界面,需要对界面进行详细的设计说明。

•流程图:结合文字和图表展示设计项目的流程。

四、实现与测试实现与测试部分是课程设计报告中比较实际的内容,通常包括以下内容:•开发环境:列出完成设计的开发环境和所使用的工具。

•代码实现:详细描述设计项目的代码实现方法。

•测试方法:列出设计项目的测试方法和测试样例。

•测试结果:给出设计项目在测试样例下的实际运行结果。

五、总结与展望总结与展望部分对整个课程设计进行总结,并对未来的优化和拓展提出展望,通常包括以下内容:•成果总结:对整个课程设计的成果进行总结和评价。

•存在问题:对设计项目中存在的问题和不足进行归纳和总结。

•改进方向:针对存在问题提出改进的方向和思路。

•未来展望:对设计项目未来的拓展和优化方向进行展望。

六、参考文献在课程设计报告中,如果有引用的书籍、论文或网络资源,需要列出参考文献。

范文示例:```c #include <stdio.h>void main() { printf(。

C语言课程设计设计报告书

C语言课程设计设计报告书

C语言课程设计设计报告书一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量声明、数据类型、运算符、表达式等基本概念。

2. 学会使用C语言进行顺序结构、分支结构和循环结构的编程。

3. 掌握函数的定义、声明和调用,理解局部变量和全局变量的作用域。

4. 了解数组、指针和字符串的使用,能够运用它们解决实际问题。

技能目标:1. 培养学生编写、编译和调试C程序的能力,提高编程技巧。

2. 培养学生运用C语言解决实际问题的能力,如数值计算、数据处理等。

3. 培养学生分析问题、设计算法和编写程序的能力,提高逻辑思维能力。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,提高自主学习能力。

2. 培养学生合作学习、分享经验的精神,提高团队协作能力。

3. 培养学生严谨、认真、负责的学习态度,养成良好编程习惯。

课程性质:本课程为高中年级C语言课程,以实践为主,注重培养学生的编程能力和逻辑思维能力。

学生特点:高中年级学生对计算机编程有一定的基础,好奇心强,学习积极性较高,但需加强实践操作和问题分析能力的培养。

教学要求:结合课程内容和学生特点,采用任务驱动、案例教学等方法,引导学生主动探究、动手实践,提高编程技能和解决问题的能力。

同时,注重培养学生良好的编程习惯和团队合作精神。

通过本课程的学习,使学生能够具备C 语言编程的基本能力,为后续计算机课程学习打下坚实基础。

二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式。

教材章节:第一章2. 控制结构:顺序结构、分支结构(if语句、switch语句)、循环结构(for循环、while循环、do-while循环)。

教材章节:第二章3. 函数:函数定义、声明、调用;局部变量和全局变量;递归函数。

教材章节:第三章4. 数组:一维数组、二维数组;数组的初始化、遍历和排序。

教材章节:第四章5. 指针:指针的定义与使用;指针与数组、字符串、函数的关系。

课程设计报告模板c语言

课程设计报告模板c语言

课程设计报告模板c语言一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握变量定义、数据类型、运算符等基础知识;2. 学会使用控制结构,如顺序结构、分支结构和循环结构;3. 掌握函数定义、声明和调用的方法,理解局部变量和全局变量的概念;4. 了解数组、字符串和指针的使用,并能运用它们解决实际问题。

技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 培养良好的编程习惯,如规范命名、合理注释、代码缩进等;3. 学会使用编译器进行程序编译、调试和运行;4. 能够阅读和分析简单的C程序代码,提高编程能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情;2. 培养学生的逻辑思维能力,提高问题解决能力;3. 培养学生的团队协作意识,学会与他人分享编程经验;4. 培养学生严谨、细心的学习态度,养成良好的编程习惯。

课程性质:本课程为初中年级的信息技术课程,旨在让学生掌握C语言编程的基本知识和技能。

学生特点:初中学生具有较强的逻辑思维能力和学习兴趣,但对编程知识了解较少。

教学要求:结合学生特点,注重理论与实践相结合,通过实例分析、编程实践等方式,使学生能够掌握C语言的基本知识,提高编程能力。

在教学过程中,关注学生的情感态度,激发学习兴趣,培养良好的编程习惯。

将课程目标分解为具体的学习成果,以便于后续教学设计和评估。

二、教学内容1. C语言基础知识- 变量定义、数据类型和运算符- 输入输出函数的使用- 顺序结构程序设计2. 控制结构- 分支结构(if、if-else、switch)- 循环结构(for、while、do-while)3. 函数- 函数定义、声明和调用- 局部变量和全局变量- 递归函数4. 数组、字符串与指针- 数组的使用和操作- 字符串的基本操作- 指针的概念和用法5. 编程实践- 编写简单程序,解决问题- 分析实例代码,提高编程能力- 调试程序,找出并修复错误教学内容安排与进度:第一周:C语言基础知识,顺序结构程序设计第二周:控制结构(分支、循环)第三周:函数的定义和调用,递归函数第四周:数组、字符串与指针第五周:编程实践与总结教材章节关联:教学内容与教材相应章节紧密关联,确保学生能够在学习过程中系统地掌握C 语言知识。

c语言课程设计报告要求

c语言课程设计报告要求

c语言课程设计报告要求一、课程目标知识目标:1. 理解C语言课程设计的基本要求,掌握C语言编程的基本规范。

2. 学会运用C语言编写程序,实现简单的算法和数据结构。

3. 掌握C语言中的函数定义、调用和模块化编程思想。

技能目标:1. 能够运用所学知识独立完成C语言课程设计任务,具备分析和解决问题的能力。

2. 学会使用调试工具,对程序进行调试和优化,提高代码质量。

3. 培养良好的编程习惯,提高编程效率。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习热情,增强自信心。

2. 培养学生的团队协作精神,提高沟通与表达能力。

3. 培养学生严谨、认真、负责的学习态度,树立正确的价值观。

课程性质:本课程为C语言编程实践课,注重培养学生的编程能力和实际操作能力。

学生特点:学生具备一定的C语言基础,对编程感兴趣,但独立完成课程设计的能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,以任务驱动教学,引导学生主动探究,培养学生的编程能力和解决问题的能力。

在教学过程中,关注学生的学习进度,及时给予指导和反馈,确保课程目标的实现。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容本课程教学内容紧密结合课程目标,选取以下重点内容进行讲解和实践:1. C语言基本语法:变量定义、数据类型、运算符、表达式、控制语句(如if、for、while等)。

2. 函数:函数定义、调用、参数传递、返回值、递归。

3. 数组与字符串:一维数组、二维数组、字符串操作。

4. 指针:指针定义、指针与数组、指针与函数、指针与动态内存分配。

5. 结构体与联合:结构体定义、结构体数组、结构体指针、联合体。

6. 文件操作:文件打开、关闭、读写、定位。

教学大纲安排如下:第一周:C语言基本语法复习,讲解课程设计要求。

第二周:函数定义与调用,实践编写简单函数。

第三周:数组与字符串操作,完成相关编程任务。

第四周:指针概念及操作,实践指针在程序中的应用。

c语言课程设计设计报告

c语言课程设计设计报告

c语言课程设计设计报告c语言课程设计设计报告「篇一」c语言课程设计实验报告第一章基础掌握1.1 实验目的掌握C程序设计编程环境Visual C++,掌握运行一个C程序的基本步骤,包括编辑、编译、链接和运行。

(]1.2 实验要求在报告中记录建立、保存C程序实习过程。

1.3 实验基本内容编写程序,在屏幕上显示一个短句“Hello World”(1)程序:1)编译如下程序:#includeVoid main{printf (“Hello World! ”);}2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

(2)运行结果:输出结果:Hello World!总结:掌握C语言程序设计的基本框架,能够编写简单的程序。

第二章数据类型2.1 实验目的(1)掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。

()(2)通过编程进一步理解和掌握运算符的确切含义和功能。

2.2 实验要求(1)在报告中记录建立、保存C程序实习过程。

(2)完成典型题目,分析遇到的困难和实验中的收获。

2.3 实验基本内容输入程序,观察输出结果 1>./*test2.1c*/1)编译如下程序: #includevoid main{char ch; int k;ch='a',k='b';printf("%d,%x,%c",ch,ch,ch,ch,k); printf("k=%%d ",k) }2)链接。

执行Build-命令。

3)运行。

执行Build Execute 命令。

显示结果。

4)关闭程序工作区。

2>./*test2.2c*/1)编译如下程序: #includevoid main{float a1,a2; double b1,b2; a1=1234.12; a2=0.000001; b1=1234.12; b2=0.000001;printf("%f,%l f ",a1+a2,b1+b2);}2)链接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计和调试过程规范化要求1)需求分析分析系统功能需求以及用户操作流程。

2)概要设计在需求分析的基础上,确定系统总体框架(系统功能结构图)。

3)详细设计定义数据存储结构,并设计实现系统功能的具体算法,画出各算法的工作流程图。

4)代码设计根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返回到主菜单,继续选择其他功能执行。

源程序要求书写规范,结构清晰。

重点函数的重点变量,重点功能部分均要求给出清晰的程序注释。

5)程序调试程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进行测试,然后分析测试结果。

如果程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和改正。

如果程序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方案,并比较不同算法之间的优缺点。

课程设计报告及书写内容要求课程设计任务完成后,每位同学必须独立书写一份课程设计报告,注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

课程设计报告的内容应包括以下五个部分:1)需求分析:包括设计题目、设计要求以及系统功能需求分析;2)概要设计:包括系统总体设计框架和系统功能模块图;3)详细设计。

包括主要功能模块的算法设计思路以及对应的工作流程图;4)主要源程序代码。

包括存储结构设计说明,以及完整源程序清单;5)调试分析过程描述。

包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等);6)总结。

包括课程设计过程中的学习体会与收获、对C语言和本次课程设计的认识以及自己的建议等内容。

附录1:设计报告封面苏州科技学院二○○九~二○一○学年第二学期电子与信息工程系课程设计报告书课程名称:程序设计基础实践班级:通信一班学号:1020119126姓名:胡广垠指导教师:任健平二○一○年四月附录2:课程设计报告示例1.题目《学生成绩管理系统》的设计与实现2.功能(1)每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。

(2)输入功能:可以一次完成无数条记录的输入。

(3)显示功能:完成全部学生记录的显示。

(4)查找功能:完成按姓名查找学生记录,并显示。

(5)排序功能:按学生平均成绩进行排序。

(6)插入功能:按平均成绩高低插入一条学生记录。

(7)保存功能:将学生记录保存在任何自定义的文件中,如保存在:c:\score。

(8)读取功能:将保存在文件中的学生记录读取出来。

(9)有一个清晰美观界面来调用各个功能3.要求(1)整个系统均用C语言实现;(2)利用指针、链表来实现学生成绩的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将学生成绩信息保存在文件中。

(6)可以将学生信息从文件中读取出来。

4.设计内容整个系统除了主函数外,另外还有10个函数,实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能。

各个函数的详细设计说明分别如下:4.1主函数main()利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

4.2初始化函数STUDENT*init()这是一个无参函数,里面只有一个语句,它的作用是使链表初始化,使head的值为NULL。

比如:没有这个函数的话,在你没有输入任何数据的情况下,去执行显示功能的时候会显示一些乱码!4.3菜单选择函数int menu_select();这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择,中间还显示系统当前的时间。

等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!4.4输入记录函数STUDENT*create()这是一个无参函数,用来执行第学生成绩记录的输入,当学生为0时停止输入,函数结束后,带回一个指向链表头的指针head。

算法:先声明一个首节点head,并将head->next设为NULL。

每输入一个数据就声明一个新节点p,把p->next设为NULL,并且链接到之前列表的尾端。

4.5显示记录函数void print(STUDENT*head)这是一个不返回值的有参函数,形参为“链表头的指针”,负责对全部学生成绩记录的输出,不足之处就是不能对学生成绩进行分页显示。

算法:先将p结点的指针指向第一个结点,将p结点(即第一个结点)的数据输出。

然后再将p结点的指针指向p指针的的指针(即下一结点),将p结点(即第一结点)的数据输出。

重复执行此步聚直到p指针指向NULL为止。

N-S4.6查找记录函数void search(STUDENT*head)这是一个不返回值的有参函数,形参为“链表头的指针”,实现按学号对某个学生进行查找,并显示所查找到的记录。

算法:采用线性查找法往下一个节点查找。

输入所要查找的学生的学号s,设一个指针变量p,先指向第一个结点,当strcmp(p->name,s)&&p!=NULL时,使p后移一个结点,如果p!=NULL,输出p所指的结点。

N-S4.7删除记录函数STUDENT*delete(STUDENT*head)这是一个有参函数,形参为“链表头的指针”,先输入要删除的学生记录的学号,找到后显示该学生信息,等确认后便可按“Y”进行删除。

算法:从p指向的第一个结点开始,检查该结点中的num值是否等于输入的要求删除的那个学号。

如果相等就将该结点删除,如不相等,就将p后移一个结点,再如此进行下去,直到遇到表尾为止。

N-S4.8排序函数STUDENT*sort(STUDENT*head)这是一个有参函数,形参为“链表头的指针”,按学生成绩的平均分高低进行排序,还可以显示名次。

N-S流程图:4.9插入函数STUDENT*insert(STUDENT*head,STUDENT*new)这是一个有参函数,形参有两个,一个是“链表头的指针”,一个是“待插入指针”,按照原来成绩平均分的高低进行插入,插入后会重新进行排序,并返回。

算法:先将学生的成绩按平均分由高分到低分进行排序,再插入一个新生的结点,要求按平均分的高低顺序插入。

先用指针变量p0指向待插入的结点,p1指向第一个结点。

如果p0->average<p1->average,则待插入的结点不应插在p1所指的结点之前。

此时将p1后移,并使p2指向刚才p1所指的结点。

重复以上的步骤,直到p0->average>=p1->average为止。

这时将p0指向的结点插到p1所指结点之前。

但是如果p1所指的已是表尾结点,则p1就不应后移了。

如果p0->average比所有结点的average都小,则应将p0所指的结点插到链表末尾。

如果插入的位置既不在第一个结点之前,又不在表尾结点之后,则将p0的值赋给p2->,使p2->next指向待插入的结点,然后将p1的值赋给p0->next,使得p0->next指向p1指向的变量。

如果插入位置为第一个结点之前,则将p0赋给head,将p1赋给p0->next。

如果要插到表尾之后,应将p0赋给p1->next,NULL赋给p0->next。

最后再调用排序的函数,将学生成绩重新排序.N-S流程图如下:4.10保存数据到文件函数void save(STUDENT*head)这是一个不返回值的有参函数,形参为“链表头的指针”,可以把学生记录保存在电脑上由自己任意命名的二进制文件。

N-S流程图如下:4.11从文件读数据函数STUDENT*load()这是一个不返回值的有参函数,形参为“链表头的指针”,根据输入的文件地址进行读取。

5.调试分析(1)刚开始没有那个初始化函数,程序运行后,没有输入任何数据就试得去执行显示功能,结果显示的是一些乱码!加入初始化函数后,这种现象也随之消失。

(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功能,学生成绩记录是按学号的反顺序显示的,试着在其中增加一些语句,希望能把学号按正常顺序显示,但暂时没有成功,所以在输入成绩时只能按学号反顺序输入,最后就按学号正常顺序输出了。

(3)刚开始时,先把成绩按平均分排序,再插入一个学生的成绩,执行显示功能,虽然插入的学生的成绩能正常插入,但该学生的名次为0。

后来,在插入成绩之后,调用排序函数,把所有成绩重新排序一次。

(4)在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,当学号为0的时候则停止输入。

(5)输入太多个学生的成绩时,屏幕显示不能控制为一页一页显示,所以为了方便起见,不要输入太多记录,十七左右为最佳。

(6)在没有输入任何信息的情况下,去执行排序功能,最后显示有一个记录,学号、姓名为空白,成绩都为0,名次为1。

(7)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。

6.总结经过一个多星期的C语言课程设计,感觉自己收获不少!首先是:链表本来上课是没有上的,但这个课程设计里面主要都是用链表,因为要达到这样的功能,使用链表相当方便,但不容易理解,所以在这方面我很了很多的时间看课本和参考课外书,使C语言的知识强化了不少。

其次,在做课程设计的过程中,发现了平时很多没有注意到的问题,例如:返回值函数和不返回值函数两者在主函数中的调用是不同的…………更重要的是,这次课程设计虽然花了我不少时间,但正是这些时间,让我见识到了C 语言的重要性。

这个学生成绩管理系统都是在自己知识范围内完成的,所以界面清晰简单,可能不是很好看,但绝对实用!从这里我也得到一个体会,做一个程序,或者开发一个软件,应该着重从它的后台制作入手,不能做出一个中看不中用的程序或者软件。

相信这次的课程设计为我以后继续从事计算机工作打了一个小小的开头。

由于这是第一次进行设计,写文档,难免会写得不好!。

相关文档
最新文档