综合编程实验报告--值班安排

合集下载

程序设计综合设计实训报告

程序设计综合设计实训报告

一、实训目的本次程序设计综合设计实训旨在通过实际项目开发,巩固和深化程序设计相关理论知识,提高学生的编程能力、团队协作能力和问题解决能力。

通过实训,使学生能够熟练掌握程序设计的基本方法、技巧和工具,为今后从事软件开发工作打下坚实基础。

二、实训内容本次实训项目为“学生信息管理系统”,主要包括以下功能:1. 学生信息录入:包括姓名、性别、年龄、班级、学号、联系方式等基本信息。

2. 学生信息查询:根据姓名、学号、班级等条件查询学生信息。

3. 学生信息修改:对已录入的学生信息进行修改。

4. 学生信息删除:删除不需要的学生信息。

5. 数据备份与恢复:对系统数据进行备份和恢复,确保数据安全。

6. 用户权限管理:设置不同用户的登录权限,包括管理员、教师、学生等。

三、实训过程1. 项目需求分析在实训开始前,我们对项目进行了详细的需求分析,明确了项目目标、功能模块、性能指标等。

通过与指导老师、团队成员的讨论,明确了以下需求:(1)系统应具备良好的用户界面,操作简单易懂。

(2)系统应具备数据备份与恢复功能,确保数据安全。

(3)系统应具备用户权限管理功能,满足不同用户的需求。

2. 系统设计根据需求分析,我们制定了以下系统设计方案:(1)采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java语言和MySQL数据库。

(2)使用MVC设计模式,将系统分为模型(Model)、视图(View)和控制器(Controller)三个部分。

(3)使用Spring框架进行项目开发,简化开发过程。

3. 系统开发在系统开发过程中,我们遵循以下步骤:(1)前端开发:完成页面布局、样式设计、交互逻辑等。

(2)后端开发:完成业务逻辑处理、数据库操作、接口设计等。

(3)测试与调试:对系统进行功能测试、性能测试、安全测试等,确保系统稳定可靠。

4. 团队协作在实训过程中,我们遵循以下团队协作原则:(1)明确分工:根据团队成员的特长,合理分配任务。

电大在线编程实验报告(3篇)

电大在线编程实验报告(3篇)

第1篇一、实验目的通过本次在线编程实验,旨在提高我的编程能力,加深对编程语言的理解,熟悉编程环境的使用,并培养良好的编程习惯。

同时,通过实际编程练习,解决实际问题,提升我的逻辑思维和问题解决能力。

二、实验内容本次实验选择了电大在线编程平台提供的C语言编程课程,主要包括以下内容:1. C语言基本语法;2. 数据类型、变量和运算符;3. 控制结构(分支和循环);4. 函数的定义和调用;5. 数组、指针和字符串操作;6. 文件操作。

三、实验步骤1. 准备工作:登录电大在线编程平台,选择C语言编程课程,熟悉编程环境和操作界面。

2. 编写代码:根据实验指导书,逐个完成实验任务,编写相应的C语言程序。

3. 调试程序:使用调试工具,检查代码中的错误,修正语法错误和逻辑错误。

4. 运行程序:成功编译并运行程序,观察输出结果,确保程序功能符合预期。

5. 总结与反思:对实验过程中遇到的问题进行总结,分析原因,提出改进措施。

四、实验结果与分析1. C语言基本语法:通过实验,我掌握了C语言的基本语法,包括数据类型、变量、运算符等。

2. 控制结构:实验中,我学会了使用if语句、switch语句进行分支控制,以及for循环、while循环进行循环控制。

3. 函数:通过编写和调用函数,我了解了函数的定义、参数传递和返回值等概念。

4. 数组、指针和字符串操作:实验中,我掌握了数组的定义、初始化、访问和操作方法,了解了指针的概念和用法,以及字符串操作函数。

5. 文件操作:通过实验,我学会了使用文件操作函数,实现文件的读写操作。

五、实验总结通过本次在线编程实验,我收获颇丰。

以下是我对本次实验的总结:1. 编程能力得到提高:通过实际编程练习,我对C语言有了更深入的了解,编程能力得到提升。

2. 问题解决能力增强:在实验过程中,我遇到了各种问题,通过查阅资料、请教同学和老师,我学会了如何分析和解决实际问题。

3. 良好的编程习惯:在实验过程中,我养成了良好的编程习惯,如规范命名、注释代码、代码复用等。

程序设计综合实习报告

程序设计综合实习报告

一、实习背景随着信息技术的飞速发展,程序设计已成为现代社会不可或缺的一部分。

为了提高自己的实践能力和综合素质,我在XX大学的推荐下,于XX年XX月至XX年XX月期间,在XX科技有限公司进行了为期一个月的程序设计综合实习。

本次实习旨在将所学理论知识与实际工作相结合,提高自己的编程能力和团队协作能力。

二、实习单位简介XX科技有限公司成立于XX年,是一家专注于软件开发、技术咨询、系统集成的高新技术企业。

公司业务范围涵盖金融、医疗、教育、物流等多个领域,为客户提供全方位的解决方案。

公司拥有一支高素质、专业化的技术团队,致力于为客户提供高质量的产品和服务。

三、实习内容及收获1. 实习内容(1)参与项目需求分析:在实习期间,我参与了公司XX项目的需求分析阶段。

通过与客户沟通,了解项目背景、需求和预期目标,为项目开发提供依据。

(2)编写程序代码:根据项目需求,我负责编写部分程序代码,包括前端页面设计、后端逻辑处理、数据库设计等。

在编写过程中,我遵循代码规范,确保代码的可读性和可维护性。

(3)测试与调试:在程序编写完成后,我负责对代码进行测试,找出并修复存在的问题。

在测试过程中,我学会了使用多种测试工具,提高了自己的测试能力。

(4)项目部署与维护:在项目上线后,我负责对项目进行部署和维护,确保项目稳定运行。

在此过程中,我学会了使用服务器、数据库等工具,提高了自己的运维能力。

2. 实习收获(1)编程能力提升:通过实际编程工作,我熟练掌握了Java、HTML、CSS、JavaScript等编程语言,提高了自己的编程能力。

(2)团队协作能力:在实习过程中,我与团队成员紧密合作,共同完成项目任务。

通过沟通、协商,我学会了如何与他人协作,提高了自己的团队协作能力。

(3)项目管理能力:在项目实施过程中,我了解了项目管理的基本知识,学会了如何制定项目计划、控制项目进度、协调资源等。

(4)职业素养提升:在实习期间,我遵守公司规章制度,积极参加各类培训活动,提高了自己的职业素养。

编程专业见习实验报告

编程专业见习实验报告

