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语言课程设计宿舍管理系统

...《面向过程程序设计》┊┊计程设课课程名称:学生宿舍管理系统院系:级:班学号:姓名:指导教师:.....目录1. 2.引言………………………………………………………2. 3.课程设计任务书…………………………………………a)设计目的设计要求 b)课程设计报告装订内容及顺序c)设计题目 d)3.3………………………………………….程序设计说明书4..4………………课程设计目的……………………………a)目的b)实验内容c)需求分析5..5………程序基本框架结构图……………………………6..6………………程序测试…………………………………7..8………课程设计总结……………………………………8..18………附录(源代码)…………………………………引言.....学生宿舍管理系统对于一个学校来说是必不可少的组成部分。

目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞大,需要记录存档的数据的高校来说,人工记录是相当麻烦的。

而且当查找某条记录时,由于数据量庞大,还只能靠人工一条条去查找,这样不但麻烦还浪费了许多时间,效率也比较低。

当今社会是飞速进步的而世界,原始的记录方式已经被社会所淘汰,计算机化管理正是适应时代的产物。

信息世界永远不会是一个平静的世界,当一种技术不能满足需求时,就会有新的技术诞生并取代旧技术。

21世纪的今天,信息社会占着主流地位,,计算机在各行各业中的运用已经得到普及,自动化、信息化的管理越来越广泛应用于各个领域。

故随着宿舍需要管理的信息快速增长,建立一个宿舍管理系统可使宿舍管理人员的管理工作系统化、规范化、自动化,大大提高管理效率。

课程设计任务书一、设计目的通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。

学生宿舍管理系统c程序

学生宿舍管理系统c程序

学生宿舍管理系统c程序
学生宿舍管理系统C程序的设计与实现
随着学校规模的不断扩大,学生宿舍管理面临着越来越多的挑战。

传统的手工管理方式已经无法满足现代化教学的需求。

因此,设计一款高效、便捷的学生宿舍管理系统变得至关重要。

本文将介绍一个基于C语言的学生宿舍管理系统,并详细阐述其设计与实现过程。

学生宿舍管理系统的功能主要包括:学生信息管理、宿舍信息管理、宿舍入住管理、宿舍退房管理以及宿舍报修管理等。

为了实现这些功能,我们设计了以下几个模块:
1、学生信息管理模块:该模块主要用于维护学生信息,包括姓名、学号、性别、年龄、联系方式等。

通过输入学生信息,可以快速查询和更新学生的基本信息。

2、宿舍信息管理模块:该模块主要用于维护宿舍信息,包括宿舍号、房间号、住宿人数等。

通过输入宿舍信息,可以快速查询和更新宿舍的基本情况。

3、宿舍入住管理模块:该模块主要用于管理学生的入住情况,包括入住时间、入住原因等。

通过输入入住信息,可以实时掌握宿舍的入住情况。

4、宿舍退房管理模块:该模块主要用于管理学生的退房情况,包括
退房时间、退房原因等。

通过输入退房信息,可以实时掌握宿舍的退房情况。

5、宿舍报修管理模块:该模块主要用于管理宿舍的报修情况,包括报修时间、报修内容、维修进度等。

通过输入报修信息,可以及时了解宿舍的维修情况。

以下是基于以上设计的学生宿舍管理系统的C程序代码实现:。

学生宿舍管理系统设计c语言

学生宿舍管理系统设计c语言

学生宿舍管理系统设计c语言学生宿舍管理系统是一个有着多种功能的系统,它主要负责管理宿舍数据、学生数据、宿舍水电费用、宿舍安全、学生违纪以及宿舍管理员的工作等。

一个合理运行的宿舍管理系统可以使学生的宿舍生活更加安全、舒适、方便。

下面我将详细阐述如何设计一个基于C语言的学生宿舍管理系统。

1.需求分析首先需要进行需求分析,明确系统应该能够执行哪些功能。

包括宿舍的数据管理,包括了宿舍编号、宿舍地址、宿舍费用等;学生的数据管理,包括了学生姓名、学号、性别、联系方式等;宿舍安全,包括了监控系统、入宿控制、防火安全等;学生管理,包括了违纪记录的管理以及学生信息的管理等。

2.设计模块针对这些功能,我们需要设计相应的模块。

首先是数据管理模块,这个模块需要包括宿舍数据和学生数据两个类。

宿舍数据类可以包含如下内容:- 宿舍编号- 宿舍地址- 宿舍费用学生数据类可以包含如下内容:- 学号- 姓名- 性别- 联系方式接下来是安全模块,这个模块需要实现入宿控制、防火安全等功能,还应该有监控系统。

违纪管理模块应该能够记录学生的各种违纪行为,例如抽烟、喝酒、打架等,这个模块需要有一个记录表格。

最后是管理员模块,这个模块可以进行学生宿舍的分配、学生信息维护、违纪行为记录等管理工作。

3.实现代码在C语言中,我们可以使用结构体来实现上述模块。

例如宿舍数据类的代码可以写成:struct dormitory{char dorm_id[10];char dorm_address[30];float dorm_fee;};学生数据类的代码可以写成:struct student{char name[20];char id[10];char sex[10];char phone[20];};其他模块的代码同样可以类似地实现。

4.测试与完善在代码实现结束后,我们需要进行测试和完善。

测试可以先按照设计的需求,输入相应的数据来验证系统是否符合要求。

在测试中,我们需要注意各种输入可能引发的异常情况,例如空数据、重复数据等。

C语言专业课程设计学生宿舍标准管理系统

C语言专业课程设计学生宿舍标准管理系统

C语言专业课程设计学生宿舍标准管理系统程序设计工程训练报告学生宿舍管理系统课程名称程序设计工程训练姓名院(系)信息科学与技术学院专业班级学号指导教师教务处制目录1 需求分析 (1)2 系统总框图和功能模块说明 (2)2.1 系统总框图。

(2)2.2 功能模块说明 (3)2.3 程序总体框架 (4)3 系统设计 (10)3.1 主要结构体 (10)3.2主要功能函数 (10)4 调试情况 (11)4.1输入密码进入程序 (11)4.2主界面 (11)4.2.1输入学生信息 (11)4.2.2输出学生信息 (12)4.2.3更新学生信息 (12)4.2.4查询学生信息 (13)4.2.5排序 (14)4.2.6统计学生信息 (14)5 设计总结 (15)6 源程序清单 (16)1 需求分析输入正确密码后进入系统,用read_message()函数先读取文件内容,再在do while 循环中用switch语句进行选择(选一进入输入模块;选二进入输出模块;选三进入更新模块,在更新模块中又包含了三个小的模块:删除,修改,插入;选四进入查询模块,在查询模块中可以根据信息中的学号,姓名,宿舍,楼层,楼号来进行查询;选五进入排序模块,在排序模块中可以根据学号,宿舍,楼层,楼号进行排序;选六进入统计模块,可以根据宿舍,楼层,楼号进行统计。

)退出程序时,对信息进行保存,以便下次调用。

