C语言程序设计课程设计报告—宿舍管理系统

合集下载

宿舍管理系统c语言课程设计

宿舍管理系统c语言课程设计

宿舍管理系统c语言课程设计一、背景介绍宿舍管理系统是一种为学校宿舍管理人员提供便利的软件系统。

本系统旨在通过计算机技术的应用,实现对宿舍信息、学生信息、入住情况等数据的管理和统计,提高宿舍管理工作效率和服务质量。

二、需求分析1. 功能需求(1)管理员登录:管理员需要输入用户名和密码才能登录系统。

(2)学生信息录入:管理员可以添加、修改和删除学生信息,包括姓名、性别、年龄、联系方式等。

(3)宿舍信息录入:管理员可以添加、修改和删除宿舍信息,包括宿舍号码、楼层、床位数等。

(4)学生入住登记:管理员可以登记学生入住情况,包括选择宿舍房间号码,记录入住时间等。

(5)查询统计功能:管理员可以查询学生信息、宿舍信息以及入住情况,并进行统计分析。

2. 性能需求本系统需要具有较高的安全性和稳定性,保证数据的完整性和可靠性。

同时,在用户界面设计上要简洁明了,易于操作。

三、设计方案1. 系统架构本系统采用客户端/服务器模式,将客户端与服务器分离,实现系统的分布式部署。

客户端负责用户界面的展示和用户输入的响应,服务器负责数据存储和处理。

2. 数据库设计本系统需要设计三个数据库表:学生信息表、宿舍信息表和入住情况表。

学生信息表包括学生姓名、性别、年龄、联系方式等字段;宿舍信息表包括宿舍号码、楼层、床位数等字段;入住情况表包括学生姓名、宿舍号码、入住时间等字段。

3. 界面设计本系统的用户界面需要简洁明了,易于操作。

采用菜单式界面设计,将各个功能模块以菜单形式呈现,方便用户进行选择。

四、开发实现1. 开发环境本系统采用C语言进行开发,使用Visual Studio 2019作为开发工具。

数据库采用MySQL。

2. 关键技术(1)C语言编程技术:C语言是一种高效的编程语言,在系统开发中具有广泛应用。

(2)MySQL数据库技术:MySQL是一种常用的关系型数据库管理系统,在数据存储和处理方面具有很好的性能。

(3)网络编程技术:客户端/服务器模式需要使用网络编程技术实现客户端与服务器之间的通信。

c语言课课程设计宿舍管理

c语言课课程设计宿舍管理

c语言课课程设计宿舍管理一、教学目标本节课的学习目标包括以下三个方面:1.知识目标:学生需要掌握C语言的基本语法和编程技巧,了解宿舍管理系统的需求和功能,并能够运用C语言实现简单的宿舍管理系统。

2.技能目标:学生能够运用所学的C语言知识,进行编程实践,培养解决问题的能力和创新思维。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,增强学生自主学习的能力和团队合作意识。

在制定教学目标时,充分考虑了课程性质、学生特点和教学要求,将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容本节课的教学内容主要包括以下几个部分:1.C语言基本语法和编程技巧,包括变量、数据类型、运算符、控制结构等。

2.宿舍管理系统的需求分析和功能介绍。

3.使用C语言实现宿舍管理系统的基本功能。

教学内容的选择和确保了科学性和系统性,详细的教学大纲明确了教学内容的安排和进度,教材的章节和列举的内容也与教学目标相符合。

三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,包括:1.讲授法:讲解C语言的基本语法和编程技巧。

2.案例分析法:通过分析宿舍管理系统的需求和功能,引导学生运用C语言进行编程实践。

3.实验法:学生在实验室进行编程实践,培养解决问题的能力和创新思维。

通过多样化的教学方法,使学生能够在实践中掌握C语言的知识和技能。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,本节课将使用以下教学资源:1.教材:C语言编程教程,用于讲解C语言的基本语法和编程技巧。

2.多媒体资料:包括宿舍管理系统的需求分析和功能介绍的PPT,以及相关的编程案例和实验指导书。

3.实验设备:计算机和网络设备,用于学生进行编程实践和实验。

通过以上教学资源的选择和准备,能够有效地支持教学活动的开展,提高学生的学习效果。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本节课将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和理解程度。

c语言课程设计宿舍管理

c语言课程设计宿舍管理