编程专业见习实验报告1. 实验目的本实验的主要目的是为编程专业学生提供实践机会,使他们能够在实际项目中运用所学的编程知识和技能。

通过参与见习实验,学生可以深入了解编程领域的工作流程和项目开发过程,提高自己的实践能力和解决问题的能力。

2. 实验背景编程专业见习实验是为了满足学生在学习过程中对实践机会的需求而开设的课程。

通过实习,学生可以加深对编程方向的理解,提高编程技能和解决问题的能力。

实习期间,学生将参与真实项目的开发,与团队合作,解决实际问题。

3. 实验内容本实验的内容主要包括以下几个方面:3.1 项目开发学生将参与一个真实的项目开发过程,与团队成员合作共同完成项目的开发任务。

在开发过程中,学生需要运用所学的编程知识和技能,实际编写代码并解决项目中遇到的问题。

3.2 问题调试与解决在项目开发过程中,学生可能会遇到各种问题,如代码错误、功能异常等。

学生需要学会使用调试工具和技巧,快速定位问题并进行解决。

3.3 学习与分享在实习期间,学生不仅需要完成自己的任务,还需要向团队中的其他成员学习,分享自己的经验和成果。

通过学习与分享,可以促进团队的合作和交流,提高整个团队的综合素质和能力。

4. 实验过程实验过程主要包括以下几个阶段:4.1 项目准备在项目准备阶段,学生需要了解项目的背景和目标,并与团队成员一起制定项目计划和工作安排。

学生还需要熟悉编程环境和相关工具,确保能够顺利进行项目开发工作。

4.2 项目开发在项目开发阶段,学生需要根据项目计划,按照任务分配进行开发工作。

学生需要遵循编程规范和代码风格,编写高质量的代码,并及时提交代码到版本管理系统中。

4.3 问题调试与解决在项目开发过程中,学生可能会遇到各种问题,如代码错误、功能异常等。

学生需要学会使用调试工具和技巧,快速定位问题并进行解决。

学生还需要与团队成员一起讨论和解决问题,提高解决问题的效率和质量。

4.4 学习与分享在实习期间,学生还需要向团队中的其他成员学习,分享自己的经验和成果。

综合实训计算机实验报告

综合实训计算机实验报告

一、实验背景与目的随着信息技术的飞速发展,计算机技术已成为现代社会不可或缺的一部分。

为了提高学生的实践能力,加强理论知识与实际应用的结合,本次综合实训旨在通过一系列计算机实验,使学生掌握计算机硬件组装、网络搭建、系统维护、网络安全等基本技能,为今后从事计算机相关工作打下坚实基础。

二、实验时间与地点实验时间:20XX年X月X日至20XX年X月X日实验地点:XX学院计算机实验室三、实验内容与步骤1. 计算机硬件组装(1)准备材料:CPU、主板、内存、硬盘、显卡、电源、机箱、散热器、数据线、螺丝等。

(2)组装步骤:1. 将主板固定在机箱内部,确保主板与机箱后板插槽对齐。

2. 安装CPU,注意插入方向,并用螺丝固定。

3. 安装散热器,连接散热风扇电源线。

4. 安装内存,注意插槽方向,确保内存条与插槽紧密接触。

5. 安装硬盘和显卡,连接数据线和电源线。

6. 连接电源线,确保电源开关打开。

7. 检查所有连接线是否牢固,确保无误。

2. 网络搭建(1)准备材料:路由器、交换机、网线、电脑等。

(2)搭建步骤:1. 将电脑连接到路由器,使用网线连接路由器与电脑。

2. 配置路由器,设置IP地址、子网掩码、默认网关等参数。

3. 在电脑上设置IP地址、子网掩码、默认网关,使其与路由器在同一网络段。

4. 测试网络连通性,确保电脑之间可以互相访问。

3. 系统维护(1)准备材料:Windows系统安装盘、备份工具等。

(2)维护步骤:1. 使用Windows系统安装盘,对电脑进行重装系统。

2. 检查硬件驱动程序,确保所有硬件正常运行。

3. 更新操作系统补丁,提高系统安全性。

4. 使用备份工具,备份重要数据。

4. 网络安全(1)准备材料:防火墙软件、杀毒软件等。

(2)安全步骤:1. 安装防火墙软件,设置防火墙规则,防止恶意攻击。

2. 安装杀毒软件,定期更新病毒库,确保电脑安全。

3. 对电脑进行安全检查,发现安全隐患及时处理。

四、实验结果与分析通过本次综合实训,学生掌握了以下技能:1. 计算机硬件组装与维护;2. 网络搭建与配置;3. 系统维护与安全;4. 网络安全防护。

java综合实验报告

java综合实验报告

java综合实验报告Java 综合实验报告一、实验目的本次 Java 综合实验的主要目的是通过实际的编程项目,深入理解和掌握Java 语言的核心概念、编程技巧以及面向对象的编程思想。

同时,提高解决实际问题的能力,培养良好的编程习惯和代码规范。

二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容本次实验主要包括以下几个方面的内容:1、Java 基础语法的应用,如变量、数据类型、控制流语句(ifelse、for、while 等)。

2、面向对象编程的实现,包括类、对象、属性、方法、封装、继承和多态等概念的运用。

3、异常处理机制的使用,学会捕获和处理常见的运行时异常。

4、集合框架的操作,如 List、Set、Map 等数据结构的使用。

5、文件 I/O 操作,能够读取和写入文本文件、二进制文件。

四、实验步骤及实现过程(一)基础语法练习首先,进行了 Java 基础语法的练习。

创建了一个简单的控制台应用程序,实现了输入两个整数,计算它们的和、差、积、商,并输出结果。

在这个过程中,熟练掌握了变量的声明和赋值、数据类型的转换、算术运算符和控制流语句的使用。

```javaimport javautilScanner;public class BasicArithmetic {public static void main(String args) {Scanner scanner = new Scanner(Systemin);Systemoutprint("请输入第一个整数: ");int num1 = scannernextInt();Systemoutprint("请输入第二个整数: ");int num2 = scannernextInt();int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;double quotient =(double) num1 / num2;Systemoutprintln("两数之和: "+ sum);Systemoutprintln("两数之差: "+ difference);Systemoutprintln("两数之积: "+ product);Systemoutprintln("两数之商: "+ quotient);scannerclose();}}```(二)面向对象编程实践接下来,通过创建一个“学生”类来实践面向对象编程的概念。

可编程综合实训报告范文

可编程综合实训报告范文

一、实训背景随着现代工业自动化技术的不断发展,可编程控制器(PLC)在工业生产中的应用越来越广泛。

为了提高学生的实践能力和职业技能,我们学校特开设了可编程综合实训课程。

本报告将详细记录本次实训的过程和收获。

