HDU 1497 Simple Library Management System

这题是模拟题...不要想复杂了哦 呵呵

 
  
#include < stdio.h >
#include
< stdlib.h >

struct Person{
int num;
int b[ 9 ];
void init(){
num
= 0 ;
}
};
Person person[
1001 ];

int book[ 100001 ];

void makeset( int n){
for ( int i = 0 ; i <= n; ++ i)
book[i]
= - 1 ;
}
int main(){
int m, n, times;
while (scanf( " %d%d " , & m, & n) == 2 ){
makeset(n);
for ( int i = 0 ; i <= m; ++ i)
person[i].init();
scanf(
" %d " ,×);
while ( times -- ){
int x,user;
char cmd[ 3 ];
scanf(
" %s " ,cmd);
switch (cmd[ 0 ])
{
case ' R ' :
int x;
scanf(
" %d " , & x);
if (book[x] == - 1 )
printf(
" The book is already in the library\n " );
else {
int temp;
int num = person[book[x]].num;
for ( int j = 0 ; j < num; ++ j){
if (person[book[x]].b[j] == x){
temp
= j;
}
}
for ( int j = temp; j < num; j ++ ){
person[book[x]].b[j]
= person[book[x]].b[j + 1 ];
}
person[book[x]].num
-- ;
book[x]
= - 1 ;
printf(
" Return success\n " );
}
break ;
case ' Q ' :
scanf(
" %d " , & user);
if (person[user].num == 0 ){
printf(
" Empty\n " );
}
else {
int num = person[user].num;
for ( int i = 0 ; i < num; ++ i){
for ( int j = num - 1 ; j > i; -- j){
if (person[user].b[i] > person[user].b[j]){
int t = person[user].b[i];
person[user].b[i]
= person[user].b[j];
person[user].b[j]
= t;
}
}
}
for ( int i = 0 ; i < num; ++ i){
if ( i != 0 )
printf(
" " );
printf(
" %d " ,person[user].b[i]);
}
printf(
" \n " );
}
break ;
case ' B ' :
scanf(
" %d%d " , & user, & x);
if (book[x] != - 1 ){
printf(
" The book is not in the library now\n " );
}
else {
if (person[user].num >= 9 ){
printf(
" You are not allowed to borrow any more\n " );
}
else {
int num = person[user].num;
person[user].b[num
++ ] = x;
person[user].num
++ ;
book[x]
= user;
printf(
" Borrow success\n " );
}
}
break ;
}


}
printf(
" \n " );
}
return 0 ;
}

转载于:https://www.cnblogs.com/lxf90/archive/2011/04/16/2018471.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值