c语言课程设计宿舍管理一、课程目标知识目标:1. 学生能够理解C语言在开发宿舍管理系统中的应用,掌握基本的数据类型、变量定义、运算符、控制结构等基础知识。

2. 学生能够掌握C语言中的数组、函数、指针等高级概念,并能运用到宿舍管理系统的设计与实现中。

3. 学生能够通过课程学习,了解文件操作在C语言中的实现,实现对宿舍管理数据的存储和读取。

技能目标:1. 学生能够运用C语言编写简单的宿舍管理系统程序,实现宿舍基本信息录入、查询、修改和删除等功能。

2. 学生能够通过课程实践,掌握编程规范,养成良好的编程习惯,提高解决问题的能力。

3. 学生能够通过小组合作,培养团队协作能力和沟通能力,共同完成宿舍管理系统的设计与实现。

情感态度价值观目标:1. 学生能够认识到编程在现实生活中的应用价值,激发对计算机科学的兴趣和热情。

2. 学生能够在课程学习过程中,培养耐心、细心和勇于克服困难的品质,增强自信心。

3. 学生能够通过课程学习,认识到团队合作的重要性,树立正确的价值观,尊重他人的贡献。

本课程针对高中年级学生,结合C语言课程特点,注重理论与实践相结合,以宿舍管理系统为实际案例,引导学生掌握C语言基础知识,培养编程技能和团队协作能力。

课程目标具体、可衡量,旨在使学生在完成课程学习后,能够独立完成简单的宿舍管理系统设计与实现,为后续计算机课程学习打下坚实基础。

二、教学内容1. C语言基础知识回顾:- 数据类型、变量定义、常量- 运算符、表达式、赋值语句- 控制结构:顺序结构、选择结构、循环结构2. C语言高级概念:- 数组:一维数组、二维数组- 函数:函数定义、调用、参数传递、递归- 指针:指针定义、指针与数组、指针与函数3. 文件操作:- 文件打开与关闭- 文件读写操作- 文件定位4. 宿舍管理系统设计与实现:- 系统需求分析- 功能模块设计:宿舍信息录入、查询、修改、删除- 编程实现各功能模块5. 课程实践与团队协作:- 编程规范与调试技巧- 小组合作完成宿舍管理系统- 成果展示与评价教学内容依据课程目标,结合教材相关章节,确保科学性和系统性。

c课程设计之宿舍管理系统

c课程设计之宿舍管理系统

c 课程设计之宿舍管理系统一、教学目标本节课的教学目标是让学生掌握宿舍管理系统的基本概念和实现方法。

知识目标要求学生了解宿舍管理系统的功能、结构和设计原则,能够分析宿舍管理系统的需求和实现方案。

技能目标要求学生能够使用编程语言实现简单的宿舍管理系统,包括学生信息的增删改查等功能。

情感态度价值观目标要求学生培养对计算机科学和软件工程的兴趣,认识到宿舍管理系统在实际生活中的重要性,提高学生解决问题的能力和团队合作意识。

二、教学内容本节课的教学内容主要包括宿舍管理系统的基本概念、系统结构和设计原则。

首先,介绍宿舍管理系统的作用和重要性,让学生了解宿舍管理系统在实际生活中的应用。

其次,讲解宿舍管理系统的结构,包括前端界面、后端数据库和中间件等组成部分。

然后,介绍宿舍管理系统的设计原则,如模块化设计、数据一致性和安全性等。

最后,通过实例分析,让学生了解宿舍管理系统的实现方法和步骤。

三、教学方法为了激发学生的学习兴趣和主动性,本节课采用多种教学方法相结合。

首先,采用讲授法,讲解宿舍管理系统的基本概念和设计原则。

其次,采用案例分析法,分析实际生活中的宿舍管理案例,让学生了解宿舍管理系统的应用。

然后,采用讨论法,引导学生分组讨论宿舍管理系统的实现方法,培养学生的团队合作意识。

最后,采用实验法,让学生动手编写宿舍管理系统的代码,提高学生的实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,本节课准备了一系列教学资源。

教材包括《计算机科学导论》和《软件工程导论》等,用于讲解宿舍管理系统的基本概念和设计原则。

参考书包括《宿舍管理系统设计与实现》等,用于提供宿舍管理系统的实现方法和示例代码。

多媒体资料包括PPT和视频教程等,用于辅助讲解和演示宿舍管理系统的相关内容。

实验设备包括计算机和网络设备等,用于让学生动手编写和测试宿舍管理系统的代码。