二、实训目的1. 熟悉PLC的基本原理和结构;2. 掌握PLC编程软件的使用方法;3. 学会PLC控制系统的设计、调试和故障排除;4. 提高动手能力和团队协作能力。

三、实训内容1. PLC基础知识学习:了解PLC的工作原理、硬件结构、编程语言及编程方法。

2. PLC编程软件学习:熟练使用PLC编程软件进行编程,掌握编程技巧。

3. PLC控制系统的设计:根据实际需求,设计PLC控制系统的硬件电路和软件程序。

4. PLC控制系统的调试:对设计好的PLC控制系统进行调试,确保其正常运行。

5. PLC控制系统的故障排除:分析故障原因,提出解决方案,排除故障。

四、实训过程1. 实训前期:认真学习PLC基础知识,了解PLC的工作原理和编程方法。

2. 实训中期:在指导老师的带领下,学习使用PLC编程软件,完成基本编程练习。

3. 实训后期:分组进行PLC控制系统的设计、调试和故障排除。

五、实训成果1. 熟练掌握PLC编程软件的使用方法;2. 独立设计并调试完成一个PLC控制系统;3. 学会分析故障原因,提出解决方案,排除故障;4. 提高动手能力和团队协作能力。

六、心得体会1. 通过本次实训,我对PLC有了更深入的了解,掌握了PLC编程和调试的基本技能;2. 在实训过程中,我学会了如何与团队成员沟通协作,提高了团队协作能力;3. 实训过程中遇到了很多困难,但在老师和同学们的帮助下,我逐一克服,增强了自信心;4. 我认识到理论知识与实践操作相结合的重要性,将更加努力地学习,为将来的工作打下坚实基础。

七、建议1. 增加实训课时,让学生有更多的时间进行实践操作;2. 提供更多种类的PLC控制系统供学生选择,提高实训的多样性;3. 加强与企业的合作,让学生在实训过程中了解实际工作环境,提高就业竞争力;4. 定期举办PLC技术交流活动,分享实训经验和心得,促进学生的共同进步。

c语言课程设计值班问题

c语言课程设计值班问题

c语言课程设计值班问题一、课程目标知识目标:1. 掌握C语言中函数的定义、声明和调用的方法;2. 学会使用循环、分支等基本控制结构解决实际问题;3. 理解数组、指针等C语言核心概念在编程中的应用;4. 了解值班问题背景,掌握其数学模型及求解方法。

技能目标:1. 能够运用C语言编写简单的值班安排程序,实现自动化排班;2. 培养学生分析问题、设计算法和编写代码的能力;3. 提高学生独立调试程序和解决问题的技巧;4. 增强学生的团队协作和沟通能力,学会在项目中分工与协作。

情感态度价值观目标:1. 培养学生热爱编程,树立编程解决实际问题的信心;2. 培养学生严谨、细心的学习态度,养成良好编程习惯;3. 激发学生的创新精神,鼓励他们尝试不同的解决方案;4. 培养学生面对困难时的坚持与毅力,提高克服困难的能力。

本课程针对高中年级学生,结合C语言课程内容,以值班问题为案例,旨在培养学生运用C语言解决实际问题的能力。

课程要求学生在掌握C语言基本知识的基础上,通过团队协作,设计并实现一个简单的值班安排程序。

教学过程中,注重引导学生分析问题、设计算法,培养他们的编程思维和实际操作能力。

课程目标具体、可衡量,便于教学设计和评估。

通过本课程的学习,希望学生能够达到上述知识、技能和情感态度价值观目标。

二、教学内容1. C语言基础回顾:变量、数据类型、运算符、表达式、输入输出函数;2. 控制结构:顺序结构、分支结构(if-else)、循环结构(for、while);3. 函数:函数定义、声明、调用,局部变量和全局变量;4. 数组:一维数组、二维数组,数组的使用和操作;5. 指针:指针的定义、指针与数组,指针与函数;6. 值班问题案例分析:分析值班问题的需求,建立数学模型;7. 算法设计:贪心算法、动态规划等求解值班问题的方法;8. 编程实践:分组讨论、设计算法、编写代码、调试程序;9. 团队协作与沟通:项目分工、协作编程、成果展示、互相评价。

c语言课程设计值班

c语言课程设计值班

c语言课程设计值班一、教学目标本节课的教学目标是使学生掌握C语言的基本语法和编程技巧,培养学生运用C语言解决问题的能力。

具体来说,知识目标包括:了解C语言的基本数据类型、运算符、控制结构、函数等语法知识;掌握C语言的程序设计方法,能够编写简单的C程序。

技能目标要求学生能够运用C语言进行基本的编程操作,具备一定的编程能力。

情感态度价值观目标则是培养学生的团队合作意识,提高学生解决问题的能力,激发学生对计算机科学的兴趣。

二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。

具体安排如下:1.介绍C语言的基本语法和编程环境,使学生了解C语言的基本结构,能够编写简单的C程序。

2.讲解C语言的数据类型、运算符,使学生掌握如何使用C语言进行数据运算和处理。

3.介绍C语言的控制结构,如条件语句、循环语句等,使学生能够运用控制结构设计程序。

4.讲解C语言的函数,使学生了解函数的定义、调用和返回值,掌握如何使用函数进行程序设计。

5.通过案例分析和实践,使学生掌握C语言编程的方法和技巧,培养学生的编程能力。

三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。

首先,通过讲授法向学生传授C语言的基本语法和编程技巧;其次,通过案例分析法引导学生运用所学知识解决实际问题,巩固所学内容;最后,通过实验法让学生动手实践,培养学生的编程能力。

四、教学资源本节课的教学资源包括教材、多媒体资料和实验设备。

教材为学生提供了C语言的基本语法和编程方法,是学生学习的主要参考资料;多媒体资料为学生提供了丰富的视觉和听觉资源,有助于提高学生的学习兴趣;实验设备则为学生提供了动手实践的机会,有助于培养学生的编程能力。

五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,占总评的20%;作业包括编程练习和小论文,占总评的30%;考试为书面考试,主要包括选择题、填空题和编程题,占总评的50%。

c语言课程设计值班问题

c语言课程设计值班问题

c语言课程设计值班问题一、教学目标本节课的教学目标是让学生掌握C语言中的值班问题,理解并运用循环结构和条件结构编写程序。

知识目标包括了解值班问题的背景和意义,掌握循环结构和条件结构的基本语法和用法;技能目标包括能够独立思考并设计解决值班问题的算法,熟练运用C语言编写程序并调试;情感态度价值观目标包括培养学生对编程的兴趣和热情,提高学生解决问题的信心和勇气。

二、教学内容本节课的教学内容主要包括值班问题的背景和意义、循环结构和条件结构的基本语法和用法。

