课程设计学生学籍管理系统源代码.docx

上传人:b****3 文档编号:4975849 上传时间:2022-12-12 格式:DOCX 页数:20 大小:20.29KB
下载 相关 举报
课程设计学生学籍管理系统源代码.docx_第1页
第1页 / 共20页
课程设计学生学籍管理系统源代码.docx_第2页
第2页 / 共20页
课程设计学生学籍管理系统源代码.docx_第3页
第3页 / 共20页
课程设计学生学籍管理系统源代码.docx_第4页
第4页 / 共20页
课程设计学生学籍管理系统源代码.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

课程设计学生学籍管理系统源代码.docx

《课程设计学生学籍管理系统源代码.docx》由会员分享,可在线阅读,更多相关《课程设计学生学籍管理系统源代码.docx(20页珍藏版)》请在冰豆网上搜索。

课程设计学生学籍管理系统源代码.docx

课程设计学生学籍管理系统源代码

#include"stdio.h"

#include"conio.h"

#include"stdlib.h"

#include"string.h"

#defineN1000//N为可输入的学生总人数,可根据需要更改

#defineM2//M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改

structstudent//定义学生信息结构体数组

{

charnum[9];//学号

charname[20];//姓名

chardepar[15];//院系

charzhuanye[15];//专业

charclasses[5];//班级

charage[3];//年龄

charsex[4];//性别

charnation[5];//民族

charbirth[9];//出生日期

charadd[10];//籍贯

};

structcode//定义密码结构体数组

{

charname[20];

charcode[7];

}co[M],s0;

//确认是否新创建密码文件模块

intcode()