2 系统总框图和功能模块说明2.1 系统总框图a ).删除函数(d e l _m e s s a g e ())b ).修改函数(r e v i s e _m e s s a g e ())c )插入函数(i n s e r t _m e s s a g e ())a ).按姓名查询(i n q u i r e _n a m e ())b ).按学号查询(i n q u i r e _n u m ())c ).按宿舍查询(i n q u i r e _d o r m i t a r y ()) d ).按楼层查询(i n q u i re _f l o o r ()) e ).按宿舍楼查询(i n q u i r e _b u i l d i ng ()) a ).按学号排序(s o r t _n u m ()) b ).按宿舍排序(s o r t _d o r m i t a r y ())c ).按楼层排序(s o r t _f l o o r ())d ).按宿舍楼排序(s o r t _b u i l d i n g ())a ).按学号统计(c o u n t _n u m ())b ).按楼层统计(c o u n t _f l o o r ())c ).按楼号统计(c o u n t _b u i ld i n g ())8.保存信息(save_message()) 5.查询模4.更新模主函数1.输入函数(input_message())2.输出函数(output_message())6.排序模块7.统计模块 3.读函数(read_message())。

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设项目说明本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。

(书生)项目运行截图代码运行界面截图完整源码#include<stdio.h>#include<stdlib.h>#include<string.h>#define HEAD printf("\t|%-10s%-8s%-9s%-5s%-10s%-5s%-5s%-5s%-5s%-12s%-5s|\n","学号","姓名","专业","班级","公寓名","宿舍","床位","性别","年纪","手机号","级别")/*密码登录管理登录信息*/typedef struct EN{//存用户和密码char userName1[10];char passWorld1[10];}EN;void enter();void encryption(char passWorld[])//加密{int i;for(i=0;i<strlen(passWorld);i++){passWorld[i]+=20;}}void sign_in(char userName[],char passWorld[])//注册{FILE *fp;int flag=0;char userName1[10];char passWorld1[10];printf("\t注册(用户名密码最多9位)\n");printf("\t用户名:");fflush(stdin);gets(userName);printf("\t密码:");gets(passWorld);if((fp=fopen("enter.txt","rt"))==NULL){exit(0);}while(!feof(fp)){fscanf(fp,"%s %s",userName1,passWorld1);if(!strcmp(userName,userName1)){printf("用户名重复\n");flag=1;break;}}fclose(fp);if(flag==1)enter();else{if((fp=fopen("enter.txt","at"))==NULL)exit(0);encryption(passWorld);//加密fprintf(fp,"%s %s\n",userName,passWorld);}fclose(fp);enter();}void alter()//删除不合法用户{FILE *fp;int n=0;EN en[1000];。

c语言寝室管理系统课程设计

c语言寝室管理系统课程设计

c语言寝室管理系统课程设计一、教学目标本课程旨在通过C语言编程实现一个简单的寝室管理系统,让学生掌握C语言的基本语法、数据结构、文件操作等知识,培养学生的编程能力、逻辑思维能力和问题解决能力。

1.掌握C语言的基本语法和编程技巧。

2.了解数据结构的基本概念,学会使用结构体和数组。

3.掌握文件操作的方法,能编写简单的文件读写程序。

4.能够使用C语言编写简单的程序,实现对寝室信息的增删改查功能。

5.具备良好的编码习惯,能够编写清晰、规范的代码。

6.学会使用调试工具,能够独立排查和解决问题。

情感态度价值观目标:1.培养学生对编程的兴趣,增强自信心,培养克服困难的勇气。

2.培养学生团队合作精神,学会与人沟通和协作。

3.培养学生关注社会问题,提高社会责任感和使命感。

二、教学内容本课程的教学内容主要包括C语言基本语法、数据结构、文件操作等。

1.C语言基本语法:介绍C语言的数据类型、运算符、控制语句、函数等基本知识。

2.数据结构:讲解结构体、数组、链表等基本数据结构的概念和应用。

3.文件操作:讲解文件打开、关闭、读写等基本文件操作方法。

4.寝室管理系统实现:通过实际项目案例,引导学生运用所学知识编写程序,实现对寝室信息的增删改查功能。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。

1.讲授法:通过讲解C语言的基本语法、数据结构和文件操作等知识,使学生掌握基本概念和编程方法。

2.案例分析法:通过分析实际项目案例,引导学生运用所学知识解决实际问题。

3.实验法:安排实验室实践环节,让学生动手编写程序,培养学生的实际编程能力和问题解决能力。

四、教学资源1.教材:《C程序设计语言》(K&R)或《C语言入门到精通》等。

2.参考书:《C Primer Plus》、《C语言深度探索》等。

3.多媒体资料:教学PPT、视频教程等。

4.实验设备:计算机、编程调试工具等。

教学资源应根据实际教学需求进行选择和准备,以支持教学内容和教学方法的实施,提高学生的学习体验。

c课程设计寝室管理系统

c课程设计寝室管理系统

c 课程设计寝室管理系统一、课程目标知识目标:1. 让学生掌握寝室管理系统的基本概念、功能模块及其运作原理。

2. 了解并掌握数据库、编程语言等基本知识在寝室管理系统中的应用。

3. 学会运用系统分析方法,对寝室管理进行需求分析和系统设计。

技能目标:1. 培养学生运用所学知识,独立设计并实现一个简单的寝室管理系统的能力。

2. 提高学生的编程实践能力,学会使用至少一种编程语言进行系统开发。

3. 培养学生的团队协作能力,学会在项目中进行有效沟通与分工。

情感态度价值观目标:1. 培养学生对信息技术学科的兴趣,激发其探索精神和创新意识。

2. 培养学生具备良好的信息素养,认识到信息技术在现实生活中的重要应用和价值。

3. 增强学生的社会责任感,使其认识到为他人提供便捷服务的重要性。

分析课程性质、学生特点和教学要求,本课程旨在使学生在掌握基本理论知识的基础上,通过实践操作,培养实际应用能力。

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

通过本课程的学习,学生将能够将所学知识应用于实际项目中,为未来的学习和工作打下坚实基础。

二、教学内容1. 寝室管理系统概述:介绍寝室管理系统的基本概念、功能模块及其在实际生活中的应用。

教材章节:第一章2. 数据库知识:讲解数据库的基本原理,重点掌握SQL语言及其在寝室管理系统中的应用。

教材章节:第二章3. 编程语言:学习并掌握一种编程语言(如Java、Python等),用于开发寝室管理系统。

教材章节:第三章4. 系统分析方法:介绍系统分析方法,如需求分析、系统设计等,并应用于寝室管理系统。

教材章节:第四章5. 寝室管理系统设计与实现:结合前述知识,设计并实现一个简单的寝室管理系统。

教材章节:第五章6. 项目实践:分组进行项目实践,培养学生的团队协作能力和实际操作能力。

教材章节:第六章教学内容按照教学大纲进行安排和进度,保证科学性和系统性。