首先,介绍值班问题的背景和意义,使学生了解并认识到学习值班问题的重要性;然后,讲解循环结构和条件结构的基本语法和用法,通过示例代码让学生掌握如何使用循环结构和条件结构解决实际问题。

三、教学方法本节课的教学方法采用讲授法、案例分析法和实验法相结合。

首先,通过讲授法向学生传授值班问题的背景和意义、循环结构和条件结构的基本语法和用法;然后,通过案例分析法分析实际代码,让学生理解并掌握如何运用循环结构和条件结构解决值班问题;最后,通过实验法让学生亲自动手编写代码,培养学生的实际编程能力和解决问题的能力。

四、教学资源本节课的教学资源包括教材、多媒体资料和实验设备。

教材用于为学生提供理论知识和编程示例;多媒体资料用于为学生提供直观的视觉感受,帮助学生更好地理解值班问题和编程方法;实验设备用于让学生亲自动手编写代码,培养学生的实际编程能力。

五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。

平时表现主要评估学生在课堂上的参与程度、提问回答等情况,通过观察学生的表现来了解他们的学习状态。

作业主要评估学生的编程能力和理解程度,通过布置相关的编程题目让学生独立完成,以此来检验他们的学习成果。

考试则是对学生整体掌握情况的评估,通过考试来检验学生对值班问题、循环结构和条件结构的掌握程度。

六、教学安排本节课的教学安排如下:首先,在第一节课的时间内,进行课程介绍和理论知识的教学,让学生了解值班问题和循环结构、条件结构的基本语法和用法;然后,在第二节课的时间内,进行案例分析,让学生通过分析实际代码来理解并掌握如何运用循环结构和条件结构解决值班问题;最后,在第三节课的时间内,进行实验操作,让学生亲自动手编写代码,培养他们的实际编程能力。

个人实训和值班工作总结_web前端实训个人总结

个人实训和值班工作总结_web前端实训个人总结

个人实训和值班工作总结_web前端实训个人总结我是一名大学生,专业是计算机科学与技术,我对Web前端开发非常感兴趣。

为了更好地提升自己的专业水平,我在学校的实训中选择了Web前端开发方向,并在学习过程中不断积累经验,在值班过程中发现更多的问题。

一、实训总结在实训中,我学会了HTML、CSS、JavaScript等几种主流的前端技术,并在日常的项目中不断地应用。

HTML是网页结构的骨架,CSS则是负责网页的样式设计,而JavaScript 则是用来给网页添加交互和动态效果的。

我还学习了一些Web前端的框架和库,如React和jQuery等。

在学习过程中,我充分体会到了实践的重要性,不断地去搜索解决问题的方法,并且自己尝试去实现。

只有在不断地尝试中才能真正理解技术的本质和应用。

在实际的项目中,我也学会了团队合作和交流,如何听取各种想法和建议,并加以整合和实现。

这对我未来的职业发展也是非常重要的。

二、值班工作总结首先,在解决问题的过程中,我需要了解问题的实质,如有没有报错信息、在哪个环节出了问题等。

了解问题的实质有助于更快地找到方向和解决问题的方法。

其次,在一个团队中,我需要做好沟通和交流,不断回答大家的问题,并给出合适的建议和思路。

有效的沟通和交流有助于解决问题,并协助团队完成开发工作。

最后,在这个过程中,我学会了更多的技术知识和经验,掌握了自己的知识点,在解决问题的过程中也不断地加深自己对前端技术的理解。

总结:Web前端开发领域是一个很大的领域,学习和掌握它是一个不断不断探究和学习的过程。

学习过程中需要不断地实践和交流,在值班过程中更需要解决问题的能力和团队合作能力,这些也是一个优秀的前端工程师所必须具备的能力。

在以后的学习和工作中,我会不断地努力提升自己的能力,在Web前端领域中走得更远。

值班安排系统c语言课程设计

值班安排系统c语言课程设计

值班安排系统c语言课程设计一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生运用C语言解决实际问题的能力。

通过本课程的学习,学生应达到以下具体目标:1.知识目标:(1)理解C语言的基本语法和编程规范;(2)掌握基本数据类型、运算符和表达式;(3)熟悉控制结构和函数;(4)了解常用的数据结构和算法;(5)理解软件开发的过程和方法。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备分析问题、设计算法和编写程序的能力;(3)学会使用调试工具进行程序调试;(4)掌握常用的编程技巧和算法实现。

3.情感态度价值观目标:(1)培养学生的团队合作意识和沟通能力;(2)培养学生勇于探索、创新的精神;(3)培养学生耐心、细致的编程习惯;(4)培养学生关注软件质量、安全意识。

二、教学内容根据课程目标,教学内容主要包括以下几个方面:1.C语言基本语法和编程规范;2.基本数据类型、运算符和表达式;3.控制结构:顺序结构、分支结构、循环结构;4.函数:函数的定义、调用、参数传递、返回值;5.数组、字符串和指针;6.常用数据结构:栈、队列、链表、树、图;7.算法:排序算法、查找算法、常用算法分析;8.软件开发过程和方法:需求分析、设计、编码、测试、维护。

三、教学方法为了实现课程目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据结构、算法和编程思想;2.案例分析法:分析实际案例,让学生了解软件开发的过程和方法;3.实验法:让学生通过动手实践,加深对C语言编程的理解;4.讨论法:学生进行小组讨论,培养团队合作意识和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C语言编程思想》、《C语言实战》;3.多媒体资料:教学PPT、视频教程;4.实验设备:计算机、网络环境、编程调试工具。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采取以下评估方式:1.平时表现:考察学生在课堂上的参与程度、提问和回答问题的积极性等;2.作业:布置适量作业,要求学生独立完成,以巩固所学知识;3.实验报告:评估学生在实验过程中的动手能力和解决问题的能力;4.考试:定期进行课程考试,检验学生对知识的掌握程度。

综合编程实验报告--值班安排

综合编程实验报告--值班安排

“程序设计(Ⅱ)”综合编程实验报告( 2012 - 2013 学年第 2 学期)实验项目名称:值班安排一、实验内容与要求医院有A、B、C、D、E、F、G 7位大夫,在一星期内(星期一至星期天)每人要轮流值班一天,如果已知:(1)A大夫比C大夫晚1天值班;(2)D大夫比E大夫晚1天值班;(3)E大夫比B大夫早2天值班(4)B大夫比G大夫早4天值班;(5)F大夫比B大夫晚1天值班;(6)F大夫比C大夫早1天值班;(7)F大夫星期四值班。

就可以确定周一至周日的值班人员分别为:E、D、B、F、C、A、G。

编写程序,根据输入的条件,输出星期一至星期天的值班人员。

