自己做的分文件学生信息管理系统.docx

上传人:b****5 文档编号:8727467 上传时间:2023-05-14 格式:DOCX 页数:19 大小:17.78KB
下载 相关 举报
自己做的分文件学生信息管理系统.docx_第1页
第1页 / 共19页
自己做的分文件学生信息管理系统.docx_第2页
第2页 / 共19页
自己做的分文件学生信息管理系统.docx_第3页
第3页 / 共19页
自己做的分文件学生信息管理系统.docx_第4页
第4页 / 共19页
自己做的分文件学生信息管理系统.docx_第5页
第5页 / 共19页
自己做的分文件学生信息管理系统.docx_第6页
第6页 / 共19页
自己做的分文件学生信息管理系统.docx_第7页
第7页 / 共19页
自己做的分文件学生信息管理系统.docx_第8页
第8页 / 共19页
自己做的分文件学生信息管理系统.docx_第9页
第9页 / 共19页
自己做的分文件学生信息管理系统.docx_第10页
第10页 / 共19页
自己做的分文件学生信息管理系统.docx_第11页
第11页 / 共19页
自己做的分文件学生信息管理系统.docx_第12页
第12页 / 共19页
自己做的分文件学生信息管理系统.docx_第13页
第13页 / 共19页
自己做的分文件学生信息管理系统.docx_第14页
第14页 / 共19页
自己做的分文件学生信息管理系统.docx_第15页
第15页 / 共19页
自己做的分文件学生信息管理系统.docx_第16页
第16页 / 共19页
自己做的分文件学生信息管理系统.docx_第17页
第17页 / 共19页
自己做的分文件学生信息管理系统.docx_第18页
第18页 / 共19页
自己做的分文件学生信息管理系统.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

自己做的分文件学生信息管理系统.docx

《自己做的分文件学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《自己做的分文件学生信息管理系统.docx(19页珍藏版)》请在冰点文库上搜索。

自己做的分文件学生信息管理系统.docx

自己做的分文件学生信息管理系统

#include"stud_mgr_system.h"

intmain(void)