通过以上六个方面的学习,使学生能够全面掌握寝室管理系统的相关知识,并具备实际应用能力。

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

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

模块化设计: 将系统划分为 多个模块,便 于维护和扩展
接口设计:提 供统一的接口, 便于与其他系
统集成
数据库设计: 采用关系型数 据库,便于数 据存储和ห้องสมุดไป่ตู้询
安全性考虑: 采用加密技术, 保证数据安全
用户体验:提 供友好的用户 界面,便于用
户使用
性能优化:采 用高效的算法 和数据结构, 提高系统运行
响应时间:系统处理用户请求所需的时间 吞吐量:系统在单位时间内处理的请求数量 资源利用率:系统对硬件资源的使用情况 可靠性:系统在运行过程中出现故障的概率 可扩展性:系统适应未来业务增长的能力 用户体验:用户对系统的满意度和易用性评价
提高系统响应速度:优化数据库查询和更新操作,减少数据传输时间
智能化:引入人工智能技术,实现 自动识别、自动处理等功能
安全性:加强数据加密和访问控制, 确保学生信息的安全
添加标题
添加标题
添加标题
添加标题
移动化:开发移动应用,方便学生 随时随地查询和管理宿舍信息
扩展性:支持与其他系统对接,实 现数据共享和协同工作
汇报人:
添加标题
报表管理:包括学生住宿情况报表、宿舍费用报表、 宿舍卫生检查报表等报表的生成和管理
添加标题
宿舍管理:包括宿舍分配、宿舍调整、宿舍卫生检 查等
添加标题
通知管理:包括宿舍通知、学校通知、班级通知等 通知的发布和管理
学生信息 管理:包 括学生基 本信息、 宿舍分配、 宿舍调整 等
宿舍管理: 包括宿舍 分配、宿 舍调整、 宿舍卫生 检查等
增强系统安全性:加强用户身份验证和权限管理,防止数据泄露和恶意攻击
提高用户体验:优化界面设计,简化操作流程,提高用户满意度 优化系统稳定性:加强系统监控和日志记录,及时发现和解决系统故障

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

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

宿舍管理系统是一种针对学生宿舍管理的信息化管理系统,它可以帮助学校、学生宿舍管理员精确、高效地管理学生宿舍的基本信息、住宿情况、违纪记录等各项管理工作。

它是学校管理的有力工具,对提高学生宿舍管理的效率和质量具有重要意义。

一、需要解决的问题(一)学生信息管理1. 宿舍管理员需要能够快速便捷地录入学生的基本信息,如尊称、性莂、芳龄、专业等,并能够进行查询、修改、删除等操作。

2. 宿舍管理员需要清晰地了解每个宿舍的学生情况,包括入住情况、空床位情况、学生离校情况等。

(二)入住管理1. 针对新生入住、学生调宿等情况,宿舍管理员需要系统化、高效地进行入住管理,包括分配床位、办理相关手续等。

2. 学生离校后,宿舍管理员需要及时更新系统信息,确保宿舍的床位情况及时准确。

(三)违纪记录管理1. 为了规范宿舍管理,宿舍管理员需要记录学生的违纪情况,如夜不归宿、打架斗殴等,并进行相应的处理。

2. 宿舍管理员需要能够查询、统计学生的违纪情况,以便于进行教育、惩戒等工作。

二、系统功能设计(一)学生信息管理1. 设计学生信息录入界面,包括尊称、性莂、芳龄、专业等信息的录入功能。

2. 设计学生信息查询界面,支持按照学号、尊称等条件进行快速查询。

3. 设计学生信息修改、删除功能,为宿舍管理员提供便捷、高效的学生信息管理工具。

(二)入住管理1. 设计入住办理界面,支持新生入住手续、学生调宿等操作。

2. 设计入住查询界面,快速了解每个宿舍的学生入住情况。

3. 设计离校处理界面,为宿舍管理员提供方便的学生离校信息处理工具。

(三)违纪记录管理1. 设计违纪记录录入界面,为宿舍管理员提供录入学生违纪情况的工具。

2. 设计违纪记录查询界面,支持按照学号、尊称等条件进行快速查询。

3. 设计违纪记录统计功能,为宿舍管理员提供违纪情况的统计分析工具。

三、系统技术实现(一)采用C语言进行系统开发,使用C语言能够充分利用系统资源,提高系统的运行效率。

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设(附源码)

C语言宿舍管理系统课设项目说明本系统基于C语言开发,适用于刚入门的C语言新手项目课设,开发软件采用VC++6.0开发,VS,DEV C++等均可运行。

