课程设计学生学籍管理系统源代码Word文档下载推荐.docx
- 文档编号:17929209
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:20.29KB
课程设计学生学籍管理系统源代码Word文档下载推荐.docx
《课程设计学生学籍管理系统源代码Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《课程设计学生学籍管理系统源代码Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
{
FILE*fp;
if((fp=fopen("
学生学籍管理系统__code.txt"
"
rt"
))==NULL)
{
printf("
密码文件不存在,请输入新的用户名及密码:
\n"
);
//若不存在此密码文件,则提示用户创建密码
请输入任意键继续!
"
getch();
system("
cls"
return1;
//无密码文件返回1
}
else
return0;
//已有密码文件返回0
}
//新创建初始密码
voidcode_input()
inti;
wt"
))==NULL);
//当建立密码文件成功时,进入for循环
for(i=0;
i<
M;
i++)//M为宏定义的可建立的登陆用户个数,可更改
{
请录入第%d个用户名:
i+1);
//创建不同的用户名及密码
scanf("
%s"
co[i].name);
请录入第%d个密码(最多6位):
co[i].code);
fwrite(&
co[i],sizeof(structcode),1,fp);
//将密码保存进文件中
fclose(fp);
getch();
system("
}
//用户登陆验证模块
intenter(charname1[20],charcode1[6])
{
intflog=0;
fp=fopen("
//打开存放密码的文件
i++)
fread(&
//读密码文件
if((strcmp(name1,co[i].name)==0))//如果输入的用户名与已存在用户名相同,再比较密码是否相同,否则进行下一个用户名的比较
{
if((strcmp(code1,co[i].code)==0))//比较此用户名下的密码是否一致
return1;
//验证成功后回到主函数
}
if(i>
=M)//当比较完成后,都没有符合条件的用户名与密码,则直接跳出程序
******您无权进入此管理系统!
!
*****"
exit
(1);
//从文件读入数据
intread_file(structstudentstu[])
FILE*sp;
inti=0;
if((sp=fopen("
学生学籍管理系统__学生信息.txt"
))==NULL)//读文件,若文件不存在,则需要创建一个新的文件(文件创建在save_file函数中完成)
\n学生学籍管理系统__学生信息文件不存在,请创建!
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)
wb"
))==NULL)//若不存在此TXT文档,则创建;
读文件错误!
//创建不成功,返回menu函数;
return;
sum;
if(fwrite(&
stu[i],sizeof(structstudent),1,sp)!
=1)//保存文件,sum为现有总学生人数,若未保存成功,提示"
写文件错误!
;
printf("
return;
//创建并录入信息
intfound(structstudentstu[])
inti=0,x;
printf("
请输入要录入的学生的个数:
scanf("
%d"
&
x);
if(x==0)
do//输入信息
\n请录入第%d个学生的信息:
请录入学号:
stu[i].num);
\n请录入姓名:
stu[i].name);
\n请录入院系:
stu[i].depar);
\n请录入专业:
stu[i].zhuanye);
\n请录入班级:
stu[i].classes);
\n请录入性别:
stu[i].sex);
\n请录入年龄:
stu[i].age);
\n请录入出生日期(yyyymmdd):
stu[i].birth);
\n请录入民族:
stu[i].nation);
\n请录入籍贯:
stu[i].add);
i++;
}while(i<
//当i>
=x(用户要求创建学生的人数)时,跳出输入信息的for循环;
save_file(stu,x);
//保存学生信息致文件
录入完毕,请按任意键返回"
//返回创建学生的人数
//修改学生信息
voidmodify(structstudentstu[],intsum)
inti,item,a=1;
//i控制数组下标,item控制子菜单的选择
chars1[8];
read_file(stu,sum);
//读函数
do
\n\n\n请输入你要修改的学号:
s1);
//要修改的学生学号
for(i=0;
i++)//查找此学生
{
if(strcmp(stu[i].num,s1)==0)//若找到该生,输出该生的信息
{
printf("
该学生学号:
%s\n"
该学生姓名:
该学生院系:
该学生专业:
该学生班级:
该学生性别:
该学生年龄:
该学生出生日期:
该学生民族:
该学生籍贯:
a=0;
//找到该生,a=0;
//出for循环
}
if(a==1)//若没有找到该生,a=1,输出提示语句
\n\n该学号不存在!
请重新输入学号:
}while(a);
//当a=0,即没有找到该生,则继续循环重新输入学生学号
\t****************\n"
\t你选择你要修改的选项:
\t1.*修改姓名\n"
\t2.*修改年龄\n"
\t3.*修改性别\n"
\t4.*修改出生日期\n"
\t5.*修改籍贯\n"
\t6.*修改院系名称\n"
\t7.*修改专业名称\n"
\t8.*修改班级\n"
\t9.*修改民族\n"
\t0.*退出菜单\n"
while
(1)
\n\t请选择你要进行的操作:
item);
///item控制子菜单的选择
switch(item)
case1:
//修改姓名
\t请输入新的姓名:
scanf("
\n\n\n修改成功!
save_file(stu,sum);
case2:
//修改年龄
\t请输入新的年龄:
case3:
//修改性别
\t请输入新的性别:
case4:
//修改出生日期
\t请输入新的出生年月(yyyy.mm):
case5:
//修改籍贯
\t请输入新的籍贯:
scanf("
save_file(stu,sum);
break;
case6:
//修改院系
\t请输入新的院系:
case7:
//修改专业
\t请输入新的专业名称:
case8:
//修改班级
\t请输入新的班级:
case9:
//修改民族
\t请输入新的民族名称:
case0:
//不修改,退出
default:
printf("
\t请在0到9之间选择:
//若输入的值不在0~9,则提示
//查询学生信息
voidseek(structstudentstu[],intsum)
inti,item,flag;
//i控制数组下标,item控制子菜单的选择,flag为判断条件
chars1[11];
\n\n\t\t------------------\n"
\t\t1.按学号查询\n"
\t\t2.按姓名查询\n"
\t\t3.退出本菜单\n"
\t\t------------------\n"
\t\t请选择子菜单编号:
//选择子菜单
flag=0;
//按学号进行查找
\t\t请输入要查询的学生的学号:
if(strcmp(stu[i].num,s1)==0)//判断学号是否存在
{//输出
flag=1;
getch();
if(flag==0)//当上一个if条件不成立,flag=0,学生学号不存在,输出提示;
\n\n\n\t\t该学号不存在!
break;
case2:
//按姓名进行查找
\n\n\t\t请输入要查询的学生的姓名:
if(strcmp(stu[i].name,s1)==0)//判断姓名是否存在
{//输出
getch();
if(flag==0)//当上一个if条件不成立,flag=0,学生姓名不存在,输出提示;
\n\n\n\t\t该姓名不存在!
default:
\n\n\n\t\t请在1-3之间选择\n"
//若输入的值不在1~3,则提示
}
//删除某学生信息
intdel(structstudentstu[],intsum)
inti,j,flag=0;
chars1[9];
\n\n\t\t请输入要删除学生的学号:
for(i=0;
if(strcmp(stu[i].num,s1)==0)//判断学号是否存在
//该学号存在,用后一个数组覆盖此数组,循环,即可删除
for(j=i;
j<
sum-1;
j++)
stu[j]=stu[j+1];
if(flag==0)//该学号不存在
\n\n\t\t该学号不存在!
if(flag==1)//删除成功,输出提示
\n\n\n\t\t删除成功\n"
sum--;
//删除成功,sum自-1;
save_file(stu,sum);
//保存
returnsum;
//返回删除后存在的学生人数
//显示打印已有学生信息
voidshow(structstudentstu[],intsum)
{inti;
\n\n\t\t所有学生的信息为:
i++)//for循环打印信息
学号:
%s\t"
姓名:
院系:
专业:
班级:
性别:
年龄:
出生日期:
民族:
籍贯:
%s\n\n"
按任意键返回"
//添加学生信息
intinsert(structstudentstu[],intsum)
inti,j,flag,m;
\t请输入要添加的学生的个数:
m);
read_file(stu);
//在添加前读文件
flag=1;
i=sum;
//此时i表示数组下标,添加学生,保存到当前已有数组的下一个,sum为总数,stu[i]表示第sum+1个人
while(flag)
flag=0;
\n\n请输入第%d个学生的学号:
for(j=0;
i;
j++)//判断此学号是否存在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 学生 学籍 管理 系统 源代码