C语言宿舍管理系统源程序_第1页
C语言宿舍管理系统源程序_第2页
C语言宿舍管理系统源程序_第3页
C语言宿舍管理系统源程序_第4页
C语言宿舍管理系统源程序_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言宿舍管理系统源程序 /*源程序 学生宿舍管理系统(domitry.txt)*/*程序中用到的头文件*/#include "stdio.h" #include "string.h"#include "stdlib.h"#include "conio.h"#define MAX 100 /*数组元素的个数*/#define PRINT1 printf(" n");#define PRINT2 printf("学号-学生姓名-性别-年龄-年级-班级-专业-楼号-楼层号-房间号-床号nn

2、");int sum;/*定义结构体数组*/struct stu char name20; /*姓名*/int num; /*学号*/char sex; /*性别*/int age; /*年龄*/int grade; /*年级*/int banji;/*班级*/char zhuanye30;/*专业*/;struct dom int bui_num; /*楼号*/int floor_num; /*楼层号*/int room_num; /*房间号*/int bed_num; /*床号*/struct stu st;sMAX,p;/*密码模块*/int login_message() c

3、har mima=""char str10=0,ch;int i=0,n=strlen(mima),num=0,flag=0;doprintf("请输入密码(你只有三次机会):n");for(i=0;i<n;i+)ch=getch();if(ch!=n) putchar(*);stri=ch;getchar();if(strcmp(str,mima)=0) printf("密码正确n");flag=1;else printf("密码错误,请重新输入:n");num+; while(flag=0&&am

4、p;num<3);return flag;/*函数声明*/void save_message();int input_message();int read_message();void output_message();int insert_message();int del_message();int revise_message();int renew_message();int inquire_message();int count_message();int sort_num();int sort_conidition();int sort_message();/*保存信息*/v

