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. 理解C语言在开发宿舍管理系统中的应用,掌握基本的数据类型、语法和结构;2. 学会使用数组、结构体、文件操作等C语言特性进行数据处理和存储;3. 掌握模块化编程思想,理解函数的定义、调用和参数传递。
技能目标:1. 能够运用所学知识,设计并实现一个简单的宿舍管理系统;2. 培养学生分析问题、解决问题的能力,通过编写代码解决宿舍管理中的实际问题;3. 提高学生的团队协作能力,通过小组合作完成课程设计。
情感态度价值观目标:1. 激发学生对编程的兴趣,培养其对计算机科学的热爱;2. 培养学生的耐心和毅力,使其在面对编程困难时保持积极的心态;3. 增强学生的责任感,使其认识到编程在解决实际问题中的重要性。
课程性质:本课程设计属于实践性课程,以培养学生的实际编程能力为目标。
学生特点:学生具备一定的C语言基础,对编程有一定兴趣,但实际操作经验不足。
教学要求:结合学生特点,以实用性为导向,注重培养学生的动手能力和团队协作精神。
通过课程设计,使学生将所学知识应用于实际项目中,提高其解决实际问题的能力。
课程目标分解为具体学习成果,以便于教学设计和评估。
二、教学内容1. C语言基础知识回顾:数据类型、运算符、表达式、控制结构(第二章)- 强化基本语法,为后续编程打下坚实基础。
2. 函数与模块化编程:函数的定义、调用、参数传递(第四章)- 培养学生模块化编程思想,提高代码复用性和可维护性。
3. 数组与字符串:一维数组、二维数组、字符串操作(第三章)- 为处理宿舍信息数据提供有效手段。
4. 结构体与文件操作:结构体定义、结构体数组、文件读写(第五章)- 实现对宿舍信息的存储和读取功能。
5. 宿舍管理系统功能设计:- 登录与权限管理(第六章)- 宿舍基本信息管理(第三章、第五章)- 学生信息管理(第三章、第五章)- 宿舍卫生管理(第三章、第五章)- 数据查询与统计(第四章)6. 项目实践与团队协作:- 将学生分组,每组负责一个模块的开发,提高团队协作能力;- 结合教材内容,按进度完成各个模块的设计与实现。
C宿舍管理系统课程设计
C 宿舍管理系统 课程设计一、课程目标知识目标:1. 让学生理解宿舍管理系统的基本概念,掌握其功能模块和操作流程;2. 使学生掌握数据库设计原则,能运用所学知识构建宿舍管理系统数据库;3. 帮助学生掌握C语言编程技巧,实现宿舍管理系统的功能需求。
技能目标:1. 培养学生运用C语言进行编程的能力,能够独立完成宿舍管理系统的功能模块编写;2. 提高学生分析问题、解决问题的能力,使其能够针对宿舍管理中的实际问题提出合理的解决方案;3. 培养学生团队协作能力,能够在小组合作中发挥各自优势,共同完成项目任务。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习的态度;2. 培养学生认真负责的工作态度,使其在项目实施过程中注重细节,追求卓越;3. 引导学生关注宿舍管理问题,培养其主人翁意识,提高社会责任感。
课程性质:本课程为实践性较强的课程,旨在让学生通过实际项目开发,将所学知识运用到实际工作中。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但缺乏实际项目经验。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 宿舍管理系统概述:介绍宿舍管理系统的基本概念、功能需求及系统架构,关联课本第1章内容。
2. 数据库设计:讲解数据库设计原则,指导学生运用所学知识构建宿舍管理系统数据库,关联课本第3章内容。
- 数据库表设计- 关系映射- 数据库操作3. C语言编程基础:复习C语言基础知识,重点讲解编程技巧,关联课本第2章内容。
- 数据类型与变量- 控制语句- 函数与模块化编程4. 宿舍管理系统功能模块实现:根据需求分析,运用C语言编程实现宿舍管理系统的功能模块,关联课本第4章内容。
- 学生信息管理- 宿舍楼信息管理- 宿舍分配与调整- 费用管理5. 系统测试与优化:教授系统测试方法,引导学生对宿舍管理系统进行测试与优化,关联课本第5章内容。
c宿舍管理系统课课程设计
c 宿舍管理系统课课程设计一、教学目标本课程旨在通过宿舍管理系统的设计与实现,让学生掌握以下知识目标:1.理解宿舍管理系统的需求和功能;2.掌握C语言的基本语法和数据结构;3.学会使用面向对象的思想进行软件设计;4.熟悉软件开发的基本流程;5.能够使用C语言进行程序设计;6.能够运用面向对象的方法进行软件设计;7.能够独立完成一个中小型的软件项目;情感态度价值观目标:1.培养学生的团队协作精神;2.培养学生解决问题的能力;3.培养学生对软件开发的兴趣和热情。
二、教学内容本课程的教学内容主要包括以下几个部分:1.宿舍管理系统的需求分析;2.C语言的基本语法和数据结构;3.面向对象的基本概念和设计方法;4.软件开发的基本流程;5.宿舍管理系统的实现和测试。
三、教学方法为了达到上述教学目标,我们将采用以下教学方法:1.讲授法:用于讲解基本概念、语法和设计方法;2.案例分析法:通过分析实际的宿舍管理系统案例,使学生更好地理解理论知识;3.实验法:让学生动手实践,独立完成宿舍管理系统的设计和实现;4.讨论法:鼓励学生积极参与讨论,培养团队协作和解决问题的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》、《面向对象程序设计》;2.参考书:提供相关的编程技巧和软件开发方法;3.多媒体资料:用于辅助讲解和演示;4.实验设备:计算机、网络等,用于实践操作。
五、教学评估本课程的评估方式包括以下几个部分:1.平时表现:包括课堂参与度、小组讨论等,占总评的20%;2.作业:包括编程练习和理论作业,占总评的30%;3.考试:包括期中和期末考试,占总评的50%;评估方式将客观、公正地全面反映学生的学习成果。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保完成所有教学内容;2.教学时间:每周两次课,每次两小时;3.教学地点:计算机实验室;教学安排将合理、紧凑,确保在有限的时间内完成教学任务,同时考虑学生的实际情况和需要。
C宿舍管理系统课程设计
C 宿舍管理系统 课程设计一、课程目标知识目标:1. 学生能够理解宿舍管理系统的基本概念、功能模块及其在实际中的应用。
2. 学生能够掌握使用数据库进行数据存储、检索与管理的基本方法。
3. 学生能够运用结构化编程思想,设计并实现宿舍管理系统的基本功能。
技能目标:1. 学生能够运用所学知识,独立设计并实现一个简易的宿舍管理系统。
2. 学生能够通过实践操作,掌握数据库查询、更新和删除等操作技能。
3. 学生能够运用编程工具,进行系统功能的编码、调试与优化。
情感态度价值观目标:1. 学生通过本课程的学习,培养团队协作、沟通交流的能力,养成良好的合作精神。
2. 学生能够认识到信息技术在现实生活中的重要作用,增强对信息技术的兴趣和认同感。
3. 学生能够遵循法律法规,尊重他人隐私,养成良好的信息伦理素养。
分析课程性质、学生特点和教学要求,本课程旨在帮助学生将理论知识与实际应用相结合,提高学生的动手实践能力和创新能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
通过本课程的学习,学生将能够独立设计并实现一个宿舍管理系统,为今后的学习和工作打下坚实的基础。
二、教学内容1. 宿舍管理系统概述- 了解宿舍管理系统的概念、发展及应用场景。
- 分析宿舍管理系统的功能模块及其相互关系。
2. 数据库基础- 学习数据库的基本概念、数据模型和关系型数据库的设计方法。
- 掌握SQL语句,进行数据查询、更新、插入和删除等操作。
3. 系统设计- 分析系统需求,明确系统功能。
- 学习结构化分析方法,绘制E-R图、数据流图等设计图。
4. 编程实现- 学习一种编程语言(如Java、C#等),掌握基本语法和编程规范。
- 根据系统设计,编写程序实现各功能模块。
5. 系统测试与优化- 学习测试方法,对系统进行功能测试、性能测试等。
- 分析测试结果,对系统进行优化和改进。
6. 实践项目- 以小组为单位,设计并实现一个简易的宿舍管理系统。
宿舍管理系统c语言课程设计
宿舍管理系统一、引言宿舍管理对于一个学校或机构来说是非常重要的一项工作。
宿舍是学生的家,好的宿舍管理能够提供一个安全、舒适的学习和生活环境,有利于学生的学习和成长。
然而,传统的宿舍管理方式存在一些问题,例如信息不及时、管理不规范、难以满足学生个性化需求等。
为了解决这些问题,开发一个宿舍管理系统是非常必要的。
二、系统需求分析1. 功能需求宿舍管理系统需要具备以下功能:•学生信息管理:包括学生的基本信息、宿舍分配情况、入住时间等。
•入住申请管理:学生可以通过系统提交入住申请,管理员审批后进行分配。
•宿舍楼信息管理:包括宿舍楼的基本信息、楼层和宿舍号等。
•工作人员管理:管理员可以管理宿舍管理系统的工作人员,包括添加、删除、修改工作人员信息等。
•入住人员统计:系统可以生成入住人数统计报表,方便学校管理人员进行宿舍资源的合理规划。
2. 性能需求宿舍管理系统需要具备良好的性能,包括以下方面:•响应速度:系统应能够快速响应用户的操作请求,尽量减少等待时间。
•稳定性:系统需要具备良好的稳定性,能够长时间稳定运行,不容易崩溃或出现故障。
•安全性:系统应具备良好的安全性,包括用户数据的安全存储和传输,以及对非法访问的防护措施。
3. 界面需求宿舍管理系统需要具备良好的用户界面,以提供良好的用户体验。
界面设计应简洁明了,操作方式直观方便,符合用户习惯。
三、系统设计与实现1. 数据库设计宿舍管理系统需要使用数据库来存储学生信息、宿舍楼信息、工作人员信息等。
数据库设计应合理,能够满足系统的需求。
数据库表应包括以下字段:学生姓名、学号、性别、宿舍楼号、楼层、宿舍号等。
2. 系统架构设计宿舍管理系统采用客户端-服务器架构,客户端通过网络与服务器进行通信。
客户端负责与用户交互,服务器负责处理客户端发送的请求,并将结果返回给客户端。
3. 界面设计系统界面应简洁明了,方便用户操作。
主界面包括以下功能模块:学生信息管理、入住申请管理、宿舍楼信息管理、工作人员管理、入住人员统计等。
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语言课程设计——学生宿舍管理系统(ubuntu下)
****大学学号:学生姓名:指导教师:时间:一、课程设计目的1. 设计一个ubuntu下的学生宿舍管理系统2. 掌握用C语言定义单链表结构,并实现其创建、插入、删除等基本操作。
5、数据的查询查询可以根据学号和宿舍信息不同方面进行查询,方便操作者使用。
6、数据的排序操作者可以使所输入的信息按学号排序。
7、数据的统计按整体统计,统计所有学生人数,男生人数和女生人数。
四、概要设计1.系统结构图(功能模块图)(5) 查询模块:先将文件信息读出,再调用search(),在search()中有调用两个数,一个按照宿舍信息查询sushe_search(),需要楼号和宿舍号,一个按照生信息查询xuehao_search()需要学生学号或者姓名。
(6) 排序模块:先将文件信息读出,再调用sort (),按照学生学号排序,拍完续没有直接写入文件,如果要直接写入调用文件读入函数Write_to_File().(7) 统计模块:先将文件信息读出,再调用tongji()函数,统计了女生人数和男生人数,还统计了总人数.五.详细过程和运行结果:输入插入的学查找模块Count1++ Count2++六.参考文献:《C语言程序设计》: 王曙燕typedef struct Student{int num; /*学号*/ char name[15]; /*姓名*/ char sex; /*性别*/char zhuanye[20]; /*专业*/int lounum; /*楼号*/int sushenum; /*宿舍号*/int chuangnum; /*床号*/ struct Student *next;}Stu;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;}getchar();exit(0);}(*h)->next=NULL;}void append( ) /*录入学生信息*/{Stu *head;Stu *p,*q;char ch;InitStu(&head);scanf("%s",p->name);printf("\n性别:");scanf(" %c",&p->sex);printf("\n专业:");scanf("%s",p->zhuanye);printf("\n楼号:");scanf("%d",&p->lounum); printf("\n宿舍号:");ch=getchar();if(ch=='0')break;}Write_to_File(head);}void Read_from_File(Stu *h) /*读出文件信息*/{FILE *fp;Stu *p,*q;int i;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() /*显示文件信息*/printf("\n按任意键键返回\n");getchar();getchar();return 0;}printf("学号姓名性别专业楼号宿舍号床号while(p){printf("%-8d%-10s%-6c%-14s%-8d%-8d%-5d\n",p->num,p->name,p->sex,p->zhuanye,{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{while(p){if(p->num==N){q->next=p->next;printf("删除成功!");break;}q=p;p=p->next;}if(p==NULL)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;}printf("\n\n是否继续:Y/N?");scanf(" %c", &h);}while(h=='Y' ||h=='y');Write_to_File(head);}void insert() /*用头插法插入学生信息*/{Stu *p , *head;printf("\t 学号:");scanf("%d",&p->num);printf("\n\t 姓名:");scanf("%s",p->name);printf("\n\t性别:");scanf(" %c",&p->sex);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);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)printf("\n专业:"); scanf("%s",p->zhuanye);printf("\n楼号:"); scanf("%d",&p->lounum);printf("\n宿舍号:");scanf("%d",&p->sushenum);printf("\n床号:");scanf("%d",&p->chuangnum);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床号\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");do{system("clear");printf("\n请输入要查找的学生宿舍信息(楼号宿舍床号) : ");printf("\n 楼号 :");scanf("%d",&lounum);printf("\n 宿舍号 :");scanf("%d",&sushenum);printf("\n 床号 :");scanf("%d",&chuangnum);while(p!=NULL)}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;{case 1:sushe_search(head);break;case 2:xuehao_search(head);break;case 3:break;}}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){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();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++;printf("\t男生总数 : %d\n ",Count2); printf("\t学生总数 : %d\n ",Count1+Count2);printf("\t按任意键返回!");getchar();getchar();}void main(){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);insert();break;case 4:modify();break;case 5:display();break;case 6:Search();printf("\n\t\t确定退出? (Y/N)");scanf(" %c", &ch);if(ch=='Y'||ch=='y')exit(0);if(ch=='N' || ch=='n'){system("clear");}}}}。
宿舍管理系统课程设计c
宿舍管理系统课程设计c一、课程目标知识目标:1. 让学生理解宿舍管理系统的基本概念,掌握其功能模块和使用方法。
2. 使学生掌握数据库设计原则,能独立完成宿舍管理系统数据库的构建。
3. 让学生掌握C语言编程技巧,能够运用结构体、文件操作等知识实现宿舍管理功能。
技能目标:1. 培养学生运用C语言进行程序设计的能力,提高编程技巧。
2. 培养学生分析问题、解决问题的能力,能够根据实际需求设计并实现宿舍管理系统。
3. 培养学生团队协作能力,学会与他人共同探讨、研究,共同完成项目任务。
情感态度价值观目标:1. 培养学生热爱编程,对计算机科学产生浓厚的兴趣。
2. 培养学生具备良好的学习习惯,严谨、认真、负责的态度。
3. 增强学生的社会责任感,认识到信息技术在生活中的应用和重要性。
分析课程性质、学生特点和教学要求,本课程旨在通过宿舍管理系统课程设计,使学生将所学C语言知识应用于实际项目中,提高编程能力和解决实际问题的能力。
课程目标具体、可衡量,有助于学生和教师在课程结束后清晰地了解预期成果,并为后续教学设计和评估提供依据。
二、教学内容本课程教学内容围绕宿舍管理系统设计,结合课程目标,选择以下内容进行组织:1. 宿舍管理系统概述:介绍系统的功能、模块划分以及应用场景,使学生了解课程设计背景。
2. 数据库设计:讲解数据库设计原则,指导学生完成宿舍管理系统数据库的构建,包括表结构设计、数据完整性约束等。
3. C语言编程基础:复习C语言基础知识,强调结构体、文件操作等在本课程中的应用。
4. 宿舍管理系统功能实现:详细讲解各功能模块的编程实现,包括:- 学生信息管理:涉及学生信息的增加、删除、修改和查询等功能;- 宿舍楼信息管理:包括宿舍楼的增加、删除、修改和查询等功能;- 寝室分配与调整:实现寝室分配、调整以及查询功能;- 缴费管理与查询:完成学生缴费信息的录入、修改、查询等功能。
5. 系统测试与优化:教授测试方法,指导学生进行系统测试,并提出优化方案。
学生宿舍管理系统---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.知识目标:–理解宿舍管理系统的需求和功能。
–掌握宿舍管理系统的基本设计原则。
–学会使用相关编程语言实现简单的宿舍管理系统。
2.技能目标:–能够分析宿舍管理系统的业务需求。
–能够使用至少一种编程语言进行宿舍管理系统的开发。
–能够对宿舍管理系统进行测试和调试。
3.情感态度价值观目标:–培养学生的团队协作精神,使其能够与他人共同完成项目。
–培养学生的问题解决能力,使其在面对宿舍管理问题时能够提出有效的解决方案。
–培养学生对编程和计算机科学的兴趣,提高其对技术的热情。
二、教学内容本课程的教学内容主要包括以下几个部分:1.宿舍管理系统的需求分析:了解宿舍管理系统的功能和需求,学习如何进行需求分析。
2.宿舍管理系统的设计:学习宿舍管理系统的设计原则,掌握常用的设计方法。
3.宿舍管理系统的实现:学习使用编程语言实现宿舍管理系统的基本功能。
4.宿舍管理系统的测试与调试:学习如何对宿舍管理系统进行测试和调试,以确保其稳定运行。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:教师讲解宿舍管理系统的基本概念、设计原则和实现方法。
2.案例分析法:分析实际案例,让学生更好地理解宿舍管理系统的需求和设计。
3.实验法:让学生动手实践,实际操作宿舍管理系统的设计和实现。
4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供宿舍管理系统的基本知识。
2.参考书:提供相关的参考书籍,丰富学生的知识体系。
3.多媒体资料:制作课件、视频等多媒体资料,提高学生的学习兴趣。
4.实验设备:准备计算机、网络设备等实验器材,确保学生能够进行实践操作。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现,以及团队合作的表现。
C语言课程设计学生宿舍管理系统
模块化设计: 将系统划分为 多个模块,便 于维护和扩展
接口设计:提 供统一的接口, 便于与其他系
统集成
数据库设计: 采用关系型数 据库,便于数 据存储和ห้องสมุดไป่ตู้询
安全性考虑: 采用加密技术, 保证数据安全
用户体验:提 供友好的用户 界面,便于用
户使用
性能优化:采 用高效的算法 和数据结构, 提高系统运行
响应时间:系统处理用户请求所需的时间 吞吐量:系统在单位时间内处理的请求数量 资源利用率:系统对硬件资源的使用情况 可靠性:系统在运行过程中出现故障的概率 可扩展性:系统适应未来业务增长的能力 用户体验:用户对系统的满意度和易用性评价
提高系统响应速度:优化数据库查询和更新操作,减少数据传输时间
智能化:引入人工智能技术,实现 自动识别、自动处理等功能
安全性:加强数据加密和访问控制, 确保学生信息的安全
添加标题
添加标题
添加标题
添加标题
移动化:开发移动应用,方便学生 随时随地查询和管理宿舍信息
扩展性:支持与其他系统对接,实 现数据共享和协同工作
汇报人:
添加标题
报表管理:包括学生住宿情况报表、宿舍费用报表、 宿舍卫生检查报表等报表的生成和管理
添加标题
宿舍管理:包括宿舍分配、宿舍调整、宿舍卫生检 查等
添加标题
通知管理:包括宿舍通知、学校通知、班级通知等 通知的发布和管理
学生信息 管理:包 括学生基 本信息、 宿舍分配、 宿舍调整 等
宿舍管理: 包括宿舍 分配、宿 舍调整、 宿舍卫生 检查等
增强系统安全性:加强用户身份验证和权限管理,防止数据泄露和恶意攻击
提高用户体验:优化界面设计,简化操作流程,提高用户满意度 优化系统稳定性:加强系统监控和日志记录,及时发现和解决系统故障
宿舍管理系统c课程设计
宿舍管理系统c课程设计一、课程目标知识目标:1. 理解宿舍管理系统的基本功能需求,掌握系统设计的基本原理;2. 学会运用C语言进行数据结构设计和算法实现,构建宿舍管理系统的功能模块;3. 掌握模块化编程思想,能够对宿舍管理系统进行模块划分和代码编写。
技能目标:1. 能够运用结构体、文件操作等C语言知识编写宿舍管理系统相关功能;2. 培养学生分析问题、解决问题的能力,提高编程实践技能;3. 增强团队协作能力,学会与他人共同完成一个项目。
情感态度价值观目标:1. 培养学生认真负责的工作态度,严谨细致的编程习惯;2. 增强学生对计算机科学与技术专业的兴趣,激发学习热情;3. 培养学生积极向上的团队精神,提高沟通表达能力。
课程性质分析:本课程为计算机科学与技术专业课程,旨在通过宿舍管理系统课程设计,让学生掌握C语言在实际项目中的应用,提高编程实践能力。
学生特点分析:学生已具备一定的C语言基础,但实际项目经验不足,需要通过课程设计培养实践能力和团队协作能力。
教学要求:教师需引导学生分析需求,明确功能模块,并在实践中提供指导,确保学生能够独立或协作完成课程设计任务。
通过课程目标的实现,评估学生在知识、技能和情感态度价值观方面的学习成果。
二、教学内容1. 宿舍管理系统需求分析:介绍宿舍管理系统的功能需求,引导学生明确课程设计的任务目标,对应教材中“系统分析与设计”章节。
2. 数据结构设计:讲解如何运用结构体、链表等数据结构存储宿舍信息,对应教材中“数据结构”章节。
3. 功能模块设计:- 宿舍信息录入与查询:介绍如何实现宿舍信息的添加、删除、修改和查询功能,对应教材中“文件操作”章节;- 学生信息管理:讲解如何实现学生信息的添加、删除、修改和查询功能,对应教材中“结构体与指针”章节;- 宿舍卫生管理:介绍如何实现宿舍卫生情况的记录和查询,对应教材中“函数与模块化编程”章节。
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];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语⾔源码,供⼤家参考,具体内容如下内容摘要学⽣宿舍管理系统时应对学⽣宿舍管理的现代化、⽹络化,逐步摆脱学⽣宿舍管理的⼈⼯管理⽅式,提⾼学⽣宿舍管理效率⽽开发的,它包括了对学⽣宿舍基本信息管理,其功能包括对这些基本信息的增、删、改、查等基本功能,并将这些功能与⽂件读写相结合形成⽂档使管理者⼀⽬了然,也适合长时间的保存,数据不容易丢失;其中在输出时穿插着冒泡排序、希尔排序、折半拆⼊排序、⼆分查找等算法,按顺序输出学⽣信息等。
综上,这⽆疑为信息的管理存储提供了⼀个⽅便、快捷的操作⽅式。
关键词⼆分查找、排序算法及分析、⽂件操作系统概览开发⼯具Visual C++ 6.0函数功能源码#include"stdio.h"#include"stdlib.h"#include"string.h"#include "conio.h"#include "windows.h"#define MAX 1000/*结构体类型*/typedef struct{int num;/*学号*/char name[20];/*姓名*/char sex[5];/*性别*/int age;/*年龄*/char studentclass[20];/*班级*/int dorm;/*宿舍号*/}STUDENTS;//查找指针typedef struct Points{int a;struct Points *points;}Points;char xiugai[10]="修改";char chaxun[10]="查询";char xuehao[]="学号";char xingming[]="姓名";char xingbie[]="性别";char nianling[]="年龄";char banji[]="班级";char sushe[]="宿舍";/*共⽤的功能块 */void pause(){int i;printf("\n\n按任意键加回车返回主菜单!");scanf("%d",&i);getchar();}void print(STUDENTS stu[],int point){printf("\n\n\n学号:%d,姓名:%s,性别:%s,年龄:%d,班级:%s,宿舍号: %d\n",stu[point].num,stu[point].name,stu[point].sex,stu[point].age,stu[point].studentclass,stu[point].dorm);}void printfNotFound(){printf("找不到该数据\n");}void printSearch(STUDENTS stu[],int i){printf(" %7d%11s%10s%10d%12s%12d\n\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].studentclass,stu[i].dorm); }void printHead(){printf(" -------------------------------------------------------------------------------\n");printf(" -------------------------------------------------------------------------------\n");printf(" 学号:姓名:性别:年龄:班级:宿舍号: \n");printf(" -------------------------------------------------------------------------------\n");printf(" -------------------------------------------------------------------------------\n\n\n");}//默认继续int a=1;void selectOperate(){button:printf("继续操作请按1,返回主菜单请按0 ");scanf("%d",&a);if(!(a==1||a==0)){printf("请输⼊正确的指令");goto button;}}//读取⽂件,返回的是总个数int read_file(STUDENTS stu[]){FILE *fp;int point=-1;fp=fopen("stu.txt","rt");if(fp==NULL){printf("\n\n*****库存⽂件不存在!请创建");return 0;}while(!feof(fp)){point++;fread(&stu[point],sizeof(STUDENTS),1,fp);}fclose(fp);return point;}//存储数据到⽂件中void save_file(STUDENTS stu[],int sum)//sum是总个数{FILE *fp;int i;if((fp=fopen("temp.txt","w"))==NULL){printf("写⽂件错误!\n");return;}for(i=0;i<sum;i++)if(fwrite(&stu[i],sizeof(STUDENTS),1,fp)!=1)printf("写⽂件错误!\n");fclose(fp);remove("stu.txt");rename("temp.txt","stu.txt");}/*创建学⽣信息*///返回的是总数int input(STUDENTS stu[],int sum){int x;for(;sum<MAX;sum++){system("cls");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf(" ▄▄\n");printf(" ▄创建学⽣宿舍信息▄\n");printf(" ▄▄\n");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf("\n\n 录⼊学⽣信息 (最多%d个)\n",MAX);printf(" ----------------------------\n");printf("\n 第%d个学⽣\n",sum+1);printf("\n 请输⼊学⽣的学号:");scanf("%d",&stu[sum].num);printf("\n 请输⼊学⽣的姓名:");scanf("%s",stu[sum].name);printf("\n 请输⼊学⽣的性别:");scanf("%s",stu[sum].sex);printf("\n 请输⼊学⽣的年龄:");scanf("%d",&stu[sum].age);printf("\n 请输⼊学⽣的班级:");scanf("%s",stu[sum].studentclass);printf("\n 请输⼊学⽣的宿舍号:");scanf("%d",&stu[sum].dorm);printf(" 创建成功!");//选择操作selectOperate();if(a==0)return sum+1;}return sum+1;}/*打印学⽣信息*/ void output(STUDENTS stu[],int sum){int i;system("cls");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf(" ▄▄\n");printf(" ▄打印学⽣宿舍信息▄\n");printf(" ▄▄\n");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printHead();for(i=0;i<sum;i++)printSearch(stu,i);pause();}/*排序 *//*复制student*///将排好的装在⼀个新的students数组⾥,不要存到⽂件中void cpStu(STUDENTS stu0[],STUDENTS stu[],int sum) {int i;for(i=0;i<sum;i++){stu[i].num=stu0[i].num;strcpy(stu[i].name,stu0[i].name);strcpy(stu[i].sex,stu0[i].sex);stu[i].age=stu0[i].age;strcpy(stu[i].studentclass,stu0[i].studentclass);stu[i].dorm=stu0[i].dorm;}}/*对数据元组排序*/void exchangeData(STUDENTS *stu1,STUDENTS *stu2){stu1->num=stu2->num;stu1->dorm=stu2->dorm;stu1->age=stu2->age;strcpy(stu1->name,stu2->name);strcpy(stu1->sex,stu2->sex);strcpy(stu1->studentclass,stu2->studentclass);}int selectSort(){int choice;printf("\n\n\n ********请您选择条件进⾏排序********\n\n");printf(" 1. 学号\n\n");printf(" 2. 班级\n\n");printf(" 3. 宿舍号\n\n");printf(" 4. 姓名\n\n");printf(" 0. 返回主菜单\n\n");printf(" 请选择(0-3):");scanf("%d",&choice);return choice;}/*根据宿舍号从⼩到⼤排序冒泡*/void sortByDorm(STUDENTS stu0[],int sum,STUDENTS stup[]){STUDENTS stu1; //中间变量int i,j;cpStu(stu0,stup,sum);for(i=0;i<sum-1;i++)for(j=0;j<sum-1-i;j++)if(stup[j].dorm>stup[j+1].dorm){exchangeData(&stu1,&stup[j]);exchangeData(&stup[j],&stup[j+1]);exchangeData(&stup[j+1],&stu1);}}/*根据班级从⼩到⼤排序选择*/void sortByClass(STUDENTS stu0[],int sum,STUDENTS stup[]) {STUDENTS stu1; //中间变量int i,j,k;cpStu(stu0,stup,sum);for(i=0;i<sum-1;i++){k=i;for(j=i+1;j<sum;j++)if(strcmp(stup[k].studentclass,stup[j].studentclass)>0) k=j;if(k!=i){exchangeData(&stu1,&stup[i]);exchangeData(&stup[i],&stup[k]);exchangeData(&stup[k],&stu1);}}}/*根据姓名从⼤到⼩排序折半插⼊排序*///因为这⾥是从stu[1]开始操作的,所以得再创个中间变量void sortByName(STUDENTS stu0[],int sum,STUDENTS stup[]) {STUDENTS stu1; //中间变量STUDENTS stu[1000];int i,j,low,high,mid;for(i=0;i<sum;i++){stu[i+1].num=stu0[i].num;strcpy(stu[i+1].name,stu0[i].name);strcpy(stu[i+1].sex,stu0[i].sex);stu[i+1].age=stu0[i].age;strcpy(stu[i+1].studentclass,stu0[i].studentclass);stu[i+1].dorm=stu0[i].dorm;}for(i=2;i<sum+1;i++){exchangeData(&stu1,&stu[i]); /*保存待插⼊元素到stu1*/low=1;high=i-1;while(low<=high){mid=(low+high)/2;if(strcmp(,stu[mid].name)>0)low=mid+1;elsehigh=mid-1;}for(j=i-1;j>=high+1;j--)exchangeData(&stu[j+1],&stu[j]);//后移元素,留出插⼊空位 exchangeData(&stu[high+1],&stu1);}for(i=0;i<sum;i++){stup[i].num=stu[i+1].num;strcpy(stup[i].name,stu[i+1].name);strcpy(stup[i].sex,stu[i+1].sex);stup[i].age=stu[i+1].age;strcpy(stup[i].studentclass,stu[i+1].studentclass);stup[i].dorm=stu[i+1].dorm;}}/*根据学号从⼤到⼩排序插⼊的希尔排序*/void ShellInsert(STUDENTS stup[],int sum,int dk){int i,j,k;STUDENTS stu1;//中间变量for(k=0;k<dk;k++)for(i=dk+k;i<sum;i=i+dk)if(stup[i].num<stup[i-dk].num){exchangeData(&stu1,&stup[i]);for(j=i-dk;j>=0&&stu1.num<stup[j].num;j=j-dk)//记录向后移 exchangeData(&stup[j+dk],&stup[j]);exchangeData(&stup[j+dk],&stu1);}}void sortByNum(STUDENTS stu[],int sum,STUDENTS stup[]){int i,x;cpStu(stu,stup,sum);int dlta[5]={5,4,3,2,1};for(x=0;x<5;x++)ShellInsert(stup,sum,dlta[x]);}//总的函数void sortStudent(STUDENTS stu[],int sum){STUDENTS stup[1000];//引⽤,把排好序的放在这⾥,不跟原来的混淆 int choice,x,i;do{system("cls");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf(" ▄▄\n");printf(" ▄学⽣宿舍信息排序▄\n");printf(" ▄▄\n");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");select:choice=selectSort();system("cls");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");printf(" ▄▄\n");printf(" ▄学⽣宿舍信息排序▄\n");printf(" ▄▄\n");printf(" ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇\n");switch(choice){case 1: sortByNum(stu,sum,stup); break;/*学⽣学号信息顺序*/case 2: sortByClass(stu,sum,stup);break;/*学⽣班级信息顺序*/ case 3: sortByDorm(stu,sum,stup); break;/*学⽣宿舍信息顺序*/case 4: sortByName(stu,sum,stup); break;/*学⽣姓名信息顺序*/case 0: break;}//打印排好序的printHead();for(i=0;i<sum;i++)printSearch(stup,i);if(choice==1||choice==2||choice==3||choice==4){printf("\n\n");button:printf("继续查询请按1,返回主菜单请按0 ");scanf("%d",&x);if(x==1)x=1;else if(x==0)continue;else{printf("请输⼊正确的指令\n");goto button;}}else if(choice==0)x=0;else{printf("\n\t\t请输⼊正确的指令\n");goto select;}}while(x==1);}/* 根据条件查找指针point*//////查询或者修改的选择;int selectChoice(char tiaojian[20]){int choice;printf("\n\n\n ********您想根据哪个条件%s********\n\n",tiaojian);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(" 0. 返回主菜单\n\n");printf(" 请选择(0-6):");scanf("%d",&choice);return choice;}///为什么这⾥的指针得返回菜可⾏,参数不是指针,操作的是地址的Points *connectPoint(Points *r,Points *p,int i){p=(Points *)malloc(sizeof(Points));p->a=i;r->points=p;r=p;return r;}//choice是指主菜单中的功能选项,字符数组tiaojian为相应的字符,⽐如如果选择查询的话,//tiaojian传参进来的应该为 "查询",这⾥是为了提⾼函数的复⽤性。
C语言课程设计—学生宿舍管理系统设计报告
课程设计报告课程名称C语言程序设计课题名称学生宿舍管理系统专业班级学号姓名指导教师湖南工程学院课程设计任务书课程名称C语言程序设计课题学生宿舍管理系统专业班级学生姓名学号指导老师审批任务书下达日期:任务完成日期:一、设计内容与设计要求1.设计内容:学生宿舍管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现学生宿舍信息的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个学生宿舍信息数据库,文件名为ssxxk.txt,并从该文件中读取数据;3)学生宿舍管理系统应能提供以下功能:①系统以菜单方式工作:通过提示用户输入一个数字选项,调用相应的功能函数。
②显示功能:完成全部宿舍信息的显示,显示时按表格的形式,且应有表头;③追加功能:完成一个(或多个)学生入住宿舍的登记(追加记录),要求在追加过程中有相应的提示信息,完成追加后能重新显示;④查询功能:要求可选择按指定学号和指定姓名两种方式定位查询,查询的结果要求以表格的形式显示,若查询不到应给出相应的提示信息。
⑤删除功能:要求可按指定的学号和指定的姓名两种定位方式删除学生在宿舍的记录。
宿舍管理系统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语言课程设计宿舍管理系统一、教学目标本章节的教学目标是使学生掌握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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
...《面向过程程序设计》┊┊计程设课课程名称:学生宿舍管理系统院系:级:班学号:姓名:指导教师:.....目录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语言解决实际问题的能力。
.....二、设计要求1、认真查阅参考书、资料2、遵守课程设计时间安排4、认真完成课程设计报告 3、按时上机,认真调试程序三、课程设计报告装订内容及顺序课程设计封皮 2、目录、13、引言 4、课程设计任务书5、程序设计说明书6、程序设计目的7、程序基本框架结构图 8、课程设计总结与心得四、设计题目湖南工业大学学生宿舍管理系统程序设计说明书该课程设计的课题是湖南工业大学学生宿舍管理系统。
这个系统主要是实现对学生信息的输入,输出,追加,查询,修改,统计及删除等功能,完成对学生宿舍信息的管理。
在学生宿舍管理系统中主要有输入、显示、追加、查询、修改、统计、删除及退出7大功能。
设计首页界面使其美观。
课程设计目的一、目的1.通过本次课程设计,强化上级动手能力,在理论和实践的基础上进一步巩固《C语言程序设计》课程的学习内容,掌握工程软件设计的基本方法。
2.熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C程序的基本.....编写及运行。
3.了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。
4.熟悉C程序设计的开发环境及C程序的调试过程。
二、实验内容我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。
包括学生的姓名、学号、性别、专业、班级等等。
在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。
三、需求分析该程序是由C语言编写的一个宿舍管理查询软件,本程序在MicrosoftVisual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。
其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。
统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计。
.....程序基本框架结构图.. ...源代码清单#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include <conio.h> #define M 10000 typedef struct sushe {char num[10];char name[20];char sex[5];char class1[10];char lh[10];char qsh[10];char tel[15];} XSSS;XSSS pers[M];int n=0;void cx1();void cx2();void cx3();void cx4();void tj1();void tj2();void tj3();int isnum(char *); void zm();void load();void modify();void input();void save();void list();void zm1();.....void zm3();void explain();void dele();main(){char c;while(1){system(cls);zm();c=getch();switch(c){case '1': load(); input(); save(); break;case '2': load(); modify(); save(); break;case '3': load(); input(); save();break;case '4':load(); list(); save();break;case '5':load(); zm1(); save();break;case '6':load(); zm3(); save();break;case '7':load(); dele(); save();break;case '8':load(); explain(); save();break;case '0': exit(0);default : printf(\*****输入错误,请重新输入!*****\n);}}}void zm(){printf(**************************************************************\n); printf( **\n);printf( **\n);printf( * 湖南工业大学学生宿舍管理系统*\n);printf( **\n);.....printf( **\n);printf(*************************************************************\n); printf(\\n\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( 0. 退出本程序\n);}void zm1(){char c;system(cls);printf(**************************************************************\n); printf( **\n);printf( **\n);printf( * 湖南工业大学学生宿舍管理系统*\n);printf( **\n);printf( **\n);printf(**************************************************************\n); printf(\\n\n);printf( 1. 按学号查询\n);printf( 2. 按姓名查询\n);printf( 3. 按楼号查询\n);printf( 4. 按楼号+寝室号查询\n);.....printf( 0. 结束查询返回上层\n);c=getch();switch(c){case '1': cx1(); break;case '2': cx2(); break;case '3': cx3();break;case '4': cx4();break;case '0': return ;敤慦汵??牰湩晴尨输入错误,按任意键返回!); getch(); return ;}}void zm3(){char c;system(cls);printf(**************************************************************\n); printf( **\n);printf( **\n);printf( * 湖南工业大学学生宿舍管理系统*\n);printf( **\n);printf( **\n);printf(**************************************************************\n); printf(\\n\n);printf( 1. 按班级统计\n);printf( 2. 按楼号统计\n);printf( 3. 按楼号+寝室号统计\n);printf( 0. 结束统计返回上层\n);c=getch();switch(c){.....case '1': tj1(); break;case '2': tj2(); break;case '3': tj3();break;case '0': return ;敤慦汵??牰湩晴尨输入错误,按任意键返回!); getch(); return ;}}void cx1(){char name[10];int i,m;system(cls);printf(\\n\n**********按学号查询**********\n);printf(\请输入要查询的学号:);scanf(%s,name);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].num,name)==0 ){printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);m++;}if(m==0)printf(\查无此人!\n);printf(press any key continue\n );getch();}void cx2(){char name[20];int i,m;system(cls);printf(\\n\n**********按姓名查询**********\n);printf(\请输入姓名:);.....scanf(%s,name);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].name,name)==0 ){printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);m++;}if(m==0)printf(\查无此人!\n);printf(press any key continue\n );getch();}void cx3(){char name[10];int i,m;system(cls);printf(\\n\n**********按楼号查询**********\n);printf(\请输入要查询的楼号:);scanf(%s,name);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].lh,name)==0 ){printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);m++;}if(m==0)printf(\文件中没有该楼的学生数据!\n);.....printf(press any key continue\n );getch();}void cx4(){char name[10];char num[10];int i,m;system(cls);printf(\\n\n**********按楼号+寝室号查询**********\n);printf(\请输入要查询的楼号:);scanf(%s,name);printf(\请输入要查询的寝室号:);scanf(%s,num);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].lh,name)==0 && strcmp(pers[i].qsh,num)==0){printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);m++;}if(m==0)printf(\文件中没有符合条件的数据!\n);printf(press any key continue\n );getch();}void load(){FILE *fp;n=0;晩?灦昽灯湥尨獸獳琮瑸?牜屢??啎??{printf(The file is not found!\nplease append new data!\n); return ;.....}while(fread(&pers[n],sizeof(XSSS),1,fp)!=0) /*(!feof(fp))*/ {n++;}牰湩晴尨数据导入成功 !\n);fclose(fp);}void save(){FILE *fp;int i=0;晩?灦昽灯湥尨獸獳琮瑸?睜屢??啎??{printf(The file is not found!\nplease append new data!\n); return ;}for(i=0;i<n;i++)fwrite(&pers[i],sizeof(XSSS),1,fp);fclose(fp);牰湩晴尨数据已保存\n);}void input(){XSSS a;while(1){system(cls);printf(\\n\n********** 输入信息 **********\n);printf(\请输入学生住宿信息\n);牰湩晴尨学号:);scanf(%s,a.num);牰湩晴尨姓名:);scanf(%s,);牰湩晴尨性别:);scanf(%s,a.sex);牰湩晴尨班级:);scanf(%s,a.class1);.....牰湩晴尨楼号:);scanf(%s,a.lh);牰湩晴尨寝室号:);scanf(%s,a.qsh);牰湩晴尨本人电话:);scanf(%s,a.tel);if(isnum(a.tel)==0){牰湩晴尨输入的电话号码错误,系统将以 \'0000\' 代替!\n );strcpy(a.tel,}pers[n++]=a;牰湩晴尨是否继续录入(Y/N)?);if (toupper(getch())=='N')break;}}void list(){int i;system(cls);printf(\\n\n********显示所有个人信息********\n);for(i=0;i<n;i++){printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);}printf(press any key continue\n );getch();}void modify(){char num[20];int i;.....system(cls);printf(\\n\n**********修改学生住宿信息**********\n);printf(\请输入要修改学生的学号:);scanf(%s,num);for(i=0;i<n;i++)if(strcmp(pers[i].num,num)==0) break;if(i==n)printf(\文件中没有该学生的数据,无法进行修改操作!\n);else{printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);printf(\真的要修改吗(Y/N)?);if (toupper(getch())=='Y'){printf(\请输入新信息:\n);牰湩晴尨学号:);scanf(%s,pers[i].num);牰湩晴尨姓名:);scanf(%s,pers[i].name);牰湩晴尨性别:);scanf(%s,pers[i].sex);牰湩晴尨班级:);scanf(%s,pers[i].class1);牰湩晴尨楼号:);scanf(%s,pers[i].lh);牰湩晴尨寝室号:);scanf(%s,pers[i].qsh);牰湩晴尨本人电话:);scanf(%s,pers[i].tel);if(isnum(pers[i].tel)==0){牰湩晴尨输入的电话号码错误,系统将以 \'0000\' 代替!\n );strcpy(pers[i].tel,.....}printf(\处理后的结果:\n);printf(#Record 学号姓名性别班级楼号寝室号本人电话\n);printf(} %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n,i+1,pers[i].num,pers[i].name,pers[i].sex,pe rs[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel);}}printf(\处理结束!\n);getch();}void tj1(){char name[10];int i,m;system(cls);printf(\\n\n**********按班级统计**********\n);printf(\请输入要统计人数的班级号:);scanf(%s,name);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].class1,name)==0 )m++;if(m==0)printf(\文件中没有符合条件的数据!\n);elseprintf(%s 班有 %d 人住宿\n,name,m);printf(\\n统计结束!\n );getch();}void tj2(){char name[10];int i,m;system(cls);printf(\\n\n**********按楼号统计**********\n);printf(\请输入要统计人数的楼号:);.....scanf(%s,name);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].lh,name)==0 )m++;if(m==0)printf(\文件中没有符合条件的数据!\n);elseprintf(%s 号楼有 %d 人住宿\n,name,m);printf(\\n统计结束!\n );getch();}void tj3(){char name[10];char num[10];int i,m;system(cls);printf(\\n\n**********按楼号+寝室号统计**********\n); printf(\请输入要统计人数的楼号:);scanf(%s,name);printf(\请输入寝室号:);scanf(%s,num);m=0;for(i=0;i<n;i++)if(strcmp(pers[i].lh,name)==0 && strcmp(pers[i].qsh,num)==0)m++;if(m==0)printf(\文件中没有符合条件的数据!\n);elseprintf(%s 号楼的 %s 寝室有 %d 人住宿\n,name,num,m);printf(\\n统计结束!\n );getch();}int isnum(char *s){int i=0;while(s[i]).....{if(!(s[i]>='0' && s[i]<='9')) return 0;else i++;}return 1;}void explain(){system(cls);printf(**************************************************************\n); printf( **\n);printf( **\n);printf( * 湖南工业大学学生宿舍管理系统*\n);printf( **\n);printf( **\n);printf(****************************************************************\n);printf(\\n\n);牰湩晴尨本学生宿舍管理系统由某某班学生某某某编写,本程序有许多不足之处,\n);牰湩晴尨欢迎大家提出意见,以供修改。