学生宿舍管理系统源代码

合集下载

python宿舍管理系统代码

python宿舍管理系统代码

python宿舍管理系统代码宿舍管理系统是用于管理学生宿舍信息和实现宿舍管理功能的软件系统。

它可以帮助学校管理部门高效地管理宿舍信息,包括宿舍分配、学生信息、宿舍维护等。

下面是一个用Python编写的简单宿舍管理系统代码。

```pythonclass Student:def __init__(self, name, age, gender, student_id): = nameself.age = ageself.gender = genderself.student_id = student_idclass Dormitory:def __init__(self, name, capacity): = nameself.capacity = capacityself.students = []def add_student(self, student):if len(self.students) < self.capacity:self.students.append(student)print(f"{} has been added to {}.") else:print(f"{} is full. Cannot add more students.") def remove_student(self, student_id):for student in self.students:if student.student_id == student_id:self.students.remove(student)print(f"{} has been removed from{}.")returnprint(f"Student with id {student_id} not found in {}.")class DormitoryManagementSystem:def __init__(self):self.dormitories = []def add_dormitory(self, dormitory):self.dormitories.append(dormitory)print(f"{} has been added to the system.") def remove_dormitory(self, dormitory_name):for dormitory in self.dormitories:if == dormitory_name:self.dormitories.remove(dormitory)print(f"{} has been removed from the system.")returnprint(f"Dormitory {dormitory_name} not found in the system.")def find_dormitory(self, dormitory_name):for dormitory in self.dormitories:if == dormitory_name:return dormitoryreturn None#创建学生student1 = Student("Alice", 20, "Female", "001")student2 = Student("Bob", 21, "Male", "002")student3 = Student("Cathy", 22, "Female", "003")#创建宿舍dormitory1 = Dormitory("A101", 2)dormitory2 = Dormitory("B201", 3)#添加学生到宿舍dormitory1.add_student(student1)dormitory1.add_student(student2)dormitory1.add_student(student3) #查看输出,提示宿舍已满#创建宿舍管理系统dormitory_system = DormitoryManagementSystem()#添加宿舍到系统dormitory_system.add_dormitory(dormitory1)dormitory_system.add_dormitory(dormitory2)#移除宿舍dormitory_system.remove_dormitory("B201")#查找宿舍found_dormitory = dormitory_system.find_dormitory("A101") if found_dormitory:print(f"{found_} found in the system.")else:print("Dormitory not found in the system.")#从宿舍中移除学生dormitory1.remove_student("002")#再次查看宿舍中的学生for student in dormitory1.students:print(f"Student {} is in {}.") ```在上面的代码中,首先定义了一个学生类和一个宿舍类。

宿舍管理系统_C语言源代码

宿舍管理系统_C语言源代码

