...《面向过程程序设计》┊┊计程设课课程名称:学生宿舍管理系统院系:级:班学号:姓名:指导教师:.....目录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);牰湩晴尨欢迎大家提出意见,以供修改。