宿舍管理系统报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int read_message()
{
FILE *fp;
int i=0;
if((fp=fopen("dom.txt","rt"))==NULL)
{
printf("\n\n*****暂时还没有任何信息,按任意键进入主菜单选择基本信息的录入!*****\n");
return 0;
}
while(!feof(fp))
}
else flag=0;
}while(flag==1);
printf("\n 按任意键返回主菜单!");
return 0;
}
/*删除模块*/
del_message()
{int flag,del_num,i,k;
char choice;
do
{printf("\n 输入要删除的学生学号: ");
scanf("%d",&del_num);
scanf("%d",&s[i].st.age);
printf("\n 学生年级: ");
scanf("%d",&s[i].st.grade);
printf("\n 学生班级: ");
scanf("%d",&s[i].st.nclass);
printf("\n 学生专业: ");
scanf("%s",&s[i].st.zhuanye);

1
2
3
4
5
6
7
8
9

#include <stdio.h>
#include "string.h"
#define MAX 10
#define PRINT1 printf("---------------------------------------------------------------------------\n")
do
{
printf("\n 输入要修改的学生号: ");
scanf("%d",&revise_num);
for(i=0;i<sum;i++)
if(s[i].st.num==revise_num)
{
printf("\n --学生信息--\n");
PRINT1;
PRINT2;
printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);
printf("\n 学生年龄: ");
scanf("%d",&s[i].st.age);
printf("\n 学生年级: ");
scanf("%d",&s[i].st.grade);
printf("\n 学生班级: ");
scanf("%d",&s[i].st.nclass);
printf("\n 学生专业: ");
char zhuanye[30];
};
struct dom
{
int bui_num;
int floor_num;
int room_num;
int bed_num;
struct stu st;
}s[MAX],p;
/*保存信息*/
save_message()
{ FILE *fp;
int i;
if((fp=fopen("dom.txt","wt"))==NULL)
第四修改模块:调用revise_message(),对需修改学生的信息进行修改。
第五删除模块:调用delete_message(),对某一学生信息进行删除操作。
第六查询模块:调用find_message(),分别以姓名、学号、宿舍号对学生信息进行查询。
第七统计模块:调用census_message(),分别以学号、宿舍号、性别、班级、专业方式对学生信息进行统计,并按学号由小到大输出。
{
printf("读文件错误!\n");
return 0;
}
for(i=0;i<sum;i++)
if(fwrite(&s[i],sizeof(struct dom),1,fp)!=1)
printf("写文件错误!\n");
fclose(fp);
}
/*输入模块*/
input_message()
{ int i=0;
//clrscr();
printf("\n\n 录入学生信息(最多%d个)\n",MAX);
printf(" ----------------------------\n");
do
{
printf("\n 第%d个学生\n\n",i+1);
printf("\n 学号: ");
scanf("%d",&s[i].st.num);
for(i=0;i<sum;i++)
if(s[i].st.num!=0)
{
printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,
s[i].st.grade,s[i].st.nclass,s[i].st.zhuanye,s[i].bui_num,s[i].floor_num,s[i].room_num,s[i].bed_num);

1
2
程序中数据主要是学生信息和宿舍信息,具体属于类型如下:
struct stu
{
char name[20];
int num;
char sex;
int age;
int grade;
int nclass;
char zhuanye[30];
};
struct dom
{
int bui_num;
int floor_num;
学生宿舍管理系统
一、实验目的
1.熟练掌握线性表的基本操作在顺序存储和链式存储上的实现。、;
2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;
3.掌握线性表的动态分配顺序存储结构的定义和基本操作的实现;
4.通过实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用和链表的建立等各种基本操作)。
scanf("%s",s[i].st.zhuanye);
printf("\n 宿舍楼号: ");
scanf("%d",&s[i].bui_num);
printf("\n 宿舍楼层号: ");
scanf("%d",&s[i].floor_num);
printf("\n 宿舍房间号: ");
scanf("%d",&s[i].room_num);

台式计算机每人一台;
软件:Visual C++6.0;

该程序是由C语言编写的一个宿舍管理查询软件,本程序在Microsoft Visual C++ 6.0下运行,其主要功能是实现对学生信息的录入、添加、删除、修改、查询、统计。其中查询可以分别以姓名、学号、宿舍号为关键字查询学生信息。统计可以分别以学号、宿舍号、性别、班级、专业为关键字进行统计,并且输出信息按学号大小从小到大输出。
for(i=0;i<sum;i++)
if(del_num==s[i].st.num)
for(k=i;k<sum-1;k++)
s[k]=s[k+1];
sum--;
printf("\n\n 继续吗?(Y/N)");
getchar();
scanf("%c",&choice);
if(choice=='y' || choice=='Y')
do
{
printf("\n 新学号: ");
scanf("%d",&s[i].st.num);
printf("\n 学生姓名: ");
scanf("%s",s[i].st.name);
printf("\n 学生性别(男生用M表示,女生用F表示):");
getchar();
scanf("%c",&s[i].st.sex);
printf("\n");
// bioskey(0);
}
return 0; ///
}
/*添加学生信息*/
insert_message()
{int i=sum,flag=0;
char choice;
printf("\n\n 添加一个新同学\n");
printf(" ---------------\n");
int room_num;
int bed_num;
struct stu st;
}s[MAX],p;
3
第一密码模块:调用cipher(),进行管理者的注册与登录操作。
第二录入模块:调用input_message(),对住宿学生信息进行录入。
第三添加模块:调用append_message(),对新来学生信息进行添加录入。
printf("\n 宿舍床号: ");
scanf("%d",&s[i].bed_num);
sum++;
printf("\n 要继续吗?(Y/N)");
getch百度文库r();
scanf("%c",&choice);
if(choice=='y' || choice=='Y')
{
flag=1;
i++;
printf("\n 继续!\n");
printf("\n 您要修改哪一项?\n");
printf("\n 1.学号\n");
printf("\n 2.性别\n");
printf("\n 3.姓名\n");
printf("\n 4.年龄\n");
printf("\n 5.年级\n");
printf("\n 6.班级\n");
printf("\n 7.专业\n");
#define PRINT2 printf("学号--学生姓名--性别--年龄--年级--班级--专业--楼号--楼层号--房间号--床号\n\n")
int sum;
struct stu
{
char name[20];
int num;
char sex;
int age;
int grade;
int nclass;
printf("\n 宿舍楼号: ");
scanf("%d",&s[i].bui_num);
printf("\n 宿舍楼层号: ");
scanf("%d",&s[i].floor_num);
printf("\n 宿舍房间号: ");
scanf("%d",&s[i].room_num);
printf("\n 宿舍床号: ");
scanf("%d",&s[i].bed_num);
i++;
}while(i<MAX);
printf("\n --%d个学生的信息输入完毕!--\n",i);
sum=i;
printf("\n 按任意键返回主菜单!");
getchar();
// bioskey(0);
return 0;
}
/*读取信息*/
printf("\n 8.楼号\n");
printf("\n 9.楼层号\n");
printf("\n 10.房间号\n");
printf("\n 11.床号\n");
printf("\n 请选择(1-11): ");
scanf("%d",&choices);
if(s[i].st.num==0) break;
printf("\n 学生姓名: ");
scanf("%s",s[i].st.name);
printf("\n 学生性别(男生用M表示,女生用F表示):");
getchar();
scanf("%c",&s[i].st.sex);
printf("\n 学生年龄: ");
二、实验内容
我组设计的是“学生宿舍管理系统”,主要是针对住宿学生个人信息的管理,适用对象主要是学校,以方便学校对住宿学生的管理。包括学生的姓名、学号、性别、专业、班级等等。在编写过程中主要运用C语言的基本知识有:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的调用与使用)等。
{
flag=1;
printf("\n 继续!\n");
}
else flag=0;
}while(flag==1);
printf("\n\n 按任意键返回主菜单!");
getchar();
return 0;
}
/*修改模块*/
revise_message()
{int i=0,choices,revise_num,flag=0; char choice;
{
fread(&s[i],sizeof(struct dom),1,fp);
i++;
}
fclose(fp);
return(i);
}
/*输出模块*/
output_message()
{ int i=0;
// clrscr();
printf("\n\n --学生信息表-- \n\n");
PRINT2;
PRINT1;
相关文档
最新文档