#include<stdio.h>struct dorm{int num;int members_num;int Health_score;char member1[10];char member2[10];char member3[10];char member4[10];};struct student{int num;char name[10];int dorm_num;char gender[10];char major[10];char class_name[10];char instructor[10];};static struct dorm dm[100];static struct student st[400];static int d_i=2;static int s_i=2;void pri_dorm(struct dorm d){printf("\n宿舍号:%d\n",d.num);printf("现住人数:%d\n",d.members_num);printf("卫生分数:%d\n",d.Health_score);printf("宿舍成员:\n");if(d.member1[0]!=NULL) printf("%s\n",d.member1);if(d.member2[0]!=NULL) printf("%s\n",d.member2);if(d.member3[0]!=NULL) printf("%s\n",d.member3);if(d.member4[0]!=NULL) printf("%s\n",d.member4);printf("\n");}void pri_student(struct student s){printf("\n学号:%d\n",s.num);printf("姓名:%s\n",);printf("宿舍号:%d\n",s.dorm_num);printf("性别:%s\n",s.gender);printf("班级:%s\n",s.class_name);printf("专业:%s\n",s.major);printf("辅导员:%s\n",s.instructor);printf("\n");}int panduansusherenshu(struct dorm d)//通过此函数,判断宿舍共多少人(宿舍人数最多住四个人){int i=0;if(d.member1[0]!=NULL){i++;}if(d.member2[0]!=NULL){i++;}if(d.member3[0]!=NULL){i++;}if(d.member4[0]!=NULL){i++;}return i;}int panduanxueshengxinxi(struct student s)//判断学生信息是否合法{int i=1;int j=0;int k=0;if(((s.num/100000000)>0)){if(!strcmp(s.gender,"男")||!strcmp(s.gender,"女")){if((s.dorm_num/100)>0){i=0;}}}for(j=0;j<sizeof(dm)/52;j++){if(dm[j].num==s.dorm_num){k=1;break;}}if(k==0) {i=1;}for(j=0;j<sizeof(st)/60;j++){if(st[j].num==s.num) i=1;}for(j=0;j<sizeof(dm)/52;j++){if(dm[j].members_num==4) {i=1;printf("\n宿舍人数已满!\n");}}return i;}void main_interface()//主界面{int i=0;void interface1();void interface2();void interface3();void interface4();void interface5();void interface6();printf("********************************\n");printf("****** 宿舍管理系统******\n");printf("*** 1.查询宿舍信息***\n");printf("*** 2.查询学生信息***\n");printf("*** 3.添加入住学生***\n");printf("*** 4.删减入住学生***\n");printf("*** 5.更改宿舍信息***\n");printf("*** 6.更改学生信息***\n");printf("*** 7.退出系统***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:system("cls");interface1();break;case 2:system("cls");interface2();break;case 3:system("cls");interface3();break;case 4:system("cls");interface4();break;case 5:system("cls");interface5();break;case 6:system("cls");interface6();break;case 7:system("cls");exit(0);default:system("cls");printf("操作项命令错误,请重新输入!");main_interface();break;}}void interface1()//查找宿舍信息{int i=0;//选项选择int j=0;//记录需要查询的学生学号int k=0;int q=0;printf("\n");printf("进入宿舍信息查询界面:\n");printf("********************************\n");printf("****** 宿舍信息查询******\n");printf("*** 1.进入宿舍查询***\n");printf("*** 2.返回主界面***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:printf("请输入需要查询宿舍的宿舍号:");scanf("%d",&j);for(k=0;k<sizeof(dm)/52;k++){if(dm[k].num==j){q=1; break;}}if(q==1){system("cls");pri_dorm(dm[k]);printf("\n返回上一界面\n");interface1();}else{system("cls");printf("\n不存在您所查询的宿舍号!");printf("\n返回上一界面\n");interface1();}break;case 2:system("cls");printf("\n");printf("进入主界面:\n");main_interface();break;default :system("cls");printf("\n选项输入错误!\n");printf("\n返回上一界面\n");interface1();break;}}void interface2()//查找学生信息{int i=0;//选项选择int j=0;//记录学生学号int q=0;int k=0;printf("\n");printf("进入学生信息查询界面:\n");printf("********************************\n");printf("****** 学生信息查询******\n");printf("*** 1.进入学生查询***\n");printf("*** 2.返回主界面***\n");printf("********************************\n");printf("请输入操作项:");scanf("%d",&i);switch(i){case 1:printf("请输入需要查询学生的学号:");scanf("%d",&j);for(k=0;k<sizeof(dm)/52;k++){if(st[k].num==j){q=1; break;}}if(q==1){system("cls");pri_student(st[k]);printf("\n返回上一界面\n");interface2();}else{system("cls");printf("\n你查找的学生不存在!");printf("\n返回上一界面\n");interface2();}break;case 2:system("cls");printf("\n");printf("进入主界面:\n");main_interface();break;default:system("cls");printf("\n选项输入错误!\n");printf("\n返回上一界面\n");interface2();break;}}void interface3()//添加入住学生{struct student ss;int j=0;printf("请输入学生的信息:\n");printf("学号:");scanf("%d",&ss.num);printf("姓名:");scanf("%s",&);printf("宿舍号:");scanf("%d",&ss.dorm_num);printf("性别:");scanf("%s",&ss.gender);printf("班级:");scanf("%s",&ss.class_name);printf("专业:");scanf("%s",&ss.major);printf("辅导员:");scanf("%s",&ss.instructor);if(panduanxueshengxinxi(ss)==0){s_i++;st[s_i].num=ss.num;st[s_i].dorm_num=ss.dorm_num;strcat(st[s_i].name,);strcat(st[s_i].gender,ss.gender);strcat(st[s_i].class_name,ss.class_name);strcat(st[s_i].instructor,ss.instructor);strcat(st[s_i].major,ss.major);pri_student(st[s_i]);}else{system("cls");printf("\n\n输入的学生信息有错误,请重新输入!\n\n");interface3();}for(j=0;j<=sizeof(dm)/52;j++){if(dm[j].num==ss.dorm_num) break;}if(dm[j].member1[0]==NULL) strcat(dm[j].member1,);else if(dm[j].member2[0]==NULL) strcat(dm[j].member2,);else if(dm[j].member3[0]==NULL) strcat(dm[j].member3,);else strcat(dm[j].member4,);dm[j].members_num++;system("cls");printf("添加学生成功!\n");printf("\n返回主界面!\n");main_interface();}void interface4()//删除入住学生{int i=0;//存储需要删除学生的学号int j=0;int k=0;int q=0;printf("请输入需要删除的学生学号:\n");scanf("%d",&i);for(j=0;j<sizeof(st)/60;j++){if(st[j].num==i){k=1;break;}}if(k==0){system("cls");printf("不存在需要删除学生!\n");printf("返回上一界面,请重新输入!\n");interface4();}if(k==1){for(q=0;q<sizeof(dm)/52;q++){if(dm[q].num=st[j].dorm_num){dm[q].members_num--;if(!strcmp(dm[q].member1,st[j].name)){dm[q].member1[0]=NULL;strcmp(dm[q].member1," ");}if(!strcmp(dm[q].member2,st[j].name)){dm[q].member2[0]=NULL;strcmp(dm[q].member2," ");}if(!strcmp(dm[q].member3,st[j].name)){dm[q].member3[0]=NULL;strcmp(dm[q].member3," ");}if(!strcmp(dm[q].member4,st[j].name)){dm[q].member4[0]=NULL;strcmp(dm[q].member4," ");}}}st[j].num=0;st[j].name[0]=NULL;strcmp(st[j].name," ");st[j].class_name[0]=NULL;strcmp(st[j].class_name," ");st[j].dorm_num=0;st[j].gender[0]=NULL;strcmp(st[j].gender," ");st[j].instructor[0]=NULL;strcmp(st[j].instructor," ");st[j].major[0]=NULL;strcmp(st[j].major," ");}system("cls");printf("删除学生成功,返回主界面!\n");main_interface();}void interface5()//更改宿舍信息{int i=0;//存储宿舍号int j=0;//储存更改后的分数int k=0;int q=0;printf("请输入需要更改信息的宿舍号:\n");scanf("%d",&i);for(k=0;k<sizeof(dm)/52;k++){if(dm[k].num==i){q=1;break;}}if(q==1){printf("********************************\n");printf("****** 宿舍信息更改******\n");printf("*** 更改卫生分数***\n");printf("********************************\n");while(1){printf("\n%d宿舍卫生分数更改为:\n",i);scanf("%d",&j);if(j>=0&&j<=10) break;else {printf("输入的分数有错误,请重新输入!\n");}}dm[k].Health_score=j;system("cls");printf("更改宿舍信息成功!\n");printf("\n返回主界面:\n");main_interface();}if(q==0){system("cls");printf("输入的宿舍号不存在,请确认后重新输入!\n\n");interface5();}}void interface6()//更改学生信息{int i=0;//存储学生学号int k=0;//判断该学号是否存在int j=0;int q=0;//存储选项struct student ss;printf("请输入需要被更改的学生的学号:\n");scanf("%d",&i);for(j=0;j<sizeof(st)/60;j++){if(st[j].num==i){k=1;break;}}if(k==0){printf("该学号不存在,请确认后重新输入!\n");interface6();} if(k==1){printf("********************************\n");printf("****** 学生信息更改******\n");printf("*** 1.更改姓名***\n");printf("*** 2.更改班级***\n");printf("*** 3.更改专业***\n");printf("*** 4.更改辅导员***\n");printf("********************************\n");printf("\n请输入选项:\n");scanf("%d",&q);switch(q){case 1:printf("请输入改变后的姓名:\n");scanf("%s",);strcpy(st[j].name,);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 2:printf("请输入改变后的班级:\n");scanf("%s",ss.class_name);strcpy(st[j].class_name,ss.class_name);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 3:printf("请输入改变后的专业:\n");scanf("%s",ss.major);strcpy(st[j].major,ss.major);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;case 4:printf("请输入改变后的辅导员:\n");scanf("%s",ss.instructor);strcpy(st[j].instructor,ss.instructor);system("cls");printf("\n更改信息成功,返回主界面!\n");main_interface();break;default :system("cls");printf("选项输入错误! 返回上一界面!\n");interface6();break;}}}void start(){int j=103;int i=0;dm[0].num=101;dm[0].Health_score=10;dm[0].member1[0]=NULL;strcat(dm[0].member1,"赵钱");dm[0].member2[0]=NULL;dm[0].member3[0]=NULL;dm[0].member4[0]=NULL;dm[0].members_num=panduansusherenshu(dm[0]);dm[1].num=102;dm[1].Health_score=9;dm[1].member1[0]=NULL;strcat(dm[1].member1,"周吴");dm[1].member2[0]=NULL;dm[1].member3[0]=NULL;dm[1].member4[0]=NULL;dm[1].members_num=panduansusherenshu(dm[1]);for(i=2;i<100;i++){dm[i].num=j++;dm[i].members_num=0;dm[i].Health_score=0;dm[i].member1[0]=NULL;dm[i].member2[0]=NULL;dm[i].member3[0]=NULL;dm[i].member4[0]=NULL;}st[0].num=201011011;st[0].name[0]=NULL;strcat(st[0].name,"赵钱");st[0].dorm_num=101;st[0].class_name[0]=NULL;strcat(st[0].class_name,"工商1001");st[0].gender[0]=NULL;strcat(st[0].gender,"女");st[0].major[0]=NULL;strcat(st[0].major,"工商管理");st[0].instructor[0]=NULL;strcat(st[0].instructor,"巴菲特");st[1].num=201011012;st[1].name[0]=NULL;strcat(st[1].name,"周吴");st[1].dorm_num=102;st[1].class_name[0]=NULL;strcat(st[1].class_name,"软件1001");st[1].gender[0]=NULL;strcat(st[1].gender,"女");st[1].major[0]=NULL;strcat(st[1].major,"软件工程");st[1].instructor[0]=NULL;strcat(st[1].instructor,"李开复");for(i=2;i<400;i++){st[i].num=0;st[i].name[0]=NULL;st[i].class_name[0]=NULL;st[i].dorm_num=0;st[i].gender[0]=NULL;st[i].instructor[0]=NULL;st[i].major[0]=NULL;}}int main(){start();printf("************************************************************************\ n");printf(" 宿舍管理系统说明: \n\n");printf(" 该程序现有两人(201011011赵钱、201011012周吴)分别入住在寝室101、102\n\n");printf(" 宿舍号必须为三位数字,如101;学生学号必须为9位数字,如201093046;\n\n");printf(" 添加入住学生时,学生性别只能输入'男'或'女',其他输入视为无效输入!\n\n");printf(" 寝室最多入住人数为4人,添加学生到一宿舍时,该宿舍人数为4人,则提醒错误!\n\n");printf("********************************************************************* ***\n\n");main_interface();return 0;}。

