您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 学生宿舍管理系统源代码
数据结构课程设计源代码设计题目:学生宿舍管理系统院系:计算机学院班级:软件1501组别:六组长:周佳理组员:韩壮壮陈义安起止日期:2016年12月20日~2016年12月24日指导教师:韩丽娜源代码:#define_CRT_SECURE_NO_WARNINGS#includestdio.h#includestdlib.h#includestring.hvoidAppendNode(longstudentID,charstudentName[15],charroomNumber[4],charbedNumber[4]);//向链表中添加数据voidDisplayNode(structlink*head);//打印链表中数据voidDisplay(structlink*head);//表头格式控制voidDeleteMemory(structlink*head);//删除链表所占用的内存voidSave();//保存数据voidOpen();//打开数据voidFindID();//按学号查找学生voidFindName();//按姓名查找学生voidInsertNodeNumber(longstudentID,charstudentName[15],charroomNumber[4],charbedNumber[4]);//按学号从小到大排序voidNumberSorting();//排序voidMenu();//菜单控制模块功能代码://主函数intmain(){longstudentID;charstudentName[15];charroomNumber[4];charbedNumber[4];//定义要输入学生信息的变量;charc;intmenu;//保存要进行的选项;while(1){system(pause);Menu();printf(请输入要进行的操作:);scanf(%d,&menu);switch(menu){case0:exit(0);break;case1:printf(请输入Y或y来添加数据\n);scanf(%c,&c);while(c=='y'||c=='Y'){printf(请输入学生学号:);scanf(%lld,&studentID);printf(请输入学生姓名:);scanf(%s,&studentName);printf(请输入房间号:);scanf(%s,&roomNumber);printf(请输入床位号:);scanf(%s,&bedNumber);AppendNode(studentID,studentName,roomNumber,bedNumber);printf(请输入Y或y来添加数据\n);scanf(%c,&c);}Display(head);break;case2:FindID();break;case3:FindName();break;case4:Display(head);//显示信息break;case5:NumberSorting();Display(head1);//排序后的学生信息head1=NULL;break;case6:Save();break;case7:Open();break;default:printf(输入有误!请重新输入);break;}}DeleteMemory(head);DeleteMemory(head1);system(pause);return0;}//菜单voidMenu(){system(cls);//清屏操作;printf(\n\n\n\n\n);printf(\t\t|.......学生宿舍管理系统..............|\n);printf(\t\t|\t0.退出|\n);printf(\t\t|\t1.添加学生住宿信息|\n);printf(\t\t|\t2.查找学生(按学号)信息|\n);printf(\t\t|\t3.查找学生(按姓名)信息|\n);printf(\t\t|\t4.显示学生信息|\n);printf(\t\t|\t5.按学号排序|\n);printf(\t\t|\t6.保存信息|\n);printf(\t\t|\t7.打开信息|\n);printf(\t\t|.......学生宿舍管理系统..............|\n);}//表头格式控制voidDisplay(structlink*head){printf(-----------------------------------------------------------\n);printf(学号姓名宿舍号床号\n);printf(-----------------------------------------------------------\n);DisplayNode(head);}数据模块功能代码://定义结构体typedefstructstudent{longstudentID;//学号charstudentName[15];//姓名charroomNumber[4];//房间号charbedNumber[4];//床号}STU;//初始化链表structlink{STUstudent;structlink*next;};structlink*head=NULL;//保存输入的学生信息数据structlink*head1=NULL;//保存排序后的学生信息数据//添加数据voidAppendNode(longstudentID,charstudentName[15],charroomNumber[4],charbedNumber[4]){structlink*p=NULL,*pr=head;p=(structlink*)malloc(sizeof(structlink));if(p==NULL){printf(申请内存失败);return;}if(head==NULL){head=p;}else{while(pr-next!=NULL){pr=pr-next;}pr-next=p;}p-student.studentID=studentID;strcpy(p-student.studentName,studentName);strcpy(p-student.roomNumber,roomNumber);strcpy(p-student.bedNumber,bedNumber);p-next=NULL;return;}//打印数据voidDisplayNode(structlink*head){structlink*p=head;if(p==NULL){return;}printf(%lld%15s%13s%13s,p-student.studentID,p-student.studentName,p-student.roomNumber,p-student.bedNumber);printf(\n);p=p-next;DisplayNode(p);}//保存链表中的数据voidSave(){FILE*fp;structlink*p=head;fp=fopen(demo.txt,w);if(fp==NULL){printf(打开文件失败);return;}while(p!=NULL){fprintf(fp,%20lld%15s%5s%4s,p-student.studentID,p-student.studentName,p-student.roomNumber,p-student.bedNumber);p=p-next;}fclose(fp);return;}//将文件中获得的数据写入到链表中voidOpen(){fflush(stdin);fflush(stdout);longstudentID;charstudentName[15];charroomNumber[4];charbedNumber[4];FILE*fp;charc;fp=fopen(demo.txt,a+);if(fp==NULL){printf(文件打开失败);return;}while((c=fgetc(fp))!=EOF){fscanf(fp,%20lld,&studentID);fscanf(fp,%15s,studentName);fscanf(fp,%5s,roomNumber);fscanf(fp,%4s,bedNumber);AppendNode(studentID,studentName,roomNumber,bedNumber);}fclose(fp);}功能模块功能代码://排序函数voidNumberSorting(){structlink*p=head;structlink*p1=head1;intsum=0;if(p==NULL){printf(没有数据,无法排序);return;}while(p!=NULL){InsertNodeNumber(p-student.studentID,p-student.studentName,p-student.roomNumber,p-student.bedNumber);p=p-next;}}//按学号的从小到大排序voidInsertNodeNumber(longstudentID,charstudentName[15],charroomNumber[4],charbedNumber[4]){structlink*pr=head1,*p=head1,*temp=NULL;p=(structlink*)malloc(sizeof(structlink));if(p==NULL){printf(内存申请失败);return;}p-next=NULL;p-student.studentID=studentID;strcpy(p-student.studentName,studentName);strcpy(p-student.roomNumber,roomNumber);strcpy(p-student.bedNumber,bedNumber);if(head1==NULL){head1=p;}else{while(pr-student.studentIDstudentID&&pr-next!=NULL){temp=pr;pr=pr-next;}if(pr-student.studentID=studentID){if(pr==head1){p-next=head1;head1=p;}else{pr=temp;p-next=pr-next;pr-next=p;}}else{pr-next=p;}}}//删除链表所占用的内存voidDeleteMemory(structlink*head){structlink*p=head,*pr=NULL;while(p!=NULL){pr=p;p=p-next;free(pr);}}//按学号查找学生voidFindID(){structlink*p=head;longstudentID=0;if(head==NULL){printf(没有数据查找);return;}printf(请输入你要查找的学生的学号:);scanf(%lld,&studentID);while(studentID!=p-student.studentID&&p-next!=NULL){p=p-next;}if(p-student.studentID==studentID){printf(-----------------------------------------------------------\n);printf(学号姓名宿舍号床号\n);printf(----------------------------------------------
本文标题:学生宿舍管理系统源代码
链接地址:https://www.777doc.com/doc-4426887 .html