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

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

相关文档
最新文档