{

charopt;

DoubleLinkhead=NULL;

DoubleLinkfindnode=NULL;

charfindnum[10];

secrecy();

while

(1)

{

system("color0A");

menu();

printf("\n");

printf("\t请输入要操作的编号【1-8】:

[]\b\b");

scanf("%c",&opt);

if(opt=='\n'||opt=='\0')

{

printf("\t\t\t");

printf("\n\n\n不能输入回车键或空格!

\n\n\n");

}

elseif(opt>'8'||opt<'1')

{

printf("\t\t\t");

printf("\n\n\n输入错误!

请输入【1-8】:

\n\n\n\n");

system("PAUSE");

}

system("CLS");

switch(opt)

{

case'1':

{

head=creatdoublelink();

head=save_file(head);

break;

}

case'2':

{

system("CLS");

printlist(head);

system("PAUSE");

system("CLS");

break;

}

case'3':

{

system("CLS");

printf("请输入要查找学生的学号==>");

scanf("%s",&findnum);

findnode=findinfo(head,findnum);

if(!

findnode)

printf("\n\n没有找到!

\n");

system("PAUSE");

system("CLS");

break;

}

case'4':

{

system("CLS");

head=addnode(head);

printf("\n*******新增之后的链表********\n");

printlist(head);

printf("\n*****************************\n");

system("PAUSE");

system("CLS");

head=save_file(head);

break;

}

case'5':

{

system("CLS");

if(head==NULL)

{

printf("当前的链表为空!

没有要删除的信息!

\n\n");

break;

}

head=deletenode(head);

save_file(head);

break;

}

case'6':

{

if(head==NULL)

{

printf("\n\n当前链表为空!

没有要修改的信息\n\n");

system("PAUSE");

break;

}

head=modifyinfo(head);

system("PAUSE");

system("CLS");

break;

}

case'7':

{

freelist(head);

system("PAUSE");

system("CLS");

save_file(head);

break;

}

case'8':

{

system("color5B");

system("CLS");

printf("\n\n\n\n\n\n\n\n\n");

printf("\t\t\t谢谢使用!

再见!

\n\n\n\n\n\n\n");

exit(0);

break;

}

//default:

printf("输入错误!

请重新输入!

\n");

}

}

head=save_file(head);

return0;

}

#include"stud_mgr_system.h"

/*错误*/

voidprint_err(char*p)

{

perror("p");

exit

(1);

}

/*输出链表信息*/

voidprintlist(DoubleLinkL)

{

//FILE*fp;

//structstud_mgr_sysstudent;

DoubleLinktmp;

tmp=L;

/*if((fp=fopen("E:

\\stud_mgr_system.txt","r"))==NULL)

{

printf("\nFailtoopenE:

\\stud_mgr_system.txt!

\n");

getchar();

exit

(1);

}*/

/*if((fread(tmp,sizeof(structstud_mgr_sys),1,fp))!

=1)

{

printf("FailtoreadE:

\\stud_mgr_system.txt!

\n");

getchar();

}

else

{

while(tmp!

=NULL)

{

printf("学生的学号:

%s\n",tmp->num);

printf("学生的姓名:

%s\n",tmp->name);

printf("学生的电话:

%s\n",tmp->phone);

printf("学生的地址:

%s\n",tmp->addr);

printf("\n");

tmp=tmp->front;

}

}

fclose(fp);*/

while(tmp!

=NULL)

{

printf("学生的学号:

%s\n",tmp->num);

printf("学生的姓名:

%s\n",tmp->name);

printf("学生的电话:

%s\n",tmp->phone);

printf("学生的地址:

%s\n",tmp->addr);

printf("\n");

tmp=tmp->front;

}

}

/*清空链表*/

voidfreelist(DoubleLinkL)

{

DoubleLinkptr;

while(L!

=NULL)

{

ptr=L;

L=L->front;

free(ptr);

}

printf("\n\n\n\n");

printf("\t\t\t链表清空完毕!

\n\n\n");

}

/*双链表的创建*/

DoubleLinkcreatdoublelink()

{

DoubleLinkhead;

DoubleLinknew_node,before;

intcount,i;

head=(DoubleLink)malloc(sizeof(DoubleLink));

if(!

head)

print_err("Failtomallochead");

head=NULL;

before=head;

printf("请输入要创建链表节点的个数==>");

scanf("%d",&count);

for(i=1;i<=count;i++)

{

new_node=(DoubleLink)malloc(sizeof(DoubleLink));

if(!

new_node)

print_err("Failtomallocnew_node");

printf("请输入第%d个学生的学号==>",i);

scanf("%s",&new_node->num);

//gets(new_node->num);

printf("请输入第%d个学生的姓名==>",i);

scanf("%s",&new_node->name);

//gets(new_node->name);

printf("请输入第%d个学生的电话==>",i);

scanf("%s",&new_node->phone);

//gets(new_node->phone);

printf("请输入第%d个学生的地址==>",i);

scanf("%s",&new_node->addr);

//gets(new_node->addr);

printf("\n");

new_node->front=NULL;

if(head==NULL)

{

head=new_node;

before=head;

}

else

{

before->front=new_node;

new_node->back=before;

before=new_node;

}

}

printf("链表创建成功!

\n\n");

system("PAUSE");

system("CLS");

returnhead;

}

/*增加学生的信息*/

DoubleLinkaddnode(DoubleLinkL)

{

DoubleLinkaddnew,end;

end=L;

addnew=(DoubleLink)malloc(sizeof(DoubleLink));

if(!

addnew)

print_err("Failtomallocaddnew");

printf("请输入要插入的学生的学号==>");

scanf("%s",&addnew->num);

printf("请输入要插入的学生的姓名==>");

scanf("%s",&addnew->name);

printf("请输入要插入的学生的电话==>");

scanf("%s",&addnew->phone);

printf("请输入要插入的学生的地址==>");

scanf("%s",&addnew->addr);

addnew->front=NULL;

if(L==NULL)

L=addnew;

else

{

while(end->front!

=NULL)

end=end->front;

end->front=addnew;

addnew->back=end;

}

printf("\n\n该学生的信息插入完毕!

\n\n");

returnL;

}

/*学生信息的删除*/

DoubleLinkdeletenode(DoubleLinkL)

{

DoubleLinkptr,tail;

tail=L;

while(tail->front!

=NULL)

tail=tail->front;

chardelname[10];

printf("请输入要删除学生的学号==>");

scanf("%s",&delname);

if(findinfo(L,delname)==NULL)

{

printf("\n删除失败!

没有这个节点的信息!

\n");

exit

(1);

}

printf("\n===========你删除的学生的信息为===========\n\n");

ptr=findinfo(L,delname);

printf("\n===========================================\n\n");

printf("\t\t删除成功!

\n\n");

system("PAUSE");

if(ptr==L)

returnL->front;

elseif(tail==ptr)

tail->front=NULL;

else

{

ptr->back->front=ptr->front;

ptr->front->back=ptr->back;

}

returnL;

}

/*查询学生的信息*/

DoubleLinkfindinfo(DoubleLinkL,charfindnum[])

{

inti=1;

DoubleLinkptr;

ptr=L;

while(ptr!

=NULL)

{

if((strcmp(ptr->num,findnum)==0))

{

printf("\n这个学生在链表的第%d个位置。

\n\n",i);

printf("\n===========================================\n\n");

printf("这个学生的学号为:

%s\n",ptr->num);

printf("这个学生的姓名为:

%s\n",ptr->name);

printf("这个学生的电话为:

%s\n",ptr->phone);

printf("这个学生的地址为:

%s\n",ptr->addr);

printf("\n\n=========================================\n\n");

returnptr;

}

else

{

ptr=ptr->front;

i++;

}

}

returnptr;

}

/*将内容存到文件中*/

DoubleLinksave_file(DoubleLinkL)

{

FILE*fp;

//structstud_mgr_sysstudent;

DoubleLinkptr;

ptr=L;

if((fp=fopen("E:

\\stud_mgr_system.txt","ab+"))==NULL)

{

printf("FailtoopenE:

\\stud_mgr_system.txt!

\n");

getchar();

exit

(1);

}

while(ptr!

=NULL)

{

if((fwrite(ptr,sizeof(structstud_mgr_sys),1,fp))!

=1)

{

printf("Failtowritefile!

\n");

getchar();

exit

(1);

}

ptr=ptr->front;

}

printf("\n\n\n文件保存完毕!

\n\n\n");

returnL;

}

/*学生信息的修改*/

DoubleLinkmodifyinfo(DoubleLinkL)

{

DoubleLinkmodptr;

charmodnum[10];

printf("请输入要修改学生信息的学号==>");

scanf("%s",&modnum);

modptr=findinfo(L,modnum);

if(modptr==NULL)

printf("\n\n没有找到该学生的信息!

修改失败!

\n\n");

printf("请输入学号==>");

scanf("%s",&modptr->num);

printf("请输入姓名==>");

scanf("%s",&modptr->name);

printf("请输入电话==>");

scanf("%s",&modptr->phone);

printf("请输入地址==>");

scanf("%s",&modptr->addr);

printf("\n\n修改成功!

\n\n");

returnL;

}

/*菜单选项表*/

voidmenu()

{

printf("\n\n");

printf("\t=======================学生信息管理系统=====================\n\n");

printf("\t****************************MENU**************************\n");

printf("\t***\n");

printf("\t*1.创建学生信息*2.显示学生信息*\n");

printf("\t*3.查找学生信息*4.新增学生信息*\n");

printf("\t*5.删除学生信息*6.修改学生信息*\n");

printf("\t*7.学生信息清空*8.退出管理系统*\n");

printf("\t***\n");

printf("\t************************************************************\n");

printf("\t*||*);

printf("\t************************************************************\n");

}

/*密码*/

voidsecrecy()

{

charinitsec[10]="123456";

charinputsec[10];

inti,j=0;

printf("\n你共有三次机会输入密码以进入系统!

\n\n");

for(i=3;i>=1;--i)

{

printf("\t\t");

printf("\n\n请输入密码以进入系统:

");

scanf("%s",&inputsec);

if(strcmp(initsec,inputsec)!

=0)

{

printf("\n\n密码输入错误!

你还有%d次机会!

\n\n\n\n\n\n\n\n\n",i-1);

++j;

system("PAUSE");

system("CLS");

}

else

break;

}

if(j==3)

{

printf("程序即将退出!

\n\n");

system("pause");

exit

(1);

}

system("CLS");

system("color3A");

printf("\n\n\n\n");

printf("\t\t=============欢迎使用学生管理系统=============\n");

printf("\t\t====\n");

printf("\t\t==**==\n");

printf("\t\t==@==\n");

printf("\t\t==============================================\n");

printf("\n\n\n\n\n\n\n\n\n\n\n");

system("PAUSE");

system("CLS");

system("CLS");

}

/*密码修改函数*/

/*voidchangesec()

{

charnewsec[10];

charsuresec[10];

printf("请输入原来的密码==>");

scanf("%s",&suresec);

if((strcmp(initsec,suresec)!

=0))

{

printf("密码输入错误!

请重新输入原来密码以改密码!

\n");

printf("请输入原来的密码==>");

scanf("%s",&suresec);

}

else

{

printf("请输入新的密码==>");

scanf("%s",&newsec);

strcpy(initsec,newsec);

printf("\n\n密码修改成功!

\n\n");

system("PAUSE");

system("CLS");

}

}*/

#include

#include

#include

#include

//FILE*fp;

/*学生信息管理系统的节点类型*/

structstud_mgr_sys

{

charnum[12];

charname[12];

charphone[12];

charaddr[20];

structstud_mgr_sys*front;

structstud_mgr_sys*back;

};

//structstud_mgr_sysstudent;

typedefstructstud_mgr_sys*DoubleLink;

/*定义接口函数*/

voidprintlist(DoubleLinkL);//输出链表的信息

DoubleLinkaddnode(DoubleLinkL);//增加学生的信息

DoubleLinkdeletenode(DoubleLinkL);//删除学生的信息

DoubleLinkfindinfo(DoubleLinkL,charnum[]);//查询学生的信息

DoubleLinkmodifyinfo(DoubleLinkL);//学生信息的修改

voidfreelist(DoubleLinkL);//释放节点

DoubleLinkcreatdoublelink();//创建双链表

voidmenu();//菜单选项表

voidsecrecy();//定义密码函数

voidchangesec();//密码修改函数

DoubleLinksave_file(DoubleLinkL);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2