输入数据时,先输入一个整数n,再输入n组条件,要求能够根据输入的条件确定唯一的值班表,且输入的n组条件中能够直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、(5)可以间接得到A与B的关系。

条件的输入格式有2种:格式1:编号比较运算符编号天数其中比较运算符有2种:> 或 < ,分别表示“早”或“晚”例如:A<C1 表示:A大夫比C大夫晚1天值班格式2:编号 = 数值例如:F=4 表示:F大夫在星期四值班输入输出示例7A<C1D<E1E>B2B>G4F<B1F>C1F=4EDBFCAG二、系统设计1、解题思路通过寻找有等号的条件,确定其医生的位置,然后把这个医生及其位置作为已知的结点,寻找与该医生有关的条件,确定另一位医生的位置,并把该位医生作为结点,继续寻找,以此递归。

2、数据结构描述可以定义一个二维字符数组保存条件数据,大小为10*20,但从a[1]开始存放,以便与输入数据(位置值)匹配,另外用a[][0]来标记条件,还有定义为全局变量,因为函数里要用到。

3、程序框架结构定义全局字符数组s[30]来存放排好序的医生的位置。

定义 void func(char node,int ka);4、关键算法描述(1)初始化用来存放顺序的数组为'0'for(i=0;i<=29;i++)//初始化用来存放顺序的数组为'0's[i]='0';(2)存放测试数据的条件及标记这些条件for(i=1;i<=n;i++)//存放测试数据的条件及标记这些条件{a[i][0]='0';scanf("%s",&a[i][1]);}(3)寻找条件中有等于号的,确定该位医生的值班时间,并通过该位医生确定其他与这位医生有关医生的值班时间for(i=1;i<=n;i++)//寻找条件中有等于号的,确定该位医生的值班时间,//并通过该位医生确定其他与这位医生有关医生的值班时间{if(a[i][2]=='='){ka=a[i][3]-'0';s[ka]=a[i][1];node=a[i][1];a[i][0]='1';//把已确定时间的条件标记为'1',避免再次确定位置(避免重复搜索该条件)func(node,ka);//调用函数,确定与该医生有关系的医生的值班时间}}(4) 考虑有些条件没有等于号,且还未确定值班时间的医生,通过假设该医生的位置,同时确定与该医生有关的医生值班时间for(i=1;i<=n;i++)//考虑有些条件没有等于号,且还未确定值班时间的医生,通过假设该医生的位置,同时确定与该医生有关的医生值班时间{if(a[i][0]=='0')//判断是否被标记过{node=a[i][1];s[20]=node;//假设该医生的时间是在20ka=20;//记录该医生的位置func(node,ka);//同过函数,确定与该医生有关的医生与该医生的相对位置}}(5) 星期一到星期五是否都有医生值班for(i=1;i<=7;i++)//判断星期一到星期五是否都有医生值班if(s[i]=='0'){aa=i;flag=1;//如果哪一天没人值班,记下那一天的时间并把flag标记为1;break;}(6) 通过假设的位置,填充到数组的相应位置if(flag==1)//通过假设的位置,填充到数组的相应位置{for(i=10;i<=29;i++)if(s[i]!='0'){ab=i;break;}for(i=aa;i<=7;i++){if(s[i]=='0')s[i]=s[ab-aa+i];}}(7) 输出医生值班的顺序表for(i=1;i<=7;i++)//输出医生值班的顺序表printf("%c",s[i]);putchar(10);//换行(8) 实现用已知医生及位置确定与其相关的医生的位置void func(char node,int ka)//实现用已知医生及位置确定与其相关的医生的位置{char node1,ka1,kb1;int j;for(j=1;j<=n;j++){if(a[j][0]!='1')//判断是否已确定位置的条件{if(a[j][1]==node||a[j][3]==node)//判断是否与已知的医生有关的条件{a[j][0]='1';//把该条件标记为'1',避免再次使用//确定该条件中还未确定位置的另一位医生的位置if(a[j][1]!=node){if(a[j][2]=='<')kb1=a[j][4]-'0';elsekb1=-(a[j][4]-'0');s[ka+kb1]=a[j][1];node1=a[j][1];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}else{if(a[j][2]=='<')kb1=-(a[j][4]-'0');elsekb1=(a[j][4]-'0');s[ka+kb1]=a[j][3];node1=a[j][3];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}}}}}三、测试用例测试用例1:输入:7A<C1 D<E1 E>B2 B>G4 F<B1 F>C1 F=4 输出:EDBFCAG测试用例2:输入:6A>B1 B>C1 C>D1 D>E1 E>F1 F>G1输出:ABCDEFG测试用例3:输入:7B>D2 D=3 A>D1 C<A2 E<A5 G=6 F>G1 输出:BADCFGE测试用例4:输入:6A>B1 C<B1 C>D1 D>E1 E>F1 G=7输出:ABCDEFG测试用例5:输入:6A>B1 C<B1 C>D1 D>E1 E>F1 G=1输出:GABCDEF测试用例6:输入:7A<C1 D<E1 E>B3 B>G3 F>B1 F>C2 F=3输出:EDFBCAG测试用例7:输入:8A>B1 D<C1 B>E3 E<C2 E=5 F<E1 G<D3 G=7输出:ABCDEFG…四、总结介绍程序的完成情况,有待改进之处,以及有何收获、体会等。

c语言课程设计实验室值班系统实验报告

c语言课程设计实验室值班系统实验报告

一.需求分析(1)用C语言实现系统;(2)利用结构体数组实现值班人员等信息的数据结构设计;(3)系统具有增加,查询,插入,排序等基本功能;(4)系统的各个功能模块要求用函数的形式实现;(5)将各类信息存在文件中。