5、oid save_message(int sum) FILE *fp;int i;if(fp=fopen("dom.txt","wt")=NULL)printf("文件打开失败!n");exit(1);for(i=0;i<sum;i+) printf("学号-学生姓名-性别-年龄-年级-班级-专业-楼号-楼层号-房间号-床号");fprintf(fp,"n%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d",si.st.num,,si.st.sex,s

6、i.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);printf("n");fclose(fp);/*输入模块*/int input_message() int i=0;system("cls");printf("nn 录入学生信息(最多%d个)n",MAX);printf(" _n");do printf("n 第%d个学生nn",i+1);printf(&

7、quot;n 学号:");scanf("%d",&si.st.num);if(si.st.num=0) break;printf("n 学生姓名:");scanf("%s",);printf("n 学生性别(男生用M表示,女生用F表示):");getchar();scanf("%c",&si.st.sex);printf("n 学生年龄:"); scanf("%d",&si.st.age);printf

8、("n 学生年级:");scanf("%d",&si.st.grade);printf("n 学生班级 :");scanf("%d",&si.st.banji);printf("n 学生专业:");scanf("%s",&si.st.zhuanye);printf("n 宿舍楼号:");scanf("%d",&si.bui_num);printf("n 宿舍楼层号:");scanf(&

9、quot;%d",&si.floor_num);printf("n 宿舍房间号:");scanf("%d",&si.room_num);printf("n 宿舍床号:");scanf("%d",&si.bed_num);i+;while(i<MAX);printf("n -%d个学生的信息输入完毕-n",i);sum=i;printf("n 按任意键返回主菜单!");getchar();getch();return sum;/*读取信息

10、int read_message() FILE *fp;int i=0,sum;if(fp=fopen("dom.txt","rt")=NULL)printf("文件打开失败!n");exit(1); while(!feof(fp)for(i=0;i<sum;i+) fscanf(fp,"%d%s%c%d%d%d%s%d%d%d%d",&si.st.num,,&si.st.sex,&si.st.age,&si.st.grade,&si.st.banj

11、i,si.st.zhuanye,&si.bui_num,&si.floor_num,&si.room_num,&si.bed_num);fclose(fp);return i=0;for(i=0;i<sum;i+)printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9d",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.be

12、d_num);*/*输出模块*/void output_message() int i=0;system("cls");printf("nn -学生信息列表- nn");PRINT1;PRINT2;for(i=0;i<sum;i+)if(si.st.num!=0) printf("n%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_n

13、um,si.floor_num,si.room_num,si.bed_num);getch();/*添加学生信息*/int insert_message() int i=sum,flag=0;char choice;system("cls");printf("nn 添加一个新同学n");printf(" _n");do printf("n 新学号:");scanf("%d",&si.st.num);printf("n 学生姓名:");scanf("%s&qu

14、ot;,);printf("n 学生性别(男生用M表示,女生用F表示):");getchar();scanf("%c",&si.st.sex);printf("n 学生年龄:"); scanf("%d",&si.st.age);printf("n 学生年级:");scanf("%d",&si.st.grade);printf("n 学生班级:");scanf("%d",&si.st.b

15、anji);printf("n 学生专业:");scanf("%s",&si.st.zhuanye);printf("n 宿舍楼号:");scanf("%d",&si.bui_num);printf("n 宿舍楼层号:");scanf("%d",&si.floor_num);printf("n 宿舍房间号:");scanf("%d",&si.room_num);printf("n 宿舍床号:&q

16、uot;);scanf("%d",&si.bed_num);sum+;printf("n 要继续吗(Y/N)");getchar();scanf("%c",&choice);if(choice=Y|choice=y) flag=1;i+;printf("n 继续!n");else flag=0;while(flag=1);printf("n 按任意键回主菜单!");return 0;/*删除模块*/int del_message()int flg,del_num,i,k,flag

17、=0;char choice;do system("cls");printf("n 输入要删除的学生学号:");scanf("%d",&del_num);for(i=0;flag=0&&i<sum;i+)if(del_num=si.st.num)for(k=i;k<sum-1;k+)sk=sk+1;flag=1;sum-;break;if(flag=1)printf("删除成功!n");printf("按任意键继续.n");getch();printf(&qu

18、ot;nn 继续吗?(Y/N)");getchar();scanf("%c",&choice);if(choice=Y|choice=y) flg=1;printf("n 继续!n");else flg=0;while(flg=1);printf("n 按任意键返回主菜单!");getchar();return 0;/*修改模块*/int revise_message() int i=0,choices,revise_num,flag=0;char name20; int num; char sex; int age

19、; int grade; int banji;char zhuanye30;int bui_num;int floor_num; int room_num; int bed_num; /int sum=read_message();int sum=MAX;do system("cls");printf("n 输入要修改的学生号:");scanf("%d",&revise_num);for(i=0;i<sum;i+)if(i=revise_num) printf("n -学生信息-n");PRINT1;

20、PRINT2;printf("%2d%s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);printf("n 您需要修改哪一项?n");printf("n 1.学号n");printf("n 2.姓名n");printf("n 3.性别n&qu

21、ot;);printf("n 4.年龄n");printf("n 5.年级n");printf("n 6.班级n");printf("n 7.专业n");printf("n 8.楼号n");printf("n 9.楼层号n");printf("n 10.房间号n");printf("n 11.床号n");printf("n 请选择(1-11):");scanf("%d",&choices)

22、;switch(choices) case 1: printf("n 请输入修改后的学号");flushall();scanf("%d",&num);si.st.num=num;break;case 2: printf("n 请输入修改后的姓名");flushall();scanf("%s",name);strcpy(,name);break;case 3: printf("n 请输入修改后的性别");flushall();scanf("%c",&

23、amp;sex);si.st.sex=sex;break;case 4: printf("n 请输入修改后的年龄");flushall();scanf("%d",&age);si.st.age=age;break;case 5: printf("n 请输入修改后的年级");flushall();scanf("%d",&grade);si.st.grade=grade;break;case 6: printf("n 请输入修改后的班级");flushall();scanf(&quo

24、t;%d",&banji);si.st.banji=banji;break;case 7: printf("n 请输入修改后的专业");flushall();scanf("%s",zhuanye);strcpy(si.st.zhuanye,zhuanye);break;case 8: printf("n 请输入修改后的楼号");flushall();scanf("%d",&bui_num);si.bui_num=bui_num;break;case 9: printf("n 请输

25、入修改后的楼层号");flushall();scanf("%d",&floor_num);si.floor_num=floor_num;break;case 10: printf("n 请输入修改后的房间号");flushall();scanf("%d",&room_num);si.room_num=room_num;break;case 11: printf("n 请输入修改后的床号");flushall();scanf("%d",&bed_num);si.b

26、ed_num=bed_num;break;PRINT1;PRINT2;printf("%2d%s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);break;if(i=sum)printf("n 该学生不存在!");getch();return 0;/* printf("nn 继续修

27、改吗?(Y/N)");getchar();scanf("%c",&choice);if(choice=y|choice=Y) flag=1;printf("n 继续!n");else flag=0; */while(flag=1);getchar();printf("n 按任意键返回主菜单!");return 0;/*更新模块*/int renew_message() int choice;do printf("nnn *更新学生信息*nn");printf(" 1.添加学生信息nn&q

28、uot;);printf(" 2.删除学生信息nn");printf(" 3.修改学生信息nn");printf(" 0.返回主菜单nn");printf(" 请选择(0-3):nn");scanf("%d",&choice);switch(choice) case 1: insert_message();break;case 2: del_message();break;case 3: revise_message();break;case 0: break; while(choice

29、!=0);return 0;inquire_name() /*按姓名查询*/ int i,j=0;char inquire_name10;printf("n 输入要查询的学生姓名:");scanf("%s",inquire_name);for(i=0;i<sum;i+)if(strcmp(,inquire_name)=0&&si.st.num!=0) printf("n -学生信息- n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5

30、d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.room_num,si.bed_num);printf("n");else j+;if(j=sum)printf("n 该学生不存在!");return 0;int inquire_num() /*按学号查询*/ int i,j=0,inquire_num;printf("n 输入要查询的学生学号:

31、");scanf("%d",&inquire_num);for(i=0;i<sum;i+)if(inquire_num=si.st.num) printf("n -学生信息- n");PRINT1;PRINT2;printf("%2d%10s%6c%7d%6d%5d%8s%5d%6d%8d%9dnn",si.st.num,,si.st.sex,si.st.age,si.st.grade,si.st.banji,si.st.zhuanye,si.bui_num,si.floor_num,si.

32、room_num,si.bed_num);printf("n");else j+;if(j=sum)printf("n 该学生不存在!");return 0;/*查询模块*/inquire_message() int choice; do printf("nnn *查询学生信息*nn");printf(" 1.按学生姓名查询nn");printf(" 2.按学生学号查询nn");printf(" 0.返回主菜单nn");printf(" 请选择(0-2):nn&qu

33、ot;);scanf("%d",&choice);switch(choice) case 1: inquire_name();break;case 2: inquire_num();break;case 0: break; while(choice!=0);return 0;count_person() /*按宿舍住宿情况统计*/ int i,j=0,count_grade,count_banji;int sum=MAX,counttj=0;char count_zhuanye20;printf("n 输入要统计的学生的专业,年级,班级:");s

34、canf("%10s %8d %8d",&count_zhuanye,&count_grade,&count_banji);printf("n 住宿情况");printf("n -n");printf("n 姓名 学号 楼号 楼层号 房间号 床号n");for(i=0;i<sum;i+)if(si.st.grade=count_grade&&si.st.banji=count_banji&&strcmp(si.st.zhuanye,count_zhuan

35、ye)=0)printf("n%10s%8d%8d%8d%8d%8dn",,si.st.num,si.bui_num,si.floor_num,si.room_num,si.bed_num);counttj+=1;else j+;if(j=sum)printf("n 该学生不存在!");elseprintf("所统计的人数总和为%dn",counttj);return 0;/*统计模块*/count_message() int choice;do printf("nn *统计学生信息*n");p

36、rintf(" 1.学生住宿情况统计n");printf(" 0.返回主菜单n");printf(" 请选择(0-1):n");scanf("%d",&choice);switch(choice) case 1: count_person();break;case 0: break; while(choice!=0);return 0;sort_num() /*按学号排序*/ int i,j,k,t;system("cls");printf("n 宿舍排序n");pr

37、intf(" n");printf("n 排序 姓名 学号 性别 楼号 楼层号 房间号 床号n");for(i=0;i<sum-1;i+) k=i;for(j=i+1;j<sum;j+) if(si.st.num>sj.st.num)k=j;t=si.st.num;si.st.num=sk.st.num;sk.st.num=t;printf("nnn");for(i=0;i<sum;i+) printf("n%12d%8s%8d%8c%8d%8d%8d%6dnn",i+1,si.st.nam

38、e,si.st.num,si.st.sex,si.bui_num,si.floor_num,si.room_num,si.bed_num);getchar();sort_conidition() /*学生宿舍情况排序*/ int i,j;printf("n 宿舍排序n");printf(" n");printf("n 排序 姓名 学号 性别 楼号 楼层号 房间号 床号n");for(i=0;i<sum-1;i+) for(j=i+1;j<sum;j+);if(si.bui_num>sj.bui_num) p=si;s

39、i=sj;sj=p;else if(si.bui_num=sj.bui_num)if(si.floor_num>sj.floor_num) p=si;si=sj;sj=p;else if(si.floor_num=sj.floor_num)if(si.room_num>sj.room_num) p=si;si=sj;sj=p; else if(si.room_num=sj.room_num)if(si.bed_num>sj.bed_num) p=si;si=sj; sj=p;for(i=0;i<sum;i+)if(si.st.num!=0)printf("n%12d%8s%8d%8c%8d%8d%8d%6dnn",i+1,,si.st.num,si.st.sex,si.bui_num,si.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论