学生宿舍管理软件C语言源代码

学生宿舍管理软件C语言源代码

一、需求分析该程序是由C语言编写的一个宿舍管理查询软件,其主要功能是实现对学生信息的增加、删除、修改、查询、排序、存储、加载。

其中查询可以分别以姓名、学号、寝室号为关键字查询学生信息。

排序可以分别以学号和寝室号为关键字进行从小到大的排序。

①输入的形式:根据用户所选择的功能,然后再依据程序相应的提示进行输入:选择功能1(添加学生信息):按照从先到后的顺序输入学生姓名(30个字符以内),学生学号(15个字符以内),宿舍号码(整数,范围在0~32767)。

选择功能2(修改学生信息):按照从先到后的顺序输入要修改的学生姓名(30个字符以内),修改后学生的姓名(30个字符以内),修改后学生的学号(15个字符以内),修改后学生的宿舍号(整数,范围在0~32767)。

选择功能3(删除学生信息):输入要删除的学生姓名(30个字符以内)。

选择功能4(以姓名查询学生信息):输入要查找的学生的姓名(30个字符以内)。

选择功能5(以学号查询学生信息):输入要查找的学生的学号(15个字符以内)。

选择功能6(以寝室号查询学生信息):输入寝室号(整数,范围在0~32767)。

