学生宿舍管理系统设计(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语言

#include"stdio.h"int main_menu_select() /*主菜单选择*/ {char s;printf("\n1 Administrator in charge of the students and books' information\n");printf("\n2 Administrator in charge of lend books\n");printf("\n3 Administrator in charge of receive books\n");printf("\n4 Student\n");printf("\n5 Guest\n");printf("\n6 exit\n\n");printf("\n input 1-6 to choice the function\n");do{s=getche();printf("\n");}while(s<49||s>54);return s;}int administrator_menu_select() /*管理员菜单选择*/ {int s;printf("input 1-6 to choice the function\n");printf("1 input the information of books\n");printf("2 recompose the information of the books\n");printf("3 cancel the information of books \n");printf("4 input the information of students\n");printf("5 recompose information of the students\n");printf("6 cancel the information of students\n");printf("7 return main menu\n");printf("8 exit\n\n" );do{s=getche();printf("\n");}while(s<49||s>56);return s;}hello_main() /*返回主菜单*/ {for(; ;){switch(main_menu_select()){case 49:adm_information();break;case 51:printf("hellooo");break;case 52:printf("helloooo");break;case 53:printf("hellooooo");break;case 54:printf("Goodbye!");exit(0);}}}hello_adm_menu() /*返回管理员功能选择菜单*/ {for(; ;){switch(administrator_menu_select()){case 49:books_information_input();break;case 50:printf("Student\n");break;case 51:printf("Guest\n");break;case 52:students_information_input();break;case 53:printf("Guest of gentleman\n");break;case 54:printf("hahha");break;case 55:hello_main();break;case 56:printf("Goodbye!");exit(0);}}}struct /*图书结构体*/ {int number;char name[20];char press[20];char writer[20];int price;}books[200];struct /*学生结构体*/ {int number;char name[20];char sex[6];int grade;}students[200];adm_information() /*管理员菜单*/ {for(; ;){switch(administrator_menu_select()){case 49:books_information_input();break;case 51:printf("Guest\n");break;case 52:students_information_input();break;case 53:printf("Guest of gentleman\n");break;case 54:printf("hahha");break;case 55:hello_main();break;case 56:printf("Goodbye!");exit(0);}}}int books_information_input() /*图书信息输入函数*/ {int m,i,s;char h;printf("input the number of the books you want to operate:");scanf("%d",&m);for(i=1;i<m+1;i++){printf("please input the %dth book's number:",i);scanf("%d",&books[i].number);printf("\n please input the %dth book's name:",i);scanf("%s",books[i].name);printf("\n please input the %dth book's press:",i);scanf("%s",books[i].press);printf("\n please input the %dth book's writer:",i);scanf("%s",books[i].writer);printf("\n please input the %dth book's price:",i);scanf("%d",&books[i].price);printf("\n\n");}printf("\ninformation of the students has been inputed\n");printf("1 to return higher menu\n"); /*返回上一级菜单,即管理员选择功能菜单*/h=getche();if(h==1)hello_adm_menu();}students_information_input() /*学生信息输入函数*/ {int m,i,s;printf("input the number of the students you want to operate:");scanf("%d",&m);for(i=1;i<m+1;i++){printf("\nplease input the %dth student's number:",i);scanf("%d",&students[i].number);printf("\n please input the %dth student's name:",i);scanf("%s",students[i].name);printf("\n please input the %dth student's sex:",i);scanf("%s",students[i].sex);printf("\n please input the %dth student's grade:",i);scanf("%d",&students[i].grade);}printf("\ninformation of the books has been inputed\n\n"); }main(){for(; ;){switch(main_menu_select()){case 49:adm_information();break;case 50:printf("helloo");break;case 51:printf("hellooo");break;case 52:printf("helloooo");break;case 53:printf("hellooooo");break;case 54:printf("Goodbye!");exit(0);}}}。
学生宿舍管理系统c程序

学生宿舍管理系统c程序
学生宿舍管理系统C程序的设计与实现
随着学校规模的不断扩大,学生宿舍管理面临着越来越多的挑战。
传统的手工管理方式已经无法满足现代化教学的需求。
因此,设计一款高效、便捷的学生宿舍管理系统变得至关重要。
本文将介绍一个基于C语言的学生宿舍管理系统,并详细阐述其设计与实现过程。
学生宿舍管理系统的功能主要包括:学生信息管理、宿舍信息管理、宿舍入住管理、宿舍退房管理以及宿舍报修管理等。
为了实现这些功能,我们设计了以下几个模块:
1、学生信息管理模块:该模块主要用于维护学生信息,包括姓名、学号、性别、年龄、联系方式等。
通过输入学生信息,可以快速查询和更新学生的基本信息。
2、宿舍信息管理模块:该模块主要用于维护宿舍信息,包括宿舍号、房间号、住宿人数等。
通过输入宿舍信息,可以快速查询和更新宿舍的基本情况。
3、宿舍入住管理模块:该模块主要用于管理学生的入住情况,包括入住时间、入住原因等。
通过输入入住信息,可以实时掌握宿舍的入住情况。
4、宿舍退房管理模块:该模块主要用于管理学生的退房情况,包括
退房时间、退房原因等。
通过输入退房信息,可以实时掌握宿舍的退房情况。
5、宿舍报修管理模块:该模块主要用于管理宿舍的报修情况,包括报修时间、报修内容、维修进度等。
通过输入报修信息,可以及时了解宿舍的维修情况。
以下是基于以上设计的学生宿舍管理系统的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语言开发,适用于刚入门的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语言的基本语法、数据结构、文件操作等知识,培养学生的编程能力、逻辑思维能力和问题解决能力。
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语言课程设计学生宿舍管理系统

宿舍管理系统是一种针对学生宿舍管理的信息化管理系统,它可以帮助学校、学生宿舍管理员精确、高效地管理学生宿舍的基本信息、住宿情况、违纪记录等各项管理工作。
它是学校管理的有力工具,对提高学生宿舍管理的效率和质量具有重要意义。
一、需要解决的问题(一)学生信息管理1. 宿舍管理员需要能够快速便捷地录入学生的基本信息,如尊称、性莂、芳龄、专业等,并能够进行查询、修改、删除等操作。
2. 宿舍管理员需要清晰地了解每个宿舍的学生情况,包括入住情况、空床位情况、学生离校情况等。
(二)入住管理1. 针对新生入住、学生调宿等情况,宿舍管理员需要系统化、高效地进行入住管理,包括分配床位、办理相关手续等。
2. 学生离校后,宿舍管理员需要及时更新系统信息,确保宿舍的床位情况及时准确。
(三)违纪记录管理1. 为了规范宿舍管理,宿舍管理员需要记录学生的违纪情况,如夜不归宿、打架斗殴等,并进行相应的处理。
2. 宿舍管理员需要能够查询、统计学生的违纪情况,以便于进行教育、惩戒等工作。
二、系统功能设计(一)学生信息管理1. 设计学生信息录入界面,包括尊称、性莂、芳龄、专业等信息的录入功能。
2. 设计学生信息查询界面,支持按照学号、尊称等条件进行快速查询。
3. 设计学生信息修改、删除功能,为宿舍管理员提供便捷、高效的学生信息管理工具。
(二)入住管理1. 设计入住办理界面,支持新生入住手续、学生调宿等操作。
2. 设计入住查询界面,快速了解每个宿舍的学生入住情况。
3. 设计离校处理界面,为宿舍管理员提供方便的学生离校信息处理工具。
(三)违纪记录管理1. 设计违纪记录录入界面,为宿舍管理员提供录入学生违纪情况的工具。
2. 设计违纪记录查询界面,支持按照学号、尊称等条件进行快速查询。
3. 设计违纪记录统计功能,为宿舍管理员提供违纪情况的统计分析工具。
三、系统技术实现(一)采用C语言进行系统开发,使用C语言能够充分利用系统资源,提高系统的运行效率。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机程序设计基础(C语言)课程设计题目:学生宿舍管理系统设计班级:计121学号:120502120504120506120505姓名:贾文超杨晓红张永康陆秀和指导教师:刘喜梅孙强范周瑜2013年7月1 日·北京信息工程学院信息技术教学与实验中心学生宿舍管理系统设计功能:实现简单的学生宿舍基本信息管理,宿舍的基本信息包括楼号、房间号、面积、所容纳人数、已入住人数等。
基本要求:1.设计简单的菜单,能够进行系统功能选择。
2.实现信息的录入功能。
3.在已有信息的基础上添加新的纪录。
4.删除指定房间号的记录。
5.修改指定房间号的记录。
6.实现信息的浏览功能。
7.按房间号查询功能。
8.按已入住人数排序功能。
1.学生宿舍管理系统概述 (4)1.1需求分析 (4)1.2基本功能 (4)2.学生宿舍管理系统总体设计 (5)1.1管理流程图 (5)1.2管理员操作 (5)3.模块划分 (6)1.1第一选择模块 (6)1.2第二录入模块 (7)1.3第三添加模块 (8)1.4第四删除模块 (8)1.5第五修改模块 (9)1.6第六浏览模块 (9)1.7第七查询模块 (10)1.8第八排序模块 (11)4.算法说明 (11)5.各函数模块功能 (11)1.1各自定义函数功能 (11)6.程序测试 (12)7.结论 (14)1.1对调试中主要问题进行总结 (14)8.体会及建议 (14)1.1对自己设计进行评价,指出合理和不足之处,提出改进的方案 (14)9.学生宿舍管理系统设计参与者 (14)1.1 小组成员信息 (14)1.学生宿舍管理系统概述1.1需求分析高校学生宿舍管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前端应用程序的开发则要求应用程序能提供强大的数据操纵功能,界面友好、使用简单方便等特点。
旧的手工纪录的宿舍管理方式已经不能适应高速发展的信息化时代,新的宿舍管理系统开发出来之后,学校的现有的宿舍信息管理将有很大的改观,由过去的人工方式转变为计算机方式,由效率低、数据冗余、易产生错误转变为检索迅速、查找方便、可靠性高、存储量大。
这些优点能够极大地提高效率,也是学校科学化、正规化管理的重要条件。
学生宿舍管理系统对于一个学校来说是必不可少的组成部分。
对于学生信息量比较庞大,需要记录存档的数据比较多的高校来说,人工记录是相当麻烦的,而且当查找某条记录时,只能靠人工去一条条地查找,这样不但麻烦而且效率非常低。
当今社会是飞速进步的世界,计算机化管理正是适应时代的产物。
21世纪的今天,信息社会占着主流地位,计算机在各行各业中的运用已经得到普及。
我们针对此,设计了一套学生宿舍管理系统。
学生宿舍管理系统采用的是计算机化管理,系统做的尽量人性化,使用者会感到操作非常方便,管理人员需要做的就是将数据输入到系统的数据库中去。
由于数据库存储容量相当大,而且比较稳定,适合较长时间的保存,也不容易丢失。
这无疑是为信息存储量比较大的学校提供了一个方便、快捷的操作方式。
本系统具有运行速度快、安全性高、稳定性好的优点,还具有修改功能,能够快速的查询学校所需的住宿信息。
1.2基本功能高校学生宿舍管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面,但本课题要实现的是前端应用程序的开发。
在设计该系统时,会尽可能地贴近我们学生,便于管理者操作。
系统在实现上具有如下功能:1.设计简单的菜单,能够进行系统功能选择。
2.实现信息的录入功能。
3.在已有信息的基础上添加新的记录。
4.删除指定房间号的记录。
5.修改指定房间号的记录6.实现信息的浏览功能7.按房间号查询功能8.按已入住人数排序功能2.学生宿舍管理系统总体设计1.1管理流程图4.算法说明数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等,利用数组对宿舍的记录进行循环输入输出,利用冒泡法记录进行排序,利用循环查找数组中某个数据,对其进行显示,删除,读入和写入文档等操作。
5.各函数模块功能1.1各自定义函数功能1、void insert()(录入系统所需的数据;将录入的数据存储在文件中)2、void seek()(按要求对数据进行查询)3、void modify()(对数据进行更新操作)4、void del()(对数据进行删除操作)5、void save()(对指定数据进行统计并输出)6、void sort()(对指定数据排序并输出)7、void reveal()(对指定数据产生报表输出)8、void menu()(功能目录)6.程序测试显示请选择菜单编号请输入待增加的宿舍数请输入第1个宿舍的房间号输入 4 1 1316………………………………………………………………………………………………………请输入第1个宿舍的宿舍长请输入第1个宿舍的楼号请输入第1个宿舍的宿舍面积贾文超 1 40…………………………………………………………………………………………请输入第1个宿舍的房间容纳人数请输入第1个宿舍的宿舍成员6贾文超/陆秀和/杨晓红/张永康/李正明/伟力…………………………………………………………………………………………请输入第1个宿舍的手机号请输入第1个宿舍的居住人数………………………………………………………………………………………………………6 ………………………………………………………………………………………………………录入完毕!请选择菜单编号6 …………………………………………………………………………………………结果:所有宿舍信息为:房间号宿舍长楼号宿舍面积房间容纳人数…………………………………………………………………………………………1316 贾文超 1 40 6******************************************************************** 宿舍成员手机号居住人数…………………………………………………………………………………………贾文超/陆秀和/杨晓红/张永康/李正明/伟力 6显示请选择菜单编号输入2…………………………………………………………………………………………--------------1.按房间号查询----------------------------2.按宿舍长查询----------------------------3.退出本菜单----------------请选择子菜单编号:1 …………………………………………………………………………………………请输入要查询的宿舍的房间号:1316 …………………………………………………………………………………………结果:房间号宿舍长楼号宿舍面积房间容纳人数…………………………………………………………………………………………1316 贾文超 1 40 6******************************************************************** 宿舍成员手机号居住人数…………………………………………………………………………………………贾文超/陆秀和/杨晓红/张永康/李正明/伟力 6显示请选择菜单编号请输入要修改的宿舍的房间号输入 3 1316 ………………………………………………………………………………………………………------------------------------ 请输入新的宿舍面积1.修改宿舍长2.修改楼号3.修改宿舍面积4.修改房间容纳人数5.修改宿舍成员6.修改手机号号码7.修改居住人数8.退出本菜单-------------------------------请选择子菜单编号:3 50 …………………………………………………………………………………………请选择子菜单编号:请选择菜单编号8 6 …………………………………………………………………………………………结果:房间号宿舍长楼号宿舍面积房间容纳人数…………………………………………………………………………………………1316 贾文超 1 50 6******************************************************************** 宿舍成员手机号居住人数…………………………………………………………………………………………贾文超/陆秀和/杨晓红/张永康/李正明/伟力 67.总结1.1对调试中主要问题进行总结调试过程中,经常会出现输入或显示为乱码的情况,这往往是上下定义的数据类型不同或定义数组长度不够所造成的。
有时候程序中还会出现录入五个数据而只显示四个的情况,这也往往是由于定义的结构体数组长度过低所造成的。
像这类问题只要把数据类型都定义成字符型,并且定义一个合理的数组长度往往都能解决。
在调试过程中我遇到最大的问题出现在删除模块。
在运用“dormitory.txt”打开文件并对某一数据进行删除后,往往显示会多显示一行数据。
这是由于“dormitory.txt”写数据时只会覆盖数据而不会清除原文件数据,因此文件最后一行数据总会保留在原文件中。
后来我先用“dormitory.txt”打开文件并读取文件中的数据,然后再用“r”打开原文件将删除后的数据重新写入文件,最终检测运行成功。
8.体会及建议1.1对自己设计进行评价,指出合理和不足之处,提出改进的方案本程序拥有很多的优点:第一,它具有作为一个宿舍管理系统的各个功能,包括录入信息、添加信息、修改信息、删除信息、查询信息、统计信息六大主要功能。
可以方便的进行住宿学生信息的管理。
第二,它的各个功能模块在实现时非常方便,例如:录入和添加学生信息可以自己控制录入和添加的人数;统计学生信息可以分学号、班级、专业等进行统计等等。
“万事开头难”这句话在我编写程序的过程中得到了真正的体现。
在最初编写的几天里出现了这样那样的错误一大堆,这主要是由于我对基础知识掌握不扎实所造成的。
但是随后几天里,我对课本知识进行了回顾并不时的向老师和同学进行请教,慢慢的对编写程序也开始得心应手起来。
程序的编写总归是一件费时费力的事情,但只要我们认真编写和调试最后总能成功。
短短的两周实习时间我收获颇多,我相信经过这次实习必将为我以后的深入参考文献:1.《软件工程导论》第四版清华大学出版2.《C#开发实战宝典》王小科编著清华大学出版社3.《C#开发大全》刘丽霞编著清华大学出版4.百度知道5.C#与.net开发网附录:源程序清单#include<stdio.h>/*I/O函数*/#include<stdlib.h>/*其它说明*/#include<string.h>/*字符串函数*/#define BUFLEN 100 /* 缓冲区最大字符数 */#define LEN 100 /* 房间号和宿舍长最大字符数,实际请更改 */#define N 1000 /* 最大宿舍人数,实际请更改*/struct apartment/*结构体*/{char room[LEN+1]; /* 房间号 */char dormitoryleader[LEN+1]; /* 宿舍长 */int dormitory; /* 楼号 */char area[3]; /* 宿舍面积 */char hold[LEN+1]; /* 房间容纳人数 */char member[1000]; /* 宿舍成员 */char tel[LEN+1]; /* 手机号号码 */char livenumber[30]; /* 居住人数 */}stu[N];int k=1,n,m; /* 定义全局变量 */void readfile();/* 函数声明 */void seek();void modify();void insert();void del();void reveal();void save();void menu();int main(){while(k)menu();system("pause");return 0;}void help(){printf("\n0.欢迎使用宿舍系统帮助!\n");printf("\n1.进入系统后,先刷新宿舍信息,再查询;\n");printf("\n2.按照菜单提示键入数字代号;\n");printf("\n3.增加宿舍信息后,切记保存按7;\n");printf("\n4.谢谢您的使用!\n");}void readfile()/* 建立信息 */{char *p="dormitory.txt";FILE *fp;int i=0;if ((fp=fopen("dormitory.txt","r"))==NULL){printf("Open error! Strike any key to exit!",p);system("pause");exit(0);}while(fscanf(fp,"%s %s%d%s %s %s %s %s",stu[i].room,stu[i].dormitoryleader,&stu[i].dorm itory,stu[i].area,stu[i].hold,stu[i].member,stu[i].tel,stu[i].livenumber)==8){i++;i=i;}fclose(fp);n=i;printf("录入完毕!\n");}void seek() /*查找*/{int i,item,flag;char s1[21]; /* 以宿舍长和房间号最长长度+1为准 */printf("------------------\n");printf("-----1.按房间号查询-----\n");printf("-----2.按宿舍长查询-----\n");printf("-----3.退出本菜单-----\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item){case 1:printf("请输入要查询的宿舍的房间号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].room,s1)==0){flag=1;printf("房间号宿舍长楼号宿舍面积房间容纳人数 \n");printf("--------------------------------------------------------------------------------\n");printf("%0s %8s %3d %7s %11s \n",stu[i].room,stu[i].dormitoryleader,stu[i].dormitory, stu[i].area,stu[i].hold);printf("******************************************************************************* *\n");printf(" 宿舍成员手机号居住人数\n"); printf("--------------------------------------------------------------------------------\n");printf(" %0s %20s %8s\n",stu[i].member,stu[i].tel,stu[i].livenumber);}if(flag==0)printf("该房间号不存在!\n"); break;case 2:printf("请输入要查询的宿舍的宿舍长:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].dormitoryleader,s1)==0){flag=1;printf("房间号宿舍长楼号宿舍面积房间容纳人数 \n");printf("--------------------------------------------------------------------------------\n");printf("%0s %8s %3d %7s %11s \n",stu[i].room,stu[i].dormitoryleader,stu[i].dormitory, stu[i].area,stu[i].hold);printf("******************************************************************************* *\n");printf(" 宿舍成员手机号居住人数\n"); printf("--------------------------------------------------------------------------------\n");printf(" %0s %20s %8s\n",stu[i].member,stu[i].tel,stu[i].livenumber);}if(flag==0)printf("该宿舍长不存在!\n"); break;case 3:return;default:printf("请在1-3之间选择\n");}}}void modify() /*修改信息*/{int i,item,num;char area1[3],s1[LEN+1],s2[LEN+1]; /* 以宿舍长和房间号最长长度+1为准 */ printf("请输入要修改的宿舍的房间号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].room,s1)==0) /*比较字符串是否相等*/num=i;printf("------------------\n");printf("1.修改宿舍长\n");printf("2.修改楼号\n");printf("3.修改宿舍面积\n");printf("4.修改房间容纳人数\n");printf("5.修改宿舍成员\n");printf("6.修改手机号号码\n");printf("7.修改居住人数\n");printf("8.退出本菜单\n");printf("------------------\n");while(1){printf("请选择子菜单编号:");scanf("%d",&item);switch(item){case 1:printf("请输入新的宿舍长:\n");scanf("%s",s2);strcpy(stu[num].dormitoryleader,s2); break;case 2:printf("请输入新的楼号:\n");scanf("%d",&stu[num].dormitory);break;case 3:printf("请输入新的宿舍面积:\n");scanf("%s",area1);strcpy(stu[num].area,area1); break;case 4:printf("请输入新的房间容纳人数:\n");scanf("%s",s2);strcpy(stu[num].hold,s2); break;case 5:printf("请输入新的宿舍成员:\n");scanf("%s",s2);strcpy(stu[num].member,s2); break;case 6:printf("请输入新的手机号号码:\n");scanf("%s",s2);strcpy(stu[num].tel,s2); break;case 7:printf("请输入新的居住人数:\n");scanf("%s",s2);strcpy(stu[num].livenumber,s2); break;case 8:return;default:printf("请在1-8之间选择\n");}}}void sort()/*按居住人数排序*/{int i,j,*p,*q,s;char temp[100];for(i=0;i<n-1;i++){for(j=n-1;j>i;j--)if(strcmp(stu[j-1].livenumber,stu[j].livenumber)>0){strcpy(temp,stu[j-1].room);strcpy(stu[j-1].room,stu[j].room);strcpy(stu[j].room,temp);strcpy(temp,stu[j-1].dormitoryleader);strcpy(stu[j-1].dormitoryleader,stu[j].dormitoryleader); strcpy(stu[j].dormitoryleader,temp);strcpy(temp,stu[j-1].area);strcpy(stu[j-1].area,stu[j].area);strcpy(stu[j].area,temp);strcpy(temp,stu[j-1].hold);strcpy(stu[j-1].hold,stu[j].hold);strcpy(stu[j].hold,temp);strcpy(temp,stu[j-1].member);strcpy(stu[j-1].member,stu[j].member);strcpy(stu[j].member,temp);strcpy(temp,stu[j-1].tel);strcpy(stu[j-1].tel,stu[j].tel);strcpy(stu[j].tel,temp);strcpy(temp,stu[j-1].livenumber);strcpy(stu[j-1].livenumber,stu[j].livenumber);strcpy(stu[j].livenumber,temp);p=&stu[j-1].dormitory;q=&stu[j].dormitory;s=*q;*q=*p;*p=s;}}}void insert() /*插入函数*/{int i=n,j,flag;printf("请输入待增加的宿舍数:\n");scanf("%d",&m);do{flag=1;while(flag){flag=0;printf("请输入第 %d 个宿舍的房间号:\n",i+1);scanf("%s",stu[i].room);for(j=0;j<i;j++)if(strcmp(stu[i].room,stu[j].room)==0){printf("已有该房间号,请检查后重新录入!\n");flag=1;break; /*如有重复立即退出该层循环,提高判断速度*/}}printf("请输入第 %d 个宿舍的宿舍长:\n",i+1);scanf("%s",stu[i].dormitoryleader);printf("请输入第 %d 个宿舍的楼号:\n",i+1);scanf("%d",&stu[i].dormitory);printf("请输入第 %d 个宿舍的宿舍宿舍面积(m^2):\n",i+1);scanf("%s",stu[i].area);printf("请输入第 %d 个宿舍的房间容纳人数:\n",i+1);scanf("%s",stu[i].hold);printf("请输入第 %d 个宿舍的宿舍成员(注:人员之间加/):\n",i+1); scanf("%s",stu[i].member);printf("请输入第 %d 个宿舍的手机号:\n",i+1);scanf("%s",stu[i].tel);printf("请输入第 %d 个宿舍的居住人数:\n",i+1);scanf("%s",stu[i].livenumber);if(flag==0){i=i;i++;}}while(i<n+m);n+=m;printf("录入完毕!\n\n");sort();}void del(){int i,j,flag=0;char s1[LEN+1];printf("请输入要删除宿舍的房间号:\n");scanf("%s",s1);for(i=0;i<n;i++)if(strcmp(stu[i].room,s1)==0){flag=1;for(j=i;j<n-1;j++)stu[j]=stu[j+1];}if(flag==0)printf("该房间号不存在!\n");if(flag==1){printf("删除成功,显示结果请选择菜单6\n");n--;}}void reveal(){int i;printf("所有宿舍的信息为:\n");printf("房间号宿舍长楼号宿舍面积房间容纳人数 \n");printf("-----------------------------------------------------------------------------\n ");for(i=0;i<n;i++){printf("%0s %7s %5d %5s %9s \n",stu[i].room,stu[i].dormitoryleader,stu[i].dormitory, stu[i].area,stu[i].hold);}printf("***************************************************************************\n") ;printf("宿舍成员手机号居住人数\n");printf("--------------------------------------------------------------------------------\n");for(i=0;i<n;i++){printf("%0s %10s %10s\n",stu[i].member,stu[i].tel,stu[i].livenumber);}}void save(){int i;FILE *fp;fp=fopen("dormitory.txt","w"); /*写入*/for(i=0;i<n;i++){fprintf(fp,"%s %s %d %s %s %s %s %s\n",stu[i].room,stu[i].dormitoryleader,stu[i].dormit ory,stu[i].area,stu[i].hold,stu[i].member,stu[i].tel,stu[i].livenumber);}fclose(fp);}void menu()/* 界面 */{int num;printf("*******************宿舍系统功能菜单************************ \n");printf("友情提醒:查询前请先刷新系统! \n");printf(" ---------------------- ---------------------- \n");printf(" ********************************************* \n");printf(" * 0.系统帮助及说明 * * 1.刷新宿舍信息 * \n");printf(" ********************************************* \n");printf(" * 2.查询宿舍信息 * * 3.修改宿舍信息 * \n");printf(" ********************************************* \n");printf(" * 4.增加宿舍信息 * * 5.按房间号删除信息* \n");printf(" ********************************************* \n");printf(" * 6.显示当前信息 * * 7.保存当前宿舍信息* \n");printf(" ********************** ********************** \n");printf(" * 8.退出系统 * \n");printf(" ********************** \n");printf(" ---------------------- ---------------------- \n");printf("请选择菜单编号:");scanf("%d",&num);switch(num){case 0:help();break;case 1:readfile();break;case 2:seek();break;case 3:modify();break;case 4:insert();break;case 5:del();break;case 6:reveal();break;case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择\n"); }}。