二.总体设计1.根据需求分析出所用的结构体2.对功能进行清晰的认识,功能与功能之间有没有关联3.对程序的整体框架够一个大概认识4.具体实现各部分功能5.设计与用户的交互界面,在main中实现对功能模块的调用6.流程图如下:三.详细设计1.void set_color(int color)功能:设置颜色,使得输出界面的不同信息有辨识度,是通过调用windows库函数实现的入口参数:颜色代号2.int txt_number(char *txt)功能:读取文件行数,便于创建链表时制循环次数,是通过读取文件中的总空格数,再除以每一行的空格数实现入口参数:文件名称返回值:文件行数3.void changeTxt(worker*head)功能:重新把链表数据读入文件,生成新文件入口参数:值班人员链表4.void creat(worker*head)功能:从文件中读取数据创建人员链表入口参数:值班人员链表5.void printList(worker*head)功能:输出值班人员信息入口参数:值班人员链表6.void delet_member(worker*head)功能:删除值班信息入口参数:值班人员链表7.void change_member(worker*head)功能:编辑/改变值班信息入口参数:值班人员链表8.worker* selectSort(worker *head)功能:对链表进行选择排序,因为值班人员链表带头结点,所以将头结点后面的余下链表部分单独做了一个排序,然后将该排序后链表返回,在paixv中作为值班人员链表头结点的后面的链表入口参数:值班人员链表返回值:值班人员链表9.void paixv(worker*head)功能:排序,和selectSort(head) 搭配使用入口参数:值班人员链表10.void add(worker*head)功能:添加值班信息入口参数:值班人员链表11.void show(worker*head)功能:显示全部请假人员入口参数:值班人员链表12.int main()各函数调用关系:main调用函数5,6,7,9,10,11函数9调用函数8函数4调用函数2函数1,3被多个函数所调用,因为功能需要多次使用四.程序运行结果测试与分析1)显示实验室值班人员姓名、编号、所属实验内容、联系电话等信息;2)查询人员方式一:通过编号查询方式二:3)值班信息编辑或修改(实验内容,请假等)4)删除信息删除前删除后5)添加工作人员6)根据工作量排序7)对值班人员进行登记(查看全部请假人员)8)功能循环操作五.结论与心得学会了指针的使用,尽量以后把这一块搞懂另外几个心得:1.在用指针进行操作时,一定要注意是否为NULL,否则会运行出错,即while(p->xxx){}, 没有while(p&&p->xxx){} 安全。

C语言实验报告《综合实验》_工作报告

C语言实验报告《综合实验》_工作报告

C语言实验报告《综合实验》学号:__________ 姓名:__________ 班级:__________ 日期:__________
指导教师:__________ 成绩:__________
实验六综合实验
一、实验目的
1、掌握C语言中的变量、数组、函数、指针、结构体等主要知识点。

2、掌握C程序的结构化程序设计方法,能使用C语言开发简单的应用程序。

3、掌握C程序的运行、调试方法等。

二、实验内容
编写一个学生信息排序程序。

要求:
1、程序运行时可输入n个学生的信息和成绩(n预先定义)。

2、学生信息包括:学号、英文姓名、年龄;学生成绩包括:语文、数学、计算机。

3、给出一个排序选择列表,能够按照上述所列信息(学号、姓名、年龄、语文、数学、计算机)中的至少一个字段进行排序,并显示其结果。

1、使用函数方法定义各个模块。

1 / 2
三、实验步骤与过程
物理实验报告·化学实验报告·生物实验报告·实验报告格式·实验报告模板
四、程序调试记录
2 / 2。

计算机基础与综合编程实验报告word文档

计算机基础与综合编程实验报告word文档

计算机基础与综合编程实验报告word⽂档《计算机基础与综合编程实验》报告学院计算机科学与技术学院专业计算机类班级姓名指导教师⽇期1 实验⽬的通过迭代式开发,深⼊掌握C语⾔的⽂件、链表、结构体、动态内存管理等技术,开发实现⼀个计费管理软件。

2 系统功能与描述1.添加卡与查询卡的操作(1)添加卡信息。

①介绍添加卡信息时,将添加的卡信息保存到⼯程⽬录下的card.ams⽂件。

②输⼊a、输⼊菜单项编号1实现“添加卡”b、添加卡信息时输⼊的卡信息c、保存卡信息的⽂件路径③处理a、获取保存卡信息的⽂件路径。

b、获取添加的卡信息。

卡信息包括:卡号、密码、开卡⾦额、卡状态、开卡时间、截⽌时间、最后使⽤时间、使⽤次数、累积⾦额。

c、将每个卡信息组装成⼀条字符串,⼀张卡的每个信息间⽤“##”分隔。

d、将保存的卡信息的字符串写到⼯程⽬录下的card.ams⽂件末尾。

④输出a、保存成功,则显⽰添加的卡信息。

b、保存失败,则提⽰添加卡信息失败。

(2)查询卡信息:①介绍从⼯程⽬录下的card.ams⽂件中,读取并解析卡信息,将卡信息显⽰到界⾯中。

a、输⼊菜单项编号2实现“查询卡”b、card.ams⽂件中的卡信息③处理a、获取保存卡信息的⽂件路径。

b、逐⾏读取该⽂件中的卡信息并解析。

c、将将解析结果保存到内存中,在界⾯上显⽰读取出来的卡信息。

④输出a、读取失败,提⽰没有该卡的信息。

b、读取成功,则在界⾯输出卡号,状态,余额,累计使⽤,使⽤次数,上次使⽤时间,⼀共六个信息。

2.上机:①介绍根据⽤户输⼊的卡号和密码,判断该卡能否进⾏上机。

更新可以上机卡的状态。

②输⼊a、输⼊菜单项编号3,实现“上机功能”b、输⼊卡号和密码c、链表和⽂件中添加过的卡信息③处理a、执⾏上机操作时,从卡信息⽂件中获取卡信息,添加到链表中。

b、以卡号和密码为条件,遍历链表中的卡信息,找到与输⼊条件相符的卡信息。

c、如果找到,以列表⽅式显⽰该卡的上机信息,并更新卡信息。

值班工作实习报告

值班工作实习报告

一、实习单位及部门实习单位:XX公司实习部门:行政部二、实习时间及内容实习时间:2021年6月1日至2021年8月31日实习内容:值班工作三、实习目的通过本次实习,我将学习并掌握值班工作的基本流程、规范和技巧,提高自己的组织协调能力、应急处理能力和团队协作精神,为今后的工作打下坚实基础。

四、实习过程1. 实习初期在实习初期,我对值班工作一无所知,对公司的规章制度、工作流程也不熟悉。

为了尽快适应工作,我主动向值班同事请教,了解值班工作的基本要求。

同时,我还认真阅读了公司相关文件,对值班工作有了初步的认识。

2. 实习中期在实习中期,我开始独立承担值班工作。

我严格按照值班制度,认真做好各项记录,确保值班工作的顺利进行。

在此期间,我遇到了一些突发状况,如突发事件、客户投诉等,通过查阅资料、请教同事,我学会了如何妥善处理这些问题。

3. 实习后期在实习后期,我对值班工作有了更深入的了解,能够熟练地应对各种情况。

同时,我还积极参与部门活动,与同事建立了良好的关系。

在此期间,我主要负责以下工作:(1)负责每日值班记录的填写和归档;(2)负责接待来访客人,协助处理客户投诉;(3)负责协助处理突发事件,如火灾、停电等;(4)负责协助完成部门领导交办的其他工作。

五、实习收获1. 提高了组织协调能力:在值班工作中,我学会了如何合理安排工作,提高工作效率,确保各项工作顺利进行。

2. 提高了应急处理能力:通过处理突发事件,我学会了如何冷静应对,妥善解决问题。

3. 提高了团队协作精神:在值班工作中,我与同事密切配合,共同完成各项工作,增强了团队凝聚力。