②输出的形式:根据用户所选择的功能不同,会有不同的输出:选择功能1(添加学生信息):根据程序的判断会输出添加成功或者添加失败。

选择功能2(修改学生信息):根据程序的判断会输出修改成功或者修改失败。

选择功能3(删除学生信息):根据程序的判断会输出删除成功或者删除失败。

选择功能4(以姓名查询学生信息):根据程序的判断,如果查找成功,则会输出相应的学生信息,反之,则会输出查找失败。

选择功能5(以学号查询学生信息):根据程序的判断,如果查找成功,则会输出相应的学生信息,反之,则会输出查找失败。

选择功能6(以寝室号查询学生信息):根据程序的判断,如果查找成功,则会输出相应的学生信息,反之,则会输出查找失败。

选择功能7,8(以寝室号和学号为关键字进行从小到大的排序):程序会输出排序成功。

学生宿舍管理源代码

学生宿舍管理源代码
{
printf("\a\a警告:您输入错误,是否重输!(y/n)");
fflush(stdin);
ch1=getchar();
system("cls");
break;
}
} //end switch
}while(ch=='n'|| ch1=='y'); //控制是否要退出系统
printf("****************************** 学生信息插入 **********************************\n");
charu(stu,count); //调用插入函数
count++;
printf("是否继续插入?(y/n)");
printf("请输入第%d个学生的信息\n");
stu[count]=shuru(); //调用输入函数
printf("是否继续(y/n)");
fflush(stdin); // 刷新标准输入缓冲区,把输入缓冲区里的东西丢弃
ch=getchar();
count++;
c=='g')
return "女";
else
return "男";
}
}stu;
/****************************主函数开始**************************/
if(choice3==1) //控制按照学号查找
{
chazhao_number(stu,count); //调用按照学号查找的函数

宿舍管理系统c语言源代码

宿舍管理系统c语言源代码

宿舍管理系统c语言源代码很荣幸能为大家提供一份宿舍管理系统的c语言源代码。

这个宿舍管理系统基于c语言编写,适用于大学宿舍管理,并比较易于使用。

下面会详细解释其代码实现以及相关功能。

首先,我们来看看该程序的主要功能。

它可以实现以下功能:添加学生信息、删除学生信息、查找学生信息、修改学生信息、查看所有学生信息、保存学生信息。

同时,它还具有输入密码、退出等功能。

来看下面的代码实现说明:首先,我们需要定义一个结构体来存储学生信息。

结构体包括以下属性:学号、姓名、性别、年龄、所在学院、所在宿舍楼、所在房间号。

typedef struct student{char num[10]; // 学号char name[10]; // 姓名char sex[10]; // 性别int age; // 年龄char department[20];// 所在学院char dormitory[20]; // 所在宿舍楼char roomnum[10]; // 所在房间号}StuInfo;接下来,我们需要定义一些函数来实现各种功能。

首先,我们需要一个函数来输入学生信息。

void InputInfo(StuInfo *p)该函数的作用是输入学生信息,参数为指向结构体StuInfo的指针。

在函数中,我们可以使用scanf函数来从控制台输入学生的各项信息。

接下来,我们需要一个函数来添加学生信息。

void AddInfo(StuInfo *p, int *n)该函数的作用是添加学生信息,参数包括指向结构体StuInfo的指针以及学生数量的指针。

在函数中,我们可以通过遍历数组来找到空位置,然后调用输入信息的函数来输入学生信息。

接下来,我们需要一个函数来删除学生信息。

void DelInfo(StuInfo *p, int *n)该函数的作用是删除学生信息,参数包括指向结构体StuInfo的指针以及学生数量的指针。

在函数中,我们可以先输入学生的学号,然后通过遍历数组来找到该学生,最后将该位置清空。

学生宿舍管理系统数据库 代码

学生宿舍管理系统数据库 代码

学生宿舍管理系统数据库代码简介学生宿舍管理系统数据库代码是为了实现学生宿舍管理系统中数据库操作而设计的代码,通过对学生宿舍信息进行有效管理,提高管理效率和准确性。

数据库设计学生表(students)•学生ID(student_id):主键,学生的唯一标识•姓名(name):学生的姓名•性别(gender):学生的性别•年龄(age):学生的年龄•班级(class):学生所在班级宿舍表(dormitories)•宿舍ID(dormitory_id):主键,宿舍的唯一标识•宿舍楼号(building_no):宿舍所在楼号•房间号(room_no):宿舍的房间号•宿舍类型(dormitory_type):宿舍的类型(单人间、双人间等)•宿舍费用(cost):宿舍的费用入住信息表(check_ins)•入住ID(check_in_id):主键,入住信息的唯一标识•学生ID(student_id):外键,关联学生表中的学生ID•宿舍ID(dormitory_id):外键,关联宿舍表中的宿舍ID•入住日期(check_in_date):学生入住宿舍的日期•结束日期(check_out_date):学生搬出宿舍的日期缴费信息表(payments)•缴费ID(payment_id):主键,缴费信息的唯一标识•学生ID(student_id):外键,关联学生表中的学生ID•宿舍ID(dormitory_id):外键,关联宿舍表中的宿舍ID•缴费日期(payment_date):学生缴费的日期•缴费金额(amount):学生缴纳的费用SQL代码示例-- 查询所有学生信息SELECT*FROM students;-- 查询特定学生的入住信息SELECT*FROM check_insWHERE student_id ='123';-- 根据条件查询费用信息SELECT*FROM paymentsWHERE amount >100;总结通过学生宿舍管理系统数据库代码的设计和实现,可以更好地实现学生宿舍信息的管理和查询,提高了管理效率和准确性,为学生宿舍管理工作提供了便利和支持。

宿舍管理系统

宿舍管理系统

宿舍管理系统源代码#include "stdio.h"#include "stdlib.h"#define SIZE 1000char grade;typedef struct StuNode{char num[11];char name[20];char sex[2];char birth[11];char hometn[13];char dorNum[7];char dorTel[8];struct StuNode *next;}StuNode,*StuList;int readToList(StuList sl,FILE *fp){StuList p;int i=0;while(1){p=(StuList)malloc(sizeof(StuNode));if(fread(p,sizeof(StuNode),1,fp)!=1) break;p->next=sl->next;sl->next=p;i++;}fclose(fp);return i;}void addNode(){FILE *fp;StuList sl,p,q;if((fp=fopen("stu_list","rb"))==NULL){ /*the file doesn't exist*/p=(StuList)malloc(sizeof(StuNode));printf("Please enter the student's information:\n");scanf("%s%s%s%s%s%s%s",&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNu m,&p->dorTel);getchar();p->next=NULL;if((fp=fopen("stu_list","wb"))==NULL){printf("cannot open file\n");return;}else{if(fwrite(p,sizeof(StuNode),1,fp)!=1){printf("file write error\n");return;}}fclose(fp);}else{sl=(StuList)malloc(sizeof(StuNode));sl->next=NULL;readToList(sl,fp);p=(StuList)malloc(sizeof(StuNode));printf("Please enter the student's information:\n");scanf("%s%s%s%s%s%s%s",&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNu m,&p->dorTel);getchar();q=sl->next;while(q){if(strcmp(q->num,p->num)==0){printf("This student %s existed! Press Enter to continue....",p->num);getchar();clrscr();return;}else q=q->next;}p->next=sl->next;sl->next=p;p=sl->next;if((fp=fopen("stu_list","wb"))==NULL){printf("cannot open file\n");return;}else{while(p){if(fwrite(p,sizeof(StuNode),1,fp)!=1){printf("file write error\n");return;}p=p->next;}}fclose(fp);}printf("\nSuccess! Press Enter to continue....");getchar();clrscr();}void delNode(){FILE *fp;StuList sl,p,q;char num[11];int flag=1;printf("Please enter the student's num:");scanf("%s",&num);getchar();sl=(StuList)malloc(sizeof(StuNode));sl->next=NULL;if((fp=fopen("stu_list","rb"))==NULL){printf("cannot open file\n");return;}readToList(sl,fp);p=sl;while(p){q=p->next;if(strcmp(q->num,num)==0){p->next=q->next;free(q);flag=0;}else p=p->next;}if(flag==1){printf("Not exist this student--%s! Press Enter to continue....",num);getchar();clrscr();return;}else if((fp=fopen("stu_list","wb"))==NULL){printf("cannot open file\n");return;}else{p=sl->next;while(p){if(fwrite(p,sizeof(StuNode),1,fp)!=1){printf("file write error\n");return;}p=p->next;}fclose(fp);}printf("\nSuccess! Press Enter to continue....");getchar();clrscr();}void editNode(){FILE *fp;StuList sl,p;char num[11];int flag=1;printf("Please enter the student's num:");scanf("%s",&num);getchar();sl=(StuList)malloc(sizeof(StuNode));sl->next=NULL;if((fp=fopen("stu_list","rb"))==NULL){printf("cannot open file\n");return;}readToList(sl,fp);p=sl->next;while(p){if(strcmp(num,p->num)==0){printf("\nThe student's old information is:\n%s %s %s %s %s %s %s\nPlease enter the student's new information:\n",p->num,p->name,p->sex,p->birth,p->hometn,p->dorNum,p->dorTel);scanf("%s%s%s%s%s%s%s",&p->num,&p->name,&p->sex,&p->birth,&p->hometn,&p->dorNu m,&p->dorTel);getchar();flag=0;break;}else p=p->next;}if(flag){printf("Not exist this student--%s! Press Enter to continue....",num);getchar();clrscr();return;}else if((fp=fopen("stu_list","wb"))==NULL){printf("cannot open file\n");return;}else{p=sl->next;while(p){if(fwrite(p,sizeof(StuNode),1,fp)!=1){printf("file write error\n");return;}p=p->next;}fclose(fp);}printf("\nSuccess! Press Enter to continue....");getchar();clrscr();}void sort(StuList sl[],int n,char key[]){int i,j,k;if(strcmp(key,"num")==0){for(i=1;i<n;i++){k=i;for(j=i+1;j<=n;j++)if(strcmp(sl[j]->num,sl[k]->num)<0) k=j;if(k!=i){sl[0]=sl[i];sl[i]=sl[k];sl[k]=sl[0];}}}if(strcmp(key,"name")==0){for(i=1;i<n;i++){k=i;for(j=i+1;j<=n;j++)if(strcmp(strlwr(sl[j]->name),strlwr(sl[k]->name))<0) k=j;if(k!=i){sl[0]=sl[i];sl[i]=sl[k];sl[k]=sl[0];}}}if(strcmp(key,"dorNum")==0){for(i=1;i<n;i++){k=i;for(j=i+1;j<=n;j++)if(strcmp(sl[j]->dorNum,sl[k]->dorNum)<0) k=j;if(k!=i){sl[0]=sl[i];sl[i]=sl[k];sl[k]=sl[0];}}}}void scan(char key[]){FILE *fp;StuList sortary[SIZE],sl,p;int i,n;sl=(StuList)malloc(sizeof(StuNode));sl->next=NULL;if((fp=fopen("stu_list","rb"))==NULL){printf("cannot open file\n");return;}n=readToList(sl,fp);p=sl->next;for(i=1;i<=n;i++){sortary[i]=p;p=p->next;}sort(sortary,n,key);printf("\n num name sex birth hometown dorNum dorTel\n");printf("-----------------------------------------------------------------------------\n");for(i=1;i<=n;i++){printf("%-11s %-19s%-2s %-11s %-13s %-7s %-8s\n",sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]-> dorNum,sortary[i]->dorTel);}printf("-----------------------------------------------------------------------------\n");printf("Press Enter to continue...");getchar();}void search(char key[],char value[]){FILE *fp;StuList sortary[SIZE],sl,p;int i,n,low,high,mid,flag=1;sl=(StuList)malloc(sizeof(StuNode));sl->next=NULL;if((fp=fopen("stu_list","rb"))==NULL){printf("cannot open file\n");return;}n=readToList(sl,fp);p=sl->next;for(i=1;i<=n;i++){sortary[i]=p;p=p->next;}sort(sortary,n,key);low=1;high=n;while(low<=high){mid=(low+high)/2;if(strcmp(value,sortary[mid]->num)==0){printf("The student's information is:\n");printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hom etn,sortary[mid]->dorNum,sortary[mid]->dorTel);flag=0;break;}else if(strcmp(strlwr(value),strlwr(sortary[mid]->name))==0){printf("Result set:\n");printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hom etn,sortary[mid]->dorNum,sortary[mid]->dorTel);for(i=mid+1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i++)printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hom etn,sortary[mid]->dorNum,sortary[mid]->dorTel);for(i=mid-1;strcmp(strlwr(value),strlwr(sortary[i]->name))==0;i--)printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hom etn,sortary[mid]->dorNum,sortary[mid]->dorTel);flag=0;break;}else if(strcmp(value,sortary[mid]->dorNum)==0){printf("Result set:\n");printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[mid]->num,sortary[mid]->name,sortary[mid]->sex,sortary[mid]->birth,sortary[mid]->hom etn,sortary[mid]->dorNum,sortary[mid]->dorTel);for(i=mid+1;strcmp(value,sortary[i]->dorNum)==0;i++)printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]-> dorNum,sortary[i]->dorTel);for(i=mid-1;strcmp(value,sortary[i]->dorNum)==0;i--)printf("%-11s%-19s%-2s%-11s%-13s%-7s%-8s\n",sortary[i]->num,sortary[i]->name,sortary[i]->sex,sortary[i]->birth,sortary[i]->hometn,sortary[i]-> dorNum,sortary[i]->dorTel);flag=0;break;}else if((strcmp(key,"num")==0)&&(strcmp(value,sortary[mid]->num)<0)) high=mid-1;else if((strcmp(key,"name")==0)&&(strcmp(strlwr(value),strlwr(sortary[mid]->name))<0)) high=mid-1;else if((strcmp(key,"dorNum")==0)&&(strcmp(value,sortary[mid]->dorNum)<0)) high=mid-1;else low=mid+1;}if(flag) printf("No result!\n");printf("Press Enter to continue...");getchar();clrscr();}void printMenu(){printf(" *********************< MENU >*********************\n"); printf(" 1.Add one student's record.\n");printf(" 2.Delete one student's record.\n");printf(" 3.Edit one student's record.\n");printf(" 4.Scan all records ordered by num.\n");printf(" 5.Scan all records ordered by name.\n");printf(" 6.Scan all records ordered by dorNum.\n");printf(" 7.Search one student's record.\n");printf(" 8.Exit.\n");printf(" **************************************************\n"); printf("Please enter your choice(1~8):");grade=getchar();getchar();}void main(){char key[7],value[20];while(1){printMenu();switch(grade){case'1':addNode();break;case'2':delNode();break;case'3':editNode();break;case'4':clrscr();scan("num");break;case'5':clrscr();scan("name");break;case'6':clrscr();scan("dorNum");break;case'7':clrscr();printf("Please enter the key and value(eg:num 0606054230/name ZhangSan/dorNum 030615):\n");scanf("%s%s",&key,&value);while((strcmp(key,"num")!=0)&&(strcmp(key,"name")!=0)&&(strcmp(key,"dorNum")!=0)){ printf("Wrong key! It must be num/name/dorNum:\n");scanf("%s%s",&key,&value);getchar();}getchar();clrscr();search(key,value);break;case'8':exit(0);default:clrscr();printf("\n Have no this choice--%c! Press Enter to continue...",grade);getchar();clrscr();}}}。

宿舍管理系统源代码

宿舍管理系统源代码

#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct Student{char name[20];char sex[5];int age;char institute[20];char specialty[30];}Student;typedef struct Room{int roomnum;int roomarea;int totalnum;int stunum;Student stu[10];Room *next;}Room;typedef struct Story{char storynum;Room *room;}Story;/*-------------------------------------------------------------------------------------------------*/Student *StudentCreat(int age,char name[],char institute[],char specialty[],char sex[]){Student *Stu;Stu=(Student *)malloc(sizeof(Student));Stu->age=age;strcpy(Stu->institute,institute);strcpy(Stu->name,name);strcpy(Stu->specialty,specialty);strcpy(Stu->sex,sex);return Stu;}Room *RoomCreat(int room_num,int room_area,int total_num,int stu_num) {Room *R;int i;R=(Room *)malloc(sizeof(Room));if(!R)return NULL;R->roomnum=room_num;R->roomarea=room_area;R->totalnum=total_num;R->stunum=stu_num;R->next=NULL;return R;}Story *StoryCreat(){Story *S;S=(Story *)malloc(sizeof(Story));S->room=RoomCreat(0,0,0,0);return S;}Story *DormCreat(){Story *S,*control;char i;control=(Story *)malloc(26*sizeof(Story));if(!control)return NULL;for(i='A';i<='Z';i++){S=StoryCreat();S->storynum=i;control[i-'A']=*S;}return control;}/*-------------------------------------------------------------------------------------------------*/Story *StorySearch(Story *control,char storynum){return control+(storynum-'A');}Room *RoomSearch(Room *R,int room_num){while(R->next!=NULL){if(R->next->roomnum==room_num)break;else R=R->next;}return R;}Student *StudentSearch(Room *R,char name[]){Student *p;int i;R=R->next;p=R->stu;for(i=0;i<R->stunum;i++){if(strcmp(p->name,name)==0)return p;else p++;}return NULL;}/*-------------------------------------------------------------------------------------------------*/void RoomInsert(Story *S,Room *R){R->next=S->room->next;S->room->next=R;}void StudentInsert(Room *R,Student *Stu){R=R->next;R->stu[R->stunum]=*Stu;R->stunum++;}void RoomDelete(Room *R){Room *p;R=R->next;p=R;R=R->next;free(p);}void StudentDelete(Room *R,Student *Stu){R=R->next;Student *p;for(p=R->stu;Stu<p+R->stunum-1;Stu++)*Stu=*(Stu+1); R->stunum--;}void RoomRevamp(Room *R){int i,k;R=R->next;printf("1、房号 2、面积 3、可容纳人数:\n");printf("要修改那一项:\n");scanf("%d",&i);switch(i){case 1:{printf("房号:");scanf("%d",&k);R->roomnum=k;break;}case 2:{printf("面积:");scanf("%d",&k);R->roomarea=k;break;}case 3:{printf("可容纳人数:");scanf("%d",&k);R->totalnum =k;break;}}}void StudentRevamp(Student *Stu){int i,k;char str[30];printf("1、姓名 2、性别 3、学院 4、专业 5、年龄:\n"); printf("要修改那一项:\n");scanf("%d",&i);switch(i){case 1:{printf("姓名:");scanf("%s",str);strcpy(Stu->name,str);break;}case 2:{printf("性别:");scanf("%s",str);strcpy(Stu->sex,str);break;}case 3:{printf("学院:");scanf("%s",str);strcpy(Stu->institute,str);break;}case 4:{printf("专业:");scanf("%s",str);strcpy(Stu->specialty,str);break;}case 5:{printf("年龄:");scanf("%d",&k);Stu->age =k;break;}}}/*-------------------------------------------------------------------------------------------------*/void RoomScan(Room *R){int i;Student *p;R=R->next;printf("房号:%d\n",R->roomnum);printf("面积:%d\n",R->roomarea);printf("可容纳人数:%d\n",R->totalnum);printf("已住入人数:%d\n",R->stunum);printf("成员:");for(i=0;i<R->stunum;i++){p=&(R->stu[i]);printf("%s ",p->name);}putchar('\n');}void StudentScan(Student *Stu){printf("姓名:%s\n",Stu->name);printf("年龄:%d\n",Stu->age);printf("性别:%s\n",Stu->sex);printf("学院:%s\n",Stu->institute);printf("专业:%s\n",Stu->specialty);}int main(){int roomnum,roomarea,totalnum,stunum,age;int event;char name[20],institute[20],specialty[30],sex[5];char storynum,judge;Story *control;Story *S;Room *R;Student *Stu;control=DormCreat();do{printf("****************************注意**********************************\n");printf("* 先录入宿舍信息才能录入学生信息*\n");printf("* 先录入信息才能删除浏览或修改信息*\n");printf("************************************************************* *****\n");printf("\n\n\n 宿舍管理系统\n\n\n");printf("功能选择菜单:\n");printf("1、宿舍信息录入 2、学生信息录入 3、删除某个宿舍 4、删除某个学生\n");printf("5、宿舍信息浏览 6、学生信息浏览 7、宿舍信息修改 8、学生信息修改\n");scanf("%d",&event);switch(event){case 1:{do{printf("请输入宿舍房间号,房间面积,可容纳人数,已住入人数:(以空格隔开)\n");fflush(stdin);scanf("%c%d %d %d %d",&storynum,&roomnum,&roomarea,&totalnum,&stunum);S=StorySearch(control,storynum);R=RoomCreat(roomnum,roomarea,totalnum,stunum);RoomInsert(S,R);printf("宿舍信息录入成功!\n");fflush(stdin);printf("是否继续录入宿舍信息(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;}case 2:{do{printf("请输入该生要入住的宿舍:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);printf("请输入该生姓名,性别,学院,专业,年龄:(以空格隔开)\n");scanf("%s%s%s%s",name,sex,institute,specialty);scanf("%d",&age);Stu=StudentCreat(age,name,institute,specialty,sex);StudentInsert(R,Stu);printf("学生信息录入成功!\n");fflush(stdin);printf("是否继续录入学生信息(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 3:{do{printf("请输入要删除的宿舍号码:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);RoomDelete(R);printf("宿舍信息删除成功!\n");fflush(stdin);printf("是否继续删除宿舍信息(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 4:{do{printf("请输入要删除学生现住宿舍:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);printf("请输入要删除学生的姓名:\n");scanf("%s",name);Stu=StudentSearch(R,name);StudentDelete(R,Stu);printf("学生信息删除成功!\n");fflush(stdin);printf("是否继续删除学生信息(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 5:{do{printf("请输入要浏览的宿舍号码:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);RoomScan(R);fflush(stdin);printf("是否继续浏览宿舍(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 6:{do{printf("请输入要浏览学生的宿舍号码:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);printf("请输入要浏览学生的姓名:\n");scanf("%s",name);Stu=StudentSearch(R,name);StudentScan(Stu);fflush(stdin);printf("是否继续浏览学生(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 7:{do{printf("请输入要修改的宿舍号码:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);RoomRevamp(R);printf("宿舍信息修改成功!\n");fflush(stdin);printf("是否继续修改(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');break;break;}case 8:{do{printf("请输入要修改学生的宿舍号码:\n");fflush(stdin);scanf("%c%d",&storynum,&roomnum);fflush(stdin);S=StorySearch(control,storynum); R=S->room;R=RoomSearch(R,roomnum);printf("请输入要修改学生的姓名:\n");scanf("%s",name);Stu=StudentSearch(R,name);StudentRevamp(Stu);printf("学生信息修改成功!\n");fflush(stdin);printf("是否继续修改(Y/N)\n");scanf("%c",&judge); }while(judge=='Y');break;break;}}fflush(stdin);printf("是否继续其他操作(Y/N)\n");scanf("%c",&judge);}while(judge=='Y');system("pause");}欢迎您的下载,资料仅供参考!致力为企业和个人提供合同协议,策划案计划书,学习资料等等打造全网一站式需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计源代码设计题目:学生宿舍管理系统院系:计算机学院班级:软件1501 组别:六组长:周佳理组员: 韩壮壮陈义安起止日期: 2016年12月20日~2016年12月24日指导教师:韩丽娜源代码:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<string.h>void AppendNode(long studentID, char studentName[15], char roomNumber[4], char bedNumber[4]);//向链表中添加数据void DisplayNode(struct 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 studentName[15], char roomNumber[4], char bedNumber[4]);//按学号从小到大排序void NumberSorting();//排序void Menu();//菜单控制模块功能代码://主函数int main(){long studentID;char studentName[15];char roomNumber[4];char bedNumber[4];//定义要输入学生信息的变量;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", &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;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 Menu() {system("cls");//清屏操作;printf("\n\n\n\n\n");printf("\t\t|.......学生宿舍管理系统..............|\n");printf("\t\t|\t 0.退出 |\n");printf("\t\t|\t 1.添加学生住宿信息 |\n");printf("\t\t|\t 2.查找学生(按学号)信息 |\n");printf("\t\t|\t 3.查找学生(按姓名)信息 |\n");printf("\t\t|\t 4.显示学生信息 |\n");printf("\t\t|\t 5.按学号排序 |\n");printf("\t\t|\t 6.保存信息 |\n");printf("\t\t|\t 7.打开信息 |\n");printf("\t\t|.......学生宿舍管理系统..............|\n");}//表头格式控制void Display(struct link *head) {printf("-----------------------------------------------------------\n");printf(" 学号姓名宿舍号床号 \n");printf("-----------------------------------------------------------\n");DisplayNode(head);}数据模块功能代码://定义结构体typedef struct student {long studentID; //学号char studentName[15];//姓名char roomNumber[4];//房间号char bedNumber[4];//床号}STU;//初始化链表struct link {STU student;struct link *next;};struct link *head = NULL;//保存输入的学生信息数据struct link *head1 = NULL;//保存排序后的学生信息数据//添加数据void AppendNode(long studentID, char studentName[15], char roomNumber[4], char bedNumber[4]) {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 != 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("%lld%15s%13s%13s",p->student.studentID,p->student.studentName,p->stu dent.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->student.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 studentName[15];char roomNumber[4];char bedNumber[4];FILE *fp; char c;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);}功能模块功能代码://排序函数void NumberSorting() {struct link *p = head;struct link *p1 = head1;int sum = 0;if(p == NULL) {printf("没有数据,无法排序"); return;}while (p!=NULL) {InsertNodeNumber(p->student.studentID,p->student.studentName,p->student.roo mNumber, p->student.bedNumber);p = p->next;}}//按学号的从小到大排序void InsertNodeNumber(long studentID, char studentName[15], char roomNumber[4], char bedNumber[4]) {struct link *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 == NULL) {head1 = p;}else {while (pr->student.studentID < studentID&&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;}}}//删除链表所占用的内存void DeleteMemory(struct link *head) {struct link *p = head, *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 == 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 studentName[15] = "";if (head == NULL) {printf("没有数据查找"); return;}printf("请输入你要查找的学生的姓名:");scanf("%s", studentName);while (0!=strcmp(studentName,p->student.studentName)&&p->next != NULL) { p = p->next;}if (0==strcmp(studentName,p->student.studentName)) {printf("-----------------------------------------------------------\n");printf(" 学号姓名宿舍号床号 \n");printf("-----------------------------------------------------------\n");printf("%lld%15s%13s%13s",p->student.studentID,p->student.studentName,p->studen t.roomNumber, p->student.bedNumber);}else {printf("没有你要查找的数据");} return;}Welcome To Download !!!欢迎您的下载,资料仅供参考!。

相关文档
最新文档