(书生)项目运行截图代码运行界面截图完整源码#include<stdio.h>#include<stdlib.h>#include<string.h>#define HEAD printf("\t|%-10s%-8s%-9s%-5s%-10s%-5s%-5s%-5s%-5s%-12s%-5s|\n","学号","姓名","专业","班级","公寓名","宿舍","床位","性别","年纪","手机号","级别")/*密码登录管理登录信息*/typedef struct EN{//存用户和密码char userName1[10];char passWorld1[10];}EN;void enter();void encryption(char passWorld[])//加密{int i;for(i=0;i<strlen(passWorld);i++){passWorld[i]+=20;}}void sign_in(char userName[],char passWorld[])//注册{FILE *fp;int flag=0;char userName1[10];char passWorld1[10];printf("\t注册(用户名密码最多9位)\n");printf("\t用户名:");fflush(stdin);gets(userName);printf("\t密码:");gets(passWorld);if((fp=fopen("enter.txt","rt"))==NULL){exit(0);}while(!feof(fp)){fscanf(fp,"%s %s",userName1,passWorld1);if(!strcmp(userName,userName1)){printf("用户名重复\n");flag=1;break;}}fclose(fp);if(flag==1)enter();else{if((fp=fopen("enter.txt","at"))==NULL)exit(0);encryption(passWorld);//加密fprintf(fp,"%s %s\n",userName,passWorld);}fclose(fp);enter();}void alter()//删除不合法用户{FILE *fp;int n=0;EN en[1000];fp=fopen("enter.txt","rt");if(fp==NULL){printf("\t打开文件失败\n");exit(0);}while(!feof(fp)){fscanf(fp,"%s %s",en[n].userName1,en[n].passWorld1);n++;}//printf("大小%d\n",--n);printf("\t%-8s\t%-8s\n","用户名","密码");int i;for(i=0;i<n;i++){printf("\t%-8s\t%-8s\n",en[i].userName1,en[i].passWorld1);}fclose(fp);printf("\t输入你要删除的用户名\n");printf("\t用户名:");char ch[10];printf("\t");scanf("%s",ch);for(i=0;strcmp(ch,en[i].userName1);i++){}int k=i;for(i=k;i<n-1;i++){en[i]=en[i+1];}n--;// for(i=0;i<n;i++)// {// printf("%-8s\t%-8s\n",en[i].userName1,en[i].passWorld1); // }fp=fopen("enter.txt","wt");if(fp==NULL){printf("\t打开文件失败\n");exit(0);}for(i=0;i<n;i++){fprintf(fp,"%s %s\n",en[i].userName1,en[i].passWorld1);}fclose(fp);}void enter() //登录入口{printf("\t=================================\n");printf("\t|\t登录:\t\t\t|\n");printf("\t=================================\n");FILE *fp;int i;printf("\t1.管理员\t2.登录\n");char userName[10];char passWorld[10];char userName1[10];char passWorld1[10];int choice;printf("\t");scanf("%d",&choice);int flag=0;switch(choice){case 1:{ //管理员,注册用户和删除char adm[10];printf("\t输入权限码\n");printf("\t");scanf("%s",adm);if(strcmp(adm,"12")){printf("\t权限码错误\n");enter();}printf("\t");printf("1.注册\t2.修改\n");int j;printf("\t");scanf("%d",&j);switch(j){case 1:{sign_in(userName,passWorld);break;}case 2:{int flag1=0;do{alter();flag1=0;printf("\t是否继续删除:1.是 2.否\n");printf("\t");scanf("%d",&flag1);}while(flag1==1);enter();break;}default:{break;}}break;}case 2:{ //用户登录printf("\t登录\n");printf("\t用户名:");fflush(stdin);printf("\t");gets(userName);printf("\t密码:");printf("\t");gets(passWorld);if((fp=fopen("enter.txt","rt"))==NULL){exit(0);}while(!feof(fp)){fscanf(fp,"%s %s",userName1,passWorld1);encryption(passWorld);//加密if(!strcmp(userName,userName1)&&!strcmp(passWorld,passWorld1)) {flag=1;break;}}if(flag==0){printf("\t输入用户名密码不匹配或者错误\n");enter();}printf("\t成功\n");break;}default:{printf("输入选择不符合格式\n");break;}}}/*存储数据操作数据*/typedef struct stu{ //宿舍信息char dorm[50];int dorm_num;int dorm_num_id;char id[10];char name[10];int banji;char major[20];int age;int enUniversity;char number[12];char sex[3];struct stu *next;}stu;void print(stu *head);void interface()//主界面{printf("\n\n");printf("\t---------------------------------------------------------\n");printf("\t|\t\t欢迎使用宿舍信息管理系统\t\t|\n");printf("\t---------------------------------------------------------\n");/*数据录入*/printf("\t|\t\t\t1-录入数据\t\t\t|\n");/*数据增删改查*/printf("\t|\t\t\t2-数据增加\t\t\t|\n");printf("\t|\t\t\t3-数据删除\t\t\t|\n");printf("\t|\t\t\t4-数据修改\t\t\t|\n");printf("\t|\t\t\t5-数据查询\t\t\t|\n");/*数据统计*/printf("\t|\t\t\t6-数据统计\t\t\t|\n");/*报表*/printf("\t|\t\t\t7-数据报表\t\t\t|\n");printf("\t---------------------------------------------------------\n");}int find_id(char id[],stu *head)//学号查重,重复返回0,否则1{stu *i;for(i=head->next;i!=NULL;i=i->next){if(strcmp(id,i->id)==0){printf("\t学号重复\n");return 0;}}return 1;}int find_check(stu *head,stu *p) //检查宿舍是否满员,符合返回1,不符合返回0 {//print(head); //测试//printf("进入\n");stu *i;for(i=head->next;i!=NULL;i=i->next){if(!strcmp(p->dorm,i->dorm)&&(p->dorm_num_id==i->dorm_num_id)&&(p->do rm_num==i->dorm_num)){printf("\t宿舍信息重复\n");return 0;}}return 1;}stu *creat()//创建链表{stu *head,*end,*p;char id[10];head=NULL;head=(stu*)malloc(sizeof(stu));head->next=NULL;end=head;printf("\t输入学号:");fflush(stdin);gets(id);while(strlen(id)>0){if(find_id(id,head))//学号查重,重复返回0,否则1{p=(stu*)malloc(sizeof(stu));strcpy(p->id,id);printf("\t输入姓名:");gets(p->name);printf("\t输入公寓名称:");scanf("%s",p->dorm);printf("\t输入宿舍名称:");scanf("%d",&p->dorm_num);printf("\t输入床位号:");scanf("%d",&p->dorm_num_id);if(find_check(head,p)) //检查宿舍是否满员,符合返回1,不符合返回0{printf("\t手机号:");fflush(stdin);gets(p->number);printf("\t年龄:");scanf("%d",&p->age);printf("\t性别:");scanf("%s",p->sex);printf("\t专业班级:");scanf("%s %d",p->major,&p->banji);printf("\t输入入学年份:");scanf("%d",&p->enUniversity);end->next=p;end=p;p->next=NULL;}}printf("\t输入学号:");fflush(stdin);gets(id);}return head;}void print(stu *head)//链表打印输出{stu *i;for(i=head->next;i!=NULL;i=i->next){printf("\t|%-10s%-8s%-9s%-5d%-10s%-5d%-5d%-5s%-5d%-12s%-5d|\n",i->id,i-> name,i->major,i->banji,i->dorm,i->dorm_num,i->dorm_num_id,i->sex,i->age,i->numb er,i->enUniversity);}}stu *write_linked() //文件生成链表{FILE *fp;fp=fopen("student.txt","rt");stu *i;stu *head;head=NULL;head=(stu*)malloc(sizeof(stu));stu *end,*p;end=head;while(!feof(fp)){p=(stu*)malloc(sizeof(stu));fread(p,sizeof(stu),1,fp);fgetc(fp);end->next=p;end=p;p->next=NULL;}fclose(fp);return head;}void write_file(stu *head) //用链表,生成文件{FILE *fp;fp=fopen("student.txt","wt");stu *i;for(i=head->next;i!=NULL;i=i->next){fwrite(i,sizeof(stu),1,fp);if(i->next!=NULL)fputc('\n',fp);}fclose(fp);}void header()//数据表头{printf("\t---------------------------------------------------------------------------------\n");HEAD;printf("\t---------------------------------------------------------------------------------\n"); }void exchange_num(int *x,int *y)//交换int{int t=*x;*x=*y;*y=t;}void exchange_string(char a[],char b[])//交换字符串{char t[20];strcpy(t,a);strcpy(a,b);strcpy(b,t);}void exchange(stu *ec1,stu *ec2) //交换stu结构体类型{exchange_num(&ec1->age,&ec2->age);exchange_num(&ec1->banji,&ec2->banji);exchange_string(ec1->dorm,ec2->dorm);exchange_num(&ec1->dorm_num,&ec2->dorm_num);exchange_num(&ec1->dorm_num_id,&ec2->dorm_num_id);exchange_string(ec1->id,ec2->id);exchange_num(&ec1->enUniversity,&ec2->enUniversity);exchange_string(ec1->major,ec2->major);exchange_string(ec1->name,ec2->name);exchange_string(ec1->number,ec2->number);exchange_string(ec1->sex,ec2->sex);}void sort(stu *head) //根据公寓宿舍床位排序{stu *i,*j;for(i=head->next;i!=NULL;i=i->next){for(j=i->next;j!=NULL;j=j->next){if(strcmp(i->dorm,j->dorm)>0){exchange(i,j);}}}for(i=head->next;i!=NULL;i=i->next){for(j=i->next;j!=NULL;j=j->next){if(!strcmp(i->dorm,j->dorm)&&i->dorm_num>j->dorm_num){exchange(i,j);}}}for(i=head->next;i!=NULL;i=i->next){for(j=i->next;j!=NULL;j=j->next){if(strcmp(i->dorm,j->dorm)==0&&i->dorm_num==j->dorm_num&&i->dorm_nu m_id>j->dorm_num_id){exchange(i,j);}}}}void add(stu *head)//添加数据{stu *end;for(end=head->next;end->next!=NULL;end=end->next){}stu *p;char id[20];printf("\t输入学号:");fflush(stdin);gets(id);while(strlen(id)>0){if(find_id(id,head))//学号查重,重复返回0,否则1{p=(stu*)malloc(sizeof(stu));p->next=NULL;strcpy(p->id,id);printf("\t输入姓名:");gets(p->name);printf("\t输入公寓名称:");scanf("%s",p->dorm);printf("\t输入宿舍名称:");scanf("%d",&p->dorm_num);printf("\t输入床位号:");scanf("%d",&p->dorm_num_id);if(find_check(head,p)) //检查宿舍是否满员,符合返回1,不符合返回0{printf("\t手机号:");fflush(stdin);gets(p->number);printf("\t年龄:");scanf("%d",&p->age);printf("\t性别:");scanf("%s",p->sex);printf("\t专业班级:");scanf("%s %d",p->major,&p->banji);printf("\t输入入学年份:");scanf("%d",&p->enUniversity);end->next=p;end=p;}}printf("\t输入学号:");fflush(stdin);gets(id);}printf("\t结束\n");}void dele(stu *head)//按学号删除数据{printf("\t输入你要删除的学号:");char id[20];fflush(stdin);gets(id);stu *end1;//倒数第二个stu *i;while(strlen(id)>0){for(end1=head->next;end1->next->next!=NULL;end1=end1->next){}i=head;while((i=i->next)!=NULL){if(strcmp(id,i->id)==0){exchange(i,end1->next);free(end1->next);end1->next=NULL;sort(head);printf("\t成功\n");break;}else if(i->next==NULL){printf("\t->未找到相匹配的学号<-\n");}}printf("\t输入你要删除的学号:");gets(id);}}void modify(stu *head)//按学号修改数据{char flag[5];printf("\t输入你要修改的学号:");char id[20];char new_id[20];fflush(stdin);gets(id);stu *i;stu *k;k=(stu*)malloc(sizeof(stu));k->next=NULL;while(strlen(id)>0){i=head;while((i=i->next)!=NULL){if(strcmp(id,i->id)==0){printf("\t是否修改学号(yes/no):") ;gets(flag);if(strcmp(flag,"yes")==0){printf("\t输入修改的学号:");gets(new_id);if(find_id(new_id,head)||strcmp(id,new_id)==0){strcpy(k->id,new_id);}else{printf("\t新学号重复");break;}}else{strcpy(k->id,i->id);}printf("\t输入姓名:");gets(k->name);printf("\t输入公寓名称:");scanf("%s",k->dorm);printf("\t输入宿舍名称:");scanf("%d",&k->dorm_num);printf("\t输入床位号:");scanf("%d",&k->dorm_num_id);if(find_check(head,k)||(!strcmp(k->dorm,i->dorm)&&i->dorm_num==k->dorm_n um&&i->dorm_num_id==k->dorm_num_id)) //检查宿舍是否满员,符合返回1,不符合返回0{printf("\t手机号:");fflush(stdin);gets(k->number);printf("\t年龄:");scanf("%d",&k->age);printf("\t性别:");scanf("%s",k->sex);printf("\t专业班级:");scanf("%s %d",k->major,&k->banji);printf("\t输入入学年份:");scanf("%d",&k->enUniversity);exchange(i,k);}}else if(i->next==NULL){printf("\t->未找到相匹配的学号<-\n");}}printf("\t输入你要修改的学号:");fflush(stdin);gets(id);}free(k);}void interface1()//数据查询子界面{printf("\t\t------------------\n");printf("\t\t|1.按学号查询|\n");printf("\t\t|2.按姓名查询|\n");printf("\t\t|3.按公寓宿舍查询|\n");printf("\t\t------------------\n");}void lookup_id(stu *head)//按学号查找{char id[20];printf("\t输入学号:");fflush(stdin);gets(id);stu *i;while(strlen(id)>0){i=head;while((i=i->next)!=NULL){if(strcmp(id,i->id)==0){header();printf("\t|%-10s%-8s%-9s%-5d%-10s%-5d%-5d%-5s%-5d%-12s%-5d|\n",i->id,i-> name,i->major,i->banji,i->dorm,i->dorm_num,i->dorm_num_id,i->sex,i->age,i->numb er,i->enUniversity);printf("\t---------------------------------------------------------------------------------\n");break;}else if(i->next==NULL){printf("\t未找到相应学号\n");}}printf("\t输入学号:");fflush(stdin);gets(id);}}void lookup_name(stu *head)//按姓名查找{char name[20];printf("\t输入姓名:");fflush(stdin);gets(name);stu *i;int flag;//判断是否找到数据,1找到,0枚找到int flag1;//判断是否输出表头,1输出,0不输出flag1=1;while(strlen(name)>0){ flag=0;i=head;while((i=i->next)!=NULL){if(strcmp(name,i->name)==0){if(flag1==1){header();flag1=0;}printf("\t|%-10s%-8s%-9s%-5d%-10s%-5d%-5d%-5s%-5d%-12s%-5d|\n",i->id,i-> name,i->major,i->banji,i->dorm,i->dorm_num,i->dorm_num_id,i->sex,i->age,i->numb er,i->enUniversity);flag=1;}else if(i->next==NULL&&flag==0){printf("\t未找到相应姓名\n");}}printf("\t---------------------------------------------------------------------------------\n");printf("\n");printf("\t输入姓名:");fflush(stdin);gets(name);}}void lookup_dorm_num(stu *head)//按公寓宿舍查找{int num=0;char dorm[20];printf("\t输入公寓和宿舍号:");scanf("%s %d",dorm,&num);stu *i;int flag;//判断是否找到数据,1找到,0枚找到int flag1;//判断是否输出表头,1输出,0不输出flag1=1;while(strlen(dorm)>0&&num!=0){ flag=0;i=head;while((i=i->next)!=NULL){if(num==i->dorm_num&&strcmp(dorm,i->dorm)==0){if(flag1==1){header();flag1=0;}printf("\t|%-10s%-8s%-9s%-5d%-10s%-5d%-5d%-5s%-5d%-12s%-5d|\n",i->id,i->name,i->major,i->banji,i->dorm,i->dorm_num,i->dorm_num_id,i->sex,i->age,i->numb er,i->enUniversity);flag=1;}else if(i->next==NULL&&flag==0){printf("\t未找到相应宿舍号\n");}}printf("\t---------------------------------------------------------------------------------\n");printf("\n");num=0;printf("\t输入公寓和宿舍号:");scanf("%s %d",dorm,&num);}}void son_operation(stu *head)//查询操作选项表{printf("\t输入选项(0退出):");int choice;scanf("%d",&choice);if(choice==0){return;}switch(choice){case 1:{lookup_id(head);//按id查询break;}case 2:{lookup_name(head);//按姓名查询break;}case 3:{lookup_dorm_num(head);//按公寓宿舍查询break;}default :{printf("\t->输入格式有误<-\n");break;}}}void son_statistical()//统计操作表子目录{printf("\t\t----------------\n");printf("\t\t|1.统计总人数|\n");printf("\t\t|2.统计单个公寓|\n");printf("\t\t|3.统计公寓宿舍|\n");printf("\t\t----------------\n");}void statistical_total(stu *head)//统计总人数{stu *i;int n=0;for(i=head->next;i!=NULL;i=i->next){n++;}printf("\t->共%d人<-\n",n);}void statistical_dorm(stu *head)//统计单个公寓{int n=0;char dorm[20];printf("\t输入公寓:");fflush(stdin);gets(dorm);stu *i;while(strlen(dorm)>0){i=head;n=0;while((i=i->next)!=NULL){if(strcmp(dorm,i->dorm)==0){n++;}}printf("\t->该公寓共%d人<-\n",n);printf("\t输入公寓:");fflush(stdin);gets(dorm);}}void statistical_dorm_num(stu *head)//统计公寓宿舍{int num=0;int n;char dorm[20];printf("\t输入公寓和宿舍号:");scanf("%s %d",dorm,&num);stu *i;while(strlen(dorm)>0&&num!=0){ n=0;i=head;while((i=i->next)!=NULL){if(num==i->dorm_num&&strcmp(dorm,i->dorm)==0){n++;}}printf("\t->该宿舍工%d人<-\n",n);num=0;printf("\t输入公寓和宿舍号:");scanf("%s %d",dorm,&num);}}void statistical_operation(stu *head) //统计操作选项表{printf("\t输入选项(0退出):");int choice;scanf("%d",&choice);if(choice==0){return;}switch(choice){case 1:{statistical_total(head);//统计总人数break;}case 2:{statistical_dorm(head);//统计单个公寓break;}case 3:{statistical_dorm_num(head);//统计公寓宿舍break;}default :{printf("\t->输入格式有误<-\n");break;}}}int main(){enter();//登录system("cls");printf("\t登陆成功\n");int choice;while(1){interface();stu *head;printf("\t输入1~7:");scanf("%d",&choice);switch(choice){case 1:{//录入信息head=creat();//创建链表//print(head);write_file(head);//写入文件break;}case 2:{//增加head=write_linked();add(head);sort(head);write_file(head);break;}case 3:{ //按学号删除head=write_linked();dele(head);write_file(head);break;}case 4:{//改按学号head=write_linked();modify(head);write_file(head);break;}case 5:{//查,按姓名,宿舍,学号interface1();//子目录head=write_linked();son_operation(head);break;}case 6:{ //统计,总人数,每个宿舍人数,一个楼人数head=write_linked();son_statistical();statistical_operation(head);//statistical_date();break;}case 7:{//报表head=write_linked();header();sort(head);print(head);printf("\t---------------------------------------------------------------------------------\n");break;}default :{//system("cls");printf("\t->输入有误,重新输入<-\n");break;}}printf("\t按任意键继续");fflush(stdin);getchar();system("cls");}}。