4. 了解了企业规章制度:通过实习,我对公司的规章制度有了更深入的了解,为今后更好地融入企业打下了基础。

六、实习总结通过本次值班工作实习,我深刻认识到值班工作的重要性,也体会到了工作的艰辛。

在今后的工作中,我将继续努力学习,提高自己的综合素质,为公司的发展贡献自己的力量。

同时,我也将珍惜实习机会,将所学知识运用到实际工作中,不断提升自己的能力。

现场编程的实训报告

现场编程的实训报告

一、实训背景随着信息技术的飞速发展,编程已经成为现代社会不可或缺的技能之一。

为了提升学生的编程能力,加强理论与实践的结合,我校特组织了一次现场编程实训活动。

本次实训旨在通过实际操作,让学生深入理解编程原理,提高编程水平,并培养团队协作能力。

二、实训目标1. 熟悉编程环境,掌握基本的编程技巧。

2. 理解编程逻辑,提高代码编写能力。

3. 学会使用常用的编程工具和调试方法。

4. 培养团队协作精神,提高沟通能力。

5. 通过实际问题解决,提升编程解决问题的能力。

三、实训内容本次实训主要分为以下几个部分:1. 环境搭建:熟悉编程环境,包括开发工具、编译器、调试器等。

2. 基础语法:学习编程语言的基本语法,如变量、数据类型、运算符、控制结构等。

3. 高级特性:掌握函数、类、面向对象编程等高级特性。

4. 项目实践:通过实际项目,锻炼编程能力,解决实际问题。

5. 团队协作:分组完成项目,培养团队协作精神。

四、实训过程1. 环境搭建:在实训开始前,指导老师详细介绍了编程环境的使用方法,包括如何安装开发工具、配置编译器等。

同学们按照指导老师的步骤,成功搭建了编程环境。

2. 基础语法:在指导老师的讲解下,同学们学习了编程语言的基本语法。

通过课堂练习,同学们掌握了变量、数据类型、运算符等基本概念。

3. 高级特性:随着对基础知识的掌握,同学们开始学习函数、类等高级特性。

通过实际案例,同学们深入理解了面向对象编程的思想。

4. 项目实践:在项目实践环节,同学们分组完成了一个简单的项目。

在项目过程中,同学们遇到了各种问题,通过查阅资料、讨论、请教老师等方式,最终成功解决了问题。

5. 团队协作:在项目实践过程中,同学们充分体现了团队协作精神。

大家分工明确,相互支持,共同完成了项目。

五、实训成果1. 同学们掌握了编程语言的基本语法和高级特性,提高了编程能力。

2. 通过项目实践,同学们学会了如何解决实际问题,提升了编程解决问题的能力。

编程室值夜班规定

编程室值夜班规定

中科昊泰新材料科技有限公司
编程室值夜班规定 编号:HTD-TD-01 版本:A/0
生效日期:2012-06-01
【 受控文件严禁私自影印 】 1 目的
为了更好的解决夜间加工出现的问题。

2 适用部门
编程室
3 值班规定
3.1 所有编程员按顺序值夜班,夜班时间为晚21:00~早6:00 ,包括周六周日。

3.2 值班人员负责解决程序问题,如果不能解决,负责联系对应组长,由组长负责解决。

3.3 值班人员按当夜上晚班,第二天白天可回去休息。

3.4 值班人员需将姓名及手机号码写在编程室内白板上,以便操作工联系。

3.5 车间有程序问题,可直接到编程室找值班人员解决。

编程室
2012-08-03。

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

“程序设计(Ⅱ)”综合编程实验报告( 2012 - 2013 学年第 2 学期)实验项目名称:值班安排一、实验内容与要求医院有A、B、C、D、E、F、G 7位大夫,在一星期内(星期一至星期天)每人要轮流值班一天,如果已知:(1)A大夫比C大夫晚1天值班;(2)D大夫比E大夫晚1天值班;(3)E大夫比B大夫早2天值班(4)B大夫比G大夫早4天值班;(5)F大夫比B大夫晚1天值班;(6)F大夫比C大夫早1天值班;(7)F大夫星期四值班。

就可以确定周一至周日的值班人员分别为:E、D、B、F、C、A、G。

编写程序,根据输入的条件,输出星期一至星期天的值班人员。

输入数据时,先输入一个整数n,再输入n组条件,要求能够根据输入的条件确定唯一的值班表,且输入的n组条件中能够直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、(5)可以间接得到A与B的关系。

条件的输入格式有2种:格式1:编号比较运算符编号天数其中比较运算符有2种:> 或 < ,分别表示“早”或“晚”例如:A<C1 表示:A大夫比C大夫晚1天值班格式2:编号 = 数值例如:F=4 表示:F大夫在星期四值班输入输出示例7A<C1D<E1E>B2B>G4F<B1F>C1F=4EDBFCAG二、系统设计1、解题思路通过寻找有等号的条件,确定其医生的位置,然后把这个医生及其位置作为已知的结点,寻找与该医生有关的条件,确定另一位医生的位置,并把该位医生作为结点,继续寻找,以此递归。

2、数据结构描述可以定义一个二维字符数组保存条件数据,大小为10*20,但从a[1]开始存放,以便与输入数据(位置值)匹配,另外用a[][0]来标记条件,还有定义为全局变量,因为函数里要用到。

3、程序框架结构定义全局字符数组s[30]来存放排好序的医生的位置。