{

FILE*fp;

if((fp=fopen("学生学籍管理系统__code.txt","rt"))==NULL)

{

printf("密码文件不存在,请输入新的用户名及密码:

\n");

//若不存在此密码文件,则提示用户创建密码

printf("请输入任意键继续!

");

getch();

system("cls");

return1;//无密码文件返回1

}

else

return0;//已有密码文件返回0

}

//新创建初始密码

voidcode_input()

{

FILE*fp;

inti;

if((fp=fopen("学生学籍管理系统__code.txt","wt"))==NULL);//当建立密码文件成功时,进入for循环

for(i=0;i

{

printf("请录入第%d个用户名:

",i+1);//创建不同的用户名及密码

scanf("%s",co[i].name);

printf("请录入第%d个密码(最多6位):

",i+1);

scanf("%s",co[i].code);

printf("\n");

fwrite(&co[i],sizeof(structcode),1,fp);//将密码保存进文件中

}

fclose(fp);

getch();

system("cls");

}

//用户登陆验证模块

intenter(charname1[20],charcode1[6])

{

FILE*fp;

intflog=0;

inti;

fp=fopen("学生学籍管理系统__code.txt","rt");//打开存放密码的文件

for(i=0;i

{

fread(&co[i],sizeof(structcode),1,fp);//读密码文件

if((strcmp(name1,co[i].name)==0))//如果输入的用户名与已存在用户名相同,再比较密码是否相同,否则进行下一个用户名的比较

{

if((strcmp(code1,co[i].code)==0))//比较此用户名下的密码是否一致

return1;//验证成功后回到主函数

}

}

if(i>=M)//当比较完成后,都没有符合条件的用户名与密码,则直接跳出程序

printf("******您无权进入此管理系统!

!

!

*****");

fclose(fp);

getch();

exit

(1);

}

//从文件读入数据

intread_file(structstudentstu[])

{

FILE*sp;

inti=0;

system("cls");

if((sp=fopen("学生学籍管理系统__学生信息.txt","rt"))==NULL)//读文件,若文件不存在,则需要创建一个新的文件(文件创建在save_file函数中完成)

{

printf("\n学生学籍管理系统__学生信息文件不存在,请创建!

\n");

getch();

system("cls");

return0;

}

while((fread(&stu[i],sizeof(structstudent),1,sp))==1)//判断文件是否处在结束位置

{

if(stu[i].num==0)//若文件内容为空,则跳出循环

break;

else//若文件内容不为空,i自加1。

i++;//i为文件内结构体数组的数量

}

fclose(sp);

returni;//返回i值,代表文件中学生的人数

}

//保存学生信息(保存在文件中)

voidsave_file(structstudentstu[],intsum)

{

FILE*sp;

inti;

if((sp=fopen("学生学籍管理系统__学生信息.txt","wb"))==NULL)//若不存在此TXT文档,则创建;

{

printf("读文件错误!

\n");//创建不成功,返回menu函数;

return;

}

for(i=0;i

if(fwrite(&stu[i],sizeof(structstudent),1,sp)!

=1)//保存文件,sum为现有总学生人数,若未保存成功,提示"写文件错误!

";

printf("写文件错误!

\n");

fclose(sp);

return;

}

//创建并录入信息

intfound(structstudentstu[])

{

inti=0,x;

system("cls");

printf("请输入要录入的学生的个数:

\n");

scanf("%d",&x);

if(x==0)

return0;

do//输入信息

{

printf("\n请录入第%d个学生的信息:

\n",i+1);

printf("请录入学号:

");

scanf("%s",stu[i].num);

printf("\n请录入姓名:

");

scanf("%s",stu[i].name);

printf("\n请录入院系:

");

scanf("%s",stu[i].depar);

printf("\n请录入专业:

");

scanf("%s",stu[i].zhuanye);

printf("\n请录入班级:

");

scanf("%s",stu[i].classes);

printf("\n请录入性别:

");

scanf("%s",stu[i].sex);

printf("\n请录入年龄:

");

scanf("%s",stu[i].age);

printf("\n请录入出生日期(yyyymmdd):

");

scanf("%s",stu[i].birth);

printf("\n请录入民族:

");

scanf("%s",stu[i].nation);

printf("\n请录入籍贯:

");

scanf("%s",stu[i].add);

i++;

system("cls");

}while(i=x(用户要求创建学生的人数)时,跳出输入信息的for循环;

save_file(stu,x);//保存学生信息致文件

printf("录入完毕,请按任意键返回");

getch();

returni;//返回创建学生的人数

}

//修改学生信息

voidmodify(structstudentstu[],intsum)

{

inti,item,a=1;//i控制数组下标,item控制子菜单的选择

chars1[8];

FILE*sp;

system("cls");

read_file(stu,sum);//读函数

do

{

printf("\n\n\n请输入你要修改的学号:

\n");

scanf("%s",s1);//要修改的学生学号

for(i=0;i

{

if(strcmp(stu[i].num,s1)==0)//若找到该生,输出该生的信息

{

printf("该学生学号:

%s\n",stu[i].num);

printf("该学生姓名:

%s\n",stu[i].name);

printf("该学生院系:

%s\n",stu[i].depar);

printf("该学生专业:

%s\n",stu[i].zhuanye);

printf("该学生班级:

%s\n",stu[i].classes);

printf("该学生性别:

%s\n",stu[i].sex);

printf("该学生年龄:

%s\n",stu[i].age);

printf("该学生出生日期:

%s\n",stu[i].birth);

printf("该学生民族:

%s\n",stu[i].nation);

printf("该学生籍贯:

%s\n",stu[i].add);

a=0;//找到该生,a=0;

break;//出for循环

}

}

if(a==1)//若没有找到该生,a=1,输出提示语句

printf("\n\n该学号不存在!

请重新输入学号:

\n");

}while(a);//当a=0,即没有找到该生,则继续循环重新输入学生学号

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

printf("\t你选择你要修改的选项:

\n");

printf("\t1.*修改姓名\n");

printf("\t2.*修改年龄\n");

printf("\t3.*修改性别\n");

printf("\t4.*修改出生日期\n");

printf("\t5.*修改籍贯\n");

printf("\t6.*修改院系名称\n");

printf("\t7.*修改专业名称\n");

printf("\t8.*修改班级\n");

printf("\t9.*修改民族\n");

printf("\t0.*退出菜单\n");

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

while

(1)

{

printf("\n\t请选择你要进行的操作:

");

scanf("%d",&item);///item控制子菜单的选择

switch(item)

{

case1:

//修改姓名

printf("\t请输入新的姓名:

");

scanf("%s",stu[i].name);

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

\n");

save_file(stu,sum);

break;

case2:

//修改年龄

printf("\t请输入新的年龄:

");

scanf("%s",stu[i].age);

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

\n");

save_file(stu,sum);

break;

case3:

//修改性别

printf("\t请输入新的性别:

");

scanf("%s",stu[i].sex);

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

\n");

save_file(stu,sum);

break;

case4:

//修改出生日期

printf("\t请输入新的出生年月(yyyy.mm):

");

scanf("%s",stu[i].birth);

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

\n");

save_file(stu,sum);

break;

case5:

//修改籍贯

printf("\t请输入新的籍贯:

");

scanf("%s",stu[i].add);

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

\n");

save_file(stu,sum);

break;

case6:

//修改院系

printf("\t请输入新的院系:

");

scanf("%s",stu[i].depar);

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

\n");

save_file(stu,sum);

break;

case7:

//修改专业

printf("\t请输入新的专业名称:

");

scanf("%s",stu[i].zhuanye);

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

\n");

save_file(stu,sum);

break;

case8:

//修改班级

printf("\t请输入新的班级:

");

scanf("%s",stu[i].classes);

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

\n");

save_file(stu,sum);

break;

case9:

//修改民族

printf("\t请输入新的民族名称:

");

scanf("%s",stu[i].nation);

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

\n");

save_file(stu,sum);

break;

case0:

return;//不修改,退出

default:

printf("\t请在0到9之间选择:

");//若输入的值不在0~9,则提示

}

}

}

//查询学生信息

voidseek(structstudentstu[],intsum)

{

inti,item,flag;//i控制数组下标,item控制子菜单的选择,flag为判断条件

chars1[11];

system("cls");

while

(1)

{

system("cls");

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

printf("\t\t1.按学号查询\n");

printf("\t\t2.按姓名查询\n");

printf("\t\t3.退出本菜单\n");

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

printf("\t\t请选择子菜单编号:

");

scanf("%d",&item);//选择子菜单

flag=0;

switch(item)

{

case1:

//按学号进行查找

printf("\t\t请输入要查询的学生的学号:

");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].num,s1)==0)//判断学号是否存在

{//输出

flag=1;

printf("该学生学号:

%s\n",stu[i].num);

printf("该学生姓名:

%s\n",stu[i].name);

printf("该学生院系:

%s\n",stu[i].depar);

printf("该学生专业:

%s\n",stu[i].zhuanye);

printf("该学生班级:

%s\n",stu[i].classes);

printf("该学生性别:

%s\n",stu[i].sex);

printf("该学生年龄:

%s\n",stu[i].age);

printf("该学生出生日期:

%s\n",stu[i].birth);

printf("该学生民族:

%s\n",stu[i].nation);

printf("该学生籍贯:

%s\n",stu[i].add);

getch();

}

if(flag==0)//当上一个if条件不成立,flag=0,学生学号不存在,输出提示;

printf("\n\n\n\t\t该学号不存在!

\n");

getch();break;

case2:

//按姓名进行查找

printf("\n\n\t\t请输入要查询的学生的姓名:

");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].name,s1)==0)//判断姓名是否存在

{//输出

flag=1;

printf("该学生学号:

%s\n",stu[i].num);

printf("该学生姓名:

%s\n",stu[i].name);

printf("该学生院系:

%s\n",stu[i].depar);

printf("该学生专业:

%s\n",stu[i].zhuanye);

printf("该学生班级:

%s\n",stu[i].classes);

printf("该学生性别:

%s\n",stu[i].sex);

printf("该学生年龄:

%s\n",stu[i].age);

printf("该学生出生日期:

%s\n",stu[i].birth);

printf("该学生民族:

%s\n",stu[i].nation);

printf("该学生籍贯:

%s\n",stu[i].add);

getch();

}

if(flag==0)//当上一个if条件不成立,flag=0,学生姓名不存在,输出提示;

printf("\n\n\n\t\t该姓名不存在!

\n");

getch();break;

case3:

system("cls");return;

default:

printf("\n\n\n\t\t请在1-3之间选择\n");//若输入的值不在1~3,则提示

getch();

}

}

}

//删除某学生信息

intdel(structstudentstu[],intsum)

{

inti,j,flag=0;

chars1[9];

system("cls");

printf("\n\n\t\t请输入要删除学生的学号:

");

scanf("%s",s1);

for(i=0;i

if(strcmp(stu[i].num,s1)==0)//判断学号是否存在

{

flag=1;//该学号存在,用后一个数组覆盖此数组,循环,即可删除

for(j=i;j

stu[j]=stu[j+1];

}

if(flag==0)//该学号不存在

printf("\n\n\t\t该学号不存在!

\n");

getch();

if(flag==1)//删除成功,输出提示

{

printf("\n\n\n\t\t删除成功\n");

getch();

sum--;//删除成功,sum自-1;

}

save_file(stu,sum);//保存

returnsum;//返回删除后存在的学生人数

}

//显示打印已有学生信息

voidshow(structstudentstu[],intsum)

{inti;

system("cls");

printf("\n\n\t\t所有学生的信息为:

\n");

for(i=0;i

{

printf("学号:

%s\t",stu[i].num);

printf("姓名:

%s\t",stu[i].name);

printf("院系:

%s\t",stu[i].depar);

printf("专业:

%s\t",stu[i].zhuanye);

printf("班级:

%s\t",stu[i].classes);

printf("性别:

%s\t",stu[i].sex);

printf("年龄:

%s\t",stu[i].age);

printf("出生日期:

%s\t",stu[i].birth);

printf("民族:

%s\t",stu[i].nation);

printf("籍贯:

%s\n\n",stu[i].add);

}

printf("按任意键返回");

getch();

system("cls");

}

//添加学生信息

intinsert(structstudentstu[],intsum)

{

inti,j,flag,m;

FILE*sp;

system("cls");

printf("\t请输入要添加的学生的个数:

");

scanf("%d",&m);

read_file(stu);//在添加前读文件

do

{

flag=1;

i=sum;//此时i表示数组下标,添加学生,保存到当前已有数组的下一个,sum为总数,stu[i]表示第sum+1个人

while(flag)

{

flag=0;

printf("\n\n请输入第%d个学生的学号:

",i+1);

scanf("%s",stu[i].num);

for(j=0;j

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

当前位置:首页 > 法律文书 > 调解书

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

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