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

合集下载

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. 掌握模块化编程思想,理解函数的定义、调用和参数传递。

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

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

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

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

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

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

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

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

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

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

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

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

c语言实训报告宿舍管理系统

c语言实训报告宿舍管理系统

实验(实习、实训)报告课程(项目)名称:程序设计基础课程设计学院:专业:计算机科学与技术班级: _________学号:______ *名:*绩:2015年7 月 2 日目录一、问题定义 (3)二、算法设计 (4)1.模块图 (4)2.数据结构 (4)3.菜单设计 (4)4.功能模块函数设计 (7)5.流程图设计 .............................................................................................. 错误!未定义书签。

6.程序代码设计 (26)三、系统运行结果及说明 (27)四、课程设计总结 (30)1.遇到的问题及解决方法 (30)2.个人总结 (30)五、参考资料 (31)六、评语 (31)一、问题定义实训题目10:学生宿舍管理系统系统至少应该包含以下功能,鼓励在此基础上进行完善创新:该系统只有合法用户才能登陆,登陆成功后,显示系统功能提示信息,如图a所示。

选择主菜单中的1,添加学生住宿信息,学生住宿信息包括学号、姓名、性别、年龄、班级、宿舍楼、楼层号、宿舍号等。

选择主菜单中的2、3,可以根据学号对学生住宿信息进行修改和删除操作。

选择主菜单中的4会输出所有住宿学生的信息。

选择主菜单中的5会打开子菜单如图b所示。

根据不同关键字查询学生住宿信息。

选择主菜单中的6会打开子菜单,如图c所示,可以对住宿信息进行多种统计,如输入要统计的宿舍号,输出该宿舍里的所有成员,并显示宿舍里的总人数。

在主菜单中选择0显示结束信息“感谢使用本软件”,按任意键后退出系统。

菜单要求:主菜单和子菜单能够循环,每一项菜单执行之后询问用户是否继续进行,从子菜单可以返回到主菜单。

如需要其它菜单请自行设计。

二、算法设计1.模块图2.数据结构结构体struct student{char num[10]; //字符数组:用来存放编号char S_name[10]; //字符数组:用来存放姓名char sex[10]; //字符数组:用来存放学生性别char B_num[10];//字符数组:用于存放宿舍楼号char F_num[10];//字符数组:用于存放楼层char D_num[10];//字符数组:用于存放宿舍号定义字符变量char choose='\0',yes_no='\0';choose用来存放选择,yes_no判断是否继续;定义整形变量int i,n,flag;其中i,n为循环变量,flag为标记变量菜单设计主菜单子菜单1查找住宿信息子菜单2统计住宿情况3.功能模块函数设计1. void myprint(); //用于打印主菜单2. void myprint1(); //用于打印查询子菜单3. void myprint2(); //用于打印统计子菜单4. void mycreate(); //创建新纪录5. void mydisplay(); //显示记录6. void mysearch(); //查询功能7. void sch_num(); //按学号查询8. void sch_S_name(); //按姓名查询9. void sch_sex(); //按性别查询10. void sch_B_num(); //按宿舍楼查询11. void sch_F_num(); //按楼层查询12. void sch_D_num(); //按宿舍查询13. void mymodify(); //修改功能14. void myadd(); //添加功能15. void mydelete(); //删除功能16. void del_S_name(); //按姓名删除17. void del_num(); //按学号删除18. void mycount(); //统计功能19. void count_B_num(); //按宿舍楼统计20. void count_D_num(); //按宿舍统计21. void count_F_num(); //按楼层统计22. void mainmenu(); //主菜单1.主函数(从键盘上输入一个数字,打开对应的功能)int main(void){mainmenu();return 0;}void myprint(){system("cls"); //清屏printf(" |----------------------------------------------------|\n");printf(" | 请输入选项编号(0-7): |\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");}void mainmenu(){char choose = '\0', yes_no = '\0';do{myprint(); //在控制台打印显示操作主界面printf(" ");choose = getch(); //从控制台无回显地取一个字符switch (choose) //根据用户键入的字符选择不同的操作{case '1': mycreate(); break;case '2': mydisplay(); break;case '3': mysearch(); break;case '4': mymodify(); break;case '5': myprint2();mydelete(); break;case '6': mycount(); break;case '0':printf("感谢制作人李抽抽!\n");exit(0);default: printf("\n %c为非法选项!\n", choose);}printf("\n 要继续选择吗(Y/N)?\n");do{yes_no = getche();} while (yes_no != 'Y' && yes_no != 'y' && yes_no != 'N' && yes_no != 'n');} while (yes_no == 'Y' || yes_no == 'y');}2.功能函数(1)打印函数,打印对应的功能界面void myprint(){system("cls"); //清屏printf(" |----------------------------------------------------|\n");printf(" | 请输入选项编号(0-7): |\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");}void myprint1(){system("cls"); //清屏printf(" |---------------------------------------------------|\n");printf(" | 请输入选项编号(0-5): |\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"); }void myprint2(){system("cls"); //清屏printf(" |---------------------------------------------------|\n");printf(" | 请输入选项编号(0-4): |\n");printf(" |----------------------------------------------------|\n");printf(" | 1--按宿舍统计|\n");printf(" | 2--按楼层统计|\n");printf(" | 3--按宿舍楼统计|\n");printf(" | 4--返回|\n");printf(" | 0--退出系统|\n");printf(" |----------------------------------------------------|\n"); }(2)添加函数,添加学生宿舍记录void mycreate(){int i = 1;struct student temp = { 0 };FILE *fp = NULL;fp = fopen("D:\\JiLu.dat", "w"); //以写方式打开文件。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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语言课程设计报告一、程序功能简介我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。

包括学生的、学号、性别、专业、班级等等。

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

二、课程设计要求该程序是由C语言编写的一个学生宿舍管理查询软件,程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。

其中查询可以分别以、学号、宿舍号为关键字查询学生信息。

统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。

三、源程序分析1)结构分析1.方案设计2.数据结构说明程序中数据主要是学生信息,具体属于类型如下:struct st_messagechar name[20]; /*学生*/char dorm[7]; /*宿舍号*/char num[10]; /*学号*/char sex[5]; /*性别*/char age[4]; /*年龄*/char major[20]; /*专业*/char classs[8]; /*班级*/3.模块功能说明第一录入模块:调用input_message(),对住宿学生信息进行录入。

