C语言课程设计要求
- 格式:doc
- 大小:103.50 KB
- 文档页数:15
毕业设计c语言课程设计一、课程目标知识目标:1. 理解C语言在毕业设计中的应用场景,掌握C语言的基本语法和编程技巧。
2. 学会使用C语言进行数据结构的设计与实现,如链表、树、图等。
3. 掌握C语言在嵌入式系统、算法竞赛等领域的实际应用。
技能目标:1. 能够运用C语言编写具有实际意义的程序,解决实际问题。
2. 能够分析并优化C语言程序的运行效率,提高编程质量。
3. 培养良好的编程习惯,编写规范、易读、高质量的C语言代码。
情感态度价值观目标:1. 培养学生积极主动探索新知识的精神,提高学生的自主学习能力。
2. 增强学生的团队协作意识,培养良好的沟通与协作能力。
3. 使学生认识到C语言在计算机科学领域的重要地位,激发学生对编程的兴趣。
分析课程性质、学生特点和教学要求:1. 课程性质:本课程为毕业设计前的预备课程,旨在帮助学生掌握C语言编程技能,为毕业设计奠定基础。
2. 学生特点:学生已具备一定的计算机基础,了解编程基本概念,但实际编程能力较弱,需要加强实践操作。
3. 教学要求:注重理论与实践相结合,强调实际编程能力的培养,以项目驱动教学,提高学生的实践操作能力。
1. 独立完成C语言基础语法的学习,并能运用所学知识编写简单程序。
2. 掌握常见数据结构在C语言中的实现与应用,能够解决实际问题。
3. 编写具有一定规模的C语言项目,具备初步的软件设计能力。
4. 养成良好的编程习惯,具备团队协作能力和沟通能力。
二、教学内容1. C语言基础语法:变量定义、数据类型、运算符、表达式、控制语句(顺序、选择、循环)、函数、数组、指针。
2. 常见数据结构:链表、栈、队列、树(二叉树、查找树)、图(邻接矩阵、邻接表)。
3. 编程技巧与优化:算法复杂度分析、递归与迭代、内存管理、程序调试与优化。
4. C语言项目实践:学生信息管理系统、简易计算器、文件压缩与解压缩、小型游戏等。
5. 教学内容安排与进度:- 第一周:C语言概述、基础语法、数据类型与运算符。
大一学生c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法结构,包括变量定义、数据类型、运算符和表达式;2. 学会使用C语言控制结构,如顺序、选择和循环结构;3. 理解函数的定义和调用,能编写简单的自定义函数;4. 了解数组、字符串和指针的概念及应用。
技能目标:1. 能运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,如规范命名、合理注释和模块化设计;3. 学会使用调试工具,如gcc和gdb,进行程序调试和错误排查;4. 提高逻辑思维能力,分析并解决程序中的问题。
情感态度价值观目标:1. 培养对编程的兴趣和热情,树立计算机科学的学习信心;2. 树立团队合作意识,学会与他人共同解决问题;3. 培养严谨、细致的学习态度,注重程序的正确性和可靠性;4. 增强自主学习能力,主动探索C语言的深入学习。
本课程针对大一学生,以C语言为基础,注重理论与实践相结合。
课程设计旨在帮助学生掌握C语言的基本知识,培养编程技能,同时激发学生的学习兴趣,提高逻辑思维和团队协作能力。
通过本课程的学习,学生能够具备初步的编程能力,为后续计算机专业课程打下坚实基础。
二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,引导学生了解C语言的重要性。
教材章节:第一章2. 基本语法和数据类型:讲解变量定义、数据类型、常量和变量,以及基本输入输出函数。
教材章节:第二章3. 运算符和表达式:介绍各类运算符,包括算术、关系、逻辑运算符等,以及表达式的求值规则。
教材章节:第三章4. 控制结构:讲解顺序、选择(if、switch)和循环(for、while、do-while)结构,引导学生学会程序流程控制。
教材章节:第四章5. 函数:介绍函数的定义、声明和调用,重点讲解传值调用和引用调用,以及递归函数。
教材章节:第五章6. 数组与字符串:讲解一维数组、二维数组的概念和应用,以及字符串的基本操作。
教材章节:第六章7. 指针:介绍指针的概念、定义和使用,包括指针与数组、指针与字符串、指针与函数的关系。
c语言实训课课程设计一、教学目标本课程旨在通过C语言实训,使学生掌握C语言的基本语法、编程技巧和相关概念,培养学生独立编程和解决问题的能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–理解函数、数组、指针、结构体等基本概念。
–学习C语言的输入输出、文件操作和库函数的使用。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题。
–熟练使用C语言的调试工具,分析并解决编程中的问题。
–掌握C语言编程的规范和技巧,编写结构清晰、可读性强的代码。
3.情感态度价值观目标:–培养学生的创新意识和解决问题的能力,激发学生对计算机科学的兴趣。
–培养学生团队合作的精神,提高学生的沟通能力和协作能力。
–培养学生的自主学习能力,养成良好学习习惯。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言基本语法和数据类型。
2.函数、数组、指针、结构体等基本概念。
3.C语言的输入输出、文件操作和库函数的使用。
4.编程实践,包括简单的数学计算、字符串处理、数据结构实现等。
教学大纲将按照以下顺序进行:1.第一周:C语言基本语法和数据类型。
2.第二周:函数、数组、指针、结构体等基本概念。
3.第三周:C语言的输入输出、文件操作和库函数的使用。
4.第四周:编程实践,包括简单的数学计算、字符串处理、数据结构实现等。
三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解C语言的基本语法、概念和编程技巧,使学生掌握基础知识。
2.案例分析法:通过分析典型的编程案例,使学生理解并掌握C语言的应用。
3.实验法:安排上机实验,让学生亲自动手编写代码,培养学生的实际编程能力。
4.小组讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高学生的团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
c语言编程课程设计要求一、课程目标知识目标:1. 理解C语言编程的基本概念,掌握数据类型、变量、运算符、表达式等基础知识;2. 学会使用C语言进行顺序结构、选择结构和循环结构的编程;3. 掌握数组和函数的使用,能够运用它们解决实际问题;4. 了解指针的概念,初步学会使用指针进行编程。
技能目标:1. 能够运用C语言编写简单的程序,实现基本的输入输出、计算和控制流程;2. 能够分析问题,设计合适的算法,并将其转换为C语言代码;3. 能够对C语言程序进行调试和优化,提高程序的执行效率;4. 能够阅读和分析简单的C语言程序,理解其逻辑结构和功能。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发他们主动探索计算机科学的热情;2. 培养学生的逻辑思维能力,使他们能够运用编程解决问题的方法分析现实生活中的问题;3. 培养学生的团队协作精神,让他们在编程实践中学会与他人沟通和合作;4. 培养学生的创新意识,鼓励他们勇于尝试新方法,不断提高编程水平。
课程性质:本课程为C语言编程入门课程,旨在让学生掌握C语言的基本知识和编程技能,为后续学习打下基础。
学生特点:学生为初中年级,对计算机编程有一定的好奇心,具备基本的计算机操作能力,但编程经验不足。
教学要求:结合学生特点,采用任务驱动的教学方法,注重实践操作,让学生在完成具体任务的过程中掌握C语言编程知识。
同时,注重培养学生的逻辑思维能力和团队协作精神,提高他们的综合素质。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. C语言概述- C语言的起源与发展- C语言的特点与应用领域2. 基本数据类型与变量- 数据类型:整型、浮点型、字符型- 变量的定义与使用- 常量的概念与分类3. 运算符与表达式- 算术运算符、关系运算符、逻辑运算符- 表达式的构成与运算规则4. 顺序结构程序设计- 输入输出函数的使用- 顺序结构程序设计方法5. 选择结构程序设计- if语句及其嵌套- switch语句及其应用6. 循环结构程序设计- for循环、while循环、do-while循环- 循环控制语句:break、continue7. 数组- 一维数组、二维数组- 数组的初始化与遍历8. 函数- 函数的定义与调用- 函数的参数与返回值- 递归函数的概念与应用9. 指针- 指针的定义与使用- 指针与数组的关系- 指针与函数的关系10. 综合编程实践- 设计并实现简单的C语言程序- 分析并优化已有程序教材章节关联:教学内容与教材的章节相对应,按照教材的结构安排教学进度,确保学生能够系统地学习C语言编程知识。
大一c语言程序课程设计一、课程目标知识目标:1. 理解C语言程序设计的基本概念,掌握数据类型、变量、运算符、表达式等基础知识;2. 学会使用顺序结构、分支结构、循环结构进行程序设计;3. 掌握数组和函数的使用,理解指针的概念及其应用;4. 了解结构体、联合体和枚举类型的使用。
技能目标:1. 能够运用C语言编写简单的程序,解决问题;2. 能够分析问题,运用逻辑思维进行程序设计;3. 能够阅读和理解他人编写的C语言程序;4. 能够对程序进行调试和优化,提高程序效率。
情感态度价值观目标:1. 培养学生的编程兴趣,激发学习积极性;2. 培养学生的团队合作意识,学会与他人共同解决问题;3. 培养学生的创新精神,敢于尝试新思路和方法;4. 培养学生严谨的学术态度,遵循编程规范。
课程性质:本课程为大一C语言程序设计的基础课程,旨在使学生掌握C语言的基本知识和编程技能,为后续专业课程打下坚实基础。
学生特点:大一学生刚接触编程,对编程知识有一定好奇心,但缺乏实际操作经验。
教学要求:结合学生特点,注重理论与实践相结合,通过案例分析和实际操作,使学生熟练掌握C语言编程技巧。
在教学过程中,注重培养学生的编程兴趣和创新能力,提高学生分析问题和解决问题的能力。
将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。
二、教学内容1. C语言概述:介绍C语言的发展历程、特点和应用领域,理解编程的基本概念。
相关教材章节:第一章2. 数据类型与运算符:讲解基本数据类型、变量定义、常量声明,运算符及其优先级。
相关教材章节:第二章3. 顺序结构程序设计:学习基本输入输出函数,编写简单的顺序结构程序。
相关教材章节:第三章4. 分支结构程序设计:介绍if语句、switch语句,学会编写分支结构程序。
相关教材章节:第四章5. 循环结构程序设计:讲解for循环、while循环、do-while循环,掌握循环结构编程。
相关教材章节:第五章6. 数组:介绍一维数组、二维数组的使用,学会存储和操作批量数据。
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语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编程思维和解决问题的能力,提高学生实际操作技能,使学生了解编程在实际应用中的重要性,培养学生对计算机科学的兴趣和热情。
具体来说,知识目标包括:1.理解C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.熟悉控制结构,如条件语句、循环语句等。
4.了解函数的定义和调用。
5.理解编程中常用的算法和数据结构。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够阅读和理解简单的C语言程序。
3.能够运用C语言解决实际问题。
情感态度价值观目标包括:1.对编程和计算机科学产生兴趣和热情。
2.培养学生的创新思维和解决问题的能力。
3.培养学生的团队合作和沟通能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.C语言概述:介绍C语言的历史、特点和应用领域。
2.基本数据类型和运算符:整型、浮点型、字符型数据以及相应的运算符。
3.控制结构:条件语句、循环语句等。
4.函数:函数的定义、声明和调用,熟悉常用的数学函数和输入输出函数。
5.数组和字符串:一维、多维数组的声明和使用,字符串的基本操作。
6.指针:指针的概念和运算,指针在内存中的表示和应用。
7.结构体和联合体:结构体的定义和使用,联合体的概念和应用。
8.文件操作:文件的打开、关闭、读写等操作。
三、教学方法本课程采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等,以激发学生的学习兴趣和主动性。
1.讲授法:通过教师的讲解,使学生掌握C语言的基本概念和语法。
2.讨论法:引导学生进行小组讨论,培养学生的团队合作和沟通能力。
3.案例分析法:通过分析实际案例,使学生了解C语言在实际应用中的重要性。
4.实验法:让学生动手编写程序,培养学生的实际操作技能和编程思维。
东华大学c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法和程序结构,包括变量声明、数据类型、运算符、控制语句等。
2. 理解函数的定义与调用,能够编写简单的自定义函数,并进行参数传递。
3. 了解数组、指针和字符串的使用,能够运用它们进行数据操作和存储。
4. 掌握基本的文件操作,如文件的打开、读写和关闭。
技能目标:1. 能够使用C语言编写简单的程序,解决问题并进行调试。
2. 能够运用逻辑思维和算法设计,解决基本的算法问题。
3. 能够分析并优化代码,提高程序的执行效率。
4. 能够通过编写代码,实现数据的存储和提取,进行文件操作。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习编程的热情。
2. 培养学生的逻辑思维和问题解决能力,增强自信心。
3. 培养学生的团队协作意识,学会与他人共同解决问题。
4. 培养学生注重程序规范和代码质量,养成良好的编程习惯。
课程性质:本课程为东华大学计算机科学与技术专业的学科基础课,旨在让学生掌握C语言的基本知识和编程技能。
学生特点:学生具备一定的计算机基础,对编程有一定了解,但可能缺乏深入理解和实践经验。
教学要求:结合学生特点,通过理论讲解、案例分析和实践操作,使学生在掌握C语言知识的同时,提高编程能力和问题解决能力。
教学过程中注重培养学生的实际操作能力和创新思维,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. C语言概述:介绍C语言的发展历程、特点和应用领域,使学生了解C语言的重要性和学习价值。
相关教材章节:第一章 C语言概述2. 数据类型、运算符与表达式:讲解基本数据类型、变量声明与赋值,各类运算符的使用及表达式求值。
相关教材章节:第二章 数据类型与表达式3. 控制语句:介绍顺序结构、选择结构(if-else)、循环结构(for、while、do-while),以及跳转语句(break、continue、goto)。
相关教材章节:第三章 控制语句4. 函数:讲解函数的定义、调用、参数传递、返回值,以及递归函数。
c语言课程设计小论文一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程技巧,培养学生具备基本的程序设计能力和逻辑思维能力。
具体目标如下:1.知识目标:–掌握C语言的基本语法和关键字。
–理解数据类型、变量、常量的概念及使用方法。
–掌握运算符、表达式、语句的结构和用法。
–熟悉函数的定义、声明和调用。
–了解数组、指针、字符串的概念和应用。
–理解结构体、联合体、枚举等数据结构的使用。
–掌握基本算法和编程技巧,能够独立解决问题。
2.技能目标:–能够使用C语言编写简单的程序,进行调试和优化。
–掌握基本的输入输出操作,熟悉常用的库函数。
–具备良好的编程习惯,编写结构清晰、可读性强的代码。
–能够运用C语言进行数据分析和处理,实现简单的算法。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力。
–培养学生团队合作精神,提高学生的沟通和协作能力。
–培养学生具备创新意识,培养学生的解决问题的能力。
二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言基本语法和关键字:数据类型、变量、常量、运算符、表达式、语句等。
2.函数:函数的定义、声明和调用,局部变量和全局变量,递归等。
3.数据结构:数组、指针、字符串、结构体、联合体、枚举等。
4.算法和编程技巧:基本算法、循环、条件语句、排序、查找等。
5.输入输出操作:文件操作、库函数的使用等。
教学进度安排如下:•第1-2周:C语言基本语法和关键字。
•第3-4周:函数和局部变量、全局变量的使用。
•第5-6周:数组、指针、字符串的学习。
•第7-8周:结构体、联合体、枚举等数据结构的应用。
•第9-10周:算法和编程技巧的实践。
•第11-12周:输入输出操作和文件处理。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式:1.讲授法:教师通过讲解、举例等方式,向学生传授C语言的基本知识和技巧。
2.案例分析法:通过分析实际案例,引导学生运用C语言解决实际问题。
大学c语言实验课程设计一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构和算法,培养学生运用C语言进行程序设计的能力。
具体目标如下:1.知识目标:学生能够理解并掌握C语言的基本语法、数据结构和常用算法。
2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。
3.情感态度价值观目标:学生能够认识到计算机程序设计的重要性,培养对计算机科学的兴趣和热情。
二、教学内容根据课程目标,我们将按照以下教学大纲进行教学:1.C语言基本语法:数据类型、变量、运算符、表达式、语句等。
2.数据结构:数组、链表、栈、队列、排序算法等。
3.算法:常用算法及其实现,如冒泡排序、选择排序、插入排序等。
4.程序设计:根据实际问题,运用C语言进行程序设计。
三、教学方法我们将采用以下教学方法进行授课:1.讲授法:讲解C语言的基本语法、数据结构和算法。
2.实验法:让学生通过实际操作,加深对C语言编程的理解。
3.案例分析法:分析实际案例,让学生学会如何运用C语言解决实际问题。
4.讨论法:学生进行分组讨论,培养学生的团队协作能力。
四、教学资源我们将使用以下教学资源进行教学:1.教材:《C程序设计语言》或《C Primer Plus》。
2.参考书:《C语言编程思想》、《C语言实战》。
3.多媒体资料:教学PPT、视频教程。
4.实验设备:计算机、网络环境。
5.在线资源:编程、论坛,如CSDN、Stack Overflow等。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:评估学生在课堂上的参与度、提问回答等情况,占总评的20%。
2.作业:布置课后编程作业,评估学生的编程能力和掌握程度,占总评的30%。
3.实验报告:评估学生在实验过程中的动手能力和问题解决能力,占总评的20%。
4.考试:期末进行闭卷考试,评估学生对C语言知识的掌握程度,占总评的30%。
六、教学安排本课程的教学安排如下:1.教学进度:按照教学大纲,合理安排每个章节课时的数量和顺序。
计算机程序设计课程设计C语言设计报告题目:学生信息管理系统学院:化学工程学院专业:高分子材料与工程班级:100605姓名:刘聪指导教师:侯仲尼设计日期:2011年7月11日总分:一、选题背景:在学校的日常管理中,对学生的成绩信息管理是不可缺少的部分。
因此选出此程序题目对学生的学号、姓名、分数进行管理,其中包括新建、插入、删除、查看、退出等功能。
二、设计思想:1、引入#include“stdio.h”,#include“stdlib.h”,#include等头文件,然后直接调用函数;定义结构体,并进行函数声明,进入主函数后可使用switch—cass语句进行功能选择;程序共有五项任务,依次为新建,插入,删除,读取,退出;其中每次新建,插入,删除后均可调用读取函数,方便查看。
三、主要解决问题的方法及技术关键:1、switch---case来实现选择功能。
2、用if---else、do、while语句来实现循还。
3、用系统函数调用函数。
4、用结构体来处理数据。
5、在此程序中多次使用“调用函数”的方法将结果有序的以较美观的格式输出所有学生的数据。
6、调用插入函数使学生的信息按学号大小依次排列。
四、程序流程图:五、程序清单#include<stdio.h>#include<stdlib.h>#include<string.h>/*头文件*/struct stud_node{int num;char name[40];int score;struct stud_node *next;};/*结构体类型定义*//*函数声明*/struct stud_node *Create_Stu_Doc();/*新建*/struct stud_node *InsertDoc(struct stud_node *head,struct stud_node *stud);/*插入*/struct stud_node *DeleteDoc(struct stud_node *head,int num);/*删除*/ void Print_Stu_Doc(struct stud_node *head);/*读取*/int main(void)/*进入主函数*/{struct stud_node *head,*p;int choice,num,score; /*定义三个整形变量*/char name[40];int size=sizeof(struct stud_node); /*申请空间*/do{/*进入do循环*/printf("1:create 2:Insert 3:Delete 4:Print 0:Exit \n");scanf("%d",&choice); /*选择功能*/switch(choice) /*进入选择*/{case 1:head=Create_Stu_Doc();/*调用函数*/break;case 2:printf("Input num,name and score:\n");/*输出学号、姓名、成绩*/ scanf("%d%s%d",&num,name,&score);p=(struct stud_node *) malloc(size); /*申请空间*/p->num=num;strcpy(p->name,name);p->score =score;head=InsertDoc(head,p/*调用函数*/);break;case 3:printf("Input num:\n");/*输入所要删除的学号*/scanf("%d",&num);head=DeleteDoc(head,num);调用函数break;case 4:Print_Stu_Doc(head); /*调用读取函数,显示此时信息存储情况*/ break;case 0: /*退出*/break;}}while (choice!=0);return 0;}struct stud_node *Create_Stu_Doc(){struct stud_node *head,*p;int num,score;char name[40];int size=sizeof(struct stud_node); /*申请空间*/head=NULL; /*指针指向空*/printf("Input num,mane and score:\n");scanf(“%d%s%d”,&num,name,&score); /*提示输入*/while(num!=0){ /*当此文件有学生信息存在时*/p=(struct stud_node *)malloc(size); /*申请空间*/p->num=num; /*学号指向学号所在地址赋值*/strcpy(p->name ,name);p->score=score;head=InsertDoc(head,p); /*再次调用函数*/scanf("%d%s%d",&num,name,&score);}Print_Stu_Doc(head); /*调用读取函数,显示此时信息存储情况*/ return head;}struct stud_node *InsertDoc(struct stud_node *head,struct stud_node *stud) /*函数名*/{struct stud_node *ptr,*ptr1,*ptr2; /*函数体*/ptr2=head; /*头文件赋值给ptr2*/ptr=stud; /*ptr指向待插入的新生记录结合*/if(head==NULL) /*原链表为定时插入方式*/{head=ptr; /*新插入的结点成为头结点*/head->next=NULL; /*指针指向下一个为空*/}else /*原链表不为空时的插入方式*/{while((ptr->num >ptr2->num )&&(ptr2->next !=NULL)) /*当待插入的新生学号大于ptr2且ptr2指向下一个不为空时*/{ptr1=ptr2; /*ptr1、ptr2依次向后移一个结点*/ptr2=ptr2->next;}if(ptr->num <=ptr2->num ) /*当待插入的新生学号小于ptr2*/{if(head==ptr2) /*当ptr2为头结点位置*/head=ptr; /*头结点改为ptr*/else/*当ptr2不为头结点时*/ptr1->next =ptr; /*在ptr1与ptr2间插入新结点*/ptr->next =ptr2;}else{/*新插入点成为尾结点*/ptr2->next =ptr;ptr->next=NULL;}}Print_Stu_Doc(head); /* 调用读取函数,显示此时信息存储情况*/return head; /*把头结点返回给函数*/}struct stud_node * DeleteDoc(struct stud_node *head,int num) /*函数名*/ {struct stud_node *ptr1,*ptr2;while(head!=NULL&&head->num ==num){ /*要被删除结点为表头结点*/ ptr2=head; /*头结点改为ptr2*/head=head->next ; /*头结点指向下一个结点*/free(ptr2); /*释放ptr2的内存*/}if(head==NULL) /*链表空*/return NULL;ptr1=head; /*要被删除结点为非表头结点*/ptr2=head->next ; /*从表头的下一个结点搜索所有符合删除要求的结点*/while(ptr2!=NULL){if(ptr2->num ==num){ /*ptr2所指结点符合删除要求*/ptr1->next =ptr2->next ; /*ptr1下一个结点成为ptr2下一个的结点,将链表连接*/free(ptr2); /*释放ptr2的内存*/}elseptr1=ptr2;ptr2=ptr1->next ;}Print_Stu_Doc(head); /* 调用输出函数,显示此时信息存储情况*/return head;}void Print_Stu_Doc(struct stud_node *head){struct stud_node *ptr;if(head==NULL){ /*头结点为空*/printf("\n No Records\n");/*显示无内容*/return ;}printf("\n The Students'Records Are:\n");/*提示输入学生信息*/printf(" Mum Name Score\n");/*输入学号、姓名、成绩*/for(ptr=head;ptr;ptr=ptr->next)printf("%8d%20s%6d\n",ptr->num ,ptr->name ,ptr->score ); /*输出每个结点的值*/}五、在设计过程中遇到的问题及解决办法这段程序看似简单易于完成,但在其过程中仍遇到诸多问题难以解决,例如:最开始程序的各项功能连接不十分密切,经过修改后在每一项功能中都添加了调用输出函数,使信息的观察更为方便,各项功能也加强了连接。
经过多个礼拜的筛选课题,反复修改与调试后,此程序变得更加完善,加上老师的指点,遇到的问题都得以解决,程序可以正常运行,但如果可以有更充裕的时间,我相信会将程序完成的更加完美。
在此特别感谢老师的耐心讲解、和帮助,这是我的成功所不可缺少的一部分。