用c语言写宿舍管理查询软件,跪求大神帮忙改下
发布网友
发布时间:2024-03-05 14:41
我来回答
共1个回答
热心网友
时间:2024-03-29 16:20
#include<stdio.h>
#include<string.h>
typedef struct DometoryMember{
char sno[16];
char name[32];
char phone[16];
char address[20];
}DB;
//创建一张宿舍成员信息表
int createList(DB a[]){
FILE *r = fopen("input.txt","r");
int i=0;
while(fscanf(r,"%s%s%s%s",a[i].sno,a[i].name,a[i].phone,a[i].address) != EOF){
i++;
}
return i;
}
//根据学号查找某个学生,显示其基本信息
int lookup(DB a[],int n,char sno[]){
int i=0;
while(strcmp(a[i].sno,sno) != 0 && i<n){
i++;
}
if(i==n){
printf("没有此人\n");
return -1;
}
else{
printf("%s\t%s\t%s\t%s\n",a[i].sno,a[i].name,a[i].phone,a[i].address);
return i;
}
}
//根据学号删除某个学生
int del(DB a[],int n,char sno[]){
int i;
printf("删除学号为%s的学生:\n",sno);
i = lookup(a,n,sno);
if(i != -1){
int j;
for(j=i+1;j<n;j++){
a[j-1] = a[j];
}
return n-1;
}
else{
return -1;
}
}
int main(){
DB a[16];
int n = createList(a);
printf("总共%d个学生\n",n);
char sno[20];
scanf("%s",sno);
int i = lookup(a,n,sno);
n = del(a,n,sno);
printf("删除之后还剩%d个学生\n",n);
getchar();
getchar();
return 0;
}