第二添加模块:调用append_message(),对新来学生信息进行添加录入。

第三修改模块:调用revise_message(),对需修改学生的信息进行修改。

第四删除模块:调用delete_message(),对某一学生信息进行删除操作。

第五查询模块:调用find_message(),分别以、学号、宿舍号对学生信息进行查询。

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

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

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

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

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

西安邮电大学C语言课程设计报告题目:学生宿舍管理系统院系名称:计算机学院专业名称:软件工程班级:1205班学生姓名:邵欢学号(8位):04123157指导教师:王小银一.设计目的1. 掌握结构体的定义和使用。

2.理解链表工作原理,熟悉基本操作。

3.熟悉C语言中文件操作。

4.掌握文件的定义方法及文件指针的概念,掌握文件打开、关闭、读、写文件基本操作函数。

5掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及它们赋值的方法。

6.握函数的调用及嵌套,顺序结构、选择分支结构、循环结构及其嵌套的应用、结构体、指针以及综合应用,会使用文件的一些函数。

7.会独自分析问题解决问题,提高解决问题的能力。

8.提高分析问题和解决问题的能力,提高程序设计水平二. 设计内容1.运用结构体及链表等编辑一个简单的学生宿舍基本信息管理系统,使之能够完成学生基本信息的输入、保存、读取、查找、插入、删除、修改、排序、统计、输出、退出。

2.利用密码对系统信息进行管理。

2.执行编译操作,并根据提示调试此程序,排除所有的错误和警告,直到编译成功为止。

3.执行运行操作,逐一对每个模块进行调试,直到全部程序运行成功为止。

4.接受老师的检查并回答老师所提出的问题,知道令老师点头为止。

5.根据自己的源程序及运行情况截取相应的图片,完成实验报告。

三.概要设计1.功能模块图2.各个模块详细的功能描述。

登陆界面:需将在文件中设置好的密码与输入的密码进行比较,正确即可进入主界面,可选择要输入的信息,否则退出1.输入模块struct Node*creat_inf()进入输入信息模块,用do-while循环对学生信息进行输入。

2.保存信息模块void save_inf(struct Node*head)对信息进行保存,保存到文件中。

3.读取信息模块struct Node*read_inf()从指定文件中读取出保存的信息。