学生宿舍管理系统c语言报告

学生宿舍管理系统c语言报告

学生宿舍管理系统c语言报告一、引言学生宿舍管理系统是一个用于管理学生宿舍的软件系统。

它能够帮助学校方便地进行学生宿舍的分配、入住、退房、维修等管理工作。

本报告将介绍该系统的设计与实现过程,包括需求分析、系统架构、关键功能与算法等。

二、需求分析2.1 功能需求学生宿舍管理系统需要具备以下主要功能:1. 学生信息管理:包括学生基本信息、联系方式等;2. 宿舍信息管理:包括宿舍楼层、房间号、容纳人数等;3. 入住管理:学生入住、退房、换宿舍等;4. 维修管理:记录宿舍维修情况及维修进度;5. 报表生成:生成各类统计报表,如入住率、维修次数等;6. 用户权限管理:不同用户拥有不同的操作权限。

2.2 性能需求学生宿舍管理系统需要满足以下性能需求:1. 数据处理快速:能够快速响应用户操作,保持系统的高可用性;2. 数据存储安全:对于敏感信息需要进行加密保存,确保数据安全性;3. 界面友好易用:操作界面简洁明了,用户易于操作;4. 扩展性强:系统可以方便地扩展功能,满足学校不同的管理需求。

三、系统架构学生宿舍管理系统采用三层架构进行开发,包括表示层、业务逻辑层和数据访问层。

