C语言——宿舍管理查询系统设计

本文介绍了一个使用C语言编写的宿舍管理查询系统,包括数据结构设计、算法实现及功能,如姓名、学号、房号的排序和查询。程序通过二分查找实现查询操作,并提供了插入和删除功能。
摘要由CSDN通过智能技术生成

数据结构——宿舍管理查询系统设计

算法实现:

宿舍管理查询系统设计
1) 任务:为宿舍管理人员编写一个宿舍管理查询软件, 程序设计要求:
  A. 采用交互工作方式
  B. 建立数据文件 ,数据文件按关键字(姓名、学号、房号)进行排序(冒泡、选择、插入排序等任选一种)
2) 查询菜单: (用二分查找实现以下操作)
  A. 按姓名查询 
  B. 按学号查询 
  C. 按房号查询
3) 打印任一查询结果(可以连续操作)

 

程序:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>                   //使用字符串

#define X 40                         //现性表存储空间的初始分配量

#define increase 10                  //现性表存储空间的分配量增量

int f,t=0;                           //定义全局变量

typedef struct

{

int xuehao;

int fanghao;

char name[20];   //字符串存放姓名

}stu;

stu stud;

typedef struct

{

int length;       //长度

int listsize;     //占用内存空间

stu*elem;         //引用对象stu的数据成员elem

}linklist;

 

//线性表初始化

void init(linklist & l)     //&指针应用,取变量地址

{

l.length=0;

l.listsize=X;

l.elem=(stu*)malloc(X*sizeof(stu));      //指针使用要前初始化

}

//操作菜单

void caozuo()

{

printf("                  请选择操作:\n\n");

printf("\n");

printf("   1.姓名排序       2.学号排序     3.房号排序    \n\n");

printf("   4.姓名查找       5.学号查找     6.房号查找    \n\n");

printf("   7.学号插入       8.学号删除    \n\n  ");

printf(" 输入0,退出操作\n");

if(t==1)

{

printf("输入数字:\n");

scanf("%d",&f);

if(f<0 && f>9)

{

system("cls");          //清除屏幕上之前显示内容

printf("\n");

printf("重新输入:\n");

caozuo();

}

}

}

//返回主界面

void disp()

{

char c;

fflush(stdin);

printf("\n按任意键进入主界面:");

scanf("%c",&c);

system("cls");

}

//无学生记录返回主界面

void panduan3()

{

printf("无学生记录\n");

disp();

caozuo();

}

//输入学生信息

void shuru(linklist l)

{

printf("输入姓名:\n");

     fflush(stdin);          //清除数据,得到正确的输入数据

gets(stud.name);

printf("输入学号:\n");

fflush(stdin);

    scanf("%d",&stud.xuehao);

printf("输入房号:\n");

    scanf("%d",&stud.fanghao);

}

//创建学生类信息表

void chuangjian(linklist & l)

{

if(l.length>=l.listsize)       //判断是否超过初始值,超过,另行分配

{

stu*newbase;

newbase=(stu*)realloc(l.elem,(X+increase)*sizeof(stu));

  • 34
    点赞
  • 155
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值