4.查找信息模块struct Node*find(struct Node*p)在已保存的信息中按学号查找对应学号。

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

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

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGYC语言实训报告班级: k1223-5姓名:赵荷学号:20129230518目录1.课程实训目的 (2)2.需求分析 (2)2.1要求 (2)2.2任务描述 (3)2.3运行环境 (3)2.4开发工具 (3)3.总体设计 (3)3.1系统流设计 (3)3.2系统模块设计 (5)4.详细设计 (5)4.1数据结构设计 (5)4.2模块接口设计 (7)4.3 以下是几个主要模块的流程图: (8)5.运行结果 (10)5.1主菜单界面: (10)5.2信息录入界面: .......................................... 错误!未定义书签。

5.3信息浏览界面: (12)5.4 信息查询界面: (13)5.5信息修改界面: (13)6.程序调试与测试 (14)6.1程序调试与分析 (14)6.2程序测试结果 (16)7.问题与不足 (16)8.建议 (17)9.编程体会 (17)10.程序源代码: (17)11.参考文献 (38)12.用户使用手册 (38)1.课程实训目的1)通过课程实训,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。

2)通过课程实训,进一步掌握C语言中重要的数据结构。

掌握并熟练运用指针、链表、结构体、文件等数据结构。

3)通过课程实训,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。

4)通过课程实训,培养C语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。

5)通过课程实训,加强了自己的程序分析能力。

2.需求分析2.1要求1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问题的能力。

2)运用结构化程序设计方法,按照课程实训题目要求,完成包括需求分析、数据结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。

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

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

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

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

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

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

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

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

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

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

⑤删除功能:要求可按指定的学号和指定的姓名两种定位方式删除学生在宿舍的记录。

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

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

C语言程序设计课程设计报告—宿舍管理系统IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】西安邮电学院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课程设计

宿舍管理系统c课程设计

宿舍管理系统c课程设计一、课程目标知识目标:1. 让学生掌握C语言的基本语法和编程技巧,并能运用到实际项目中;2. 使学生了解宿舍管理系统的功能需求,掌握其模块划分和设计方法;3. 帮助学生掌握文件操作、数据存储和查询等基本技能。

技能目标:1. 培养学生运用C语言解决实际问题的能力,提高编程实践技能;2. 培养学生分析问题、设计解决方案和编程实现的能力;3. 培养学生团队协作和沟通表达的能力。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,提高学习主动性和积极性;2. 培养学生严谨、细致、负责的工作态度,养成良好的编程习惯;3. 培养学生面对问题勇于挑战、善于创新的精神。

课程性质:本课程为实践性较强的课程设计,要求学生将所学的C语言知识应用到实际项目中,提高编程能力和解决问题的能力。

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

教学要求:教师应注重理论与实践相结合,引导学生积极思考、动手实践,关注学生的学习过程,提高其分析问题和解决问题的能力。

通过课程设计,使学生达到预期的学习成果。

二、教学内容1. C语言基础回顾:变量、数据类型、运算符、控制语句、函数等;2. 宿舍管理系统功能分析:学生信息管理、宿舍楼信息管理、宿舍分配与调整、费用管理等;3. 系统模块设计与实现:- 学生信息模块:学生基本信息录入、查询、修改和删除;- 宿舍楼信息模块:宿舍楼基本信息录入、查询、修改和删除;- 宿舍分配与调整模块:实现宿舍分配、调整功能;- 费用管理模块:实现宿舍费用计算、查询和缴纳功能;4. 文件操作与数据存储:文件打开、关闭、读写,数据存储格式设计;5. 系统测试与调试:功能测试、性能测试、异常处理;6. 项目实践与团队协作:分组进行项目实践,培养学生的团队协作和沟通能力。

教学内容安排与进度:第一周:C语言基础回顾;第二周:宿舍管理系统功能分析;第三周:系统模块设计与实现(1);第四周:系统模块设计与实现(2);第五周:文件操作与数据存储;第六周:系统测试与调试;第七周:项目实践与团队协作。

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 系统总框图))())2.2 功能模块说明1.输入函数:用来录入数据和有关信息。

2.输出函数:用来输出录入的相关信息。

3. 读函数:将文件中的数据读入。

4.更新模块:对以存信息进行更新.有以下几个选项:(1)删除函数:用来删除已离校的学生信息。