五、教学评估本节课的教学评估采用多元化评价方式,以全面客观地评价学生的学习成果。

c语言宿舍管理系统课程设计

c语言宿舍管理系统课程设计

c语言宿舍管理系统课程设计一、课程目标知识目标:1. 理解C语言在开发宿舍管理系统中的应用,掌握基本的数据类型、语法和结构;2. 学会使用数组、结构体、文件操作等C语言特性进行数据处理和存储;3. 掌握模块化编程思想,理解函数的定义、调用和参数传递。

技能目标:1. 能够运用所学知识,设计并实现一个简单的宿舍管理系统;2. 培养学生分析问题、解决问题的能力,通过编写代码解决宿舍管理中的实际问题;3. 提高学生的团队协作能力,通过小组合作完成课程设计。

情感态度价值观目标:1. 激发学生对编程的兴趣,培养其对计算机科学的热爱;2. 培养学生的耐心和毅力,使其在面对编程困难时保持积极的心态;3. 增强学生的责任感,使其认识到编程在解决实际问题中的重要性。

课程性质:本课程设计属于实践性课程,以培养学生的实际编程能力为目标。

学生特点:学生具备一定的C语言基础,对编程有一定兴趣,但实际操作经验不足。

教学要求:结合学生特点,以实用性为导向,注重培养学生的动手能力和团队协作精神。

通过课程设计,使学生将所学知识应用于实际项目中,提高其解决实际问题的能力。

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

二、教学内容1. C语言基础知识回顾:数据类型、运算符、表达式、控制结构(第二章)- 强化基本语法,为后续编程打下坚实基础。

2. 函数与模块化编程:函数的定义、调用、参数传递(第四章)- 培养学生模块化编程思想,提高代码复用性和可维护性。

3. 数组与字符串:一维数组、二维数组、字符串操作(第三章)- 为处理宿舍信息数据提供有效手段。

4. 结构体与文件操作:结构体定义、结构体数组、文件读写(第五章)- 实现对宿舍信息的存储和读取功能。

5. 宿舍管理系统功能设计:- 登录与权限管理(第六章)- 宿舍基本信息管理(第三章、第五章)- 学生信息管理(第三章、第五章)- 宿舍卫生管理(第三章、第五章)- 数据查询与统计(第四章)6. 项目实践与团队协作:- 将学生分组,每组负责一个模块的开发,提高团队协作能力;- 结合教材内容,按进度完成各个模块的设计与实现。

c语言课程设计报告(宿舍管理系统)

c语言课程设计报告(宿舍管理系统)

西安郵電大學C语言课程设计报告书学院名称计算机学院学生姓名吴戌睿专业名称网络工程班级1201班学号04122030指导教师陈皓2013年06月03日至时间2013年06月12日实验题目:学生宿舍管理系统一、实验目的通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C 语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。

通过这次实习练习,可以更进一步的熟悉所学的知识,还可以加强和巩固知识。

长达两周的上机练习,为我们提供了很好的编程环境。

更好的了解编程的意义,为将来参加实践活动以及以后的毕业设计打下坚实的基础。

二、实验内容我设计的是“车辆管理系统”,主要是针对车辆信息的管理,适用对象主要是需要统一管理的车辆,例如租车公司。

包括车辆的序号,车牌,品牌,车主信息。

在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。

三、需求分析该程序是由C语言编写的一个车辆管理查询软件,本程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对车辆信息的录入、添加、删除、修改、查询、统计。

其中查询可以分别以序号,车牌号为关键字查询车辆信息。

四、概要设计1、方案设计2、数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct car{int num; /*序号*/char chepai[10]; /*车牌号*/ char trademark[10]; /*品牌*/ char name[20]; /*车主姓名*/ char call[20]; /*联系方式*/ struct car *next;};3、模块功能说明第一密码模块:调用mima(),进行初始登陆,管理者的注册与登录操作。

C宿舍管理系统课程设计

C 宿舍管理系统 课程设计一、课程目标知识目标:1. 让学生理解宿舍管理系统的基本概念,掌握其功能模块和操作流程;2. 使学生掌握数据库设计原则,能运用所学知识构建宿舍管理系统数据库;3. 帮助学生掌握C语言编程技巧,实现宿舍管理系统的功能需求。

