c语言宿舍管理系统
㈠ 用c语言做 学生宿舍管理系统
孩子 很清楚这是老师给你的作业题 ,,知识是被网络不出来的,,强烈建议看到此题的同仁不给出答案,,,,孩子 你自己试着写,,那不会,随时问 我们会解答 但你这是直接问作业 那老师还让你写干嘛???给你思路 那个合法才能进入,,只需要用个判断句就行,先输入密码 正确 则继续执行 错误 输出提示信息,,当然 这里你可以加一点花招 连续输入3次 直接退出程序或者等待1分钟才行,,哈哈 这个你可以写完不给老师说密码,然后老师输入,,哈哈 其他的的代码就是链表的知识了 课本上也都有的,,,,,好好学习啊 中国需要脚踏实地的程序员,,不要投机取巧,,
㈡ C语言程序设计:学生宿舍管理系统设计
给你个学生成绩管理的,你改一下变量名就好了
#include
#include
#define LEN sizeof(struct student)
#define N 35
#include
#define NULL 0
int n=0;
char m[8]={'0','1','2','3','4','5','6','7'};
int i;char c[10];char d[10];
char fname[20],fname0[20],fname6[20]={"shanchu"};
struct student
{long num;
char name[10];
int eng;
int math;
int comp;
int ave;
int all;
}p;
void shuru()
{FILE *fp;
printf("\n\n\t请输入存储学生数据的文件名:");
scanf("%s",fname);
fp=fopen(fname,"w");
printf("\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的信按回车键(Enter)\n");
printf("\t结束输入学生数据时,请输入一个学生的学号为0并按回车键\n");
printf("\t学号 姓名 英语 数学 计算机\n");
do{ printf("\t");
scanf("%ld",&p.num);
if(p.num==0) break;
scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp);
p.all=(p.eng+p.math+p.comp);
p.ave=(p.all/3);
fwrite(&p,LEN,1,fp);
n++;
}while(1);
fclose(fp);
}
void chazhao()
{char fname1[20];
FILE *fp;
do{printf("\n\n\t请输入查找学生数据的文件名:");
scanf("%s",fname1);
if(strcmp(fname1,fname)==0){fp=fopen(fname,"r");break;}
else printf("\t你输入的文件不存在\n");}while(1);
long number;
do
{ printf("\t请输入要查找的学生的学号按回键(Enter):");
scanf("%ld",&number); rewind(fp);
for(i=0;i { fread(&p,LEN,1,fp);
if(number==p.num) { printf("\t学号 姓名 英语 数学 计算机 平均分 总? \n");
printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all);
}
}
printf("\t你还要查找吗?如果继续请输y'加回车键,否'n'加回车键:");
scanf("%s",c);}while(c[0]=='y');
fclose(fp);
}
void paixu()
{FILE *fp;char fname3[20];struct student k[N];
do{printf("\n\n\t请输入你要排序的学生数据的文件名:");
scanf("%s",fname3);
if(strcmp(fname3,fname)==0)
{fp=fopen(fname,"r");break;}
else printf("\t你输入的文件不存在\n");}while(1);
rewind(fp);
for(i=0;i fread(&k[i],LEN,1,fp);
int w,q,j,g,t,t2,t3,t4,t5;char z[10];long t1;
for(q=0;q {g=q;
for(j=q+1;j if(k[j].ave t=k[g].ave;k[g].ave=k[q].ave;k[q].ave=t;
t1=k[g].num;k[g].num=k[q].num;k[q].num=t1;
t2=k[g].eng;k[g].eng=k[q].eng;k[q].eng=t2;
t3=k[g].math;k[g].math=k[q].math;k[q].math=t3;
t4=k[g].comp;k[g].comp=k[q].comp;k[q].comp=t4;
t5=k[g].all;k[g].all=k[q].all;k[q].all=t5;
for(w=0;w<10;w++)
{z[w]=k[g].name[w];k[g].name[w]=k[q].name[w];k[q].name[w]=z[w];};
}
fclose(fp);
printf("\n\n\t请输入存储排完序的数据的文件名\n\t注意此文件名和存储原始数据的文件名不相同\n");
printf("\t");
scanf("%s",fname0);
fp=fopen(fname0,"w");
for(i=0;i fclose(fp);
}
void shuchu()
{FILE *fp;char fname2[20];
do{printf("\n\n\t请输入你要输出学生数据的文件名:");
scanf("%s",fname2);
if(strcmp(fname2,fname)==0){fp=fopen(fname,"r");break;}
else if(strcmp(fname2,fname0)==0){fp=fopen(fname0,"r");break;}
else if(strcmp(fname2,fname6)==0){fp=fopen(fname6,"r");break;}
else printf("\t你输入的文件不存在\n");}while(1);
rewind(fp);
printf("\t学号 姓名 英语 数学 计算机 平均分 总分\n");
printf("\t==============================================================\n");
for(i=0;i {fread(&p,LEN,1,fp);
printf("\t%ld\t%s\t%d\t%d\t%d\t%d\t%d\n",p.num,p.name,p.eng,p.math,p.comp,p.ave,p.all);
}
printf("\t==============================================================\n");
fclose(fp);}
void tongji()
{FILE *fp;char fname4[20];int e1=0,e2=0,e3=0,e4=0,e5=0;
do{printf("\n\n\t请输入你要统计的学生数据的文件名:");
scanf("%s",fname4);
if(strcmp(fname4,fname)==0)
{fp=fopen(fname,"r");break;}
else printf("\t你输入的文件不存在\n");}while(1);
rewind(fp);
for(i=0;i {fread(&p,LEN,1,fp);
if(p.ave<=59&&p.ave>=0)e1=e1+1;
if(p.ave<=69&&p.ave>=60)e2=e2+1;
if(p.ave<=79&&p.ave>=70)e3=e3+1;
if(p.ave<=89&&p.ave>=80)e4=e4+1;
if(p.ave<=100&&p.ave>=90)e5=e5+1;
}
fclose(fp);
printf("\t按平均分统计各分数段的学生人数 \n");
printf("\t==============================================================\n");
printf("\t分数段\t0--59\t60--69\t70--79\t80--89\t90--100 \n");
printf("\t人 数 \t %d\t %d\t %d\t %d\t %d\n",e1,e2,e3,e4,e5);
printf("\t==============================================================\n");
}
void shanchu()
{FILE *fp,*fp1;char fname5[20];long number;struct student M[N];
printf("\n\t");
do{printf("\n\t请输入你要删除学生数据的文件名:");
scanf("%s",fname5);
if(strcmp(fname5,fname)==0)
{fp=fopen(fname,"r");break;}
else printf("\n\t你输入的文件不存在 \n");}while(1);
rewind(fp);
fp1=fopen(fname6,"w");
do{printf("\t请输入要删除数据的学生的学号并按回车键:");
scanf("%ld",&number);
for(i=0;i {fread(&M[i],LEN,1,fp);
if(M[i].num!=number)fwrite(&M[i],LEN,1,fp1);
}
n--;
fcloseall();
fp1=fopen(fname6,"r");fp=fopen(fname,"w");
for(i=0;i {fread(&M[i],LEN,1,fp1);fwrite(&M[i],LEN,1,fp);}
fcloseall();
printf("\t你还要删除吗?如果继续请输入'y'加回车键,否则'n'加回车键:");
scanf("%s",c);
}while(c[0]=='y');
}
void charu()
{FILE *fp;char fname7[20];
do{printf("\t请输入你要插入学生数据的文件名:");
scanf("%s",fname7);
if(strcmp(fname7,fname)==0){fp=fopen(fname,"r+");break;}
else printf("\t你输入的文件不存在 ");}while(1);
printf("\t请输入你要插入的数据\n\t输入的数据之间请用跳格键(Tab)隔开\n\t每输入完一个学生的数据按回车键(Enter) \n");
printf("\t结束插入学生数据时,请输入一个学生的学号为0并按回车键\n");
printf("\t学号\t姓名\t英语\t数学\t计算机 \n");
do{fseek(fp,n*LEN,0);printf("\t");
scanf("\t%ld",&p.num);
if(p.num==0) break;
scanf("\t%s\t%d\t%d\t%d",p.name,&p.eng,&p.math,&p.comp);
p.all=(p.eng+p.math+p.comp);
p.ave=(p.all/3);
fwrite(&p,LEN,1,fp);
n++;}while(1);
fclose(fp);
}
void zhujiemian()
{
printf("\n\t 主菜单 \n");
printf("\n");
printf("\t============================================================== \n");
printf("\n");
printf("\t 1.数据输入 2.数据输出 \n");
printf("\n");
printf("\t 3.数据排序(按平均分) 4.数据查找(按学号) \n");
printf("\n");
printf("\t 5.数据的插入 6.数据的删除(按学号) \n");
printf("\n");
printf("\t 7.数据的统计(按平均分)? 0.退出 \n");
printf("\n");
printf("\t============================================================== \n");
printf("\t请输入你的选择(0---7)并按回车键:");
scanf("%s",d);
}
void main()
{do
{
zhujiemian();
if(d[0]==m[0])break;
else if(d[0]==m[1]){shuru();printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");}
else if(d[0]==m[2]){shuchu();}
else if(d[0]==m[3]){paixu();}
else if(d[0]==m[4]){chazhao();}
else if(d[0]==m[5]){charu();}
else if(d[0]==m[6]){shanchu();}
else if(d[0]==m[7]){tongji();}
else {printf("\t你的选择不正确!请重新选择! \n");
}
}while(1);
printf("\n\t\n\t\n\t\n\t\n\t\n\t\n\t");
printf("\t\t谢谢你的使用!!! ") ;
}
㈢ C语言宿舍管理系统程序
#include<stdio.h>
#include<string.h>
typedefstructDometoryMember{
charsno[16];
charname[32];
charphone[16];
charaddress[20];
}DB;
//创建一张宿舍成员信息表
intcreateList(DBa[]){
FILE*r=fopen("input.txt","r");
inti=0;
while(fscanf(r,"%s%s%s%s",a[i].sno,a[i].name,a[i].phone,a[i].address)!=EOF){
i++;
}
returni;
}
//根据学号查找某个学生,显示其基本信息
intlookup(DBa[],intn,charsno[]){
inti=0;
while(strcmp(a[i].sno,sno)!=0&&i<n){
i++;
}
if(i==n){
printf("没有此人 ");
return-1;
}
else{
printf("%s %s %s %s ",a[i].sno,a[i].name,a[i].phone,a[i].address);
returni;
}
}
//根据学号删除某个学生
intdel(DBa[],intn,charsno[]){
inti;
printf("删除学号为%s的学生: ",sno);
i=lookup(a,n,sno);
if(i!=-1){
intj;
for(j=i+1;j<n;j++){
a[j-1]=a[j];
}
returnn-1;
}
else{
return-1;
}
}
intmain(){
DBa[16];
intn=createList(a);
printf("总共%d个学生 ",n);
charsno[20];
scanf("%s",sno);
inti=lookup(a,n,sno);
n=del(a,n,sno);
printf("删除之后还剩%d个学生 ",n);
getchar();
getchar();
return0;
}
㈣ C语言学生宿舍管理系统设计
1Java可以很简单的结合JS或其他方式实现BS模式访问的好看界面。而C如果要实现界面,或者要实现BS访问,则非常非常困难。至少对一个在校学生来说这几乎很难完成。2学生管理系统自然少不了数据库。JAVA的JDBC非常成熟,可以很简便的访问数据库。C访问数据库的库相对复杂,而且风格各异,需要一段时间学习和适应3JAVA语言相对简单,其内存回收,分配基本上都由系统完成。而C则需要自己完成。这意味着程序员需要花很多时间处理内存泄露问题。4C的优势,高效,简洁,自由。这些优点在学生管理系统或者毕业设计的场合几乎无法体现。至于跨不跨平台的毕业设计来说无所谓了吧
㈤ 求一个C语言的学生宿舍管理信息系统。简单点的,不用太长
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<process.h>
#include<conio.h>
struct Inf //宿舍信息
{
char I_class[20]; //班级信息
char I_num[20]; //学号
char I_name[20]; //姓名
char I_room[20]; //宿舍号
char I_score[20]; //评分
}A[100];
int N; //宿舍信息数量
void tool() //信息处理函数
{char a[20],s;
int b,i=0,j=1;
system("cls"); //选择要处理信息分类
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf(" 提取信息 \n\n");
printf(" 1.按班 级\n");
printf(" 2.按学 号\n");
printf(" 3.按姓 名\n");
printf(" 4.按宿舍号\n");
printf(" 5.按评 分\n\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
while(1)
{s=getch();
if(s>='1'&s<='5')break;
}
b=s-48;
switch(b)
{case 1:printf("请输入(班 级):");scanf("%s",a);break;
case 2:printf("请输入(学 号):");scanf("%s",a);break;
case 3:printf("请输入(姓 名):");scanf("%s",a);break;
case 4:printf("请输入(宿舍号):");scanf("%s",a);break;
case 5:printf("请输入(评 分):");scanf("%s",a);break;
}
while(i<N) //提取检索到得第一个位置的要处理信息
{switch(b)
{case 1:j=strcmp(a,A[i].I_class);break;
case 2:j=strcmp(a,A[i].I_num);break;
case 3:j=strcmp(a,A[i].I_name);break;
case 4:j=strcmp(a,A[i].I_room);break;
case 5:j=strcmp(a,A[i].I_score);break;
}
if(j==0)break;i++;
}
if(j==0)
{
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n班 级:%s",A[i].I_class);
printf("\n学 号:%s",A[i].I_num);
printf("\n姓 名:%s",A[i].I_name);
printf("\n宿舍号:%s",A[i].I_room);
printf("\n评 分:%s",A[i].I_score);
printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n [1修改] [2删除] [3返回] ");
while(1)
{s=getch();if(s>='1'&&s<='3')break;}
if(s=='1') //修改操作
{system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n请输入班 级:");scanf("%s",A[i].I_class);getchar();
printf("请输入学 号:");scanf("%s",A[i].I_num);getchar();
printf("请输入姓 名:");scanf("%s",A[i].I_name);getchar();
printf("请输入宿舍号:");scanf("%s",A[i].I_room);getchar();
printf("请输入评 分:");scanf("%s",A[i].I_score);getchar();
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("修改完成,按任意键返回......");
getch();
}
if(s=='2') //删除操作
{system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n\n\n\n删除完毕,按任意键返回......");
getch();
for(j=i;j<N;j++)
A[j]=A[j+1];
N--;
}
}
else
{printf("无此信息记录,按任意键返回......");getch();}
}
void input() //添加信息函数
{char a;
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n请输入班 级:");scanf("%s",A[N].I_class);getchar();
printf("请输入学 号:");scanf("%s",A[N].I_num);getchar();
printf("请输入姓 名:");scanf("%s",A[N].I_name);getchar();
printf("请输入宿舍号:");scanf("%s",A[N].I_room);getchar();
printf("请输入评 分:");scanf("%s",A[N].I_score);getchar();N++;
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
printf("\n输入完成,是否继续输入[y\\n]");
while(1)
{a=getch();if(a=='n'||a=='y')break;}
if(a=='y')input();
}
void output() //显示信息函数
{int i;
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
for(i=0;i<N;i++)
{
printf("\n班 级:%s",A[i].I_class);
printf("\n学 号:%s",A[i].I_num);
printf("\n姓 名:%s",A[i].I_name);
printf("\n宿舍号:%s",A[i].I_room);
printf("\n评 分:%s",A[i].I_score);
printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
}
printf("\n按任意键返回......");
getch();
}
void admin() //教师界面
{char a;
while(1)
{
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n");
printf(" @教师界面[信息数量%d]@\n\n\n",N);
printf(" 1.添加信息 \n");
printf(" 2.处理信息 \n");
printf(" 3.显示信息 \n\n");
printf(" 0.退 出 \n\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
while(1)
{a=getch();if(a>='0'&&a<='3')break;}
if(a=='0')break;
switch(a-48)
{case 1:input();break;
case 2:tool();break;
case 3:output();break;
}
}
}
void guest()
{char a[20],s;
int b,i,j=1;
while(1)
{i=0;
system("cls"); //选择要处理信息分类
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf(" 学生查询界面 \n\n");
printf(" 1.按班 级\n");
printf(" 2.按学 号\n");
printf(" 3.按姓 名\n");
printf(" 4.按宿舍号\n");
printf(" 5.按评 分\n\n");
printf(" 0.退 出\n\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
while(1)
{s=getch();
if(s>='0'&s<='5')break;
}
b=s-48;
if(b==0)break;
switch(b)
{case 1:printf("请输入(班 级):");scanf("%s",a);break;
case 2:printf("请输入(学 号):");scanf("%s",a);break;
case 3:printf("请输入(姓 名):");scanf("%s",a);break;
case 4:printf("请输入(宿舍号):");scanf("%s",a);break;
case 5:printf("请输入(评 分):");scanf("%s",a);break;
}
while(i<N) //提取检索到得第一个位置的要处理信息
{switch(b)
{case 1:j=strcmp(a,A[i].I_class);break;
case 2:j=strcmp(a,A[i].I_num);break;
case 3:j=strcmp(a,A[i].I_name);break;
case 4:j=strcmp(a,A[i].I_room);break;
case 5:j=strcmp(a,A[i].I_score);break;
}
if(j==0)break;i++;
}
if(j==0)
{
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n班 级:%s",A[i].I_class);
printf("\n学 号:%s",A[i].I_num);
printf("\n姓 名:%s",A[i].I_name);
printf("\n宿舍号:%s",A[i].I_room);
printf("\n评 分:%s",A[i].I_score);
printf("\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
printf("\n按任意键返回......");
getch();
}
else
{printf("\n要查询的信息不存在!");
printf("\n按任意键返回......");
getch();
}
}
}
int user() //用户登录菜单(返回1为教师,返回2为学生)
{char s;
int i;
FILE *fp;
char pw[5];
char pwi[5];
while(1)
{
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n");
printf(" 宿舍管理系统 \n\n\n");
printf(" --1.教师登陆-- \n");
printf(" --2.学生登陆-- \n");
printf(" --3.修改密码-- \n\n\n");
printf(" --0.退 出-- \n\n\n");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
while(1)
{s=getch();
if(s>='0'&&s<='3')break;
}
s-=48;
if(s==0){system("cls");printf("\n\n\n\n\n @谢谢使用@");getch();exit(0);}
if(s==2)return 2; //进入学生界面点
if(s==1||s==3)
{if((fp=fopen("key.dat","r"))==NULL)
{system("cls");printf("\n\n\n 文件读取错误!程序终止!");getch();exit(0);}
fread(pw,5,1,fp);
pw[4]=0;
fclose(fp);
system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n\n\n\n");
printf("请输入4位管理员密码:");
for(i=0;i<4;i++)
{pwi[i]=getch();putchar('*');
}
pwi[4]=0;
if(strcmp(pwi,pw))
{printf("\n密码错误!按任意键返回......");getch();}
else
if(s==3) //密码修改执行处
{system("cls");
printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n\n\n\n");
printf("请输入4位新密码:");
for(i=0;i<4;i++)
{pwi[i]=getch();putchar('*');
}
pwi[4]=0;
if((fp=fopen("key.dat","w"))==NULL)
{system("cls");printf("\n\n\n 文件写入错误!程序终止!");getch();exit(0);}
fwrite(pwi,5,1,fp);
fclose(fp);
printf("\n密码修改成功,按任意键返回......");
getch();
}
else return 1; //进入教师界面点
}
}
}
void main() //主函数
{FILE *fp;
if((fp=fopen("ss.dat","r"))==NULL) //读取文件中的数据
{system("cls");printf("\n\n\n 文件读取错误!程序终止!");getch();exit(0);}
fread(&N,sizeof(int),1,fp);
fread(A,sizeof(struct Inf),100,fp);
fclose(fp);
if(user()==1)admin(); //调用用户操作函数
else guest();
if((fp=fopen("ss.dat","w"))==NULL) //存储数据到文件
{system("cls");printf("\n\n\n 文件写入错误!程序终止!");getch();exit(0);}
fwrite(&N,sizeof(int),1,fp);
fwrite(A,sizeof(struct Inf),100,fp);
fclose(fp);
system("cls");
printf("\n\n\n\n\n @谢谢使用@");
getch();
}
㈥ 用c语言编写一个宿舍管理系统(答完后给50—100分)
C语言
写个struct包含学生信息的变量
写个小菜单函数,按1为查询,2为添加,3为删除
添加写个函数,按照struct变量的顺序输入学生信息,用一个struct数组保存多个学生的信息
查询写个函数,先输入查询的内容,如学号,然后从struct数组逐个寻找
删除写个函数,先输入删除学生的学号,然后套用查找这个函数,将找到的学生struct删除
这个估计也没有人给你写,这个实际和学生成绩管理系统一样的,我给你说个思路吧,还是自己看看书写吧,不是很难的。
首先你要建立一个结构体,来表示学生宿舍的基本信息,
typedef struct
{
int num_1;
int num_2;
float s;
int have_num;
int lea_num;
}Dom;
typedef struct DNode
{
Dom dom;
DNode *next;
}DNode;
然后,你要用链表实现,在main函数里面用switch语句来转向你要实现的功能,然后各个函数就要你自己写了,实际就是链表的插入删除的一些基本操作,加加油吧
㈦ 用c语言编写学生宿舍管理系统
我说楼主啊
你也太小气了吧
刚才我本来想把一个还符合你的要求的程序发上来
但仔细一看
你连悬赏分都没有
那发个屁啊
难怪你发了这么多天
根本就没有人来看一下
㈧ 数据结构,C语言编写宿舍管理系统
。。。。。。。。。。。。。。。。。。。。正在写
/*学生宿舍信息管理系统*/
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<string.h>
#define LEN sizeof(struct commdity)
struct student
{
char name[15];/*学生姓名*/
int sex;/*学生性别*/
};
struct commdity
{
int num;/*宿舍号码*/
int number;/*容纳人数---并没有赋予实际作用*/
int money;/*住宿费用*/
struct student Student[8];/*最多能住个8人上限*/
};
struct commdity comm[50];
void menu()/*菜单*/
{
printf("\t\t\t\t住宿管理系统:\n\n");
printf("\t\t\t\t0.退出\n");
printf("\t\t\t\t1.录入宿舍的信息\n");
printf("\t\t\t\t2.录入学生的信息\n");
printf("\t\t\t\t3.删除学生信息\n");
printf("\t\t\t\t4.查找学生信息\n");
printf("\t\t\t\t请选择:(0-7):");
}
void in()/*对宿舍信息的录入*/
{
int i,m=0;
char ch[2];
FILE *fp;
if((fp=fopen("data","ab+"))==NULL)
{
printf("不能打开文件\n");
return;
}
while(!feof(fp))
{
if(fread(&comm[m],LEN,1,fp)==1)
{
m++;
}
}
fclose(fp);
if(m==0)
{
printf("没有任何记录");
}
else
{
system("cls");
printf("存在记录");
}
if((fp=fopen("data","wb"))==NULL)
{
printf("不能打开文件");
return;
}
for(i=0;i<m;i++)
{
if(fwrite(&comm[i],LEN,1,fp)!=1)
{
printf("不能保存");
getch();
}
}
printf("是否输入(y\n)");
scanf("%s",ch);
while(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)
{
printf("宿舍编号");
scanf("%d",&comm[m].num);
for(i=0;i<m;i++)
{
if(comm[i].num==comm[m].num)
{
printf("该宿舍已经存在,按任意键继续");
getch();
fclose(fp);
return;
}
}
printf("请输入宿舍容纳人数");
scanf("%d",&comm[m].number);
printf("请输入住宿费用");
scanf("%d",&comm[m].money);
if(fwrite(&comm[m],LEN,1,fp)!=1)
{
printf("不能保存");
getch();
}
else
{
printf("已经保存 \n");
m++;
}
printf("是否继续");
scanf("%s",ch);
}
fclose(fp);
printf("OK!\n");
}
void studentInput()/*分配学生到指定宿舍*/
{
FILE *fp;
int i,j,m=0,snum;
if((fp=fopen("data","ab+"))==NULL)
{
printf("不能打开文件!\n");
return;
}
while(!feof(fp))
{
if(fread(&comm[m],LEN,1,fp)==1)
{
m++;
}
}
printf("一共有%d条记录",m);
fclose(fp);
if((fp=fopen("data","wb"))==NULL)
{
printf("不能打开文件\n");
return;
}
printf("请输入学生的宿舍编号\n");
scanf("%d",&snum);
for(i=0;i<m;i++)
{
if(snum==comm[i].num)
{
printf("存在该宿舍!\n");
for(j=0;j<8;j++)
{
if(comm[i].Student[j].sex==NULL)
{
printf("请输入学生的名称\n");
scanf("%s",&comm[i].Student[j].name);
printf("请输入学生的性别(1-男,2-女)\n");
scanf("%d",&comm[i].Student[j].sex);
for(i=0;i<m;i++)
{
if(fwrite(&comm[i],LEN,1,fp)!=1)
{
printf("不能保存");
getch();
}
}
break;
}
}
fclose(fp);
return;
}
}
fclose(fp);
printf("没有找到");
return;
}
void search()/*对学生信息查找*/
{
int i,m=0;
FILE *fp;
int s;
char ch[2];
int num=0;
printf("请输入编号\n");
scanf("%d",&num);
if((fp=fopen("data","ab+"))==NULL)
{
printf("文件不能打开!\n");
return;
}
while(!feof(fp))
{
if(fread(&comm[m],LEN,1,fp)==1)
{
m++;
}
}
if(m==0)
{
printf("没有任何记录存在");
return;
}
printf("一共有%d记录\n",m);
for(i=0;i<m;i++)
{
if(num==comm[i].num)
{
printf("存在该记录 是否显示\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)
{
printf("%d宿舍: 住宿人数%d\n",comm[i].num,comm[i].number);
for(s=0;s<8;s++)
{
if(comm[i].Student[s].sex!=NULL)
{
printf("\n学生:%s 性别:%d\n",comm[i].Student[s].name,comm[i].Student[s].sex);
}
}
}
return;
}
}
printf("没有找到");
}
void deleStudent()/*删除住宿的学生信息*/
{
FILE *fp;
int snum,s,i,j,m=0;
char ch[2];
char name[20];
if((fp=fopen("data","ab+"))==NULL)
{
printf("不能打开文件!\n");
return;
}
while(!feof(fp))
{
if(fread(&comm[m],LEN,1,fp)==1)
{
m++;
}
}
fclose(fp);
if(m==0)
{
printf("没有记录\n");
return;
}
printf("请输入宿舍编号\n");
scanf("%d",&snum);
for(i=0;i<m;i++)
{
if(comm[i].num==snum)
{
printf("已经找到该宿舍!\n");
printf("请输入该学生的名称!\n");
scanf("%s",&name);
for(s=0;s<8;s++)
{
if(strcmp(comm[i].Student[s].name,name)==0)
{
printf("已将查询到该学生 (是否删除y\n)\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0 || strcmp(ch,"y")==0)
{
for(j=s;j<8;j++)
{
comm[i].Student[j]=comm[i].Student[j+1];
}
printf("删除成功!\n");
if((fp=fopen("data","wb"))==NULL)
{
printf("不能打开文件");
return;
}
for(i=0;i<m;i++)
{
if(fwrite(&comm[i],LEN,1,fp)!=1)
{
printf("不能保存");
getch();
}
}
}
fclose(fp);
return;
}
}
}
}
printf("没有找到\n");
return;
}
int main()
{
int n;
menu();
scanf("%d",&n);
while(n!=0)
{
switch(n)
{
case 1:
{
in();
break;
}
case 2:
{
studentInput();
break;
}
case 3:
{
deleStudent();
break;
}
case 4:
{
search();
break;
}
default:
{
break;
}
}
menu();
scanf("%d",&n);
}
system("pause");
}
/*程序结束*/
/*保证语法上没有任何错误 有很多程序段重复,你可以自己改改,还有那个容纳人数我直接固定了8个 不过问题不大*/
㈨ c语言编程宿舍管理系统如何删除指定房间号的宿舍信息包括楼层号,宿舍面积,宿舍中现住的人数,和容纳人
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。