(2)修改函数:用来修改改变宿舍的学生信息。

(3)插入函数:用来插入新同学的宿舍信息。

5.查询模块:输入一项信息,可以得到存入的整条信息,具体有以下:(1)按姓名查询:输入学生姓名,可得到整条学生信息。

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.考试:进行期中和期末考试,评估学生的综合运用能力和复习效果。

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

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

****大学C语言课程设计报告题目:学生宿舍管理系统系部名称:专业名称:班级:学号:学生姓名:指导教师:时间:一、课程设计目的1.设计一个ubuntu下的学生宿舍管理系统2.掌握用C语言定义单链表结构,并实现其创建、插入、删除等基本操作。

二、课程设计内容用C语言编写“学生宿舍管理系统”,要求如下:1.创建链表,录入数据。

2.数据的读写操作。

3.数据的更新操作。

4.数据的删除和插入。

5.请你要求对数据进行查找。

6.按要求排序。

7.设计总体菜单界面。

三、实验要求1、录入数据学生的基本信息,包括学号、姓名、性别、年龄、专业、班级等。

宿舍楼的基本信息,包括宿舍楼号、学生所住的房间号和宿舍床位号等。

2、数据存储信息的录入要求用链表,把输入的信息要求存储到指定文件夹中,以便随时查看,也可供程序调用,方便操作人员不用重复输入数据。

3、数据的更新更新包括插入、删除、修改。

删除分根据学号删除和根据学生的楼层信息删除。

5、数据的查询查询可以根据学号和宿舍信息不同方面进行查询,方便操作者使用。

6、数据的排序操作者可以使所输入的信息按学号排序。

7、数据的统计按整体统计,统计所有学生人数,男生人数和女生人数。

四、概要设计1.系统结构图(功能模块图)2.功能模块说明:(1). 数据录入:创建单链表,调用Initnode()函数申请头结点,在调用append(),在调用Write_to_File()函数将信息写入文件中,(2) 插入模块:先将文件信息读出,再调用insert()函数,可以向文件中插入信息。

(3)插入模块:先将文件信息读出,再调用del()函数,可以将输入错误或者需要的信息删除。

(4) 修改模块:先将文件信息读出,再调用modify()函数,将输入错误的信息修改。

