收藏 分销(赏)

c语言专业课程设计宿舍标准管理系统.doc

上传人:快乐****生活 文档编号:2727306 上传时间:2024-06-05 格式:DOC 页数:32 大小:266.54KB 下载积分:12 金币
下载 相关 举报
c语言专业课程设计宿舍标准管理系统.doc_第1页
第1页 / 共32页
c语言专业课程设计宿舍标准管理系统.doc_第2页
第2页 / 共32页


点击查看更多>>
资源描述
《面向过程程序设计》┊┊ 课 程 设 计 课程名称:学生宿舍管理系统 院 系: 班 级: 学 号: 姓 名: 指导老师: 目录 1. 引言……………………………………………………….2 2. 课程设计任务书………………………………………….3 a) 设计目标 b) 设计要求 c) 课程设计汇报装订内容及次序 d) 设计题目 3. 程序设计说明书………………………………………….3 4. 课程设计目标…………………………………………….4 a) 目标 b) 试验内容 c) 需求分析 5. 程序基础框架结构图…………………………………….5 6. 程序测试………………………………………………….6 7. 课程设计总结…………………………………………….8 8. 附录(源代码)………………………………………….18 引言 学生宿舍管理系统对于一个学校来说是必不可少组成部分。目 前好多学校还停留在宿舍管理人员手工统计数据最初阶段,手工记 录对于规模小学校来说还勉强能够接收,但对于学生信息量比较庞 大,需要统计存档数据高校来说,人工统计是相当麻烦。而且 当查找某条统计时,因为数据量庞大,还只能靠人工一条条去查找, 这么不仅麻烦还浪费了很多时间,效率也比较低。当今社会是飞速进 步而世界,原始统计方法已经被社会所淘汰,计算机化管理正是 适应时代产物。信息世界永远不会是一个平静世界,当一个技术 不能满足需求时,就会有新技术诞生并替换旧技术。二十一世纪今天, 信息社会占着主流地位,,计算机在各行各业中利用已经得到普及, 自动化、信息化管理越来越广泛应用于各个领域。故伴随宿舍需要 管理信息快速增加,建立一个宿舍管理系统可使宿舍管理人员管 理工作系统化、规范化、自动化,大大提升管理效率。 课程设计任务书 一、设计目标 经过此次课程设计使学生深入加深对C语言课程内容了解,初步掌握通常应用程序开发方法和步骤,深入了解和掌握C语言编程方法和技巧,提升学生用C语言处理实际问题能力。 二、设计要求 1、认真查阅参考书、资料 2、遵守课程设计时间安排 3、按时上机,认真调试程序 4、认真完成课程设计汇报 三、课程设计汇报装订内容及次序 1、课程设计封皮 2、目录 3、引言 4、课程设计任务书 5、程序设计说明书 6、程序设计目标 7、程序基础框架结构图 8、课程设计总结和心得 四、设计题目 湖南工业大学学生宿舍管理系统 程序设计说明书 该课程设计课题是湖南工业大学学生宿舍管理系统。这个系统关键是实现对学生信息输入,输出,追加,查询,修改,统计及删除等功效,完成对学生宿舍信息管理。 在学生宿舍管理系统中关键有输入、显示、追加、查询、修改、统计、删除及退出7大功效。 设计首页界面使其美观。 ┊┊ 课程设计目标 一、目标 1.经过此次课程设计,强化上级动手能力,在理论和实践基础上深入巩固 《C语言程序设计》课程学习内容,掌握工程软件设计基础方法。 2.熟悉C语言基础内容从而掌握C语言基础知识和了解C程序基础编写及运行。 3.了解程序分模块编写并对程序每个模块进行具体设计而且能了解通常C语言编写程序。 4.熟悉C程序设计开发环境及C程序调试过程。 二、试验内容 我设计是“学生宿舍管理系统”,关键是针对住宿学生个人信息管理,适用对象关键是学校,以方便学校对住宿学生管理。包含学生姓名、学号、性别、专业、班级等等。在编写过程中关键利用C语言基础知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(次序结构、判定选择结构、循环结构);大程序功效分解方法(即函数调用和使用)等。 三、需求分析 该程序是由C语言编写一个宿舍管理查询软件,本程序在Microsoft Visual 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*****输入错误,请重新输入!*****\n"); } } } void zm() { printf(" **************************************************************\n"); printf(" * *\n"); printf(" * *\n"); printf(" * 湖 南 工 业 大 学 学 生 宿 舍 管 理 系 统 *\n"); printf(" * *\n"); printf(" * *\n"); printf(" *************************************************************\n"); printf("\n\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\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 ; default : printf("输入错误,按任意键返回!"); 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\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 ; default : printf("输入错误,按任意键返回!"); getch(); return ; } } void cx1() { char name[10]; int i,m; system("cls"); printf("\n\n\n**********按学号查询**********\n"); printf("\n 请输入要查询学号:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].num,name)==0 ) { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); m++; } if(m==0) printf("\n 查无此人!\n"); printf("press any key continue\n "); getch(); } void cx2() { char name[20]; int i,m; system("cls"); printf("\n\n\n**********按姓名查询**********\n"); printf("\n 请输入姓名:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].name,name)==0 ) { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); m++; } if(m==0) printf("\n 查无此人!\n"); printf("press any key continue\n "); getch(); } void cx3() { char name[10]; int i,m; system("cls"); printf("\n\n\n**********按楼号查询**********\n"); printf("\n 请输入要查询楼号:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].lh,name)==0 ) { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); m++; } if(m==0) printf("\n 文件中没有该楼学生数据!\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**********按楼号+寝室号查询**********\n"); printf("\n 请输入要查询楼号:"); scanf("%s",name); printf("\n 请输入要查询寝室号:"); 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("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); m++; } if(m==0) printf("\n 文件中没有符合条件数据!\n"); printf("press any key continue\n "); getch(); } void load() { FILE *fp; n=0; if((fp=fopen("xsss.txt","rb"))==NULL) { printf("The file is not found!\nplease append new data!\n"); return ; } while(fread(&pers[n],sizeof(XSSS),1,fp)!=0) /*(!feof(fp))*/ { n++; } printf("数据导入成功 !\n"); fclose(fp); } void save() { FILE *fp; int i=0; if((fp=fopen("xsss.txt","wb"))==NULL) { 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); printf("数据已保留\n"); } void input() { XSSS a; while(1) { system("cls"); printf("\n\n\n********** 输 入 信 息 **********\n"); printf("\n 请输入学生住宿信息\n"); printf("学号:"); scanf("%s",a.num); printf("姓名:"); scanf("%s",a.name); printf("性别:"); scanf("%s",a.sex); printf("班级:"); scanf("%s",a.class1); printf("楼号:"); scanf("%s",a.lh); printf("寝室号:"); scanf("%s",a.qsh); printf("本人电话:"); scanf("%s",a.tel); if(isnum(a.tel)==0) { printf("输入电话号码错误,系统将以 \'0000\' 替换!\n "); strcpy(a.tel,"0000"); } pers[n++]=a; printf("是否继续录入(Y/N)?"); if (toupper(getch())=='N') break; } } void list() { int i; system("cls"); printf("\n\n\n********显示全部个人信息********\n"); for(i=0;i<n;i++) { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[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**********修 改 学 生 住 宿 信 息**********\n"); printf("\n 请输入要修改学生学号:"); scanf("%s",num); for(i=0;i<n;i++) if(strcmp(pers[i].num,num)==0) break; if(i==n) printf("\n 文件中没有该学生数据,无法进行修改操作!\n"); else { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); printf("\n 真要修改吗(Y/N)?"); if (toupper(getch())=='Y') { printf("\n 请输入新信息:\n"); printf("学号:"); scanf("%s",pers[i].num); printf("姓名:"); scanf("%s",pers[i].name); printf("性别:"); scanf("%s",pers[i].sex); printf("班级:"); scanf("%s",pers[i].class1); printf("楼号:"); scanf("%s",pers[i].lh); printf("寝室号:"); scanf("%s",pers[i].qsh); printf("本人电话:"); scanf("%s",pers[i].tel); if(isnum(pers[i].tel)==0) { printf("输入电话号码错误,系统将以 \'0000\' 替换!\n "); strcpy(pers[i].tel,"0000"); } printf("\n处理后结果:\n"); printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); } } printf("\n处理结束!\n"); getch(); } void tj1() { char name[10]; int i,m; system("cls"); printf("\n\n\n**********按班级统计**********\n"); printf("\n 请输入要统计人数班级号:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].class1,name)==0 ) m++; if(m==0) printf("\n 文件中没有符合条件数据!\n"); else printf("%s 班有 %d 人住宿\n",name,m); printf("\n\n统计结束!\n "); getch(); } void tj2() { char name[10]; int i,m; system("cls"); printf("\n\n\n**********按楼号统计**********\n"); printf("\n 请输入要统计人数楼号:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].lh,name)==0 ) m++; if(m==0) printf("\n 文件中没有符合条件数据!\n"); else printf("%s 号楼有 %d 人住宿\n",name,m); printf("\n\n统计结束!\n "); getch(); } void tj3() { char name[10]; char num[10]; int i,m; system("cls"); printf("\n\n\n**********按楼号+寝室号统计**********\n"); printf("\n 请输入要统计人数楼号:"); scanf("%s",name); printf("\n 请输入寝室号:"); 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 文件中没有符合条件数据!\n"); else printf("%s 号楼 %s 寝室 有 %d 人住宿\n",name,num,m); printf("\n\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"); printf("本学生宿舍管理系统由某某班学生某某某编写,本程序有很多不足之处,\n"); printf("欢迎大家提出意见,以供修改。本系统最终版权解释归本人全部,未经许可,不得转载。"); printf("联络方法: "); getch(); } void dele() { char name[10]; int i,m,j,n; system("cls"); printf("\n\n\n********** 删 除 信 息 **********\n"); printf("\n 请输入要删除学生信息:"); scanf("%s",name); m=0; for(i=0;i<n;i++) if(strcmp(pers[i].class1,name)==0 ) { m++;break; } if(m==0) printf("没有找到该学生信息"); else { printf("#Record 学号 姓名 性别 班级 楼号 寝室号 本人电话\n"); printf("%7d %-8s%-8s%-6s%-8s%-8s%-8s%-8s\n",i+1,pers[i].num,pers[i].name,pers[i].sex,pers[i].class1,pers[i].lh,pers[i].qsh,pers[i].tel); printf("\n 真要删除吗(Y/N)?"); if (toupper(getch())=='Y') //toupper小写变大写 { for(j=i;j<n-1;j++) pers[j]=pers[j+1]; n--; } } printf("\n\n删除结束!\n "); getch(); } 测试分析 1).显示主菜单界面 2).录入界面: 3).修改界面 4).信息显示界面 5).查询界面 6).统计界面 7).删除界面 8).版权界面 课程设计总结 为期一周C
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服