技能目标:1. 培养学生运用C语言进行编程的能力,能够独立完成宿舍管理系统的功能模块编写;2. 提高学生分析问题、解决问题的能力,使其能够针对宿舍管理中的实际问题提出合理的解决方案;3. 培养学生团队协作能力,能够在小组合作中发挥各自优势,共同完成项目任务。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习的态度;2. 培养学生认真负责的工作态度,使其在项目实施过程中注重细节,追求卓越;3. 引导学生关注宿舍管理问题,培养其主人翁意识,提高社会责任感。

课程性质:本课程为实践性较强的课程,旨在让学生通过实际项目开发,将所学知识运用到实际工作中。

学生特点:学生具备一定的C语言基础,对编程有一定了解,但缺乏实际项目经验。

教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。

在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. 宿舍管理系统概述:介绍宿舍管理系统的基本概念、功能需求及系统架构,关联课本第1章内容。

2. 数据库设计:讲解数据库设计原则,指导学生运用所学知识构建宿舍管理系统数据库,关联课本第3章内容。

- 数据库表设计- 关系映射- 数据库操作3. C语言编程基础:复习C语言基础知识,重点讲解编程技巧,关联课本第2章内容。

- 数据类型与变量- 控制语句- 函数与模块化编程4. 宿舍管理系统功能模块实现:根据需求分析,运用C语言编程实现宿舍管理系统的功能模块,关联课本第4章内容。

- 学生信息管理- 宿舍楼信息管理- 宿舍分配与调整- 费用管理5. 系统测试与优化:教授系统测试方法,引导学生对宿舍管理系统进行测试与优化,关联课本第5章内容。

c课程设计寝室管理系统

c 课程设计寝室管理系统一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握寝室管理系统的基本概念、原理和结构,理解寝室管理的重要性以及其在日常生活中的应用。

2.技能目标:学生能够熟练使用寝室管理系统,进行寝室信息的录入、查询、修改和删除等操作,并能够根据实际需求进行系统的配置和优化。

3.情感态度价值观目标:学生通过学习寝室管理系统,培养对信息技术的兴趣和热情,增强信息技术应用的能力,提升生活品质。

在教学过程中,我们将根据学生的实际情况,采用多种教学手段和评价方式,确保上述目标的实现。

二、教学内容本课程的教学内容主要包括以下几个部分:1.寝室管理系统的概述:介绍寝室管理系统的基本概念、原理和结构,使学生了解寝室管理系统的起源、发展及其在现代社会中的应用。

2.寝室管理系统的使用:讲解如何使用寝室管理系统,包括系统安装、卸载、启动和退出等基本操作,以及如何进行寝室信息的录入、查询、修改和删除等操作。

3.寝室管理系统的配置与优化:介绍如何根据实际需求进行寝室管理系统的配置和优化,以提高系统性能和稳定性。

4.寝室管理系统的安全与维护:讲解如何保证寝室管理系统的安全和稳定运行,包括系统安全设置、数据备份与恢复、故障排查和解决等。

三、教学方法为了提高教学效果,我们将采用以下几种教学方法:1.讲授法:通过讲解寝室管理系统的相关概念、原理和操作方法,使学生掌握基本知识。

2.案例分析法:通过分析实际案例,使学生了解寝室管理系统在实际生活中的应用,提高学生的实践能力。

3.实验法:安排实验室实践环节,让学生亲自动手操作寝室管理系统,培养学生的实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得和经验,激发学生的学习兴趣和主动性。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用一本与寝室管理系统相关的权威教材,作为学生学习的主要参考资料。

2.参考书:推荐一些与寝室管理系统相关的参考书籍,供学生拓展阅读。

C语言课程设计—学生宿舍管理系统设计报告

课程设计报告课程名称C语言程序设计课题名称学生宿舍管理系统专业电子技术班级学号姓名指导教师2012年6月19日湖南工程学院课程设计任务书课程名称C语言程序设计课题学生宿舍管理系统专业班级学生姓名学号指导老师审批任务书下达日期2012 年6 月19 日任务完成日期2012 年7 月4 日一、设计内容与设计要求1.设计内容:学生宿舍管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。

熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。

③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。

④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。

⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。

2.设计要求:1)用C语言实现系统;利用结构体数组实现学生宿舍信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。

2) 建立一个学生宿舍信息数据库,文件名为ssxxk.txt,并从该文件中读取数据;3)学生宿舍管理系统应能提供以下功能:①系统以菜单方式工作:通过提示用户输入一个数字选项,调用相应的功能函数。

