資源簡介
學生宿舍管理系統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? {?
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++\
- 上一篇:算術編碼純C語言實現
- 下一篇:OpenCv背景差分228299
評論
共有 條評論