基于LINUX系统下c语言学生管理系统stu.docx

上传人:b****6 文档编号:6569735 上传时间:2023-01-08 格式:DOCX 页数:14 大小:17.10KB
下载 相关 举报
基于LINUX系统下c语言学生管理系统stu.docx_第1页
第1页 / 共14页
基于LINUX系统下c语言学生管理系统stu.docx_第2页
第2页 / 共14页
基于LINUX系统下c语言学生管理系统stu.docx_第3页
第3页 / 共14页
基于LINUX系统下c语言学生管理系统stu.docx_第4页
第4页 / 共14页
基于LINUX系统下c语言学生管理系统stu.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于LINUX系统下c语言学生管理系统stu.docx

《基于LINUX系统下c语言学生管理系统stu.docx》由会员分享,可在线阅读,更多相关《基于LINUX系统下c语言学生管理系统stu.docx(14页珍藏版)》请在冰豆网上搜索。

基于LINUX系统下c语言学生管理系统stu.docx

基于LINUX系统下c语言学生管理系统stu

/***********文件包含***************************/

#include"stu.h"

#include"common.h"

#include"tooler.h"

/*******************学生按学号查看自己的信息***************************/

/**

*说明:

先查找,然后将查找到的学生结点摘下来放进一个新结点

*/

linkstustu_searchmyinfo(linkstuphead,intnum,int*index)