②显示功能:完成全部宿舍信息的显示,显示时按表格的形式,且应有表头;③追加功能:完成一个(或多个)学生入住宿舍的登记(追加记录),要求在追加过程中有相应的提示信息,完成追加后能重新显示;④查询功能:要求可选择按指定学号和指定姓名两种方式定位查询,查询的结果要求以表格的形式显示,若查询不到应给出相应的提示信息。

C宿舍管理系统课程设计

C 宿舍管理系统 课程设计一、课程目标知识目标:1. 学生能够理解宿舍管理系统的基本概念、功能模块及其在实际中的应用。

2. 学生能够掌握使用数据库进行数据存储、检索与管理的基本方法。

3. 学生能够运用结构化编程思想,设计并实现宿舍管理系统的基本功能。

技能目标:1. 学生能够运用所学知识,独立设计并实现一个简易的宿舍管理系统。

2. 学生能够通过实践操作,掌握数据库查询、更新和删除等操作技能。

3. 学生能够运用编程工具,进行系统功能的编码、调试与优化。

情感态度价值观目标:1. 学生通过本课程的学习,培养团队协作、沟通交流的能力,养成良好的合作精神。

2. 学生能够认识到信息技术在现实生活中的重要作用,增强对信息技术的兴趣和认同感。

3. 学生能够遵循法律法规,尊重他人隐私,养成良好的信息伦理素养。

分析课程性质、学生特点和教学要求,本课程旨在帮助学生将理论知识与实际应用相结合,提高学生的动手实践能力和创新能力。

课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。

通过本课程的学习,学生将能够独立设计并实现一个宿舍管理系统,为今后的学习和工作打下坚实的基础。

二、教学内容1. 宿舍管理系统概述- 了解宿舍管理系统的概念、发展及应用场景。

- 分析宿舍管理系统的功能模块及其相互关系。

2. 数据库基础- 学习数据库的基本概念、数据模型和关系型数据库的设计方法。

- 掌握SQL语句,进行数据查询、更新、插入和删除等操作。

3. 系统设计- 分析系统需求,明确系统功能。

- 学习结构化分析方法,绘制E-R图、数据流图等设计图。