定义 void func(char node,int ka);4、关键算法描述(1)初始化用来存放顺序的数组为'0'for(i=0;i<=29;i++)//初始化用来存放顺序的数组为'0's[i]='0';(2)存放测试数据的条件及标记这些条件for(i=1;i<=n;i++)//存放测试数据的条件及标记这些条件{a[i][0]='0';scanf("%s",&a[i][1]);}(3)寻找条件中有等于号的,确定该位医生的值班时间,并通过该位医生确定其他与这位医生有关医生的值班时间for(i=1;i<=n;i++)//寻找条件中有等于号的,确定该位医生的值班时间,//并通过该位医生确定其他与这位医生有关医生的值班时间{if(a[i][2]=='='){ka=a[i][3]-'0';s[ka]=a[i][1];node=a[i][1];a[i][0]='1';//把已确定时间的条件标记为'1',避免再次确定位置(避免重复搜索该条件)func(node,ka);//调用函数,确定与该医生有关系的医生的值班时间}}(4) 考虑有些条件没有等于号,且还未确定值班时间的医生,通过假设该医生的位置,同时确定与该医生有关的医生值班时间for(i=1;i<=n;i++)//考虑有些条件没有等于号,且还未确定值班时间的医生,通过假设该医生的位置,同时确定与该医生有关的医生值班时间{if(a[i][0]=='0')//判断是否被标记过{node=a[i][1];s[20]=node;//假设该医生的时间是在20ka=20;//记录该医生的位置func(node,ka);//同过函数,确定与该医生有关的医生与该医生的相对位置}}(5) 星期一到星期五是否都有医生值班for(i=1;i<=7;i++)//判断星期一到星期五是否都有医生值班if(s[i]=='0'){aa=i;flag=1;//如果哪一天没人值班,记下那一天的时间并把flag标记为1;break;}(6) 通过假设的位置,填充到数组的相应位置if(flag==1)//通过假设的位置,填充到数组的相应位置{for(i=10;i<=29;i++)if(s[i]!='0'){ab=i;break;}for(i=aa;i<=7;i++){if(s[i]=='0')s[i]=s[ab-aa+i];}}(7) 输出医生值班的顺序表for(i=1;i<=7;i++)//输出医生值班的顺序表printf("%c",s[i]);putchar(10);//换行(8) 实现用已知医生及位置确定与其相关的医生的位置void func(char node,int ka)//实现用已知医生及位置确定与其相关的医生的位置{char node1,ka1,kb1;int j;for(j=1;j<=n;j++){if(a[j][0]!='1')//判断是否已确定位置的条件{if(a[j][1]==node||a[j][3]==node)//判断是否与已知的医生有关的条件{a[j][0]='1';//把该条件标记为'1',避免再次使用//确定该条件中还未确定位置的另一位医生的位置if(a[j][1]!=node){if(a[j][2]=='<')kb1=a[j][4]-'0';elsekb1=-(a[j][4]-'0');s[ka+kb1]=a[j][1];node1=a[j][1];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}else{if(a[j][2]=='<')kb1=-(a[j][4]-'0');elsekb1=(a[j][4]-'0');s[ka+kb1]=a[j][3];node1=a[j][3];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}}}}}三、测试用例测试用例1:输入:7A<C1 D<E1 E>B2 B>G4 F<B1 F>C1 F=4 输出:EDBFCAG测试用例2:输入:6A>B1 B>C1 C>D1 D>E1 E>F1 F>G1输出:ABCDEFG测试用例3:输入:7B>D2 D=3 A>D1 C<A2 E<A5 G=6 F>G1 输出:BADCFGE测试用例4:输入:6A>B1 C<B1 C>D1 D>E1 E>F1 G=7输出:ABCDEFG测试用例5:输入:6A>B1 C<B1 C>D1 D>E1 E>F1 G=1输出:GABCDEF测试用例6:输入:7A<C1 D<E1 E>B3 B>G3 F>B1 F>C2 F=3输出:EDFBCAG测试用例7:输入:8A>B1 D<C1 B>E3 E<C2 E=5 F<E1 G<D3 G=7输出:ABCDEFG…四、总结介绍程序的完成情况,有待改进之处,以及有何收获、体会等。

我觉得我完成的速度和情况还算不错,当然刚开始的时候考虑的方面有限,只考虑到买个医生必须都出现,而且必需直接或间接知道两两医生的相对位置,虽然这就是题目的要求的内容,但作为一个编程的爱好者,我自然加入了一些个人的想法,如:不能直接知道两两医生的相对位置,但可以估测其他医生的位置,且具有唯一真值,如:输入:6A>B1 C<B1 C>D1 D>E1 E>F1 G=7输出:ABCDEFG只知道g的位置和a到f的相对位置,那么a到f只能在星期一到星期六的位置,因此得出星期一到星期日的值班安排。

我还是有一些想到的bug,但还是没想到解决办法,这也是这程序的不完美之处,如:5A>C2 C>D1 D>G3 G=7 E>F1这时的答案应为:ABCDEFG收获:在编程时,但我的到我要的预期效果,我会感到很高兴。

#include<stdio.h>char s[30],a[20][10];//用来存放值班顺序及题目该给的条件int n;void func(char node,int ka)//实现用已知医生及位置确定与其相关的医生的位置{char node1,ka1,kb1;int j;for(j=1;j<=n;j++){if(a[j][0]!='1')//判断是否已确定位置的条件{if(a[j][1]==node||a[j][3]==node)//判断是否与已知的医生有关的条件{a[j][0]='1';//把该条件标记为'1',避免再次使用//确定该条件中还未确定位置的另一位医生的位置if(a[j][1]!=node){if(a[j][2]=='<')kb1=a[j][4]-'0';elsekb1=-(a[j][4]-'0');s[ka+kb1]=a[j][1];node1=a[j][1];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}else{if(a[j][2]=='<')kb1=-(a[j][4]-'0');elsekb1=(a[j][4]-'0');s[ka+kb1]=a[j][3];node1=a[j][3];ka1=ka+kb1;func(node1,ka1);//把该医生作为已知位置的医生来确定其他与这医生有关的医生}}}}}int main(){int i,ka,aa,ab,flag=0;char node;while(scanf("%d",&n)!=EOF){getchar();for(i=0;i<=29;i++)//初始化用来存放顺序的数组为'0's[i]='0';for(i=1;i<=n;i++)//存放测试数据的条件及标记这些条件{a[i][0]='0';scanf("%s",&a[i][1]);}for(i=1;i<=n;i++)//寻找条件中有等于号的,确定该位医生的值班时间,并通过该位医生确定其他与这位医生有关医生的值班时间{if(a[i][2]=='='){ka=a[i][3]-'0';s[ka]=a[i][1];node=a[i][1];a[i][0]='1';//把已确定时间的条件标记为'1',避免再次确定位置(避免重复搜索该条件)func(node,ka);//调用函数,确定与该医生有关系的医生的值班时间}}for(i=1;i<=n;i++)//考虑有些条件没有等于号,且还未确定值班时间的医生,通过假设该医生的位置,同时确定与该医生有关的医生值班时间{if(a[i][0]=='0')//判断是否被标记过{node=a[i][1];s[20]=node;//假设该医生的时间是在20ka=20;//记录该医生的位置func(node,ka);//同过函数,确定与该医生有关的医生与该医生的相对位置}}flag=0;//flag标记为0;for(i=1;i<=7;i++)//判断星期一到星期五是否都有医生值班if(s[i]=='0'){aa=i;flag=1;//如果哪一天没人值班,记下那一天的时间并把flag 标记为1;break;}if(flag==1)//通过假设的位置,填充到数组的相应位置{for(i=10;i<=29;i++)if(s[i]!='0'){ab=i;break;}for(i=aa;i<=7;i++){if(s[i]=='0')s[i]=s[ab-aa+i];}}for(i=1;i<=7;i++)//输出医生值班的顺序表printf("%c",s[i]);putchar(10);//换行}return 0;}。

相关文档
最新文档