(5) 查询模块:先将文件信息读出,再调用search(),在search()中有调用两个数,一个按照宿舍信息查询sushe_search(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。

(6) 排序模块:先将文件信息读出,再调用sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().(7) 统计模块:先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.五.详细过程和运行结果:删除模块插入模块查找模块修改模块排序模块统计模块六.参考文献:《C语言程序设计》: 王曙燕.七.源代码#include <stdio.h>#include <stdlib.h>#include <string.h>//#include <conio.h>typedef struct Student{int num; /*学号*/char name[15]; /*姓名*/char sex; /*性别*/char zhuanye[20]; /*专业*/int lounum; /*楼号*/int sushenum; /*宿舍号*/int chuangnum; /*床号*/struct Student *next;}Stu;void Write_to_File(Stu *L) /*将信息写入文件*/{FILE *fp;Stu *p;fp=fopen("sushe.txt","w");if(fp==NULL){printf("打开失败!");getchar();getchar();exit(0);}p=L->next;while(p){fprintf(fp,"%d %s %c %s %d %d %d\n",p->num,p->name,p->sex,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);p=p->next;}fclose(fp);}void InitStu(Stu **h) /*创建头结点*/ {(*h)=(Stu *)malloc(sizeof(Stu));if(h==NULL){printf("创建失败!!");getchar();getchar();exit(0);}(*h)->next=NULL;}void append( ) /*录入学生信息*/ {Stu *head;Stu *p,*q;char ch;InitStu(&head);q=head;while(1){system("clear");printf("请录入学生信息\n");p=(Stu *)malloc(sizeof(Stu));printf("\n学号:");scanf("%d",&p->num);printf("\n姓名:");scanf("%s",p->name);printf("\n性别:");scanf(" %c",&p->sex);printf("\n专业:");scanf("%s",p->zhuanye);printf("\n楼号:");scanf("%d",&p->lounum);printf("\n宿舍号:");scanf("%d",&p->sushenum);printf("\n床号:");scanf("%d",&p->chuangnum);p->next=q->next;q->next=p;q=p;printf("按任意键继续录入,按0结束录入");getchar();ch=getchar();if(ch=='0')break;}Write_to_File(head);}void Read_from_File(Stu *h) /*读出文件信息*/{FILE *fp;Stu *p,*q;int i;fp=fopen("sushe.txt","r");if(fp==NULL){printf("打开失败");exit(0);}q=h;while(!feof(fp)){p=(Stu *)malloc(sizeof(Stu));i=fscanf(fp,"%d %s %c %s %d %d %d\n",&p->num,p->name,&p->sex, p->zhuanye,&p->lounum,&p->sushenum,&p->chuangnum);if(i == EOF)break;q->next=p;q=p;}q->next = NULL;fclose(fp);}int display() /*显示文件信息*/{Stu *head = NULL;Stu *p;InitStu(&head);Read_from_File(head);//printf("ok!\n");p=head->next;system("clear");if(!p){printf("无内容!");printf("\n按任意键键返回\n");getchar();getchar();return 0;}printf("学号姓名性别专业楼号宿舍号床号\n\n");while(p){printf("%-8d%-10s%-6c%-14s%-8d%-8d%-5d\n",p->num,p->name,p->sex,p->zhuanye, p->lounum,p->sushenum,p->chuangnum);p=p->next;}printf("\n按任意键返回\n");getchar();getchar();return 1;}void del() /*删除学生信息*/{Stu *head;Stu *p,*q;char ch,h;int N;int lounum,sushenum,chuangnum;InitStu(&head);Read_from_File(head);q=head;p=head->next;do{system("clear");printf("\n1. 根据学生学号删除\n");printf("\n2. 根据宿舍信息删除\n");printf("\n 请选择删除方式:");scanf(" %c", &ch);while(1){if(ch=='1'){printf("\n请输入学生学号:");scanf("%d",&N);while(p){if(p->num==N){q->next=p->next;printf("删除成功!");break;}q=p;p=p->next;}if(p==NULL){printf("\n未找到此学生");break;}else{free(p);}}else if(ch=='2'){printf("\n请输入宿舍信息(楼号宿舍床号):");scanf("%d %d %d",&lounum,&sushenum,&chuangnum);while(p!=NULL){if(p->lounum==lounum && p->sushenum==sushenum && p->chuangnum){q->next=p->next;printf("删除成功!");break;}q=p;p=p->next;}if(p==NULL){printf("未找到此学生");break;}else{free(p);}}break;}printf("\n\n是否继续:Y/N?");scanf(" %c", &h);}while(h=='Y' ||h=='y');Write_to_File(head);}void insert() /*用头插法插入学生信息*/{Stu *p , *head;char ch;InitStu(&head);Read_from_File(head);system("clear");do{p=(Stu*)malloc(sizeof(Stu));p->next=NULL;printf("\t\t请输入插入的学生信息:\n ");printf("\t 学号:");scanf("%d",&p->num);printf("\n\t 姓名:");scanf("%s",p->name);printf("\n\t性别:");scanf(" %c",&p->sex);printf("\n\t 专业:");scanf("%s",p->zhuanye);printf("\n\t 楼号:");scanf("%d",&p->lounum);printf("\n\t 宿舍号:");scanf("%d",&p->sushenum);printf("\n\t 床号:");scanf("%d",&p->chuangnum);p->next = head->next;head->next = p;printf("\n\n是否继续插入?Y/N");scanf(" %c",&ch);}while(ch=='y'||ch=='Y');Write_to_File(head);}void modify( ) /*修改学生信息(按学号修改)*/ {Stu *head;Stu *p;char ch;int N;InitStu(&head);Read_from_File(head);system("clear");printf("\n\n请输入修改的学生学号: ");scanf("%d",&N);p=head->next;do{while(p!=NULL){if(p->num==N){system("clear");printf("\n请输入新的学生信息:\n ");printf("\n学号:");scanf("%d",&p->num);printf("\n姓名:");scanf("%s",p->name);printf("\n性别:");scanf(" %c",&p->sex);printf("\n专业:");scanf("%s",p->zhuanye);printf("\n楼号:");scanf("%d",&p->lounum);printf("\n宿舍号:");scanf("%d",&p->sushenum);printf("\n床号:");scanf("%d",&p->chuangnum);break;}p=p->next;}if(p==NULL)printf("\n未找到此学生");else{printf("修改成功\n");}printf("\n\n 继续修改?Y/N");scanf(" %c",&ch);}while(ch=='y'||ch=='Y');Write_to_File(head);}void xuehao_search(Stu * head) /*按照学生学号查找*/{int num;Stu *p;char ch;p=head->next ;do{system("clear");printf("\n请输入要查找的学生学号: ");scanf("%d",&num);while(p!=NULL){if(p->num == num ){printf("学号姓名性别专业楼号宿舍号床号\n\n");printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->sex,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);break;}p=p->next;}if(p==NULL)printf("\n未找到此学生");printf("\n\n 继续查找?Y/N");scanf("%s",&ch);}while(ch=='Y' || ch=='y');}void sushe_search(Stu *head) /*按照宿舍信息查找*/{int lounum,sushenum,chuangnum;Stu *p;char ch;p=head->next;do{system("clear");printf("\n请输入要查找的学生宿舍信息(楼号宿舍床号) : ");printf("\n 楼号:");scanf("%d",&lounum);printf("\n 宿舍号:");scanf("%d",&sushenum);printf("\n 床号:");scanf("%d",&chuangnum);while(p!=NULL){if(p->lounum==lounum && p->sushenum==sushenum&&p->chuangnum==chuangnum){printf("学号姓名性别专业楼号宿舍号床号\n\n");printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",p->num,p->name,p->sex,p->zhuanye,p->lounum,p->sushenum,p->chuangnum);break;}p=p->next;}if(p==NULL)printf("\n未找到此学生");printf("\n\n 是否继续?Y/N");scanf("%s",&ch);}while(ch=='y' || ch=='Y');}void Search( ) /*查找学生信息*/{int choose;Stu *head;InitStu(&head);Read_from_File(head);system("clear");printf("\n1.根据宿舍信息查找.");printf("\n2.根据学生学号查找.");printf("\n3.退出.\n\n");printf("\n请选择查找方式:");scanf("%d",&choose);switch(choose){case 1:sushe_search(head);break;case 2:xuehao_search(head);break;case 3:break;}}void sort( ) /*将学生信息按学号排序*/{Stu *head;Stu *i,*j,*k;Stu *m,*n;Stu *temp;int l=0;InitStu(&head);Read_from_File(head); //冒泡排序法for(m=head,i=head->next;i;m=i,i=i->next){k=i;for(n=i,j=i->next;j;n=j,j=j->next){if(j->num< k->num){k=j;break;}}if(i!=k){m->next=j;n->next=i;temp=i->next;i->next=j->next;j->next=temp;i=head;}}system("clear");printf("\n\n输入学生信息: \n\n");i=head->next;printf("学号姓名性别专业楼号宿舍号床号\n\n");while(i){printf("%-8d%-8s%-4c%-8s%-8d%-8d%-5d\n",i->num,i->name,i->sex, i->zhuanye,i->lounum,i->sushenum,i->chuangnum);i=i->next;}printf("\n按任意键返回!");getchar();getchar();}void tongji( ) /*统计学生信息*/{Stu *head,*p;int Count1,Count2;InitStu(&head);Read_from_File(head);system("clear");p=head->next;Count1=0;Count2=0;while(p!=NULL){if(p->sex=='w' || p->sex=='W'){Count1++;}elseCount2++;}p=p->next;}printf("\t女生总数: %d\n ",Count1);printf("\t男生总数: %d\n ",Count2);printf("\t学生总数: %d\n ",Count1+Count2);printf("\t按任意键返回!");getchar();getchar();}void main(){int choice;char ch;while(1){system("clear");printf("\n 学生宿舍管理系统\n");printf("=========================================\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(" 8.统计学生信息\n\n");printf(" 0.退出系统\n");printf("==========================================\n");printf(" 请选择0-8:\n");printf("\n 请选择要进行的操作: ");scanf("%d",&choice);switch(choice)case 1:append();break;case 2:del();break;case 3:insert();break;case 4:modify();break;case 5:display();break;case 6:Search();break;case 7:sort();break;case 8:tongji();break;case 0:printf("\n\t\t确定退出?(Y/N)");scanf(" %c", &ch);if(ch=='Y'||ch=='y')exit(0);if(ch=='N' || ch=='n'){system("clear");}}}。

相关文档
最新文档