学生宿舍管理系统源代码_第1页
学生宿舍管理系统源代码_第2页
学生宿舍管理系统源代码_第3页
学生宿舍管理系统源代码_第4页
学生宿舍管理系统源代码_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、. 数据结构 课程设计源代码 设计题目: 学生宿舍管理系统 院 系: 计算机学院 班 级: 软件1501 组 别: 六 组 长: 周佳理 组 员: 韩壮壮 陈义安 起止日期: 2016年12月20日2016年12月24日指导教师: 韩丽娜 .源代码: #define _CRT_SECURE_NO_WARNINGS#include#include#includevoid AppendNode(long studentID, char studentName15, char roomNumber4, char bedNumber4);/向链表中添加数据void DisplayNode(struct

2、 link *head);/打印链表中数据void Display(struct link *head);/表头格式控制void DeleteMemory(struct link *head);/删除链表所占用的内存void Save();/保存数据void Open();/打开数据void FindID();/按学号查找学生void FindName();/按姓名查找学生void InsertNodeNumber(long studentID, char studentName15, char roomNumber4, char bedNumber4);/按学号从小到大排序void Numb

3、erSorting();/排序void Menu();/菜单控制模块功能代码:/主函数int main()long studentID;char studentName15;char roomNumber4;char bedNumber4;/定义要输入学生信息的变量;char c;int menu;/保存要进行的选项;while (1) system(pause);Menu();printf(请输入要进行的操作:);scanf(%d, &menu);switch (menu) case 0:exit(0); break;case 1:printf(请输入Y或y来添加数据n);scanf( %c

4、, &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); brea

5、k;case 2: FindID(); break;case 3: FindName(); break;case 4:Display(head);/显示信息 break;case 5:NumberSorting();Display(head1);/排序后的学生信息head1 = NULL; break;case 6:Save(); break;case 7:Open(); break;default:printf(输入有误!请重新输入); break;DeleteMemory(head);DeleteMemory(head1);system(pause);return 0;/菜单void Me

6、nu() system(cls);/清屏操作; printf(nnnnn); printf(tt|.学生宿舍管理系统.|n);printf(tt|t 0.退出 |n);printf(tt|t 1.添加学生住宿信息 |n);printf(tt|t 2.查找学生(按学号)信息 |n);printf(tt|t 3.查找学生(按姓名)信息 |n);printf(tt|t 4.显示学生信息 |n);printf(tt|t 5.按学号排序 |n);printf(tt|t 6.保存信息 |n);printf(tt|t 7.打开信息 |n);printf(tt|.学生宿舍管理系统.|n);/表头格式控制voi

7、d Display(struct link *head) printf(-n);printf( 学号 姓名 宿舍号 床号 n);printf(-n); DisplayNode(head);数据模块功能代码:/定义结构体typedef struct student long studentID; /学号char studentName15;/姓名char roomNumber4;/房间号char bedNumber4;/床号STU;/初始化链表struct link STU student;struct link *next;struct link *head = NULL;/保存输入的学生信息

8、数据struct link *head1 = NULL;/保存排序后的学生信息数据/添加数据void AppendNode(long studentID, char studentName15, char roomNumber4, char bedNumber4) struct link *p = NULL, *pr = head;p = (struct link *) malloc(sizeof(struct link);if (p = NULL) printf(申请内存失败); return;if (head = NULL) head = p;else while (pr-next !=

9、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;/打印数据void DisplayNode(struct link *head) struct link *p = head;if (p = NULL) return;printf(%l

10、ld%15s%13s%13s,p-student.studentID,p-student.studentName,p-student.roomNumber, p-student.bedNumber);printf(n); p=p-next; DisplayNode(p);/保存链表中的数据void Save() FILE *fp;struct link *p = head;fp = fopen(demo.txt, w);if (fp= NULL) printf(打开文件失败); return;while (p != NULL) fprintf(fp,%20lld%15s%5s%4s, p-st

11、udent.studentID, p-student.studentName, p-student.roomNumber,p-student.bedNumber);p = p-next;fclose(fp); return;/将文件中获得的数据写入到链表中void Open() fflush(stdin);fflush(stdout);long studentID;char studentName15;char roomNumber4;char bedNumber4;FILE *fp; char c;fp = fopen(demo.txt, a+);if (fp= NULL) printf(文

12、件打开失败); 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);功能模块功能代码:/排序函数void NumberSorting() struct link *p = head;struct link *p1 =

13、head1;int sum = 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;/按学号的从小到大排序void InsertNodeNumber(long studentID, char studentName15, char roomNumber4, char bedNumber4) struct lin

14、k *pr = head1, *p = head1, *temp = NULL;p = (struct link *)malloc(sizeof(struct link);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

15、 = NULL) head1 = p;else while (pr-student.studentID 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;/删除链表所占用的内存void DeleteMemory(struct link *head) struct link *p = he

16、ad, *pr = NULL;while (p != NULL) pr = p; p = p-next; free(pr);/按学号查找学生void FindID() struct link *p = head;long studentID=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

17、 = studentID) printf(-n); printf( 学号 姓名 宿舍号 床号 n); printf(-n); printf(%lld%15s%13s%13s, p-student.studentID, p-student.studentName, p-student.roomNumber, p-student.bedNumber);else printf(没有你要查找的数据); return;/按姓名查找学生void FindName() struct link *p = head;char studentName15 = ;if (head = NULL) printf(没有数据查找); return;printf(请输入你要查找的学生的姓名:);scanf(%s, studentName);while (0!=strcmp(studentName,p-student.stud

温馨提示

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

评论

0/150

提交评论