C语言课程设计报告 西安邮电大学
- 格式:pdf
- 大小:527.27 KB
- 文档页数:13
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语言课程设计报告题目:医院信息管理系统院系名称:计算机学院专业名称:计算机科学与技术班级:学生姓名:学号(8位):指导教师:王春梅设计起止时间:2012年06月06日~2012年06月15日一. 设计目的1,通过本课程设计,强化上机动手能力,使自己在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握软件设计的基本方法。
2,学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
3,为后续各门计算机课程的学习打下坚实基础;为毕业设计和以后工作打下必要基础。
二. 设计内容建立一个医院信息管理系统,主要应用了数据结构体,数组,指针等。
在内容上包括录入信息模块,读取信息模块,保存信息模块,查寻信息模块,插入信息模块,删除信息模块,修改信息模块,显示信息模块及排序信息模块(按姓名进行排序)等,并且还有统计信息和相关信息的排序。
三.概要设计1.功能模块图;2.各个模块详细的功能描述。
(1)登陆界面:主要是用户进行注册和登陆的程序。
(2)录入模块:录入需要管理的病人及药品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(3)删除模块:可对病人及药品信息做删除处理。
(4)添加模块:可添加一个或多个病人及药品信息并将所添加病人和药品信息保存,方便查找。
(5)修改模块:可根据需要对病人和药品信息整体进行修改,也可随时对个别项进行修改。
(6)按编号排序:方便管理员进行查找信息。
(7)显示病人信息:使管理员更直接的了解病人及药品的相关信息。
四.详细设计1.功能函数的调用关系图;2.各功能函数的数据流程图;(1)链表的创建,尾插法(2)读取(3)查找((5)添加(6)修改模块(7)排序(8)统计3.重点设计及编码。
(1)密码:while (!feof(fp1))//循环逐行读取data.txt将读取到的信息保存在数组Userdata 中直到文件结束{fgets(Userdata1,30,fp1);if (strcmp(Linedata1,Userdata1)==0 ){printf("该用户已经注册!\n");printf("按任意键重新注册\n");getch();UserReg();}}fputs(Linedata,fp);//将这一行格式调整好的用户名密码信息写入data.txt文件fclose(fp);//关闭data.txt文件指针fputs(Linedata1,fp1);//将这一行格式调整好的用户名密码信息写入data.txt文件fclose(fp1);//关闭文件指针printf("亲,注册成功喽,赶快去登录吧!\n");printf("按任意键进入登陆界面\n");getch();system("cls");Login();}(2)排序while (first != NULL) /*遍历剩下无序的链表*/{/*注意:这里for语句就是体现直接插入排序思想的地方*/for (t=first, q=head; ((q!=NULL) && (q->id1<t->id1)); p=q, q=q->next); /*无序节点在有序链表中找插入的位置*//*退出for循环,就是找到了插入的位置*//*注意:按道理来说,这句话可以放到下面注释了的那个位置也应该对的,但是就是不能。
大学c语言课程设计总结一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符、表达式等基本概念。
2. 学会使用C语言进行顺序、分支和循环结构的编程,并能运用这些结构解决实际问题。
3. 掌握C语言数组、函数、指针、结构体等高级概念,并能运用这些知识进行程序设计。
4. 了解C语言的文件操作,学会读写文件,以及简单的错误处理。
技能目标:1. 培养学生运用C语言进行问题分析、程序设计和调试的能力。
2. 提高学生编程思维和逻辑推理能力,使其能够独立完成中等难度的C语言程序设计。
3. 培养学生团队协作能力,通过小组讨论和实践,共同解决复杂问题。
情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习编程的热情,树立编程自信心。
2. 培养学生严谨、细心的编程态度,使其养成良好的编程习惯。
3. 培养学生面对困难时勇于尝试、持续改进的精神,提高解决问题的能力。
本课程针对大学C语言课程设计,结合学生年级特点,注重理论与实践相结合,旨在培养学生具备扎实的C语言基础和一定的编程能力。
课程目标具体、可衡量,以便学生和教师在教学过程中能够明确课程预期成果,并为后续的教学设计和评估提供依据。
二、教学内容本课程教学内容依据课程目标,结合教材科学性和系统性,进行以下安排:1. C语言基础知识:变量、数据类型、运算符、表达式、输入输出函数等,对应教材第一章至第三章。
- 变量定义、类型转换- 基本数据类型、常量与变量- 运算符、表达式、语句2. 程序结构:顺序、分支和循环结构,对应教材第四章。
- 顺序结构- 分支结构(if-else、switch-case)- 循环结构(for、while、do-while)3. 函数与数组:函数定义、调用、数组应用,对应教材第五章至第六章。
- 函数定义、参数、返回值- 数组定义、初始化、遍历- 函数与数组的应用4. 指针与结构体:指针概念、结构体、链表,对应教材第七章至第八章。
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.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)链接。
西安邮电学院软件设计报告书院系名称:电子工程学院学生姓名:周宇专业名称:微电子班级:1101学号:05115007时间:2012年4月10日至2012年4月17日实验题目:学生成绩管理系统一、实验目的综合应用所学的计算机基础知识和所掌握的程序设计语言,自行设计并实现一个较为完整的小型管理信息系统的设计与开发。
通过系统分析、系统设计、编程实现,写实验报告等环节,初步掌握软件系统的设计方法和步骤,锻炼大家灵活运用程序语言进行软件开发的初步能力,提高分析问题和解决问题的能力,提高程序设计水平。
二、功能要求1、数据录入、存储(录入系统所需的数据;将录入的数据存储在文件中)2、数据查询(按要求对数据进行查询)3、数据修改(对数据进行更新操作)4、数据删除(对数据进行删除操作)5、数据统计(对指定数据进行统计并输出)6、数据排序(对指定数据排序并输出)7、数据报表(对指定数据产生报表输出)8、界面(功能目录)三、系统分析与设计1、系统功能的描述:本系统先通过输入密码进入其主菜单界面,(主菜单界面共有10项服务选项,分别为(1)录入信息,(2)显示信息,(3)排序,(4)查询信息(5)插入信息,(6)删除信息(7)修改信息,(8)从文件读入学生信息,(9)所有学生信息写入文件,(0)退出系统。
)2、程序模块结构图:录入信息主菜单开始请输入密码显示信息排序学生信息写入文件从文件读入信息修改信息删除信息插入信息查询信息退出3、各模块功能说明:(1)录入信息,可以输入学生的班级,学号,姓名,C语言成绩,高数成绩,英语,物理成绩相关信息。
调用input()函数。
(2)显示信息,可以显示所输入学生的全部信息。
包括学生的班级,学号,姓名,C语言成绩,高数成绩,英语,物理成绩相关信息。
调用display()函数。
(3)排序,按照学生的平均成绩进行排序。
调用sort()函数。
(4)查询信息,按照系统提示输入要查询的学生信息,根据学生的学号查询学生的成绩。
c语言课程设计报告一、课程目标知识目标:1. 让学生掌握C语言的基本语法,包括变量声明、数据类型、运算符、控制结构等;2. 培养学生运用C语言进行程序设计的能力,学会编写简单的程序解决实际问题;3. 使学生了解C语言中的数组、函数和指针等高级概念,并能够灵活运用。
技能目标:1. 培养学生熟练使用C语言编程环境,如Turbo C或Visual Studio等;2. 提高学生的编程技巧,使其能够编写具有逻辑性和可读性的代码;3. 培养学生独立分析问题、设计程序解决问题的能力。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动探索、自主学习的精神;2. 培养学生严谨、细心的学习态度,使其认识到编程过程中细节的重要性;3. 强调团队协作和交流分享,提高学生的沟通能力和团队意识。
分析课程性质、学生特点和教学要求:1. 课程性质:C语言课程属于信息技术学科,具有实践性和应用性强的特点;2. 学生特点:学生为初中生,具有一定的逻辑思维能力和计算机操作基础,但编程经验不足;3. 教学要求:结合学生特点,注重理论与实践相结合,以实例教学为主,引导学生动手实践。
1. 熟练运用C语言编写简单的程序;2. 掌握C语言的基本语法和编程技巧;3. 提高编程兴趣,形成自主学习、团队协作的良好习惯。
二、教学内容1. C语言基础知识:- 变量与常量的概念及其声明- 数据类型:整型、浮点型、字符型- 运算符:算术、关系、逻辑、赋值运算符- 控制结构:顺序结构、选择结构、循环结构2. 函数与数组:- 函数的定义、声明和调用- 数组的定义、初始化和使用- 一维数组、二维数组的操作3. 指针与字符串:- 指针的概念、声明与使用- 指针与数组的关系- 字符串的基本操作4. 编程技巧与实践:- 编程规范与命名规则- 代码调试与优化- 简单算法的实现(如排序、查找)5. 综合案例分析与编程实践:- 结合实际案例,运用所学知识进行程序设计- 针对不同案例,分析问题、设计算法、编写程序- 案例包括:计算器、成绩管理系统、小游戏等教学内容安排与进度:1. C语言基础知识(2周)2. 函数与数组(2周)3. 指针与字符串(2周)4. 编程技巧与实践(1周)5. 综合案例分析与编程实践(3周)教材章节关联:1. C语言基础知识:教材第1-3章2. 函数与数组:教材第4-5章3. 指针与字符串:教材第6章4. 编程技巧与实践:教材第7章5. 综合案例分析与编程实践:教材第8章及课后习题、拓展案例三、教学方法1. 讲授法:- 对于C语言的基本语法、概念和理论,采用讲授法进行教学,确保学生能够系统地掌握知识;- 讲授过程中注重条理清晰、深入浅出,结合实际案例,提高学生的理解和记忆;- 定期进行知识巩固,通过讲解经典例题,帮助学生深化理解。
西安郵電大学C语言课程设计报告题目:小型的电视剧节目管理系统院系名称:计算机学院专业名称:计算机科学与技术班级:学生姓名:学号(8位):指导教师:设计起止时间:2012年06月06日~2012年06月15日一. 设计目的1.通过一个小型的管理系统的程序,使自己对C编程的感觉进一步加深;2.通过这些程序,使得管理员可以更加方便的管理该系统,使得用户可以更方便的查询。
二. 设计内容分为管理员和用户。
1.管理员:可以实现电视剧的添加,查看全部信息,删除,查询,修改;2.用户:可以实现按上映时间和类别查询,显示全部信息,电视剧的由新至旧和由旧至新的排序。
三.概要设计1.功能模块图;2.各个模块详细的功能描述1).管理员模块:a.添加:管理员创建的新结点续到以前结点的后面,为尾插;b.显示全部信息:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,然后再输出全部信息;c:查询:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要查找的序号,若文件为空或找不到,输出“查询错误”并退出该步;反之输出查询到的结果;d.修改:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要修改的序号,若找不到该序号或文件为空,输出“查询错误”,并退出该步;反之输入修改后的项目,然后保存文件并输出新的信息;e:删除:先打开文件,若文件为空,则返回;否则申请新空间,把文件中的数据放到新申请的空间中,再输入要删除的序号,若文件为空或找不到,输出“查询错误”,并退出该步;反之把该序号后面的那个结点续到该序号前面的那个结点后面,就把该序号对应的结点删除成功。
2)用户模块:a:显示全部信息:用户进入该步骤后,可以显示当前电视剧节目的全部信息,包括剧名,导演名,主要演员名,类别,上映时间,大概内容;b:按类别查询:用户进入该步骤后,首先输入要查询的类别,若该文件中没有相关信息,系统会报错,并退出该步;反之输出查找到的相关信息;c:按时间查询:用户进入该步骤后,首先输入要查询的时间,若该文件中没有相关信息,系统会报错,并退出该步;反之输出查找到的相关信息;d:按电视剧由新至旧排列:用户选择了该项,系统会输出由新至旧排列的电视剧节目的信息;e:按电视剧由旧至新排列:用户选择了该项,系统会输出由旧至新排列的电视剧节目的信息。
西安郵電學院软件设计报告题目:小区物业管理系统院系名称:电子工程学院专业名称:光电信息工程班级:光电1101学生姓名:张萌学号(8位):05114014指导教师:王西龙设计起止时间:2012年04月09日~2012年04月23日一. 设计目的进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。
了解一些书上没有的函数及使用方法。
二. 设计内容小区管理系统设计:小区管理系统包括小区成员的所住单元、住户号、工作单位姓名、电话号码等信息;——小区管理系统主要提供以下功能:1.系统的登录界面(主要包括用户名、密码的设置、新用户的创建、密码的修改等);2.系统以菜单方式工作3.住户信息录入功能——输入4.住户信息浏览功能——显示5.住户信息查询、修改、增加功能(1)按姓名(2)按电话号码6.住户信息删除功能7.住户信息以文件方式保存、读取8.住户信息的统计三.概要设计1.功能模块图依据程序的数据结构和功能,遵照“自顶向下”原则,采用基于函数的逐步求精法,描述该程序的层次结构:2.各个模块功能的详细描述●主函数: main();●登录菜单:⑴. 进入主菜单:menu();⑵.修改密码函数: repassword();⑶.登录界面函数: print1();⑷创建用户函数: usercreat();●主菜单:⑴输入函数:head=create();⑵输出函数:print(head);⑶住户信息文件的保存函数:save_inf(head);⑷住户信息文件的读取函数:head=read_inf();⑸住户信息的查找函数:find(head);⑹住户信息的修改函数:re(head);⑺住户信息的删除函数:delete(head);⑻住户信息的添加函数:add(head);⑼信息的排序:sort(head);⑽住户信息的统计:count(head);四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图①输出函数print()的流程图开始执行while循环执行printf()语句结束○2输入函数create()的流程图开始Printf()提示语句;Scanf()语句输入数执行While()语依次查找链表再执行scanf()语句结束○3执行查找函数find()流程图开始执行while循环语句执行if判断语句结束○4执行修改函数re()的流程图开始执行while语句进行查找执行if语句进行判断执行while语句进行选择要修改的内容结束○5执行删除函数delete的流程图开始If语句判断节点是否为空执行while进行查找要删除的节点结束○6添加函数add的流程图开始执行scanf语句输入要添加的信息执行while语句查找添加的位置结束○7执行排序sort函数的流程图开始执行for循环统计节点的数目执行for循环节点一到尾部执行for循环找最大节点执行for循环给最后尾节点排序结束3.重点设计及编码1)密码输入函数(实现密码能够再输错的情况下修改);编码:printf("\n\n**-----------请输入密码(6位)login in: ");for(i=0;i<7;i++){mima[i]=getch();if(mima[i]=='\r')break;if(mima[i]=='\b'){printf("\b \b");i=i-2;}else if(mima[i]!='\r')printf("*");}mima[i]='\0';2)从文件中实现一次读取:编码:fp=fopen("mima.txt","rt");while(fscanf(fp,"%s %s",n,a)!=EOF){if(strcmp(mima,a)==0&&strcmp(root,n)==0)//进行判断是否一致{printf("\n\n***********恭喜你登录成功!***********\n");lead();break;}}fclose(fp);if(fp==NULL){printf("\n\n*-----抱歉登录指令错误,请选择(3)重新登录!-------*\n");}3)登录函数实现与主体函数的链接:编码:lead(){printf("*************** ----- 欢迎进入登录界面-----*************************\n\n");printf("*-------------------------1.进入主菜单--------------------------------*\n");printf("*-------------------------2.修改密码----------------------------------*\n");printf("*-------------------------3.重新登录----------------------------------*\n");printf("*-------------------------4.创建用户----------------------------------*\n");printf("*-------------------------0.退出系统----------------------------------*\n");printf("***************************************************** ******************\n");}4)输入函数找准链表节点进行输入:编码:struct person *head,*p1,*p2;head=p2=(struct person *)malloc(N); /* head *p2都指向头结点*/printf("请输入: 单元号户号姓名性别工作单位电话号码(输入户号0结束)\n");p1=(struct person *)malloc(N);scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com, p1->tel);while(p1->num1!=0){p2->next=p1;/* 将新结点连接到表尾*/p2=p1; /* p2指向新的表尾*/p1=(struct person *)malloc(N);/* p1指向新申请的结点*/scanf("%s%ld%s%s%s%s",p1->num,&p1->num1,p1->name,p1->sex,p1->com,p1-> tel);}p2->next=NULL;/* 表尾结点next域置空*/free(p1); /* 释放无效空间*/return head; }5)文件的保存函数与读取函数要保持一致:编码:for(stu=h->next;stu!=NULL;stu=stu->next)fprintf(fp,"%s %ld %s %s %s %s\n",stu->num,stu->num1,stu->name,stu->sex,stu-> com,stu->tel); /*格式化字符串写函数*/printf("\n文件已成功保存,按任意键返回!\n");getch(); /* 从键盘上输入一个字符但不会现在屏幕上*/fclose(fp); /* 将文件所指的指针FP关闭*/}fscanf(fp,"%s %ld %s %s %s %s\n",stu->num,&stu->num1,stu->name,stu->sex, stu->com,stu->tel);/*格式化字符读函数*/r->next=stu;r=stu;}r->next=NULL; /*尾指针置空*/fclose(fp);6)排序函数关键在找最大节点的位置时能记录前一节点的位置:编码:struct person *p,*pre1,*pre2,*r,*s;int count=0,i;for(s=h;s->next!=NULL;s=s->next) /*统计节点数*/{count++;}for(s=h;s->next!=NULL;s=s->next); /*循环体语句为空,找尾节点*/for(i=1;i<count;i++){pre1=h; /*pre1指向r前的一个节点*/pre2=h->next; /*pre2指向p前的一个节点*/r=pre1->next;p=pre2->next;while(p!=s)//不等于尾节点{if(p->num1>r->num1){pre1=pre2; /*指针r始终指向数据较大的节点*/r=p;}pre2=pre2->next;//依次往下查找p=p->next;}pre1->next=r->next; //释放最大的节点r->next=s->next;//给s节点附上新的节点s->next=r;}for(p=s->next,pre1=s;s->num1>p->num1;pre1=pre1->next,p=p->next);//给s节点后的进行排序h->next=s->next;//找到插入的位置s->next=p;pre1->next=s;printf("按任意键继续\n");getch();7)修改函数中要实现能对修改选项的选择:编码:while(p->next!=NULL){p=p->next; /* 继续查找*/if(strcmp(p->name,name)==0){while(choice!=0)/* 进行选择修改信息*/{printf("请输入要修改的选项:1.单位号 2.房户号 3.工作单位 4.电话号码0:退出\n");printf("请选择(0--4):");scanf("%d",&choice);if(choice==1){printf("请输入新的单位号: ");scanf("%s",p->num);}if(choice==2){printf("请输入新的房户号: ");scanf("%ld",&p->num1);}if(choice==3){printf("请输入新的工作单位: ");scanf("%s",p->com);}if(choice==4){printf("请输入新的电话号码: ");scanf("%s",p->tel);}}}return 1;}return 0;8)删除函数关键在找要删除节点的位置:编码:while(p!=NULL){if(strcmp(p->name,name)==0) /* 找到要删除的节点*/{p0->next=p->next; /*后续结点链接到前驱结点之后*/free(p);return 1;}p0=p; /* 移向指针继续查找*/p=p->next;9)添加函数关键在找到要添加的位置:编码:while(p0->next!=NULL&& p0->next->name==p->name)p0=p0->next; /* 继续查找添加的位置*/if(p0->next!=NULL&& p0->next->name==p->name){free(p);/* 释放新结点的存储空间*/return 0; /* 不添加就返回0*/}p->next=p0->next;/*后续结点连接到新结点之后*/p0->next=p; /* 新节点连接到前驱接点之后*/10)统计函数在于实现住户单元号相同与不同的情况下的记录:编码:struct person *p;sort(h);i=0,j=0,dcount=0;drcount[j]=0;for(p=h->next,d[i]=p->num,dcount=1;p!=NULL;p=p->next){count++; //统计总人数if(d[i]!=p->num)//楼号不相等则继续查找{i++;d[i]=p->num;dcount++;j++;drcount[j]=1;//该栋楼人数加为1}elsedrcount[j]++; //统计每栋住户楼的人数}五.测试数据及运行结果1.正常数据及运行结果从文件中读取信息从键盘中输入信息住户信息的删除住户信息的修改住户信息的添加2.异常测试数据及运行结果六.调试情况,设计技巧及体会1、通过这次实习,我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对WIN—TC和C++的使用技巧。
计算机程序设计(C语言)课程设计报告计算机程序设计(C语言)课程设计报告一、引言计算机程序设计是现代信息技术领域中的核心课程之一,它涉及到计算机软件开发的方方面面。
本报告旨在总结我的计算机程序设计(C语言)课程设计经验,并对学习过程中实践的项目进行详细的分析和展示。
二、背景介绍在本课程中,我们的任务是设计和实现一个简单的学生管理系统。
该学生管理系统能够记录学生的基本信息,并提供相应的操作功能,如添加学生、删除学生、查询学生信息等。
通过课程设计,我学习到了软件开发的基本流程和方法,提高了我的代码编写和问题解决能力。
三、需求分析为了更好地完成学生管理系统的设计与实现,我们首先进行了需求分析。
根据老师和同学们的要求,系统需要具备以下主要功能:1. 添加学生信息:包括学生姓名、学号、性别、年龄等基本信息。
2. 删除学生信息:通过学号或姓名进行学生信息的删除。
3. 查询学生信息:可以通过学号或姓名进行学生信息的查询,并显示相关结果。
4. 修改学生信息:可以对学生的基本信息进行修改,如姓名、性别、年龄等。
5. 显示所有学生信息:可以显示系统中所有学生的基本信息。
6. 退出系统:提供用户退出系统的选项。
四、系统设计与实现1. 界面设计为了使用户能够直观地操作学生管理系统,我们采用了简洁明了的图形用户界面。
在命令行窗口中,通过显示菜单供用户选择相应功能,用户可以通过键入数字选择所需操作。
2. 数据结构设计为了存储学生的信息,我们设计了学生结构体,并使用链表来管理学生信息。
学生结构体包括姓名、学号、性别、年龄等成员变量,通过链表的方式将学生结构体连接起来,方便对学生信息的增删改查操作。
3. 功能实现根据需求分析,我们逐一实现了系统的各项功能。
通过在代码中定义相应的函数,并在主函数中调用这些函数,我们成功完成了学生管理系统的设计与实现。
五、项目总结通过本次计算机程序设计(C语言)课程设计,我不仅学习到了C 语言的基本语法和编程技巧,还深入理解了软件开发的过程。