• 大小: 9KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 课程设计  

资源简介

学生宿舍管理系统VC6.0,数据结构课程设计

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
typedef struct student//学生信息
{
char name[20];
int studentnum;
int roomnum;
}student;
typedef struct//顺序表储存结构
{
student *elem;
int length;
}stulist;
struct node//哈希表储存结构
{
student info;
node *next;
};

void SelectSortid(stulist stu)
{
int k;
for(int i=0;i {
k=i;
for(int j=i+1;j {
if(stu.elem[j].studentnum if(i!=k)
{
student t;
t=stu.elem[i];
stu.elem[i]=stu.elem[k];
stu.elem[k]=t;
}
}
}

}
void SelectSortroom ( stulist stu) //按房间号选择排序
{
int ijk;
for ( i = 1; i < stu.length; ++i ) // 选择第i个小的记录,并交换到位

k = i;
for ( j = i+1; j <=stu.length; ++j ) // 在 L.r[i..length] 中选择 id 最小的记录
if ( stu.elem[j].roomnum  if ( i != k ) // 与第 i 个记录交换

student t;
t = stu.elem[i]; 
stu.elem[i] = stu.elem[k]; 
stu.elem[k] = t;



void inint(stulist& stu)
{
cout<<“请输入学生数目:“;cin>>stu.length;
for(int i=1;i<=stu.length;i++)
{
cout<<“请输入第“< cout<<“姓名:“; cin>>stu.elem[i].name;
cout<<“学号:“; cin>>stu.elem[i].studentnum;
cout<<“房间号:“; cin>>stu.elem[i].roomnum;
}
SelectSortid( stu );
}
int Idcheck(stulist stuint num)     //按学号查找(若找到则返回位置,否则返回0)(折半查找)
{

SelectSortid ( stu);
int low=1high=stu.length;
while(low<=high)
{
int mid=(low+high)/2;
if(num==stu.elem[mid].studentnum)
return mid;
else if(num high=mid-1;
else
low=mid+1;
}
return 0;
}
int Roomcheck(stulist stuint roomnum)   //按房间号查找
{
int low=1high=stu.length;
while(low<=high)
{
int mid=(low+high)/2;
if(roomnum==stu.elem[mid].roomnum)
return mid;
else if(roomnum high=mid-1;
else
low=mid+1;
}
return 0;
}
void CreathHash(stulist stunode num[27]) //建哈希表(链地址法解决冲突)
{
for(int i=1;i<=26;i++)
num[i].next=NULL;
for(i=1;i<=stu.length;i++)
{
int a=stu.elem[i].name[0]-96;
node *p=(node *)malloc(sizeof(node));
strcpy(p->info.namestu.elem[i].name);
p->info.studentnum=stu.elem[i].studentnum;
p->info.roomnum=stu.elem[i].roomnum;
p->next=num[a].next;
num[a].next=p;
}
}
void Namefind(stulist stunode num[27]char na[20])    //按姓名查找
{

CreathHash(stunum);
for(int i=1;i<=26;i++)
{
node *p=num[i].next; 
while(p!=NULL)
{
if(strcmp(p->info.namena)==0)
{
cout<<“该用户的信息为:“< cout<<“姓名:“;
cout<info.name< cout<<“学号:“;
            cout<info.studentnum< cout<<“房间号:“;
            cout<info.roomnum< return;
}
else
p=p->next;
}
}
cout<<“没有该学生!“<}
void Deleinfo(stulist stu)   //删除信息
{

cout<<“请输入您要删除的学生的房间号:“;
int room;cin>>room;
if(!Roomcheck(sturoom))
cout<<“没有该学生!“< e

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        5700  2011-06-19 12:48  学生宿舍C++\学生宿舍.cpp
     文件        3427  2011-06-21 18:50  学生宿舍C++\学生宿舍.dsp
     文件         524  2011-06-21 18:56  学生宿舍C++\学生宿舍.dsw
     文件       41984  2011-06-21 18:56  学生宿舍C++\学生宿舍.ncb
     文件       48640  2011-06-21 18:56  学生宿舍C++\学生宿舍.opt
     文件         756  2011-06-21 18:50  学生宿舍C++\学生宿舍.plg
     目录           0  2012-08-05 11:02  学生宿舍C++\

评论

共有 条评论