4. 编程实现- 学习一种编程语言(如Java、C#等),掌握基本语法和编程规范。

- 根据系统设计,编写程序实现各功能模块。

5. 系统测试与优化- 学习测试方法,对系统进行功能测试、性能测试等。

- 分析测试结果,对系统进行优化和改进。

6. 实践项目- 以小组为单位,设计并实现一个简易的宿舍管理系统。

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

西安邮电学院C语言课程设计报告题目:宿舍管理系统院系名称:计算机学院专业名称:网络工程班级: 1004学生姓名:李斯良学号(8位): 04102109(17)指导教师:刘霞林设计起止时间:2011年6月13日~2011年6月22日一、课程设计目的1..通过本次课程设计,强化上级动手能力,在理论和实践的基础上进一步巩固《C语言程序设计》课程的学习内容,掌握工程软件设计的基本方法。

2.熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C程序的基本编写及运行;3.了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。

4..熟悉C程序设计的开发环境及C程序的调试过程。

二、课程设计内容用所学过的C语言知识(文件,结构体,函数,数组等)编写一个学身份学籍管理系统。

使其有以下功能。

1.通过键盘输入某些学生的学生学籍管理信息。

(包含学生学号、姓名、性别、年龄、出生年月、住址、班级、专业、院系等信息)。

2.输入给定学号,显示出某位学生的学生学籍管理信息。

3.显示出全部学生的学生学籍管理信息。

4.可将某学生信息添加到文件内。

5.给定某位学生的学号,修改该学生信息。

6.给定某位学生的学号,删除该学生信息。

7.给定某个班级号,统计该班级的总人数。

8.按照学生的学号升序对学生信息进行排序。

9.用文件的方式将录入的数据进行存储,并从其中读取数据。

三、概要设计1.功能模块图:2.各模块详细的功能描述:A.输入模块:调用input( )函数将学生宿舍信息依次输入到结构体数组中,结束后将保存在制定文件中,在其他模块的函数中可以随时进行调用,结束后可以将修改后的学生宿舍信息再一次保存。

B.添加模块:如果要添加新入住学生信息可以调用append函数将新生信息插入到原有信息的末尾,在保存到文件中。

C.修改模块:修改可以通过输入要修改的学生的学号,对学生的个人信息利用switch选择要修改的内容.修改完毕后,保存到所设定的文件中去。

D.删除模块:删除可以通过输入要删除的学生学号,对学生的所有个人信息进行删除.删除完毕之后保存到文件中去。

E.查询模块:选择输入要查询学生的学号,并将查询的信息显示在屏幕上。

F.统计模块:输入要统计人数的班级号,然后输出此班的总人数。

G.排序模块:按学生学号用冒泡法升序排出学生的信息。

H.打印模块:输出当前文件中所有的学生住宿信息。

四、详细设计:1.流程图:2.重点设计:int read_file(STUDENTS students[]) { FILE *fp ; int i=0;if((fp=fopen("","rt"))==NULL){ printf("\n\n*****库存文件不存在!请创建"); /*创建文件*/return 0;}while((fread(&students[i],sizeof(STUDENTS),1,fp))==1) /*成功创建*/{i++;}fclose(fp);return i;}void save_file(STUDENTS students[],int sum) /*保存信息*/ { FILE *fp;int i;if((fp=fopen("","wb"))==NULL){ printf("读文件错误!\n");return;}五.测试数据及运行结果:三组正常数据:1.2.异常测试数据及运行结果:1.2.六、调试情况,设计技巧及体会:1. 设计过程中的体会:在刚开始还没有大体思路,觉得设计不简单。

但当总体构思完成后,对各个功能的实现可以用小程序即模块形式进行实现,比如输入数据,输出数据,修改数据,删除数据等.在一个个小程序中调试,最后各个模块的功能完成比较好后,在将所有的模块都放进main()主函数中进行调试,这样可以避免由整体构思调试引起的调试障碍.但还是没有得到完美的效果,有的模块还是有问题。

而且程序上看没什么问题啊?老师也帮了不少的忙吧。

在此写过老师的帮助。

2.在调试过程中,F5,F10,F11,有了更深的认识,并且可以更灵活的运用。

在编写程序的过程中,有些逻辑不是很清楚,但大部分程序模块还是写出来了。

那些不清楚的就是文件方面的知识,以后要好好研究下文件了。

总体来说,这次课程设计对C语言方面的知识又重新复习了一遍,感觉还行。

3.还有就是原先有想过用密码,构思是想实现一个帐号密码配对使用的方法,但是由于文件的使用不熟练,最后还是以失败告终。

同时程序只能在当前登录过程中输入进入系统,有较大的局限性。

七、参考文献《C语言程序设计》谭浩强清华大学出版社 1999年12月C语言程序设计(第二版)王曙燕 /主编八.附录:3.完全代码:#include""#include""#include"" /*头文件*/#define MAX 100typedef struct{ int year;int month;int day;}DATE;typedef struct{ int num; /*学号*/char name[20]; /*姓名*/ /*定义结构体*/char sex[6]; /*性别*/int age; /*年龄*/DATE birthday; /*出生年月*/char sushe[30]; /*宿舍号*/char classes[10]; /*班级*/char zhuanye[50]; /*专业*/char chuanghao[50]; /*床号*/}STUDENTS;/*读取信息*/int read_file(STUDENTS students[]){ FILE *fp;int i=0;if((fp=fopen("","rt"))==NULL){ printf("\n\n*****库存文件不存在!请创建"); /*创建文件*/return 0;}while((fread(&students[i],sizeof(STUDENTS),1,fp))==1) /*成功创建*/{i++;}fclose(fp);return i;}/*保存信息*/void save_file(STUDENTS students[],int sum){ FILE *fp;int i;if((fp=fopen("","wb"))==NULL){ printf("读文件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1)printf("写文件错误!\n"); /*学生信息保存到文件中*/fclose(fp);}/*输入模块*/int input(STUDENTS students[]){ int i=0,t; /*定义要输入学生的个数*/system("cls");printf("\n\n 录入学生个数(最多%d个)",MAX);scanf("%d",&t);printf(" ------------------------\n");do{ um);if(students[i].num==0) break;printf("\n 学生姓名:");scanf("%s",students[i].name);printf("\n 学生性别:");scanf("%s",students[i].sex);printf("\n 学生年龄:");scanf("%d",&students[i].age);printf("\n 学生出生年月日:");scanf("%d %d %d",&students[i].,&students[i].,&students[i].;printf("\n 学生宿舍:");scanf("%s",students[i].sushe);printf("\n 学生班级:");scanf("%s",students[i].classes);printf("\n 学生专业:");scanf("%s",students[i].zhuanye);printf("\n 学生床号:");scanf("%s",students[i].chuanghao);i++;}while(i<t);save_file(students,t); /*保存输入的学生信息*/printf("\n %d个学生信息输入完毕! \n",t);getch();return t; /*返回输入学生的个数值*/}/*输出模块*/void output(STUDENTS students[],int sum){int i;system("cls");printf("num name sex age year-month-day sushe classeszhuanye chuanghao\n");printf(" \n");for(i=0;i<sum;i++) /*输出学生的信息*/{printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].,students[i].,students[i].,students[i].sushe,students[i].classes,students[i].zhuanye,students[i].chuanghao);printf(" \n");}getch();save_file(students,sum);}/*添加信息模块*/int append(STUDENTS students[],int sum){int i=sum,flag=0; /*从已经输入的学生尾部添加*/char choice ;sum=read_file(students);system("cls");printf("\n\n 添加学生信息 \n");do{if(i<MAX)/*已经输入的学生个数和要添加的学生个数之和要小于定义的学生个数最大值*/{printf("\n 新学生学号:");scanf("%d",&students[i].num);printf("\n 学生姓名:");scanf("%s",students[i].name);printf("\n 学生性别:"); /*输入添加学生的基本信息*/scanf("%s",students[i].sex);printf("\n 学生年龄:");scanf("%d",&students[i].age);printf("\n 学生出生年月日:");scanf("%d %d %d",&students[i].,&students[i].,&students[i].;printf("\n 学生宿舍号:");scanf("%s",students[i].sushe);printf("\n 学生班级:");scanf("%s",students[i].classes);printf("\n 学生专业:");scanf("%s",students[i].zhuanye);printf("\n 床号:");scanf("%s",students[i].chuanghao);i++;}printf("\n 继续添加吗?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n"); /*是否要继续添加*/}else flag=0;}while(flag==1);;printf("\n 按任意键返回主菜单!");getch();save_file(students,i); /*保存添加的学生信息到原文件*/return i; /*返回文件中学生个数值*/}/*修改信息模块*/void modify(STUDENTS students[],int sum){ um==modify_num){ printf("\n 学生信息 \n");printf("num name sex age year-month-day address sushe zhuanye chuanghao\n");printf(" \n");printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",students [i].num,students[i].name,students[i].sex,students[i].age,students[i].,s tudents[i].,students[i].,students[i].sushe,students[i].classes,students [i].zhuanye,students[i].chuanghao);printf("\n 要修改哪一项?\n");printf("\n 1.学生学号 \n");printf("\n 2.学生姓名 \n");printf("\n 3.学生性别 \n");printf("\n 4.学生年龄 \n");printf("\n 5.学生出生年月日 \n");printf("\n 6.学生宿舍号 \n");printf("\n 7.学生班级 \n");printf("\n 8.学生专业 \n");printf("\n 9.学生床号 \n");printf("\n 请选择(1-9):");scanf("%d",&choice);switch(choice){case 1:printf("\n 输入修改后的学号:");scanf("%d",&students[i].num); break;case 2:printf("\n 输入修改后的姓名:");scanf("%s",students[i].name); break;case 3:printf("\n 输入修改后的性别:");scanf("%s",students[i].sex); break; /*选择要修改学生的项目*/case 4:printf("\n 输入修改后的年龄:");scanf("%d",&students[i].age); break;case 5:printf("\n 输入修改后的出生年月:");scanf("%d %d %d",&students[i].,&students[i].,&students[i].; break;case 6:printf("\n 输入修改后的宿舍号:");scanf("%s",students[i].sushe); break;case 7:printf("\n 输入修改后的班级:");scanf("%s",students[i].classes); break;case 8:printf("\n 输入修改后的专业:");scanf("%s",students[i].zhuanye); break;case 9:printf("\n 输入修改后的床号:");scanf("%s",students[i].chuanghao); break;}printf("\n 学生信息表 \n");printf("num name sex age year-month-day sushe classes zhuanye chuanghao\n");printf(" \n");printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].,students[i].,students[i].,students[i].sushe,students[i].classes,students[i].zhuanye,students[i].chuanghao);break; /*输出修改后的学生信息*/}if(i==sum){ printf("\n 该学生不存在!");getch();}printf("\n\n 继续修改吗?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n");} /*是否要继续修改*/else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");getch();save_file(students,sum); /*保存修改后的信息*/}/*删除信息模块*/int del(STUDENTS students[],int sum){int i,del_num;printf("请输入要删除的学生学号");scanf("%d",&del_num); /*输入要删除的学生学号*/ for(i=0;i<sum;i++){ if(del_num==students[i].num){for(;i<sum-1;i++)students[i].num=students[i+1].num;printf("删除成功");}}getch();save_file(students,sum-1); /*保存删除后的学生信息到原文件*/return (sum-1) ;}/*查询信息模块*/void inquire(STUDENTS students[],int sum){ FILE *fp;int i,choice,flag,inquire_num;sum=read_file(students); /*读文件*/ printf("%d\n",sum);do{ system("cls");printf("\n 输入要查询的学生学号:");scanf("%d",&inquire_num); /*输入要查询的学生学号*/for(i=0;i<sum;i++)if(students[i].num==inquire_num){ printf("\n 此学生信息为: \n");printf("num name sex age year-month-day sushe classes zhuanye chuanghao\n");printf(" \n");printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].,students[i].,students[i].,students[i].sushe,students[i].classes,students[i].zhuanye,students[i].chuanghao);break; /*输出要查询的学生信息*/}if(i==sum){ printf("\n 无此学生信息 \n");getch();}printf("\n\n 是否继续?(Y/N)");choice=getch();if(choice=='Y'||choice=='y'){ flag=1;printf("\n 继续!\n"); /*是否要继续*/} else flag=0;}while(flag==1);printf("\n 按任意键返回主菜单!");getch();}/*统计信息模块*/void count(STUDENTS students[],int sum){int i,count=0;char s[10];printf("请输入要统计的班级的学生的班级号!");scanf("%s",s); /*按输入的班级号统计此班的总学生人数*/for(i=0;i<sum;i++)if(strcmp(s,students[i].classes)==0)count++;printf("%s班的总人数为%d人",s,count);getch();save_file(students,sum);}/*排行信息模块*/void sort(STUDENTS students[],int sum){int i,j,t;system("cls");printf("\n 学生信息排行\n");printf("\n 按学号排行\n");printf(" \n");for(i=0;i<sum-1;i++) /*按学号用冒泡法升序排列学生信息*/for(j=i+1;j<sum;j++){ if(students[i].num>students[j].num){t=students[i].num;students[i].num=students[j].num;students[j].num=t;}}printf(" \n");printf("num name sex age year-month-day sushe classes zhuanye chuanghao\n");for(i=0;i<sum;i++)printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].,students[i].,students[i].,students[i].sushe,students[i].classes,students[i].zhuanye,students[i].chuanghao); /*输出排序后的学生信息*/getch();save_file(students,sum); /*保存排序后的学生信息到文件中*/}void mima(){char mima;char a[9];int i;printf(" 请输入密码:");for(i=0;i<8;i++){mima=getch();printf("*");a[i]=mima;}a[8]='\0';printf("\n");{system("cls");printf("\n\n\n\n\n\n\n\n\n 成功登陆!");}else{system("cls");printf("\n\n\n\n\n\n\n\n\n 密码错误,您无权使用该系统!\n\n");exit(1);}}void main() /*主函数*/{STUDENTS students[MAX];int choice,sum;mima();sum=read_file(students);if(!sum){ printf("并录入基本库存信息!\n");getch();sum=input(students); /*录入学生信息*/}do{ system("cls");printf("\n\n\n 学生宿舍管理系统 \n\n");printf(" 1.添加学生信息\n\n");printf(" 2.修改学生信息\n\n");printf(" 3.删除学生信息\n\n");printf(" 4.查询学生信息\n\n");printf(" 5.统计学生信息\n\n");printf(" 6.学生排序\n\n");printf(" 7.打印学生信息\n\n");printf(" 0.退出系统\n\n");printf(" 请选择(0-7):");scanf("%d",&choice);switch(choice) /*用switch选择要调用的各模块函数并执行*/{ case 1: sum=append(students,sum);break;case 2: modify(students,sum);break;case 3: sum=del(students,sum);break;case 4: inquire(students,sum); break;case 5: count(students,sum); break;case 6:sort(students,sum); break;case 7:output(students,sum); break;case 0: break; /*执行完各模块后按0退出系统*/}}while(choice!=0);save_file(students,sum); /*保存执行完各模块后的学生信息*/}。

相关文档
最新文档