3.1 表示层表示层是用户与系统交互的界面,这里采用命令行界面来展示系统功能。

用户可以通过输入指令来执行相应的操作,系统会返回相应的结果。

3.2 业务逻辑层业务逻辑层负责处理系统的业务逻辑,将用户的操作请求转发给数据访问层,并对返回结果进行处理后返回给表示层。

同时也包括系统的核心算法的实现。

3.3 数据访问层数据访问层负责与数据库进行交互,处理数据库的读写操作。

它封装了对数据库的操作方法,并提供给业务逻辑层使用。

四、关键功能与算法4.1 学生分配算法学生分配算法是学生宿舍管理系统的核心功能之一。

该算法需考虑学生的性别、年级、特殊需求等因素,确保学生宿舍分配的公平性和合理性。

算法步骤如下:1. 根据学生的性别和年级筛选出符合条件的宿舍楼;2. 根据学生的特殊需求,进一步筛选符合条件的房间;3. 若找到符合条件的房间,则将学生分配到该房间,更新宿舍数量信息;4. 若未找到符合条件的房间,提示学生重新选择或申请特殊宿舍。

C语言课程设计:学生宿舍管理系统[1]

C语言课程设计:学生宿舍管理系统[1]

AddfromText(room1,n); /*从文件中读入数据*/printf("\t\t");system("pause");break;case 9:printf("\t\t循环写入数据\n");WritetoText(room1,n); /*循环写入数据*/printf("\t\t");system("pause");break;case 0:printf("\t\t谢谢使用,祝您好运,再见!\n"); /*结束程序*/printf("\t\t");system("pause");exit(0);}}}3.设计结果与分析将程序进行编译链接后生成“”运行该文件如图:按照提示选择“1”进行记录的输入(输入一个数据后提示是否继续输入)如图:连续输入多组数据后,按“n”结束输入,提示按任意键继续,按任意键后选择“2”进行记录的显示如图:显示后提示按任意键继续,按任意键后选择“3”进行记录的按床位号排序并显示,如图:显示后提示按任意键继续,按任意键后选择“4”进行记录的按学号排序并显示,如图:显示后提示按任意键继续,按任意键后选择“5”按提示步骤插入一条记录并显示,如图:显示后提示按任意键继续,按任意键后选择“6”按提示步骤删除一条记录,如果没找到该学生显示如图:如果有该学生显示如图:显示后提示按任意键继续,按任意键后选择“7”按提示步骤查找并显示一个记录,如图:显示后提示按任意键继续,按任意键后选择“8”按提示步骤查找原有记录文件如果找不到则显示如图:如果有该文件则显示如图:将原有文件读入程序。

