学生宿舍管理系统源代码样本文档格式.docx
《学生宿舍管理系统源代码样本文档格式.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统源代码样本文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
stdlib.h>
string.h>
voidAppendNode(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);
请输入学生姓名:
%s"
studentName);
请输入房间号:
roomNumber);
请输入床位号:
bedNumber);
AppendNode(studentID,studentName,roomNumber,bedNumber);
}
Display(head);
case2:
FindID();
case3:
FindName();
case4:
Display(head);
//显示信息
break;
case5:
NumberSorting();
Display(head1);
//排序后学生信息
head1=NULL;
case6:
Save();
case7:
Open();
default:
输入有误!
请重新输入"
);
}
}
DeleteMemory(head);
DeleteMemory(head1);
system("
return0;
}
voidMenu(){
cls"
//清屏操作;
printf("
\n\n\n\n\n"
\t\t|.......学生宿舍管理系统..............|\n"
\t\t|\t0.退出|\n"
\t\t|\t1.添加学生住宿信息|\n"
\t\t|\t2.查找学生(按学号)信息|\n"
\t\t|\t3.查找学生(按姓名)信息|\n"
\t\t|\t4.显示学生信息|\n"
\t\t|\t5.按学号排序|\n"
\t\t|\t6.保存信息|\n"
\t\t|\t7.打开信息|\n"
voidDisplay(structlink*head){
-----------------------------------------------------------\n"
学号姓名宿舍号床号\n"
DisplayNode(head);
数据模块功能代码:
//定义构造体
typedefstructstudent{
longstudentID;
//学号
//姓名
//房间号
//床号
}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){
申请内存失败"
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);
student.roomNumber,roomNumber);
student.bedNumber,bedNumber);
next=NULL;
//打印数据
voidDisplayNode(structlink*head){
structlink*p=head;
return;
%lld%15s%13s%13s"
p->
student.studentID,p->
student.studentName,p->
student.roomNumber,p->
student.bedNumber);
\n"
p=p->
next;
DisplayNode(p);
//保存链表中数据
voidSave(){
FILE*fp;
fp=fopen("
demo.txt"
,"
w"
if(fp==NULL){
打开文献失败"
while(p!
fprintf(fp,"
%20lld%15s%5s%4s"
,p->
student.studentID,p->
student.studentName,p->
student.roomNumber,p->
p=p->
fclose(fp);
//将文献中获得数据写入到链表中
voidOpen(){
fflush(stdin);
fflush(stdout);
FILE*fp;
a+"
文献打开失败"
while((c=fgetc(fp))!
=EOF){
fscanf(fp,"
%20lld"
%15s"
,studentName);
%5s"
,roomNumber);
fscanf(fp,"
%4s"
bedNumber);
AppendNode(studentID,studentName,roomNumber,bedNumber);
fclose(fp);
功能模块功能代码:
//排序函数
voidNumberSorting(){
structlink*p1=head1;
intsum=0;
if(p==NULL){
没有数据,无法排序"
while(p!
=NULL){
InsertNodeNumber(p->
p=p->
voidInsertNodeNumber(longstudentID,charstudentName[15],charroomNumber[4],charbedNumber[