c语言课程设计宿舍管理系统.docx
《c语言课程设计宿舍管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计宿舍管理系统.docx(24页珍藏版)》请在冰豆网上搜索。
c语言课程设计宿舍管理系统
《面向过程程序设计》
┊┊
课程设计
课程名称:
学生宿舍管理系统
院系:
班级:
学号:
姓名:
指导教师:
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、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课程设计报告装订内容及顺序
1、课程设计封皮2、目录
3、引言4、课程设计任务书
5、程序设计说明书6、程序设计目的
7、程序基本框架结构图8、课程设计总结与心得
四、设计题目
湖南工业大学学生宿舍管理系统
程序设计说明书
该课程设计的课题是湖南工业大学学生宿舍管理系统。
这个系统主要是实现对学生信息的输入,输出,追加,查询,修改,统计及删除等功能,完成对学生宿舍信息的管理。
在学生宿舍管理系统中主要有输入、显示、追加、查询、修改、统计、删除及退出7大功能。
设计首页界面使其美观。
┊┊
课程设计目的
一、目的
1.通过本次课程设计,强化上级动手能力,在理论和实践的基础上进一步巩固《C语言程序设计》课程的学习内容,掌握工程软件设计的基本方法。
2.熟悉C语言的基本内容从而掌握C语言的基本知识以及了解C程序的基本编写及运行。
3.了解程序的分模块编写并对程序的每个模块进行详细的设计并且能理解一般C语言编写的程序。
4.熟悉C程序设计的开发环境及C程序的调试过程。
二、实验内容
我设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。
包括学生的姓名、学号、性别、专业、班级等等。
在编写过程中主要运用C语言的基本知识有:
数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。
三、需求分析
该程序是由C语言编写的一个宿舍管理查询软件,本程序在MicrosoftVisualC++下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。
其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。
统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计。
程序基本框架结构图
学生宿舍管理系统
数
据
显示
数
据
追
加
数
据
查
询
数
据
修改
数
据统
计
按
楼
寝
查询
数据删除
返
回
按
楼号
查询
退出系统
数
据
输
入
按
学号
查询
按姓名
查询
源代码清单
#include<>
#include<>
#include<>
#include<>
#include<>
#defineM10000
typedefstructsushe
{
charnum[10];
charname[20];
charsex[5];
charclass1[10];
charlh[10];
charqsh[10];
chartel[15];
}XSSS;
XSSSpers[M];
intn=0;
voidcx1();
voidcx2();
voidcx3();
voidcx4();
voidtj1();
voidtj2();
voidtj3();
intisnum(char*);
voidzm();
voidload();
voidmodify();
voidinput();
voidsave();
voidlist();
voidzm1();
voidzm3();
voidexplain();
voiddele();
main()
{
charc;
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");
}
}
}
voidzm()
{
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");
}
voidzm1()
{
charc;
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;
}
}
voidzm3()
{
charc;
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;
}
}
voidcx1()
{
charname[10];
inti,m;
system("cls");
printf("\n\n\n**********按学号查询**********\n");
printf("\n请输入要查询的学号:
");
scanf("%s",name);
m=0;
for(i=0;iif(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("pressanykeycontinue\n");
getch();
}
voidcx2()
{
charname[20];
inti,m;
system("cls");
printf("\n\n\n**********按姓名查询**********\n");
printf("\n请输入姓名:
");
scanf("%s",name);
m=0;
for(i=0;iif(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("pressanykeycontinue\n");
getch();
}
voidcx3()
{
charname[10];
inti,m;
system("cls");
printf("\n\n\n**********按楼号查询**********\n");
printf("\n请输入要查询的楼号:
");
scanf("%s",name);
m=0;
for(i=0;iif(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("pressanykeycontinue\n");
getch();
}
voidcx4()
{
charname[10];
charnum[10];
inti,m;
system("cls");
printf("\n\n\n**********按楼号+寝室号查询**********\n");
printf("\n请输入要查询的楼号:
");
scanf("%s",name);
printf("\n请输入要查询的寝室号:
");
scanf("%s",num);
m=0;
for(i=0;iif(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("pressanykeycontinue\n");
getch();
}
voidload()
{
FILE*fp;
n=0;
if((fp=fopen("","rb"))==NULL)
{
printf("Thefileisnotfound!
\npleaseappendnewdata!
\n");
return;
}
while(fread(&pers[n],sizeof(XSSS),1,fp)!
=0)/*(!
feof(fp))*/
{
n++;
}
printf("数据导入成功!
\n");
fclose(fp);
}
voidsave()
{
FILE*fp;
inti=0;
if((fp=fopen("","wb"))==NULL)
{
printf("Thefileisnotfound!
\npleaseappendnewdata!
\n");
return;
}
for(i=0;ifwrite(&pers[i],sizeof(XSSS),1,fp);
fclose(fp);
printf("数据已保存\n");
}
voidinput()
{
XSSSa;
while
(1)
{
system("cls");
printf("\n\n\n**********输入信息**********\n");
printf("\n请输入学生住宿信息\n");
printf("学号:
");
scanf("%s",;
printf("姓名:
");
scanf("%s",;
printf("性别:
");
scanf("%s",;
printf("班级:
");
scanf("%s",;
printf("楼号:
");
scanf("%s",;
printf("寝室号:
");
scanf("%s",;
printf("本人电话:
");
scanf("%s",;
if(isnum==0)
{
printf("输入的电话号码错误,系统将以\'0000\'代替!
\n");
strcpy,"0000");
}
pers[n++]=a;
printf("是否继续录入(Y/N)");
if(toupper(getch())=='N')
break;
}
}
voidlist()
{
inti;
system("cls");
printf("\n\n\n********显示所有个人信息********\n");
for(i=0;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("pressanykeycontinue\n");
getch();
}
voidmodify()
{
charnum[20];
inti;
system("cls");
printf("\n\n\n**********修改学生住宿信息**********\n");
printf("\n请输入要修改学生的学号:
");
scanf("%s",num);
for(i=0;iif(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();
}
voidtj1()
{
charname[10];
inti,m;
system("cls");
printf("\n\