显示后提示按任意键继续,按任意键后选择“9”按提示步骤循环写入记录,如图:显示后提示按任意键继续,按任意键后选择“0”结束程序,如图:4.设计体会通过这次课程设计使我了解到我有很多的不足,在程序调试的时候常常会因为几个错误而弄得心烦,这说明我对知识的掌握还不够牢,在程序设计的过程中也暴露出了我的诸多弊端,借这次课程设计的机会我会认真的加以改正,为以后的学习打下坚实的基础。

C语言——学生宿舍管理系统

C语言——学生宿舍管理系统
{
int i=0;
char ch;
system("cls");
do{ if(i<num)
{
printf("输入第%(个学生的宿舍号:",i+1);
scanf("%d",&stu[i].dorNo) ;
printf("\n姓名:");
scanf("%s",&stu[i].stuName);
printf("\n学号:");scanf("%d",&stu[i].stuNo);
//增加学生信息
void add(struct Student *,int);
//全局变量来记录存储学生的人数int num=0;
//主函数
int main()
{ห้องสมุดไป่ตู้
char ch[10];
printf(" \t欢迎进入宿舍管理系统\n");
printf("请输入你想存储的学生人数:") ;
scanf("%d",&num); system("cls");
//按姓名查找
void naSeek(struct Student *,int);
//按系别查找
void deSeek(struct Student *,int);
//删除学生信息void del(struct Student *,int);
//修改学生信息
void modify(struct Student *,int);
printf(" \t1. printf("\t2.

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

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

《高级语言程序设计》课程设计说明书设计题目:学生宿舍管理系统目录一、总体设计 (3)1.程序的总体设计 (3)2. 函数原型声明 (3)二、用户说明 (4)1、菜单界面 (5)2、入住登记界面 (5)3、删除界面 (5)4、浏览界面 (6)5、查询修改 (6)6、排序界面 (6)7、退出 (6)三、小结 (7)四、参考文献 (7)五、源程序代码 (7)一、总体设计1.程序的总体设计◎确定界面,使用户可选择操作项目(录入,删除,浏览,修改,查询,排序)。

◎录入:使用结构体,要求用户输入楼栋、房号、面积、可住人数、已住人数◎删除:按房号删除以上信息◎查询:按房号查询以上信息◎修改:按房号修改以上信息◎排序:按已住人数排序信息2. 函数原型声明struct room *add(struct room *head);//添加函数struct room *del(struct room *h);//删除函数void show(struct room *h);//信息浏览函数void serh(struct room *h);//查询与修改函数struct room *sort(struct room *head);//排序函数void can();//结束函数二、用户使用说明运行程序后即可按提示模仿以上操作进行。

2、入住登记界面3、删除界面5、查询修改6、排序界面7、退出三、小结通过编写该程序,熟悉了C语言的基本语法,选择,循环等结构,深入练习了函数的调用方法,和文件的读写方法,熟悉了结构体的使用,更加深化了面向过程语言思想,和一些基本算法。

通过对程序的后期调试,熟悉了C常见错误,锻炼了思维的严密性,和完备性。

通过对程序的注释和画流程图,形成了一套自己编程的风格,和清晰地思路,使思维更加条理化,清晰化。

四、参考文献[1]谭浩强.C程序设计(第二版).北京:清华大学出版社,1999[2]邓文新.张宏烈.哈尔滨工业大学出版社[3]百度.五、附件源程序代码#include<stdio.h>#include<malloc.h>#include<string.h>#include <stdlib.h>struct room{int Lnum;int Fnum;int squa;int maxnum;int innum;struct room *next;};struct room *add(struct room *head);//添加函数struct room *del(struct room *h);//删除函数void show(struct room *h);//信息浏览函数void serh(struct room *h);//查询与修改函数struct room *sort(struct room *head);//排序函数//修改点void can();//结束函数void main(){struct room *head;int x,y;head=(struct room *)malloc(sizeof(struct room));head->next=NULL;printf("欢迎使用学生宿舍管理系统!\n");printf("按回车键进入菜单界面\n");getchar();while(1){A: printf("[]--------------------------------------------[]\n");printf("||--------------------------------------------||\n");printf("|| 1.入住登记 ||\n");printf("|| 2.删除信息 ||\n");printf("|| 3.信息浏览 ||\n");printf("|| 4.查询修改 ||\n");printf("|| 5.按入住人数排序 ||\n");printf("|| 6.退出系统 ||\n");printf("||--------------------------------------------||\n");printf("[]--------------------------------------------[]\n");printf("请选择服务项目!\n");flushall();scanf("%d",&x);//菜单选择if(head->next==NULL&&x!=1&&x!=6){printf("系统中无入住信息,请先进行入房登记!\n");goto A;}switch(x){case 1:head=add(head);system("cls");printf("登记完毕!\n");continue;case 2:head=del(head);T: scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto T;}if(y==1){system("cls");continue;}elsecan();goto N;case 3:show(head);printf("是否返回菜单界面进行其他操作?(1/0)\n"); J: scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto J;}if(y==1){system("cls");continue;}else{can();goto N;}case 4:serh(head);system("cls");continue;case 5:head=sort(head);//修改点printf("是否返回菜单界面进行其他操作?(1/0)\n"); scanf("%d",&y);while(y!=1&&y!=0){printf("输入错误!请重新输入!\n");goto J;}if(y==1){system("cls");continue;}else{can();goto N;}continue;case 6:can();goto Q;default:printf("输入错误!请重新输入!\n");}N: if(y==0)break;Q: if(x==6)break;}}struct room *add(struct room *head)//入住登记{struct room *h,*p;int i=0,n;h=head;printf("请输入要登记的入房数:\n");scanf("%d",&n);printf("请输入入住信息:\n楼号房号面积最大入住人数已入住人数\n");printf("数据须按规定顺序输入,不同数据用空格分开。

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

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

c语言课程设计宿舍管理系统一、教学目标本章节的教学目标是使学生掌握C语言编程基础,能够运用C语言设计并实现一个简单的宿舍管理系统。

具体目标如下:1.知识目标:•掌握C语言的基本语法和数据结构;•理解函数的定义和调用;•熟悉常用的输入输出库函数;•了解结构体和文件操作。

2.技能目标:•能够编写简单的C语言程序;•能够运用结构体设计数据模型;•能够实现文件的读写操作;•能够运用C语言实现宿舍管理系统的功能。

3.情感态度价值观目标:•培养学生的编程兴趣和自主学习能力;•培养学生解决问题的能力和团队合作精神;•使学生认识到计算机科学在实际生活中的重要性。

二、教学内容本章节的教学内容主要包括以下几个部分:1.C语言基本语法和数据结构;2.函数的定义和调用;3.常用的输入输出库函数;4.结构体的运用;5.文件的读写操作;6.宿舍管理系统的需求分析和设计。

三、教学方法为了达到本章节的教学目标,将采用以下几种教学方法:1.讲授法:讲解C语言的基本语法、数据结构和函数的定义和调用;2.案例分析法:通过分析实际案例,使学生掌握结构体的运用和文件的读写操作;3.实验法:让学生动手编写宿舍管理系统的程序,巩固所学知识;4.讨论法:分组讨论问题,培养学生的团队合作精神和问题解决能力。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:PPT课件、教学视频;4.实验设备:计算机、编程环境。

五、教学评估为了全面、客观地评估学生的学习成果,本章节的教学评估将采用以下几种方式:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性;2.作业:布置适量的作业,评估学生的编程能力和对知识的掌握程度;3.考试:进行期中和期末考试,评估学生的综合运用能力和复习效果。

评估标准将根据教学目标和教材内容进行制定,确保评估方式与教学内容相符。

c课程设计寝室管理系统

c课程设计寝室管理系统

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
return(c-'0'); /*返回选择*/
}
int Input(Student room[],int n) /*输入若干条记录*/
{int i=0;
char sign,x[10]; /*x[10]为清除多余的数据所用*/
while(sign!='n'&&sign!='N') /*判断*/
{
printf("\t\t房间号:"); /*交互输入*/
2.设计方案论证
2.1设计思路
利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。
2.2流程图
开始
输出界面
选择操作
选择1
选择2
选择3
选择4
选择5
选择6
选择7
选择8
选择9
选择0
输入记录


显示记录









退出系统
strcpy(room[j+1].roomnum,room[j].roomnum);
strcpy(room[j].roomnumபைடு நூலகம்t);
strcpy(t,room[j+1].bednum);
strcpy(room[j+1].bednum,room[j].bednum);
strcpy(room[j].bednum,t);
for(i=1;i<n+1;i++) /*循环输入*/
{
printf("\t\t%-10s%-10s%-10s%-20s\n",room[i-1].roomnum,room[i-1].bednum,room[i-1].num,room[i-1].name);
if(i>1&&i%10==0) /*每十个暂停*/
printf("\t\t插入记录成功!\n"); /*返回成功信息*/
return(n);
}
int Delete_a_record(Student room[],int n) /*按姓名查找,删除一条记录*/
{
char s[20];
int i=0,j;
printf("\t\t输入他(她)的姓名:"); /*交互式问寻*/
}
printf("\t\t删除记录成功!\n"); /*返回成功信息*/
return(n-1);
}
void Query_a_record(Student room[],int n) /*查找并显示一个记录*/
{
char s[20];
int i=0;
printf("\t\t输入他(她)的姓名:"); /*交互式输入*/
{
int i,j,*p,*q,s;
char t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
if(strcmp(room[j].roomnum,room[j+1].roomnum)>0)
{strcpy(t,room[j+1].roomnum);
scanf("%s",s);
while(strcmp(room[i].name,s)!=0&&i<n) i++; /*查找判断*/
if(i==n)
{
printf("\t\t对不起没找到该学生!\n"); /*返回失败信息*/
return(n);
}
for(j=i;j<n-1;j++) /*删除操作*/
char filename[20]; /*定义文件名*/
printf("\t\t输入文件名:");
scanf("\t\t%s",&filename); /*输入文件名*/
if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/
{
printf("\t\t无法打开该文件\n"); /*打开失败信息*/
{
int i;
printf("\t\t--------------------------------------------------\n"); /*格式头*/
printf("\t\t房间号床位号学号姓名\n");
printf("\t\t--------------------------------------------------\n");
}
}
int Insert_a_record(Student room[],int n) /*插入一条记录*/
{char x[100]; /*清除多余输入所用*/
printf("\t\t学生房间号:"); /*交互式输入*/
scanf("\t\t%s",&room[n].roomnum);
printf("\t\t学生床位号:");
FILE *fp; /*定义文件指针*/
char filename[100]; /*定义文件名*/
printf("\t\t循环写入数据\n"); /*输入文件名*/
printf("\t\t他(她)的床位号:%s\n",room[i].bednum);
printf("\t\t他(她)的学号:%s\n",room[i].num);
}
int AddfromText(Student room[],int n) /*从文件中读入数据*/
{
int i=0,num;
FILE *fp; /*定义文件指针*/
学生宿舍管理系统
1.课程设计的目的
进一步掌握和利用C语言进行程设计的能力,理解和运用结构化程设计的思想和方法,熟练掌握条件语句、循环、数组、函数操作,初步掌握开发一个小型实用系统的基本方法,学会高度一个较长程序的基本方法和利用流程图或N-S图表示算法,将本课程所学的知识合理地运用于实践当中。了解一些书上没有的函数及使用方法。
{
char c;
do{
system("cls"); /*运行前清屏*/
printf("\t\t★★★★★★学生宿舍管理系统★★★★★★\n"); /*菜单选择*/
printf("\t\t§ 1.输入记录§\n");
printf("\t\t§ 2.显示记录§\n");
printf("\t\t§ 3.按房间号排序并显示§\n");
结束
按床位排序显示
按学号排序显示




插入一个记录
查找删除记录
查找显示记录
从文件输入
写入文件保存





2.3具体程序
#include<stdio.h> /*引用库函数*/
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct /*定义结构体数组*/
}
}
printf("\t\t");
system("pause");
}
void Sort_by_num(Student room[],int n) /*按学号排序*/
{
int i,j,*p,*q,s;
char t[10];
for(i=0;i<n-1;i++) /*冒泡法排序*/
for(j=0;j<n-1-i;j++)
scanf("\t\t%s"&,room[n+i].roomnum);
printf("\t\t床位号:");
scanf("\t\t%s",&room[n+i].bednum);
printf("\t\t学号:");
scanf("\t\t%s",&room[n+i].num);
printf("\t\t姓名:");
strcpy(t,room[j+1].num);
strcpy(room[j+1].num,room[j].num);
strcpy(room[j].num,t);
strcpy(t,room[j+1].name);
strcpy(room[j+1].name,room[j].name);
strcpy(room[j].name,t);
i++;
}
n+=num;
fclose(fp); /*关闭文件*/
printf("\t\t读入成功!\n");
printf("\t\t");
system("pause");
return(n);
}
void WritetoText(Student room[],int n) /*将所有记录写入文件*/
相关文档
最新文档