教师信息管理系统(C语言课程设计)
c语言程序设计课程设计选题 (1)
![c语言程序设计课程设计选题 (1)](https://img.taocdn.com/s3/m/34ff21035fbfc77da269b1d3.png)
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
C语言选课管理系统课程设计
![C语言选课管理系统课程设计](https://img.taocdn.com/s3/m/73ba39d268dc5022aaea998fcc22bcd126ff42f3.png)
C语言选课管理系统课程设计一、教学目标本课程旨在让学生掌握C语言选课管理系统的开发方法,培养其编程能力和问题解决能力。
具体目标如下:1.知识目标:学生能够理解C语言的基本语法、数据结构和常用算法;掌握面向对象编程思想。
2.技能目标:学生能够使用C语言进行程序设计,独立完成选课管理系统的开发;具备调试和优化程序的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,使其认识到编程在实际应用中的重要性,提高其创新精神和团队合作意识。
二、教学内容本课程的教学内容主要包括C语言基础知识、数据结构、算法、面向对象编程和选课管理系统的设计与实现。
具体安排如下:1.C语言基础知识:介绍C语言的基本语法、变量、运算符、控制结构等。
2.数据结构:讲解数组、链表、栈、队列、树等基本数据结构及其应用。
3.算法:学习常用排序算法、查找算法、递归算法等,培养学生的算法思维。
4.面向对象编程:介绍类、对象、封装、继承、多态等基本概念,并学会使用面向对象的方法解决问题。
5.选课管理系统设计与实现:分析系统需求,设计系统架构,编写功能模块,完成系统集成。
三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:用于讲解基本概念、语法和算法,使学生掌握理论知识。
2.讨论法:学生针对案例进行分析,培养其问题解决能力和团队合作精神。
3.案例分析法:分析实际项目案例,使学生学会将理论知识应用于实际问题。
4.实验法:让学生动手编写代码,培养其编程能力和实践能力。
四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威、实用的教材,如《C程序设计原理与应用》、《C++ Primer》等。
2.参考书:提供相关领域的经典著作,如《算法导论》、《数据结构与算法分析》等。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高教学质量。
4.实验设备:保证学生有足够的实践机会,提高其编程能力和实践能力。
教师信息管理系统
![教师信息管理系统](https://img.taocdn.com/s3/m/c44b5fb9ee06eff9aff8071e.png)
课程设计任务书计算机科学与技术专业 2010 年级一班陈金利一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。
试设计一教师信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)教师信息录入功能--输入(3)教师信息删除功能(4)教师信息浏览功能--输出(5)查询和排序功能:(至少一种查询方式) --算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉Tuber C 或C++的上机环境。
能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。
4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。
如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。
5.学习并了解良好的程序设计风格。
按质、按量、并按时间完成课程设计的任务。
6.提供可运行的课程设计系统,参加上机面试答辩。
本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。
同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。
四、进度安排依照教学计划,课程设计时间为3周。
按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。
避免甚至杜绝“拿到题目就编码”的现象。
建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
教务管理系统c语言课程设计
![教务管理系统c语言课程设计](https://img.taocdn.com/s3/m/86c7038751e2524de518964bcf84b9d529ea2c66.png)
教务管理系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握教务管理系统的基本原理和设计方法,能够运用C语言进行简单的教务管理系统开发。
具体分为以下三个部分:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和面向对象编程思想,了解教务管理系统的功能和结构。
2.技能目标:培养学生具备运用C语言进行程序设计的能力,能够独立完成简单的教务管理系统模块设计与实现。
3.情感态度价值观目标:培养学生对编程事业的热爱,提高学生解决实际问题的积极性,培养学生的团队协作精神和自主学习能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、语句、函数等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、常用算法分析等。
4.面向对象编程:类、对象、封装、继承、多态等。
5.教务管理系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解知识点,使学生掌握基本概念和原理。
2.案例分析法:分析实际案例,使学生了解教务管理系统的应用场景和设计方法。
3.实验法:让学生动手编写代码,培养实际编程能力。
4.讨论法:分组讨论问题,培养学生的团队协作精神和解决问题的能力。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《数据结构与算法分析》(C语言版)、《深度探索C++对象模型》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程调试工具等。
五、教学评估本课程的评估方式包括以下几个部分:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的编程能力和对知识的理解程度。
课程信息管理系统c语言
![课程信息管理系统c语言](https://img.taocdn.com/s3/m/68207814e3bd960590c69ec3d5bbfd0a7856d554.png)
课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。
它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。
本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。
二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。
2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。
3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。
4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。
5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。
三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。
2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。
3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。
4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。
5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。
四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。
2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。
3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。
4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。
5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。
6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。
c语言课程设计带解析
![c语言课程设计带解析](https://img.taocdn.com/s3/m/e668800a001ca300a6c30c22590102020740f2ec.png)
c语言课程设计带解析一、教学目标本课程旨在通过C语言的学习,使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生具备基本的编程能力,能够编写简单的C语言程序。
同时,通过编程实践,培养学生的逻辑思维能力、问题解决能力和创新意识。
此外,通过课程的学习,使学生了解计算机编程的基本原理和方法,培养学生对计算机科学的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体包括以下几个方面:1.C语言的基本语法和规则,如变量声明、数据类型、运算符、表达式等。
2.控制结构,如条件语句、循环语句等。
3.函数的定义和调用,包括主函数、用户自定义函数等。
4.基本的数据结构,如数组、字符串等。
5.指针的概念和应用。
6.结构体和文件操作等高级内容。
三、教学方法本课程采用讲授法、实践法、讨论法等多种教学方法相结合。
在教学过程中,教师将理论知识与实际编程案例相结合,通过生动的讲解和示例,帮助学生理解和掌握C语言的基本语法和编程方法。
同时,通过上机实践和编程作业,使学生能够将所学的知识应用于实际编程中,提高编程能力。
此外,鼓励学生之间的讨论和合作,培养学生的团队协作能力和问题解决能力。
四、教学资源为了保证本课程的顺利进行,需要准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C语言 Primer》等。
2.参考书籍:提供一些相关的参考书籍,如《C专家编程》、《C陷阱与缺陷》等,供学生自主学习参考。
3.在线资源:提供一些在线编程平台和资源,如LeetCode、Codeforces等,供学生进行编程练习和挑战。
4.实验设备:提供计算机实验室,让学生能够进行上机实践和编程实验。
以上是对本课程的教学目标、教学内容、教学方法和教学资源的详细设计。
希望通过这些设计,能够帮助学生更好地学习和掌握C语言,培养学生的编程能力和计算机科学素养。
c语言课程设计职工信息管理系统
![c语言课程设计职工信息管理系统](https://img.taocdn.com/s3/m/d3f06d2f2a160b4e767f5acfa1c7aa00b42a9d43.png)
c语言课程设计职工信息管理系统一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生应能理解职工信息管理系统的需求分析、系统设计、编码实现和测试评估等环节,掌握C语言编程的基本技能,并培养解决实际问题的能力。
具体来说,知识目标包括:掌握职工信息管理系统的功能模块及其相互关系;理解C语言的数据类型、运算符、控制结构、函数等基本语法;了解软件工程的基本原理和方法。
技能目标包括:能够使用C语言独立完成职工信息管理系统的设计和实现;具备基本的调试和优化代码的能力;能够进行团队合作,合理分工,共同完成项目。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情,提高他们对编程学习的自信心;培养学生具备良好的编程习惯和团队协作精神,增强他们的责任感和使命感。
二、教学内容本课程的教学内容主要包括以下几个部分:1.职工信息管理系统的基本概念和架构:介绍职工信息管理系统的功能模块,如职工信息录入、查询、修改和删除等,以及各模块之间的关系。
2.C语言基础知识:讲解C语言的数据类型、运算符、控制结构、函数等基本语法。
3.软件工程方法:介绍需求分析、系统设计、编码实现、测试评估等软件工程基本原理和方法。
4.职工信息管理系统的实现:通过实际编码,讲解如何使用C语言实现职工信息管理系统的各个功能模块。
5.调试与优化:教授如何使用调试工具对代码进行调试,以及如何对代码进行优化,提高系统性能。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法和职工信息管理系统的设计原理。
2.案例分析法:分析实际案例,使学生更好地理解职工信息管理系统的实现过程。
3.实验法:安排实验课程,让学生亲自动手编写代码,实现职工信息管理系统。
4.小组讨论法:学生进行小组讨论,分享学习心得,互相答疑解惑。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C语言程序设计》等。
课程信息管理系统c语言课程设计
![课程信息管理系统c语言课程设计](https://img.taocdn.com/s3/m/ac8bb8b2112de2bd960590c69ec3d5bbfc0ada4c.png)
课程信息管理系统c语言课程设计一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握课程信息管理系统C语言的基本概念、原理和编程方法;技能目标要求学生能够运用C语言进行简单的程序设计和调试;情感态度价值观目标要求学生培养良好的编程习惯和团队合作精神。
通过本课程的学习,学生将了解课程信息管理系统C语言的基本语法和编程技巧,掌握C语言程序设计的基本方法,培养编程思维和解决问题的能力。
同时,学生将学会与他人合作,培养团队合作精神和良好的编程习惯。
二、教学内容根据课程目标,本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等。
教学大纲将按照教材的章节进行安排,每个章节都会有相应的教学内容和教学任务。
具体的教学内容安排如下:1.第一章:C语言概述和基本语法2.第二章:数据类型和运算符3.第三章:控制结构4.第四章:函数和数组5.第五章:指针和字符串6.第六章:文件操作和程序设计三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法。
包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过教师的讲解,向学生传授C语言的基本概念和原理。
2.讨论法:学生进行小组讨论,促进学生之间的交流和合作。
3.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的作用和编程技巧。
4.实验法:安排实验室实践环节,让学生动手编写程序,培养编程能力和实验技能。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备适当的教学资源。
包括教材、参考书、多媒体资料和实验设备等。
1.教材:选择适合本课程的教材,作为学生学习的主要参考资料。
2.参考书:提供相关的参考书籍,供学生深入学习和拓展知识。
3.多媒体资料:制作多媒体课件和教学视频,帮助学生更好地理解和掌握知识点。
4.实验设备:提供计算机实验室,让学生进行实验和实践,提高编程能力和实验技能。
教室管理系统c语言课程设计
![教室管理系统c语言课程设计](https://img.taocdn.com/s3/m/4de462b25ff7ba0d4a7302768e9951e79b896985.png)
教室管理系统c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言中结构体、数组、函数等基本概念,并能运用这些知识设计教室管理系统的基本框架。
2. 学生能理解文件操作在教室管理系统中的应用,掌握文件的读写、存储等基本操作。
3. 学生了解教室管理系统的需求分析、功能模块划分,掌握模块化编程思想。
技能目标:1. 学生能够运用C语言编写程序,实现教室管理系统的各项功能,如添加、删除、查询教室信息等。
2. 学生能够运用所学知识解决实际编程问题,具备一定的程序调试和优化能力。
3. 学生能够通过本课程的学习,培养自己的团队协作、沟通能力,提高问题解决能力。
情感态度价值观目标:1. 学生通过参与教室管理系统的设计与实现,培养对计算机编程的兴趣和热情,提高学习积极性。
2. 学生在学习过程中,培养严谨、认真、负责的学习态度,树立良好的编程习惯。
3. 学生能够认识到编程在解决实际问题中的重要性,增强对信息技术的信心,提高社会责任感。
本课程针对高中年级学生,结合C语言学科特点,以实用性为导向,旨在培养学生的编程能力、问题解决能力和团队协作能力。
课程目标具体、可衡量,为后续教学设计和评估提供了明确的方向。
二、教学内容本课程教学内容紧密结合课程目标,确保科学性和系统性。
具体包括以下部分:1. C语言基础知识回顾:包括数据类型、运算符、控制语句等,涉及教材第1-3章内容。
2. 结构体与数组:讲解结构体的定义和使用,数组的应用,为教室管理系统设计提供数据结构支持,涉及教材第4章内容。
3. 函数:介绍函数的定义、调用、参数传递等,帮助学生掌握模块化编程思想,涉及教材第5章内容。
4. 文件操作:讲解文件读写、存储等基本操作,为教室管理系统提供数据持久化支持,涉及教材第6章内容。
5. 教室管理系统功能模块设计:- 教室信息添加、删除、修改、查询功能,涉及教材第7章内容;- 教室预约、取消预约功能,涉及教材第8章内容;- 用户登录、权限管理功能,涉及教材第9章内容。
c语言课程设计的内容
![c语言课程设计的内容](https://img.taocdn.com/s3/m/aaf2c078ae45b307e87101f69e3143323968f5a5.png)
c 语言课程设计的内容一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握变量定义、数据类型、运算符和表达式等基础知识;2. 学会使用C语言进行顺序、选择和循环结构的编程,并能运用逻辑判断和循环控制解决实际问题;3. 掌握C语言中的数组和字符串操作,能够运用数组进行批量数据处理;4. 了解函数的定义和调用方法,能够编写简单的自定义函数。
技能目标:1. 能够运用C语言编写简单的程序,解决实际问题;2. 培养良好的编程习惯,编写规范、可读性强的代码;3. 学会使用调试工具,能够调试并修复程序中的错误;4. 提高逻辑思维能力,学会分析问题、设计算法并转化为C语言程序。
情感态度价值观目标:1. 培养学生对编程的兴趣和热情,激发学生的创新意识;2. 培养学生严谨、细心的学习态度,提高团队协作能力;3. 使学生认识到编程在现代社会中的重要作用,树立正确的价值观;4. 引导学生遵守编程道德规范,遵循国家法律法规,养成良好的社会责任感。
课程性质:本课程为C语言编程入门课程,旨在让学生掌握C语言的基本知识和编程技能,为后续学习打下基础。
学生特点:学生处于初中或高中年级,具有一定的逻辑思维能力和数学基础,对编程感兴趣,但可能缺乏实际编程经验。
教学要求:结合学生特点,采用任务驱动的教学方法,注重实践操作,让学生在动手实践中掌握编程技能。
同时,注重培养学生的编程兴趣和团队协作能力,提高学生的综合素质。
通过本课程的学习,使学生能够达到上述课程目标,并在后续的学习中不断提高。
二、教学内容1. C语言基础知识:变量、数据类型、常量、运算符、表达式;2. 控制结构:顺序结构、选择结构(if、switch)、循环结构(for、while、do-while);3. 数组:一维数组、二维数组、字符数组与字符串;4. 函数:函数定义、函数调用、函数声明、局部变量与全局变量;5. 编程实践:编写简单的计算器程序、排序算法实现、字符串处理等;6. 调试与优化:使用调试工具(如Turbo C)、程序错误类型及解决方法、代码优化。
课程信息管理系统C语言程序
![课程信息管理系统C语言程序](https://img.taocdn.com/s3/m/937c52140b1c59eef8c7b4cc.png)
#i n c l u d e<s t d i o.h>#include<stdlib.h>#include<string.h>typedef struct{char num[15];char name[20];char credit[10];char clas[20];char teacher[20];}student;student pe[80];int menu_select(){char c;do{system("cls");printf("+---------------------------+\n");printf("| |\n");printf("| 欢迎使用课程信息管理系统|\n");printf("| |\n");printf("+---------------------------+\n");printf("\t\t *****课程信息管理系统***** \n");printf("\t\t ┌───────┐\n");printf("\t\t │1. 增加记录│\n");printf("\t\t │2. 显示记录│\n");printf("\t\t │3. 查询记录│\n");printf("\t\t │4. 修改记录│\n");printf("\t\t │5. 删除记录│\n");printf("\t\t │6. 存储记录│\n");printf("\t\t │0. 退出程序│\n");printf("\t\t └───────┘\n");printf("\t\t请您选择(0-6):");c=getchar();}while(c<'0'||c>'6');return(c-'0');}int Input(student per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t课程编号:");scanf("\t%s",per[n+i].num);printf("\t课程名称:");scanf("\t%s",per[n+i].name);printf("\t学分:");scanf("\t%s",per[n+i].credit);printf("\t选修课号:");scanf("\t%s",per[n+i].clas);printf("\t任课教师:");scanf("\t%s",per[n+i].teacher);gets(x);printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(student per[],int n){int i;printf("-------------------------------------------------------------------------------\n"); /*格式*/printf("课程编号课程名称学分选修课号任课教师\n");printf("-------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);if(i>1&&i%10==0){printf("\t-----------------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------------\n");}}printf("------------------------------------------------------------------------------\n");system("pause");}int Delete_a_record(student per[],int n) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有此科目!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].credit,per[j+1].credit);strcpy(per[j]. clas,per[j+1]. clas);strcpy(per[j]. teacher,per[j+1]. teacher);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(student per[],int n) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\t┌─────----─┐\n");printf("\t│1------课程编号│\n");printf("\t│2------课程名称│\n");printf("\t│3------返回│\n");printf("\t└───--─--──┘\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有这个科目!\n");return;}printf("\t课程名称: %s\n",per[i].name);printf("\t学分: %s\n",per[i]. credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;if(m==2) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号%s\n",per[i].num);printf("\t学分: %s\n",per[i].credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;}void Change(student per[],int n) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号:");scanf("\t%s",per[i].num);printf("\t课程名称:");scanf("\t%s",per[i].name);printf("\t学分:");scanf("\t%s",per[i].credit);printf("\t选修课号:");scanf("\t%s",per[i].clas);printf("\t任课教师:");scanf("\t%s",per[i].teacher);printf("\t修改成功!");}void WritetoText(student per[],int n){int i=0;FILE *fp; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teache r);i++;}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d条记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("成功保存!!!\n");}int main(){int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t请增加记录到系统\n");n=Input(pe,n);break;case 2:printf("\n\t\t\t 课程信息管理系统记录表\n");Display(pe,n);break;case 5:printf("\n\t从系统中删除记录\n");n=Delete_a_record(pe,n);printf("\t");system("pause");break;case 3:printf("\n\t在系统中查找记录\n");Query_a_record(pe,n);printf("\t");system("pause");break;case 4:printf("\n\t修改系统中的记录\n");Change(pe,n);printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n);printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢您的使用,欢迎下次再来!!再见!!\n");printf("\n\t\t");system("pause");exit(0);}}return 0;}#include<stdio.h>#include<string.h>struct link{char cno[10],cname[10],cforecourse[10],cunitno[10],cunitname[10];int ia;struct link *next;};struct link *head;int menu(){int ii;printf("please choose a number:\n");printf("******************************************:\n");printf("1: create :\n");printf("2: search :\n");printf("3: delete :\n");printf("4: view :\n");printf("5: quit :\n");printf("******************************************:\n");printf("\n");printf("\n");printf("\n");printf("\n");scanf("%d",&ii);return ii;}struct link create(){int icount,ij=1;struct link *p,*new;while(1){if(icount){printf("输入头结点");}new=(struct link *)malloc(sizeof(struct link));printf("input the course no:\n");scanf("%s",new->cno);printf("input the course :\n");scanf("%s",new->cname);printf("input the forecourse :\n");scanf("%s",new->cforecourse);printf("input the course grade:\n");scanf("%d",&new->ia);printf("input the unit no. grade:\n");scanf("%s",new->cunitno);printf("input the unit name:\n");scanf("%s",new->cunitname);new->next=NULL;if(icount){head=new;p=new;printf("the fist add success:\n");getchar();getchar();icount=0;}e lse{p->next=new;printf("\n");p=p->next;printf("add success:\n");printf("\n");getchar();}p rintf("input 0 to end input:\n");scanf("%d",&ij);if(ij==0){break;}}}struct link search(){struct link *p;char ckeyname[10];p=head;printf("please input the name you want to view:\n");scanf("%s",ckeyname);while(strcmp(ckeyname,p->cname)!=0&&p->next!=NULL){p=p->next;}if(p->next==NULL){printf("no this position:\n");}else{printf("found it:\n");printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);}}struct link delete(){struct link *p,*q,*r;char ckeyname[10];r=head;p=r->next;q=p->next;printf("please input the name you want to del:\n");scanf("%s",ckeyname);while(strcmp(ckeyname,p->cname)!=0&&r->next!=NULL){r=r->next;p=p->next;q=q->next;}if(r->next==NULL){printf("no this position:\n");}else{printf("found it:\n");printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);r->next=p->next;printf("delete success:\n");getchar();getchar();}}void output(){struct link *p,*q;p=head;p=p->next;q=head;if(q->next==NULL){printf("no record:\n");}else{while(p->next){printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);printf("\n");p=p->next;}printf("%s,%s,%s,%d,%s,%s",p->cno,p->cname,p->cforecourse,p->ia,p->cunitno,p->cunitname);}}void quit(){exit(0);}void main(){int ia=1;head=NULL;while(ia!=5){ia=menu();switch(ia){case 1:create();break;case 2:search();break;case 3:delete();break;case 4:output();break;case 5:quit();break;default:printf("input wrong:\n");}}}#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct{char num[15];char name[20];char credit[10];char clas[20];char teacher[20];}student;student pe[80];int menu_select(){char c;do{system("cls");printf("\n");printf("\n");printf(" 欢迎使用课程信息管理系统\n");printf("\n");printf("\n");printf(" 课程信息管理系统\n");printf("\n");printf(" 1. 增加记录\n");printf(" 2. 显示记录\n");printf(" 3. 查询记录\n");printf(" 4. 修改记录\n");printf(" 5. 删除记录\n");printf(" 6. 存储记录\n");printf(" 0. 退出程序\n");printf("\n");printf("\t\t请您选择(0-6):");c=getchar();}while(c<'0'||c>'6');return(c-'0');}int Input(student per[],int n){int i=0;char sign,x[10];while(sign!='n'&&sign!='N'){printf("\t课程编号:");scanf("\t%s",per[n+i].num);printf("\t课程名称:");scanf("\t%s",per[n+i].name);printf("\t学分:");scanf("\t%s",per[n+i].credit);printf("\t选修课号:");scanf("\t%s",per[n+i].clas);printf("\t任课教师:");scanf("\t%s",per[n+i].teacher);gets(x);printf("\n\t是否继续添加?(Y/N)");scanf("\t%c",&sign);i++;}return(n+i);}void Display(student per[],int n){int i;printf("-------------------------------------------------------------------------------\n"); /*格式*/printf("课程编号课程名称学分选修课号任课教师\n");printf("-------------------------------------------------------------------------------\n");for(i=1;i<n+1;i++){printf("%-12s%-12s%-15s%-18s%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teacher);if(i>1&&i%10==0){printf("\t-----------------------------------------\n");printf("\t");system("pause");printf("\t-----------------------------------------\n");}}printf("------------------------------------------------------------------------------\n");system("pause");}int Delete_a_record(student per[],int n) //删除学生记录函数{char s[20];int i=0,j;printf("\t请输入想删除记录中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有此科目!\n");return(n);}for(j=i;j<n-1;j++){strcpy(per[j].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].credit,per[j+1].credit);strcpy(per[j]. clas,per[j+1]. clas);strcpy(per[j]. teacher,per[j+1]. teacher);}printf("\t\t\t已经成功删除!\n");return(n-1);}void Query_a_record(student per[],int n) //查询学生记录{int m;printf("\t\n请选择查询方式:\n");printf("\\n");printf("1------课程编号\n");printf("2------课程名称\n");printf("3------返回\n");printf("\n");printf("请选择:");scanf("%d",&m);while(m!=1&&m!=2&&m!=3){printf("输入错误,请重新选择:");scanf("%d",&m);}if(m==1) // 按课程编号查询{char s[20];int i=0;printf("\t请输入想查询的课程编号:");scanf("\t%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有这个科目!\n");return;}printf("\t课程名称: %s\n",per[i].name);printf("\t学分: %s\n",per[i]. credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;if(m==2) //按课程名称查询{char s[20];int i=0;printf("\t请输入想查询的课程名称:");scanf("\t%s",s);while(strcmp(per[i].name,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号%s\n",per[i].num);printf("\t学分: %s\n",per[i].credit);printf("\t选修课号: %s\n",per[i].clas);printf("\t任课教师: %s\n",per[i].teacher);} ;}void Change(student per[],int n) //修改课程记录{char s[20];int i=0;printf("\t请输入想修改的课程信息管理系统中的课程编号:");scanf("%s",s);while(strcmp(per[i].num,s)!=0&&i<n) i++;if(i==n){printf("\t系统中没有该科目!\n");return;}printf("\t课程编号:");scanf("\t%s",per[i].num);printf("\t课程名称:");scanf("\t%s",per[i].name);printf("\t学分:");scanf("\t%s",per[i].credit);printf("\t选修课号:");scanf("\t%s",per[i].clas);printf("\t任课教师:");scanf("\t%s",per[i].teacher);printf("\t修改成功!");}void WritetoText(student per[],int n){int i=0;FILE *fp; //定义文件指针char filenum[20]; //定义文件名printf("\t保存到文件\n"); //输入文件名printf("\t请输入所保存的文件名:");scanf("\t%s",filenum);if((fp=fopen(filenum,"w"))==NULL){printf("\t无法打开文件\n");system("pause");return;}fprintf(fp,"****************************************** 课程信息管理系统**********************************\n");fprintf(fp," 课程编号课程名称学分选修课号任课教师\n");fprintf(fp,"------------------------------------------------------------------------------------------\n");while(i<=n){fprintf(fp,"%-10s%-10s%-15s%-18s%%s\n",per[i-1].num,per[i-1].name,per[i-1].credit,per[i-1].clas,per[i-1].teache r);i++;}fprintf(fp,"------------------------------------------------------------------------------------------\n");fprintf(fp,"***************************************共有%d条记录****************************************\n",n);fclose(fp); /*关闭文件*/printf("成功保存!!!\n");}int main(){int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t请增加记录到系统\n");n=Input(pe,n);break;case 2:printf("\n\t\t\t 课程信息管理系统记录表\n");Display(pe,n);break;case 5:printf("\n\t从系统中删除记录\n");n=Delete_a_record(pe,n);printf("\t");system("pause");break;case 3:printf("\n\t在系统中查找记录\n");Query_a_record(pe,n);printf("\t");system("pause");break;case 4:printf("\n\t修改系统中的记录\n");Change(pe,n);printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n);printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢您的使用,再见。
教师信息管理系统报告
![教师信息管理系统报告](https://img.taocdn.com/s3/m/06dc6e2258fb770bf78a559c.png)
目录目录 (I)一、选题背景 (1)1.1 主要问题及技术要求 (1)1.2基本思路 (1)2.1 函数设计思路及流程图 (2)2.1.1 程序基本功能和流程 (2)2.1.2主函数结构及流程 (2)2.2 部分主要函数的流程图 (3)2.3参数设置说明 (5)2.3.1结构体变量 (5)2.3.2整型变量n,m (5)三、程序及功能说明 (5)3.1 数据结构的设计 (5)3.2 信息初始化及进入菜单模块 (5)3.3显示教师信息模块 (7)3.4修改和查询教师信息模块 (8)3.5添加教师信息模块 (10)3.6按职工号排序模块 (11)3.7删除教师信息模块 (12)3.8退出管理系统模块 (12)3.9主函数模块 (13)四、结果分析 (14)4.1信息初始化及进入菜单模块 (14)4.1.1登录界面 (14)4.1.2选择界面 (15)4.2显示教师信息模块 (16)4.3修改教师信息模块 (17)4.4添加教师信息模块 (18)4.5按职工号排序模块 (19)4.6查询教师信息模块 (20)4.7删除教师信息模块 (21)4.8保存并退出板块 (22)4.9退出板块 (22)五、总结及心得体会 (23)参考文献 (26)源程序 (27)一、选题背景1.1 主要问题及技术要求学院教学信息是教学过程中重要的反馈,对这些信息的的整理、分析,对教学质量的监控、教学过程的管理有着重要的作用。
信息技术的发展渗透在生活的各个方面,教务管理系统的应用可以使教学管理更加方便、有效,我们小组应用C语言相关知识,编写程序来实现教职工信息的管理。
本课题主是要满足管理系统对教职工基本信息的输入、显示、修改、添加、查询、排序等技术要求。
1.2基本思路运用学习的C语言知识,特别是数组结构体和链表的综合使用,用结构体存储每个老师的基本信息,用链表将所有结构体连接起来,进而用链表对教师信息进行整体操作。
以switch语句为主设计主函数,进而调用显示、修改、添加、查询、排序等各个模块的子函数来实现所需要的功能。
C语言课程设计任务书(18份)详细版
![C语言课程设计任务书(18份)详细版](https://img.taocdn.com/s3/m/3ef01ec984254b35effd3413.png)
C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。
C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。
3、进一步要求:完成计费和费用查询功能。
要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
c语言课程设计学生信息管理
![c语言课程设计学生信息管理](https://img.taocdn.com/s3/m/383968e48662caaedd3383c4bb4cf7ec4bfeb645.png)
c语言课程设计学生信息管理一、教学目标本课程的教学目标是使学生掌握C语言的基本语法,能够使用C语言进行简单的程序设计,通过学生信息管理系统的设计与实现,培养学生运用C语言解决实际问题的能力。
具体来说,知识目标包括:理解C语言的基本数据类型、运算符、控制结构、函数等基本概念;技能目标包括:能够使用C语言编写简单的程序,能够使用C语言进行学生信息的管理和处理;情感态度价值观目标包括:培养学生对计算机科学的兴趣,培养学生独立思考、解决问题的能力。
二、教学内容教学内容主要包括C语言的基本语法、学生信息管理系统的设计与实现。
具体安排如下:1.C语言的基本语法:包括数据类型、运算符、控制结构、函数等基本概念,通过讲解和示例让学生掌握这些基本概念。
2.学生信息管理系统的设计与实现:包括学生信息的增删改查等功能,通过案例教学,让学生学会如何使用C语言实现这些功能。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在教学过程中,教师会通过讲解和示例让学生掌握C语言的基本语法,通过案例分析让学生学会如何设计学生信息管理系统,通过实验让学生亲手编写代码,巩固所学知识。
四、教学资源教学资源包括教材、实验设备等。
教材为学生提供了学习C语言的理论知识,实验设备让学生能够亲手编写代码,将理论知识付诸实践。
此外,还可以利用多媒体资料,如教学视频、PPT等,丰富学生的学习体验,帮助学生更好地理解和掌握C语言。
五、教学评估为了全面、客观地评估学生在C语言学习过程中的表现和成果,本课程采取多种评估方式,包括平时表现、作业、考试等。
平时表现主要评估学生在课堂上的参与程度、提问和回答问题的积极性等;作业主要评估学生的编程能力和对知识的掌握程度;考试则是对学生学习成果的全面检验。
这些评估方式将综合运用,以全面反映学生的学习成果。
六、教学安排本课程的教学安排将根据课程内容和学生的实际情况进行合理规划。
教学进度将确保在有限的时间内完成所有教学任务,教学时间将安排在学生精力充沛的时间段,教学地点则选择安静、舒适的教室。
教师信息管理系统(设计说明书范本)
![教师信息管理系统(设计说明书范本)](https://img.taocdn.com/s3/m/97df3b7f7f1922791788e86e.png)
. ..C程序设计课程设计任务书及说明书设计题目教师信息管理系统学院计算机与通信专业、年级物联网工程学生王明明学号 _____ 14530008_指导教师时间 2015 年春季学期目录1 摘要 (3)2 前言 (4)3 正文 (5)3.1系统分析(需求分析)3.2系统总体设计3.3详细设计3.4系统测试及使用(操作)说明4 总结 (18)5 参考文献 (18)致谢附录: 程序源代码1 摘要本次课程设计采用C语言,开发了一个基本的教师信息管理系统,该系统具备了按教师姓名查找并输出教师信息,按教师号查找并输出教师信息,按教师姓名查找并删除数据,输出全部教师信息数据,对教师的管理也可以更加方便快捷。
关键词:C语言;课程设计;教师信息管理系统2 前言随着教育的广泛性的提高,教师的数量逐渐增多,但是在教师管理是出现教师姓名、年龄等出现错误的诸多问题。
本文针对上述问题,采用软件工程的开发原理,根据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个教师信息管理系统。
采用c语言作为开发工具,设计了这个教师信息管理系统,解决了教师信息管理中存在的数据安全性、数据一致性等问题。
3、正文3.1 系统分析3.3.1.设计要求该设计要求教师以学校教师信息管理业务为背景,设计、开发一套“教师信息管理系统”软件。
通过该题目的设计过程,可以培养教师结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
得到软件工程的综合训练,提高解决实际问题的能力。
3.3.2设计任务1、以教师信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;2、完成软件结构设计和算法设计;3、完成系统的软件开发和测试工作;教师信息包括:教师号,,年龄,性别,出生年月,地址,,E-mail等。
C语言课程设计报告—人事管理系统1
![C语言课程设计报告—人事管理系统1](https://img.taocdn.com/s3/m/cf4bf96503020740be1e650e52ea551810a6c99f.png)
人事管理系统前言:现代计算机技术的发展为人们的学习、生活、工作提供了很大的帮助, 各行各业都需要特定计算系统的运用, 我们需要了解这些系统是怎么样为我们服务以及他们是怎样编辑出来的。
我们需要学习C语言编程, 根据课堂讲授内容, 做相应的自主练习, 消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题, 逐渐培养编程能力、用计算机解决实际问题的能力, 能够按照要求编辑一些基本的程序, 提高自己的思维能力。
题目:(1)某高校主要人员有: 在职人员(行政人员、教师、一般员工)、退休人员及临时工。
现在需要储存这些人员的人事档案信息, 内容包括编号、姓名、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。
其中, 人员编号唯一, 不能重复。
(2)添加删除功能:能根据学院人事的变动情况, 添加删除记录。
(3)查询功能: 能根据编号和姓名进行查询。
(4)编辑功能(高级): 根据查询对相应的记录进行修改并记录。
(5)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数, 高学历高职称人数), 统计要求同时显示被统计着的信息。
排序功能: 按照年龄、来院时间进行排序。
保存功能: 能对输入的数据进行相应的存储。
分析:我们编辑的程序要能够满足题目的要求, 可以进行这么多的功能的计算!但是在开始我们运行使用程序的时候必须要知道我们要运用这些功能中的哪一个!这就要求我们可以程序中任意选择我们所需要的功能!很显然我们要编辑存储人员的信息自然要运用到文件!而人员的信息必须要以结构体的形式来表示才能够方便我们提取信息!我们选择了要运行的功能分支之后!这些功能是以主函数以外的被调函数!当有需要时被调函数还可以调用其他的被吊函数!例如我们题目中的统计和查询功能, 就可以用这种方式来编辑程序!方便清楚!设计:很显然主程序要用到SWICTH函数, 这样可以选择要运行的那个功能的函数来执行, 而其他的功能函数则不必运行!三、解题思路1.定义结构struct staff{char num[10];char name[20];char sex[10];int age;char title[20];char p_landscape[30];char Qualifications[30];int Service_time;char come_time[30];char category[30];}staff[100];2.主程序进入主菜单函数void main(){menu();}/*******************主菜单函数**********************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("***********************高校人事管理系统**********************\n\n");puts("\t\t\t\t1)增加人员信息\n"); puts("\t\t\t\t2)删除人员信息 \n"); puts("\t\t\t\t3)查询人员信息\n"); puts("\t\t\t\t4)修改人员信息\n"); puts("\t\t\t\t5)统计人员信息\n"); puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n"); puts("\t\t\t\t8)浏览人员信息\n"); puts("\t\t\t\t9)退出\n");printf("\t\t\t\t 请选择 [ ]\b\b"); w0=getchar();}while(w0<'1'||w0>'9'); switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break; case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;} }(1)查询功能int search_data()/*{int i,flag; char s[30],w0;system("cls");/*清屏*/ n=load(); do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b"); w0=getchar(); }while(w0<'1'||w0>'2'); if(w0=='1'){/*按编号查找*/ flag=0;puts("输入人员编号:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]); flag=1;break;} else continue; }if(flag==0)puts("该人员不存在!"); }else {/*按姓名查找*/ flag=0;puts("输入人员姓名:"); scanf("%s",s); for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0){case 1:save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}(3)保存信息void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}(4)删除人员void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");} } do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(5)修改人员信息 void modify() {int k=0,w0,g; char h[30],w1,w2; loop: g=search_data(); if(g<n){ do{puts("\t\t\t 修改: 1)编号"); puts("\t\t\t 2)姓名"); puts("\t\t\t 3)性别"); puts("\t\t\t 4)年龄"); puts("\t\t\t 5)职务"); puts("\t\t\t 6)职称"); puts("\t\t\t 7)政治面貌"); puts("\t\t\t 8)最高学历"); puts("\t\t\t 9)任职时间"); puts("\t\t\t 10)来院时间"); puts("\t\t\t 11)人员类别"); printf(" 请选择 : [ ]\b\b"); scanf("%d",&w0);}while(w0<1||w0>11); switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break; case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break; case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break; case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break; case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break; case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}(6)统计人员信息void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count); }else if(w0=='2'){/*统计党员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);}else if(w0=='3'){/*统计女工人员*/ printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t 共有%d 条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);} printf("\t\t\t\t 共有%d 条记录",count);} do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b"); w1=getchar();}while(w1<'1'||w1>'3'); if(w1=='1') goto loop; else if(w1=='2')menu(); else exit(0); }(6) 排序功能void sort() {int i,j;char w0,w1; struct staff s1; loop: n=load();system("cls"); do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}四、运行与测试报告*********************************高校人事管理系统******************************1)增加人员信息2)删除人员信息3)查询人员信息4)修改人员信息5)统计人员信息6)对人员排序7)保存人员信息8)浏览人员信息9)退出请选择【 1】请输入编号(如001):20071003335请输入姓名:majianbo请输入性别(男,女):nan请输入年龄:20请输入职务(教授副教授讲师助教学生后勤人员): jiaoshou请输入职称 (无初级高级 ):gaoji请输入政治面貌( 党员非党员 ):danyuan请输入最高学历(小学初中高中大学硕士学位更高): shuoshi请输入任职时间:20070901请输入来院时间(如20050101):20070901请输入人员类别(行政人员教师一般员工退休人员临时工): jiaoshi是否保存?1)是 2)否 [1]该信息已成功保存!1)继续增加人员信息 2)回主菜单 3)退出 [ ]程序:#include<stdlib.h>#include <stdio.h>#include <string.h>struct staff/*定义结构体*/{char num[10];/*编号*/char name[20];/*姓名*/char sex[10];/*性别*/int age;/*年龄*/char duty[20];/*职务*/char title[20];/*职称*/char p_landscape[30];/*政治面貌*/char Qualifications[30];/*学历*/int Service_time;/*任职时间*/char come_time[30];/*来院时间*/char category[30];/*人员类别*/}staff[100];struct staff s;int n;void menu();void printf_face()/*显示数据结构项目函数*/{printf("编号姓名性别年龄职务职称政治面貌学历任职时间来院时间人员类别\n");}void printf_one(struct staff p)/*输出单个数据函数*/{printf("%-4s%-7s%-5s%-3d%-7s%-5s%-8s%-12s%-5d%-12s%-3s\n",p.num,,p.se x,p.age,p.duty,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_tim e,p.category);}int load()/*加载函数*/{int i=0;FILE *fp;if((fp=fopen("text.txt","rb"))==NULL){return 0; exit(0);}for(i=0;!feof(fp);i++){ /*输出数据到结构体*/fscanf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name,staff [i].sex,&staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,staff[i ].Qualifications,&staff[i].Service_time,staff[i].come_time,staff[i].category);} fclose(fp);return i;}int search_data()/*查找单个数据函数*/{int i,flag;char s[30],w0;system("cls");/*清屏*/n=load();do{fflush(stdin); /*清除缓冲区输入*/printf(" 通过1)编号 2)姓名 [ ]\b\b");w0=getchar(); }while(w0<'1'||w0>'2');if(w0=='1'){/*按编号查找*/flag=0;puts("输入人员编号:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].num)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0)puts("该人员不存在!");}else {/*按姓名查找*/flag=0;puts("输入人员姓名:");scanf("%s",s);for(i=0;i<n;i++){if(strcmp(s,staff[i].name)==0){printf_face();printf_one(staff[i]);flag=1;break;}else continue;}if(flag==0) puts("该人员不存在!");}return i;}void save_all()/*保存所有数据函数*/{int i;FILE *fp;if((fp=fopen("text.txt","wb"))==NULL){printf("无法打开文件!");exit(0);}for(i=0;i<n;i++){if(staff[i].age!=0)fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",staff[i].num,staff[i].name, staff[i].sex,staff[i].age,staff[i].duty,staff[i].title,staff[i].p_landscape,sta ff[i].Qualifications,staff[i].Service_time,staff[i].come_time,staff[i].category );else continue;}fclose(fp);}int test(char h[10])/*检查编号是否重复*/{int i;n=load();for(i=0;i<n;i++)if(strcmp(h,staff[i].num)==0){puts("输入的编号有重复!请重新输入编号!");system("pause");return 1;}return 0;}void single_save(struct staff p)/*保存单个数据函数*/{FILE *fp;if((fp=fopen("text.txt","ab+"))==NULL){printf("无法打开文件!");exit(0);}fprintf(fp,"%s %s %s %d %s %s %s %s %d %s %s\n",p.num,,p.sex,p.age,p.duty ,p.title,p.p_landscape,p.Qualifications,p.Service_time,e_time,p.category);printf("该信息已成功保存!\n");fclose(fp);}/*********************************修改模块**********************************/ void modify(){int k=0,w0,g;char h[30],w1,w2;loop: g=search_data();if(g<n){do{puts("\t\t\t修改: 1)编号");puts("\t\t\t 2)姓名");puts("\t\t\t 3)性别");puts("\t\t\t 4)年龄");puts("\t\t\t 5)职务");puts("\t\t\t 6)职称");puts("\t\t\t 7)政治面貌");puts("\t\t\t 8)最高学历");puts("\t\t\t 9)任职时间");puts("\t\t\t 10)来院时间");puts("\t\t\t 11)人员类别");printf(" 请选择 : [ ]\b\b");scanf("%d",&w0);}while(w0<1||w0>11);switch(w0){case 1:puts("请输入新编号:");scanf("%s",h);strcpy(staff[g].num,h);break;case 2:puts("请输入姓名:");scanf("%s",h);strcpy(staff[g].name,h);break;case 3:puts("请输入性别:");scanf("%s",h);strcpy(staff[g].sex,h);break;case 4:puts("请输入年龄:");scanf("%d",&k);staff[g].age=k;break;case 5:puts("请输入职务:");scanf("%s",h);strcpy(staff[g].duty,h);break;case 6:puts("请输入职称:");scanf("%s",h);strcpy(staff[g].title,h);break;case 7:puts("请输入政治面貌:");scanf("%s",h);strcpy(staff[g].p_landscape,h);break;case 8:puts("请输入最高学历:");scanf("%s",h);strcpy(staff[g].Qualifications,h);break;case 9:puts("请输入任职时间:");scanf("%d",&k);staff[g].Service_time=k;break;case 10:puts("请输入来院时间:");scanf("%s",h);strcpy(staff[g].come_time,h);break;case 11:puts("请输入人员类别:");scanf("%s",h);strcpy(staff[g].category,h);break;}do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)保存 2)否[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'2');if(w1=='1'){save_all(); puts("保存修改成功!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续修改 2)回主菜单 3)退出[ ]\b\b");w2=getchar();}while(w2<'1'||w2>'3');if(w2=='1')goto loop;else if(w2=='2')menu();else exit(0);}/************************保存模块******************************/void save(){char w0;save_all();printf("所有信息已保存!\n");do{fflush(stdin); /*清除缓冲区输入*/printf("1) 回主菜单 2) 退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1')menu();else exit(0);}/*************************查找模块*****************************/ void search(){int k;char w1;loop: k=search_data();do{fflush(stdin); /*清除缓冲区输入*/printf("1)回主菜单 2)退出 3)继续查询 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')menu();else if(w1=='2')exit(0);else goto loop;}/***************************增加模块*****************************/ void add(){char w0,w1;loop: system("cls");puts("请输入编号(如001):");scanf("%s",s.num);if(test(s.num))goto loop;/*编号重复*/puts("请输入姓名:");scanf("%s",);puts("请输入性别(男,女):");scanf("%s",s.sex);puts("请输入年龄:");scanf("%d",&s.age);puts("请输入职务(教授副教授讲师助教学生后勤人员):");scanf("%s",s.duty);puts("请输入职称 (无初级高级 ):");scanf("%s",s.title);puts("请输入政治面貌( 党员非党员 ):");scanf("%s",s.p_landscape);puts("请输入最高学历(小学初中高中大学硕士学位更高):");scanf("%s",s.Qualifications);puts("请输入任职时间:");scanf("%d",&s.Service_time);puts("请输入来院时间(如20050101):");scanf("%s",e_time);puts("请输入人员类别(行政人员教师一般员工退休人员临时工):");scanf("%s",s.category);do{fflush(stdin); /*清除缓冲区输入*/printf("是否保存?1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');switch(w0-48){case 1:single_save(s);break;case 2:break;}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续增加人员信息 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1')goto loop;else if(w1=='2')menu();else exit(0);}/*******************************删除模块*****************************/void delete_data(){int k; char w0,w1;loop: k=search_data();if(k<n){do{fflush(stdin); /*清除缓冲区输入*/printf("确认要删除该人员信息? 1)是 2)否 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){staff[k].age=0;save_all();puts("该人员信息已被删除!");}}do{fflush(stdin); /*清除缓冲区输入*/printf("1)继续删除数据 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/********************************统计模块*******************************/void stastic(){int i,count;char w0,w1;n=load();if(n==0){puts("没有数据!");getchar();menu();}loop: system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过1)在职人员 2)党员\n");printf(" 3)女工人数 4)最高学历 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'4');if(w0=='1'){/*统计在职人员*/printf_face();for(i=0,count=0;i<n&&staff[i].age;i++)if(strcmp(staff[i].category,"退休人员")!=0&&strcmp(staff[i].category,"临时工")!=0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='2'){/*统计党员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].p_landscape,"党员")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else if(w0=='3'){/*统计女工人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].sex,"女")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}else {/*统计高学历人员*/printf_face();for(i=0,count=0;i<n;i++)if(strcmp(staff[i].Qualifications,"硕士学位")==0||strcmp(staff[i].Qualifications,"更高")==0){count++; printf_one(staff[i]);}printf("\t\t\t\t共有%d条记录",count);}do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)继续统计 2)回主菜单 3)退出 [ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') goto loop;else if(w1=='2')menu();else exit(0);}/*******************************排序模块***********************************/ void sort(){int i,j;char w0,w1;struct staff s1;loop: n=load();system("cls");do{fflush(stdin); /*清除缓冲区输入*/printf("通过 1)年龄 2)来院时间 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1'){/*按年龄排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(staff[i].age>staff[j].age){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}else {/*按来院时间排序*/for(i=0;i<n-1;i++)/*选择法排序*/for(j=i+1;j<n;j++)if(strcmp(staff[i].come_time,staff[j].come_time)>0){s1=staff[i];staff[i]=staff[j];staff[j]=s1;}}printf_face();for(i=0;i<n;i++) /*显示排序结果*/printf_one(staff[i]);do{fflush(stdin); /*清除缓冲区输入*/printf("\n1)回主菜单 2)继续排序 3)退出[ ]\b\b");w1=getchar();}while(w1<'1'||w1>'3');if(w1=='1') menu();else if(w1=='2')goto loop;else exit(0);}/********************************浏览模块**************************************/void browse(){int i;char w0;n=load();system("cls");printf_face();for(i=0;i<n ;i++)printf_one(staff[i]);printf("\t\t\t\t共有%d条人员记录\n",n);do{fflush(stdin); /*清除缓冲区输入*/printf(" 1)回主菜单 2)退出 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'2');if(w0=='1') menu();if(w0=='2') exit(0);}/********************************主菜单函数*************************************/void menu(){char w0;do{system("cls");fflush(stdin); /*清除缓冲区输入*/puts("*********************************高校人事管理系统*******************************\n\n");puts("\t\t\t\t1)增加人员信息\n");puts("\t\t\t\t2)删除人员信息 \n");puts("\t\t\t\t3)查询人员信息\n");puts("\t\t\t\t4)修改人员信息\n");puts("\t\t\t\t5)统计人员信息\n");puts("\t\t\t\t6)对人员排序\n");puts("\t\t\t\t7)保存人员信息\n");puts("\t\t\t\t8)浏览人员信息\n");puts("\t\t\t\t9)退出\n");printf("\t\t\t\t请选择 [ ]\b\b");w0=getchar();}while(w0<'1'||w0>'9');switch(w0-48){case 1:add();break;case 2:delete_data();break;case 3:search();break;case 4:modify();break;case 5:stastic();break;case 6:sort();break;case 7:save();break;case 8:browse();break;case 9:break;}}/***********************************主函数****************************************/void main(){menu();}。
课程信息管理系统c语言课程设计
![课程信息管理系统c语言课程设计](https://img.taocdn.com/s3/m/ee219eb4162ded630b1c59eef8c75fbfc67d9414.png)
课程信息管理系统c语言课程设计一、课程目标知识目标:1. 让学生掌握C语言中数组、结构体和文件操作等基本知识,并能够运用这些知识设计简单的信息管理系统。
2. 使学生了解课程信息管理系统的基本功能,如增加、删除、修改和查询等。
技能目标:1. 培养学生运用C语言进行程序设计的能力,能够独立编写、调试和运行简单的信息管理系统程序。
2. 培养学生分析问题、解决问题的能力,使其能够根据需求进行系统功能的设计和实现。
情感态度价值观目标:1. 培养学生对待编程的兴趣和热情,激发他们主动学习和探索的精神。
2. 培养学生的团队协作意识,学会与他人共同解决问题,提高沟通与协作能力。
3. 引导学生认识到编程在现代社会中的重要作用,培养他们利用技术手段解决实际问题的意识。
课程性质分析:本课程为C语言课程设计,旨在让学生将所学的C语言知识应用于实际项目中,提高编程实践能力。
学生特点分析:学生已具备一定的C语言基础,对数组、结构体和文件操作等知识有一定的了解,但可能缺乏将这些知识综合运用的经验。
教学要求:1. 结合课程信息管理系统的实际需求,引导学生运用所学知识进行程序设计。
2. 注重培养学生的动手实践能力,鼓励学生积极参与课程设计和讨论。
3. 关注学生的个体差异,提供有针对性的指导,帮助每位学生达成课程目标。
二、教学内容1. 数组与字符串操作:回顾数组的基本概念,掌握一维、二维数组的使用,以及字符串的存储和处理方法。
结合课程设计,实现对课程信息的批量存储和显示。
2. 结构体与链表:讲解结构体的定义和用法,引导学生利用结构体表示课程信息,并掌握链表的基本操作,如增加、删除节点等,以实现课程信息的动态管理。
3. 文件操作:介绍文件的基本概念,教授文件的打开、关闭、读写等操作,使学生能够将课程信息保存到文件中,并从文件中读取数据。
4. 函数与模块化编程:强调模块化编程的重要性,让学生掌握函数的定义、调用和参数传递方法,将程序划分为多个功能模块,提高代码的可读性和可维护性。
C语言课程设计(论文)-高校人事管理系统设计
![C语言课程设计(论文)-高校人事管理系统设计](https://img.taocdn.com/s3/m/fd77558e84868762caaed510.png)
一、题目要求 (2)1、系统功能的基本要求....................................................................... 错误!未定义书签。
2、提示................................................................................................... 错误!未定义书签。
二、需求分析 (3)三、总体设计 (3)四、详细设计 (4)1、主函数 (4)2、各模块设计 (5)(0)浏览模块------------------------------------------------------------------------6(1)删除模块--------------------------------------------------------------------------------------错误!未定义书签。
(2) 查询模块-------------------------------------------------------------------------------------8(2.1) 按编号查询模块----------------------------------------------------------------------------9(2.2) 按姓名查询模块----------------------------------------------------------------------------9(3)编辑模块............................................................................... 错误!未定义书签。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书计算机科学与技术专业年级班一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。
试设计一教师信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)教师信息录入功能--输入(3)教师信息删除功能(4)教师信息浏览功能--输出(5)查询和排序功能:(至少一种查询方式) --算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉Tuber C 或C++的上机环境。
能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。
4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。
如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。
5.学习并了解良好的程序设计风格。
按质、按量、并按时间完成课程设计的任务。
6.提供可运行的课程设计系统,参加上机面试答辩。
本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。
同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。
四、进度安排依照教学计划,课程设计时间为3周。
按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。
避免甚至杜绝“拿到题目就编码”的现象。
建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。
三个阶段时间分配的大概比例是:35:45:20。
五、完成后应上交的材料1.课程设计的题目、系统的总功能和各子模块的功能;2.题目的设计思想(或算法)简述;3.主要程序的框图(要求用N-S图);4.源程序代码(要求在关键的位置有注释,从而增加程序的可读性);5.课程设计的总结报告,主要包括以下内容:(1)课程设计中遇到的主要问题和解决方法;(2)你的创新和得意之处;(3)设计中存在的不足及改进的设想;(4)本次课程设计的感想和心得体会。
以上完成的源程序及相关文档,填写在《课程设计说明书》上,要求干净整洁,符合课程设计的要求和规范。
六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录一.题目设计思想简述 (5)二.程序的N—S图 (7)2.1总程序的N—S图 (7)2.2各子函数的N—S图 (7)2.2.1教师信息录入函数 (8)2.2.2教师信息浏览函数 (8)2.2.3教师信息删除函数 (9)2.2.4教师信息查询函数 (9)2.2.5教师信息排序函数 (10)三.源程序代码 (11)四.程序运行效果图 (33)4.1登陆界面 (33)4.2菜单栏 (33)4.3录入功能 (34)4.4浏览功能 (34)4.5删除功能 (35)4.6查询功能 (35)4.7排序功能 (36)五.总结报告 (37)5.1课程设计中遇到的主要问题和解决方法 (37)5.2你的创新和得意之处 (37)5.3设计中存在的不足及改进的设想 (37)5.4本次课程设计的感想和心得体会 (38)一.题目设计思想简述如上图所示,该教师信息管理系统主要是一个以动态链表的应用为基础来实现对教师信息的录入,查询,删除等功能。
定义教师结构体如下:struct teacher{long num;//教师号char name[20];//姓名char sex[5];//性别int age;//年龄char edu[20];//学历char title[20];//职称long wage;//工资char addr[100]; //地址char telep[15];//电话struct teacher *next;}*head=NULL;主函数只进行口令函数和菜单栏函数的调用,主要工作通过菜单函数实现。
口令为123456。
菜单栏函数通过用switch语句实现不同功能的选择,不同的功能用不同的子函数实现。
录入教师信息通过建立动态单链表来实现。
浏览教师信息则通过将链表所有数据顺序输出来实现。
查询功能只要从链表头开始不断往下一个结点读取信息跟所要查找的信息比较,直到读取到的信息跟所要查找的信息相同或链表尾为止,并把此结点的信息输出。
删除教师信息的函数是通过查找链表中有该信息的结点后将该结点移出链表,即使该结点前一个结点直接指向该结点后面的结点来达到删除信息的目的。
排序函数是通过交换结点在链表中的位置来实现的,即使得各结点在链表中的位置便是所要得到的排序该信息应在的位置,这样直接顺序输出链表的信息时就能按所要的排序输出了。
二.程序的N—S图2.1总程序的N—S图说明:各功能都是通过调用子函数来实现的。
2.2各子函数的N—S图子函数主要包括教师信息录入,教师信息浏览,教师信息删除,教师信息查询和教师信息排序等5个。
在退出系统时调用了一个保存信息到文件中的函数,该函数只是简单的应用了文件的读写功能,在此不写出其N—S图。
2.2.1教师信息录入函数说明:p1=(struct teacher *)malloc(LEN)中LEN是在程序开头的宏定义(#define LEN sizeof(struct teacher))。
其中n为全局变量,用来统计链表的结点数,以下出现的n都是同一个。
2.2.2教师信息浏览函数说明:实际程序中在链表头为空是提供了可以浏览之前保存在文件中的信息的功能,当选择该功能时就调用了一个读取文件的函数。
该函数只是对文件读写的简单应用,详细请看后面第三部分代码,这里不写出其N-S图。
2.2.3教师信息删除的函数2.2.4教师信息查询的函数在查询方面程序为用户提供了4种不同方式的查询,每一种方式的查询为一个子函数,此时也是采用一个菜单栏函数进行选择查询方式并调用该种方式的函数。
菜单栏函数跟主程序菜单栏的算法一样,此处只给出查询函数的N—S图。
说明:该N—S图是对应姓名,教师号,职称,年龄四种查找方式的函数的。
当选择教师号查找时,输入i的即为教师号,与i做比较的为p中的教师号,选择其他查找方式时类似。
2.2.5教师信息排序函数排序也跟查询一样给出多种排序方式并采用菜单栏函数,此处也只给出排序函数的N—S图。
说明:p1,p2指向的结点用来比较,p3,p4是用来记录结点的,当选用的排序方式不同,p1,p2用来比较的信息为所选方式的信息。
三.源程序代码#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include <string.h>#define LEN sizeof(struct teacher)//宏定义结构体字节数int n=0;struct teacher//定义结构体{long num;//教师号char name[20];//姓名char sex[5];//性别int age;//年龄char edu[20];//学历char title[20];//职称long wage;//工资char addr[100];//地址char telep[15];//电话struct teacher *next;//指向下一个结点}*head=NULL;void key()//口令检查的函数{int i;long a;for(i=0;i<3;i++){printf("请输入口令(还可输入%d次):\n",3-i);scanf("%ld",&a);if(a==123456)//检查口令是否正确{printf("欢迎进入系统\n");break;}else printf("口令错误\n");}if(i==3)//判断可以输入口令的次数是否用完{printf("可使用的口令输入次数已用完,将自动退出!\n");exit(0);}}void save()//把数据存入文件的函数{FILE *fp;int i;char filename[20];struct teacher *p;printf("\n 是否把此次登录系统录入和修改后的教师信息保存到文件中\n");printf(" 1:【是】0:【否】\n请选择:");scanf("%d",&i);while((i!=0)&&(i!=1))//判断输入的选择是否有效{printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}if(i==1)//判断是否选择了要保存{printf("\n请输入要保存数据的文件名:");scanf("%s",filename);if((fp=fopen(filename,"wb"))==NULL){printf("\n无法打开文件\n");exit(0);}for(p=head;p!=NULL;p=p->next)if(fwrite(p,sizeof(struct teacher),1,fp)!=1)printf("\n此处数据有误\n");fclose(fp);}exit(0);}void read()//从文件读出数据的函数{struct teacher teach[299],temp;int i=0;FILE *fp;char filename[20];printf("\n请输入存有教师信息的文件名:");scanf("%s",filename);if((fp=fopen(filename,"rb"))==NULL){printf("\n无法打开文件\n");exit(0);}fseek(fp,-sizeof(struct teacher),2);/*将位置指针从文件末尾后退一个结构体的字节数*/fread(&temp,sizeof(struct teacher),1,fp);/*从所指向的文件中读出数据存储到结构体变量temp中*/fseek(fp,0,0);//将位置指针移到文件的开头if(fread(&teach[i],sizeof(struct teacher),1,fp)==1)/*判断文件开头读入的数据是否为空*/{printf("\n存有的教师信息如下:\n");while(teach[i].num!=temp.num)//进行循环读取文件{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,",teach[i].num,teach[i].name,teach[i].sex,teach[i].age,teach[i].edu);printf("职称:%s\n 月薪:%ld,住址:%s,电话:%s\n",teach[i].title,teach[i].wage,teach[i].addr,teach[i].telep);i=i+1;fread(&teach[i],sizeof(struct teacher),1,fp);/*从文件中读入数据存储到结构体变量teach【i】中*/}//输出文件中的最后一个信息printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,",teach[i].num,teach[i].name,teach[i].sex,teach[i].age,teach[i].edu);printf("职称:%s\n 月薪:%ld,住址:%s,电话:%s\n",teach[i].title,teach[i].wage,teach[i].addr,teach[i].telep);fclose(fp);}else printf("该文件中无教师信息\n");//文件为空时输出此处}void creat()//录入教师信息的函数{struct teacher *p1,*p2,*p3;p1=p2=(struct teacher *)malloc(LEN);/*申请一个结构体字节数的空间用来存储一个教师的信息*/printf("请输入一位教师的教师号(结束录入请输入0):");scanf("%ld",&p1->num);if(p1->num!=0)//判断用户是要结束录入还是要存储信息if(head==NULL) head=p1;/*判断链表是否为空,是则将链表头指向p1*/else //链表不为空则将链表尾指向p1{p3=head;//p3用来记录链表的尾部while(p3->next!=NULL)/*若p3不是链表尾则将p3指向下一个结点*/p3=p3->next;p3->next=p1;//将最后一个结点指向p1}while(p1->num!=0)//判断用户是否结束录入功能{//录入该教师号的教师对应的信息printf("姓名: ");scanf("%s",p1->name);printf("性别:");scanf("%s",p1->sex);printf("年龄:");scanf("%d",&p1->age);printf("学历:");scanf("%s",p1->edu);printf("职称:");scanf("%s",p1->title);printf("月薪:");scanf("%ld",&p1->wage);printf("住址:");scanf("%s",p1->addr);printf("电话:");scanf("%s",p1->telep);n=n+1;//给统计录入的教师数n加一/*判断是否为第一个录入的信息,是则将链表头指向p1,否则将p2指向p1*/if(n==1) head=p1;else p2->next=p1;p2=p1;//p2用来记录链表的最后一个结点p1=(struct teacher *)malloc(LEN);//重新申请空间printf("请输入一位教师的教师号(结束录入请输入0): ");scanf("%ld",&p1->num);}p2->next=NULL;//将最后一个结点指向空}void print()//输出教师信息的函数{struct teacher *p;int i;p=head;if(head!=NULL)//判断链表是否为空{printf("\n这%d位教师的信息为:\n",n);do{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);p=p->next;//将下一个结点的首地址赋给p}while(p!=NULL);//到链表尾时结束循环}else//链表为空时执行以下部分{printf("\n你此次登录系统还没有录入教师信息,可进行以下操作:\n");printf(" 1:【浏览以前保存在文件中的教师信息】2:【开始录入教师信息】\n");printf(" 3:【退出系统】4:【返回菜单】\n");printf("请选择:");scanf("%d",&i);while((i<1)&&(i>4)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}if(i==1) read();//调用从文件读取数据的函数if(i==2) creat();//调用录入信息的函数if(i==3) exit(0);//退出系统}}void del()//删除教师信息的函数{struct teacher *p1,*p2;long i;if(head==NULL)//判断链表是否为空{printf("\n还未录入过教师信息\n");//链表为空时输出return;}printf("请输入要删除教师信息的教师号:");scanf("%ld",&i);p1=head;while(i!=p1->num)//直到p1指向的结点是要删除的信息位置{if(p1->next==NULL) break;//p1的下个结点为空则退出循环p2=p1;//p2用来记录p1的前一个结点p1=p1->next;//p1指向下一个结点}if(i==p1->num)//判断p1是否为要删除的信息{if(p1==head) head=p1->next;/*若p1为头结点则将头指针指向p1的下一个结点*/else p2->next=p1->next;/*p1非头结点则将p1后面的结点连接到p1前一个结点的后面*/printf("\n已删除教师号为%ld的教师信息\n",i);n=n-1;//记录教师数的n要减一}//p1不是要删除的信息则表示要删除的信息不再链表中else printf("\n已录入的教师信息中没有教师号为%ld的\n",i);return;}void sort1()//按教师号进行排序的函数{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL) //判断是否只有一个信息{//用冒泡法排序p1=head;//p1记录用来比较的两个结点中的前面一个p2=head->next;//p2记录比较的两个结点中的后面个for(i=1;i<n;i++)//实现n-1趟比较的外循环{for(j=0;j<n-i;j++)//在每一趟中进行n-i次比较的内循环{if(p1->num>p2->num)/*比较相邻两个结点中教师号大小*/{//当p1的教师号大时则对调两个结点的位置if(p1==head) head=p2;else p3->next=p2;/*p1为头结点时则将头指针指向p2,否则就将p2连接到用来记录p1前一个结点的p3的后面*/p4=p2->next;//p4用来记录p2后面的结点p2->next=p1;//p1的结点换到原来p2的位置p1->next=p4;//原来p2后面的结点连接到p1p3=p2;//p3记录下p2的位置p2=p4;//p2指向原来位置的下一个结点}else/*p1中教师号没有打过p2中教师号,则将p1,p2都指向它们各自位置的下一个结点*/{p3=p1;//记录p1后移一位后它前个结点的位置p1=p2;p2=p2->next;}}p1=head;//p1指向链表头,开始下一趟外循环的准备p2=p1->next;//p2指向链表第二个结点}}printf("\n按教师号排序后的教师信息如下:\n");print();//调用教师信息浏览函数}void sort2()//按月薪排序的函数,算法跟按教师号排序的一样{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL){p1=head;p2=head->next;for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(p1->wage>p2->wage){if(p1==head) head=p2;else p3->next=p2;p4=p2->next;p2->next=p1;p1->next=p4;p3=p2;p2=p4;}else{p3=p1;p1=p2;p2=p2->next;}}p1=head;p2=p1->next;}}printf("\n按月薪排序后的教师信息如下:\n");print();}void sort3()//按年龄排序的函数,算法跟按教师号排序的一样{struct teacher *p1,*p2,*p3,*p4;int i,j;if(head==NULL){printf("\n还未录入过教师信息\n");return;}if(head->next!=NULL){p1=head;p2=head->next;for(i=1;i<n;i++){for(j=0;j<n-i;j++){if(p1->age>p2->age){if(p1==head) head=p2;else p3->next=p2;p4=p2->next;p2->next=p1;p1->next=p4;p3=p2;p2=p4;}else{p3=p1;p1=p2;p2=p2->next;}}p1=head;p2=p1->next;}}printf("\n按年龄排序后的教师信息如下:\n");print();}void choose1()//选择排序方式的函数{int i;printf(" 排序方式\n");printf(" 1:【按教师号排序】2:【按年龄排序】\n");printf(" 3:【按月薪排序】\n");printf("请选择:");scanf("%d",&i);while((i<1)||(i>3)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:sort1();break;case 2:sort3();break;case 3:sort2();break;}}void search1()//按教师号查找的函数{struct teacher *p;long i;//存储用户输入的想要删除的教师号if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的教师信息的教师号:");scanf("%ld",&i);for(p=head;p!=NULL;p=p->next)//p顺序指向结点与i比较,找出有i的数据的结点并输出if(p->num==i){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);return;}printf("已录入的教师信息中不存在该教师号\n");}void search2()//按姓名查找的函数{struct teacher *p;char i[20];//记录用户输入的想要删除的姓名int j=0;//j用来记录找到了多少个信息if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师姓名:");scanf("%s",i);for(p=head;p!=NULL;p=p->next)if(strcmp(p->name,i)==0)//比较p指向的结点中的姓名跟i的是否一致,是则输出{printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;//每输出一个教师的信息则j加一}if(j==0) printf("已录入的教师信息中不存在该姓名的教师\n");}void search3()//按职称查找的函数,算法与按姓名查找的一样{struct teacher *p;char i[20];int j=0;if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师职称:");scanf("%s",i);for(p=head;p!=NULL;p=p->next)if(strcmp(p->title,i)==0){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;}if(j==0) printf("已录入的教师信息中不存在该职称的教师\n");}void search4()//按年龄查找的函数,算法与按教师号查找的一样{struct teacher *p;int i,j=0;if(head==NULL){printf("\n还未录入过教师信息\n");return;}printf("请输入要查找的信息的教师年龄:");scanf("%d",&i);for(p=head;p!=NULL;p=p->next)if(p->age==i){printf("教师号:%ld,姓名:%s,性别:%s,年龄:%d,学历:%s,职称:%s\n",p->num,p->name,p->sex,p->age,p->edu,p->title);printf(" 月薪:%ld,住址:%s,电话:%s\n",p->wage,p->addr,p->telep);j=j+1;}if(j==0) printf("已录入的教师信息中不存在该年龄的教师\n");}void choose2()//选择查找方式的函数{int i;printf(" 查询方式\n");printf(" 1:【按教师号查询】2:【按姓名查询】\n");printf(" 3:【按职称查询】4:【按年龄查询】\n");printf("请选择:");scanf("%d",&i);while((i<1)||(i>4)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:search1();break;case 2:search2();break;case 3:search3();break;case 4:search4();break;}}void menu()//菜单栏函数{int i;printf(" 菜单\n");printf(" 1:【教师信息录入】2:【教师信息输出】\n");printf(" 3:【教师信息删除】4:【查询个人信息】\n");printf(" 5:【排序】6:【退出系统】\n");printf("请选择: ");scanf("%d",&i);while((i<1)||(i>6)){printf("选择无效,请重新输入正确选项:");scanf("%d",&i);}switch(i){case 1:creat();break;case 2:print();break;case 3:del();break;case 4:choose2();break;case 5:choose1();break;case 6:save();}menu();}void main()//主函数{key();menu();}四.程序运行效果图4.1登陆界面4.2菜单栏4.3录入功能4.4浏览功能4.5删除功能4.6查询功能4.7排序功能五.总结报告5.1课程设计中遇到的主要问题和解决方法在这次的C语言课程设计的编程中,由于以前对链表和文件这两部分的内容了解过少,因此在编程中涉及到这两方面的内容时,照成了很大的阻碍,最主要是在对链表的结点进行交换,对文件某些特殊的读写不清楚。