{

linkstup=phead,s;

(*index)=0;

s=(linkstu)malloc(sizeof(nodestu));

if(s==NULL)

{

printf("mallocerror!

\n");

returnNULL;

}

s->stu_info.num=num;

if(p==NULL)

{

printf("无学生信息!

\n");

returnNULL;

}

else

{(*index)=1;

while(p!

=NULL)

{

if(p->stu_info.num==s->stu_info.num)

{

strcpy(s->stu_info.name,p->stu_info.name);

s->stu_info.sex=p->stu_info.sex;

s->stu_info.age=p->stu_info.age;

s->class=p->class;

s->chi=p->chi;

s->math=p->math;

s->eng=p->eng;

strcpy(s->password,p->password);

s->rank=p->rank;

s->next=NULL;

returns;

}

p=p->next;

(*index)++;

}

}

returnNULL;

}

/**********************************************/

/*

*说明:

先查找,将查找到的结点返回

**/

linkstustu_searchmyinfo_1(linkstuphead,intnum)

{

linkstup=phead;

if(p==NULL)

{

printf("无学生信息!

\n");

returnNULL;

}

else

{

while(p!

=NULL)

{

if(p->stu_info.num==num)

returnp;

p=p->next;

}

}

returnNULL;

}

/**************************************按序号查找学生************************************************/

linkstustu_searchbyindex(linkstuphead,intindex)

{

linkstup=phead;

inti;

if(phead==NULL||index>link_getlen(phead)||index<1)

returnNULL;

for(i=1;i

p=p->next;

returnp;

}

/*********************************学生修改自己的密码*********************************************/

voidstu_modmypass(linkstumod_p)

{

chara[10],b[10];

if(mod_p!

=NULL)

{

printf("Oldpassword:

%s\n",mod_p->password);

while

(1)

{

printf("请输入新密码:

");

scanf("%s",b);

printf("请再次确认输入的新密码:

");

scanf("%s",a);

if(strcmp(b,a)==0)

{

strcpy(mod_p->password,a);

printf("修改成功!

\n");

break;

}

else

printf("两次输入不一样,修改失败,请重新输入!

\n");

getchar();

}

}

}

/**************************************************创建学生信息链表********************************************/

/***创建形式:

尾插

**功能:

返回头指针

**

*/

linkstustu_link_creat()

{

linkstus=NULL,phead=NULL,r;

intflag=1;

intnum,age,class,chi,math,eng;

charname[10],sex;

charsym;

while

(1)

{

printf("请输入学号(务必输入1000-4000之间的数):

");

scanf("%d",&num);

if(num>=1001&&num<4000)

break;

else

printf("输入有误,重新输入!

\n");

}

printf("请输入姓名:

");

scanf("%s",name);

getchar();//************************************************吸收掉输入姓名后敲入的回车

while

(1)

{

printf("请输入性别(f,F或者m,M):

");

scanf("%c",&sex);

if(sex=='f'||sex=='F'||sex=='m'||sex=='M')

break;

else

{

printf("输入有误,重新输入!

\n");

getchar();

}

}

while

(1)

{

printf("请输入年龄(务必输入20-30之间的数):

");

scanf("%d",&age);

if(age>=20&&age<=30)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入班级(务必输入1-3之间的整数):

");

scanf("%d",&class);

if(class>=1&&class<=3)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入语文成绩(0-100之间的数):

");

scanf("%d",&chi);

if(chi>=0&&chi<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入数学成绩:

");

scanf("%d",&math);

if(math>=0&&math<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入英语成绩:

");

scanf("%d",&eng);

if(eng>=0&&eng<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

while(flag)

{

s=(linkstu)malloc(sizeof(nodestu));

if(s==NULL)

{

printf("mallocerror!

%s,%d",__FILE__,__LINE__);

returnNULL;

}

s->stu_info.num=num;

strcpy(s->stu_info.name,name);//***************字符串不能直接赋给字符串,需要用此方式赋值

s->stu_info.sex=sex;

s->stu_info.age=age;

s->class=class;

s->chi=chi;

s->math=math;

s->eng=eng;

if(phead==NULL)

{

s->next=NULL;

phead=s;

r=s;

}

else

{

s->next=NULL;

r->next=s;

r=s;

}

getchar();

printf("DoYouWantcontinue?

Y/N");

while

(1)

{

sym=getchar();

if(sym=='y'||sym=='Y')

{

flag=1;

while

(1)

{

printf("请输入学号(务必输入1000-4000之间的数):

");

scanf("%d",&num);

if(num>=1001&&num<4000)

break;

else

printf("输入有误,重新输入!

\n");

}

printf("请输入姓名:

");

scanf("%s",name);

getchar();//******************************************吸收掉输入姓名后敲入的回车

while

(1)

{

printf("请输入性别(f,F或者m,M):

");

scanf("%c",&sex);

if(sex=='f'||sex=='F'||sex=='m'||sex=='M')

break;

else

{

printf("输入有误,重新输入!

\n");

getchar();

}

}

while

(1)

{

printf("请输入年龄(务必输入20-30之间的数):

");

scanf("%d",&age);

if(age>=20&&age<=30)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入班级(务必输入1-3之间的整数):

");

scanf("%d",&class);

if(class>=1&&class<=3)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入语文成绩(0-100之间的数):

");

scanf("%d",&chi);

if(chi>=0&&chi<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入数学成绩:

");

scanf("%d",&math);

if(math>=0&&math<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

while

(1)

{

printf("请输入英语成绩:

");

scanf("%d",&eng);

if(eng>=0&&eng<=100)

break;

else

printf("输入有误,重新输入!

\n");

}

break;

}

elseif(sym=='n'||sym=='N')

{

flag=0;

break;

}

else

printf("输入有误,重新输入!

");

}

}

returnphead;

}

/******************************************求学生链表长度**************************************************/

intlink_getlen(linkstuphead)

{

intlen=0;

linkstup=phead;

while(p!

=NULL)

{

len++;

p=p->next;

}

returnlen;

}

/*****************************************************************************************/

/********************************打印学生信息的函数*************************************/

voidlink_stu_print(linkstuphead)

{

linkstup=phead;

if(p==NULL)

{

printf("无任何学生信息!

\n");

return;

}

printf("\n\t\t\t\t学生成绩信息\n\n");

printf("学号\t姓名\t性别\t年龄\t班级\t语文成绩数学成绩英语成绩\n");

while(p!

=NULL)

{

printf("%d\t%s\t%c\t%d\t%d\t%d\t%d\t\t%d\n",p->stu_info.num,p->stu_info.name,p->stu_info.sex,p->stu_info.age,p->class,p->chi,p->math,p->eng);

p=p->next;

}

printf("End\n");

}

/**********************************************初始化学生的登录密码123**********************************************/

voidinitial_stu_password(linkstuphead)

{

linkstup=phead;

if(p==NULL)

{

printf("emptylink!

\n");

return;

}

while(p!

=NULL)

{

strcpy(p->password,"123");

p=p->next;

}

}

/*************************************学生输入密码登录****************************************************/

intstu_login(linkstuphead)

{

intq=0,fre=0;

charpassword[10];

linkstup;

while

(1)

{

p=phead;

fre++;

printf("\n请输入学生学号:

");

scanf("%d",&stu_num);

getchar();

printf("请输入学生密码:

");

scanf("%s",password);

getchar();

while(p!

=NULL)

{

if(p->stu_info.num==stu_num&&(strcmp(p->password,password)==0))

{

q=1;

break;

}

else

p=p->next;

}

if(q==1)

{

printf("登录成功!

\n");

sleep

(2);

break;

}

if(fre==3)

{

printf("登录失败!

退出系统\n");

break;

}

else

printf("输入有误,请重新输入:

");

}

if(q==1)

return1;

else

return-1;

}

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

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1