学生学籍管理源代码C语言改良版.docx
- 文档编号:5146307
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:15
- 大小:17KB
学生学籍管理源代码C语言改良版.docx
《学生学籍管理源代码C语言改良版.docx》由会员分享,可在线阅读,更多相关《学生学籍管理源代码C语言改良版.docx(15页珍藏版)》请在冰豆网上搜索。
学生学籍管理源代码C语言改良版
#include
#include"string.h"
#defineMAX40
#definePRINT1printf("---------------------------------------------------------------------------\n")
#definePRINT2printf("学号--姓名--性别--年龄--生日----籍贯----政治面貌--年级--班级--系别--专业\n\n")
intsum=0;
intnumber=6;
inta=0;
structstu
{
charname[20];
intnum;
charsex;
intage;
intgrade;
intclass;
charzhuanye[30];
};
structdom
{
chardate[30];
charjiguan[30];
charzhengzhimianmao[30];
charxibie[30];
structstust;
}s[MAX],p;
//////////////////////////////////////////////////////////////////////////////////////
/*保存信息*/
save_message()
{FILE*fp;
inti;
if((fp=fopen("dom.txt","wt"))==NULL)
{
printf("读文件错误!
\n");
return0;
}
for(i=1;i<=
sum;i++)
if(fwrite(&s[i],sizeof(structdom),1,fp)!
=1)
printf("写文件错误!
\n");
return0;
fclose(fp);
}
intmenu()
//菜单界面
{inti;
printf("\n\n\n**********************学籍管理系统*******************\n\n");
printf("1.录入学生信息\n\n");
printf("2.打印学生信息\n\n");
printf("3.更新学生信息\n\n");
printf("4.查询学生信息\n\n");
printf("0.退出系统\n\n");
printf("请选择(0-4):
");
do{
printf("请选择:
");
scanf("%d",&i);
}while(i<0||i>4);
returni;
}
intshuru()//输入学生的信息
{
printf("\n学号:
");
scanf("%d",&s[a].st.num);
if(s[a].st.num==0)
return0;
printf("\n姓名:
");
scanf("%s",s[a].st.name);
printf("\n性别(男生用M表示,女生用F表示):
");
getchar();
scanf("%c",&s[a].st.sex);
printf("\n年龄:
");
scanf("%d",&s[a].st.age);
printf("\n生日:
");
scanf("%s",&s[a].date);
printf("\n籍贯:
");
scanf("%s",&s[a].jiguan);
printf("\n政治面貌:
");
scanf("%s",&s[a].zhengzhimianmao);
printf("\n年级:
");
scanf("%d",&s[a].st.grade);
printf("\n班级:
");
scanf("%d",&s[a].st.class);
printf("\n系别:
");
scanf("%s",&s[a].xibie);
printf("\n专业:
");
scanf("%s",&s[a].st.zhuanye);
return0;
}
//输入模块
input()
{
charch;
printf("\n\n录入学生信息(最多%d个)\n",MAX);
printf("----------------------------\n");
printf("请输入第%d个学生的信息\n",++a);
shuru();
sum=a;
printf("是否继续输入?
\n");
scanf("%c",&ch);
ch=getchar();
while(ch=='y')
{
printf("请输入第%d个学生的信息\n",++a);
shuru();
sum=a;
ch=getchar();
printf("\n");
printf("是否继续输入?
");
scanf("%c",&ch);
}
if(ch=='n'){
printf("\n--%d个学生的信息输入完毕!
--\n",a);
sum=a;
printf("\n按任意键返回主菜单!
");
getchar();
}
return0;
}
/*读取信息*/
intread_message()
{
FILE*fp;
inti=1;
if((fp=fopen("dom.txt","rt"))==NULL)
{
printf("\n\n*****暂时还没有任何信息,按任意键进入主菜单选择基本信息的录入!
*****\n");
return0;
}
while(!
feof(fp))//判断函数是否真的结束
{
fread(&s[i],sizeof(structdom),1,fp);
i++;
}
fclose(fp);
return(i);
}
/*输出模块*/
output_message()
{inti;
printf("\n\n--学生信息表--\n\n");
PRINT2;
PRINT1;
for(i=1;i<=sum;i++)
if(s[i].st.num!
=0)
{
printf("%2d%9s%2c%7d%9s%9s%9s%5d%6d%9s%9s\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age,
&s[i].date,&s[i].jiguan,&s[i].zhengzhimianmao,s[i].st.grade,s[i].st.class,&s[i].xibie,s[i].st.zhuanye);
printf("\n");
}
}
/////////////////////////////////////////////////////////////////////////////////////////
/*添加学生信息*/
insert_message()
{inti=sum+1,flag=0;
charchoice;
printf("\n\n添加一个新同学\n");
printf("---------------\n");
do
{
printf("\n新学号:
");
scanf("%d",&s[i].st.num);
printf("\n姓名:
");
scanf("%s",s[i].st.name);
printf("\n性别(男生用M表示,女生用F表示):
");
getchar();
scanf("%c",&s[i].st.sex);
printf("\n年龄:
");
scanf("%d",&s[i].st.age);
printf("\n生日:
");
scanf("%s",&s[i].date);
printf("\n籍贯:
");
scanf("%s",&s[i].jiguan);
printf("\n政治面貌:
");
scanf("%s",&s[i].zhengzhimianmao);
printf("\n年级:
");
scanf("%d",&s[i].st.grade);
printf("\n班级:
");
scanf("%d",&s[i].st.class);
printf("\n系别:
");
scanf("%s",&s[i].xibie);
printf("\n专业:
");
scanf("%s",&s[i].st.zhuanye);
sum++;
printf("\n要继续吗?
(Y/N)");
getchar();
scanf("%c",&choice);
if(choice=='y'||choice=='Y')
{
flag=1;
i++;
printf("\n继续!
\n");
}
elseif(choice=='n'||choice=='N')
{flag=0;}
}while(flag==1);
printf("\n按任意键返回主菜单!
");
return0;
}
/*删除模块*/
del_message()
{intflag,del_num,i,k;
charchoice;
do
{printf("\n输入要删除的学生学号:
");
scanf("%d",&del_num);
for(i=0;i if(del_num==s[i].st.num) for(k=i;k s[k]=s[k+1]; sum--; printf("\n\n继续吗? (Y/N)"); getchar(); scanf("%c",&choice); if(choice=='y'||choice=='Y') { flag=1; printf("\n继续! \n"); } elseflag=0; }while(flag==1); printf("\n\n按任意键返回主菜单! "); getchar(); return0; } /*修改模块*/ revise_message() {inti=0,choices,revise_num,flag=0;charchoice; do { printf("\n输入要修改的学生号: "); scanf("%d",&revise_num); for(i=0;i if(s[i].st.num==revise_num) { printf("\n--学生信息--\n"); PRINT1; PRINT2; printf("%2d%9s%6c%7d%9s%9s%9s%5d%6d%9s%9s\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age, &s[i].date,&s[i].jiguan,&s[i].zhengzhimianmao,s[i].st.grade,s[i].st.class,&s[i].xibie,s[i].st.zhuanye); printf("\n您要修改哪一项? \n"); printf("\n1.学号\n"); printf("\n2.姓名\n"); printf("\n3.性别\n"); printf("\n4.年龄\n"); printf("\n5.生日\n"); printf("\n6.籍贯\n"); printf("\n7.政治面貌\n"); printf("\n8.年级\n"); printf("\n9.班级\n"); printf("\n10.系别\n"); printf("\n11.专业\n"); printf("\n请选择(1-11): "); scanf("%d",&choices); switch(choices) { case1: printf("\n输入修改后的学号"); scanf("%d",&s[i].st.num);break; case2: printf("\n输入修改后的姓名"); scanf("%s",s[i].st.name);break; case3: printf("\n输入修改后的性别"); scanf("%s",s[i].st.sex);break; case4: printf("\n输入修改后的年龄"); scanf("%d",&s[i].st.age);break; case5: printf("\n输入修改后的生日"); scanf("%s",&s[i].date);;break; case6: printf("\n输入修改后的籍贯"); scanf("%s",&s[i].jiguan);break; case7: printf("\n输入修改后的政治面貌"); scanf("%s",&s[i].zhengzhimianmao);break; case8: printf("\n输入修改后的年级"); scanf("%d",&s[i].st.grade);break; case9: printf("\n输入修改后的班级"); scanf("%d",&s[i].st.class);break; case10: printf("\n输入修改后的系别"); scanf("%s",&s[i].xibie);break; case11: printf("\n输入修改后的专业"); scanf("%s",&s[i].st.zhuanye);break; } PRINT1; PRINT2; printf("%2d%9s%6c%7d%9s%9s%9s%5d%6d%9s%9s\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age, &s[i].date,&s[i].jiguan,&s[i].zhengzhimianmao,s[i].st.grade,s[i].st.class,&s[i].xibie,s[i].st.zhuanye); break; } if(i==sum) printf("\n该学生不存在! "); return0; }while(flag==1); getchar(); printf("\n按任意键返回主菜单! "); return0; } /*更新模块*/ renew_message() { intchoice; do { printf("\n\n\n*****更新学生信息*****\n\n"); printf("1.添加学生信息\n\n"); printf("2.删除学生信息\n\n"); printf("3.修改学生信息\n\n"); printf("0.返回主菜单\n\n"); printf("请选择(0-3): "); scanf("%d",&choice); switch(choice) { case1: insert_message();break; case2: del_message();break; case3: revise_message();break; case0: break; } }while(choice! =0); return0; } /////////////////////////////////////////////////////////////////////////////////// inquire_name()/*按姓名查询*/ { inti,j=0; charinquire_name[10]; printf("\n输入要查询的学生姓名: "); scanf("%s",inquire_name); for(i=0;i if(strcmp(s[i].st.name,inquire_name)==0&&s[i].st.num! =0) { printf("\n--学生信息--\n"); PRINT1; PRINT2; printf("%2d%9s%6c%7d%9s%9s%9s%5d%6d%9s%9s\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age, &s[i].date,&s[i].jiguan,&s[i].zhengzhimianmao,s[i].st.grade,s[i].st.class,&s[i].xibie,s[i].st.zhuanye); } elsej++; if(j==sum) printf("\n该学生不存在! "); return0; } intinquire_num()/*按学号查询*/ { inti,j=0,inquire_num; printf("\n输入要查询的学生学号: "); scanf("%d",&inquire_num); for(i=0;i if(inquire_num==s[i].st.num) { printf("\n--学生信息--\n"); PRINT1; PRINT2; printf("%2d%9s%6c%7d%9s%9s%9s%5d%6d%9s%9s\n\n",s[i].st.num,s[i].st.name,s[i].st.sex,s[i].st.age, &s[i].date,&s[i].jiguan,&s[i].zhengzhimianmao,s[i].st.grade,s[i].st.class,&s[i].xibie,s[i].st.zhuanye); } elsej++; if(j==sum) printf("\n该学生不存在! "); return0; } /*查询模块*/ inquire_message() {intchoice; do { printf("\n\n*****查询学生信息*****\n\n"); printf("1.按学生姓名查询\n"); printf("2.按学生学号查询\n"); printf("0.回主菜单\n"); printf("请选择(0-2): "); scanf("%d",&choice); switch(choice) { case1: inquire_name();break; case2: inquire_num();break; case0: break; } }while(choice! =0); return0; } ////////////////////////////////////////////////////////////////////////////////// voidmain() { intflag=1; system("colora"); sum=read_message(); for(;flag;){ switch(menu()) { case1: input();break;/*录入模块*/ case2: output_message();break;/*输出模块*/ case3: renew_message();break;/*更新模块*/ case4: inquire_message();break;/*查询模块*/ case0: flag=0;break;/*退出系统*/ } } save_message(sum); printf("\n以上学生信息已保存! -(文件名: domitry.txt)\n"); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 管理 源代码 语言 改良