C程序设计学生选修课管理系统.docx
《C程序设计学生选修课管理系统.docx》由会员分享,可在线阅读,更多相关《C程序设计学生选修课管理系统.docx(25页珍藏版)》请在冰点文库上搜索。
C程序设计学生选修课管理系统
项目名称
学生选修课管理系统
学院
建筑工程学院
班级
统本工管1102
姓名
黄滔
组内成员……………………………………………………………………3
程序功能模块划分…………………………………………………………3
数据设计……………………………………………………………………4
主函数代码…………………………………………………………………5
程序执行后的部分效果图………………………………………………14
小组成员分工……………………………………………………………18
程序开发体会……………………………………………………………18
学生选修课系统说明书
班级:
统本工管1102班
组长:
黄滔
组员:
简利林、白云鹏、王巧云、柴建彬
系统功能模块划分
数据设计
为了方便使用结构此系统结构均为全局类型定义
structclass_type
{intid;
charname[20];
charxingzhi[20];
intztime;
intktime;
intstime;
intfen;
intxueqi;
}cla[100];
structstudent_type
{intid;
charname[20];
intkechengid;
charkechengname[20];
}stu[100];
主函数代码:
voidcaidan()
{intn;
system("cls");
printf("--------------------------------学生选修课程系统--------------------------------\n\n");
printf("1.课程信息录入");
printf("2.课程信息管理");
printf("3.课程信息查询");
printf("4.学生选修课程");
printf("5.退出系统");
printf("请输入你的选择,按回车确定:
");
scanf("%d",&n);
if(n==1)shuru();
elseif(n==2)guanli();
elseif(n==3)chaxun();
elseif(n==4)xuesheng();
elseif(n==5)
{system("cls");
save();
printf("谢谢您对本系统的支持!
\n您修改过的信息已经保存!
\n");
system("pause");
exit(0);
}
else
{system("cls");
printf("请重新输入正确的选项(1-5)!
\n");
system("pause");
caidan();
}
}
voidshuru()
{intc;
intk;
system("cls");
printf("----------------------------------课程信息录入----------------------------------");
printf("请输入你要增加的课程数,输入0则返回主菜单!
\n");
scanf("%d",&c);
while(c<0&&c>100)
{
printf("数据输入有误,请重新输入!
(输入数据为0-100)\n");
scanf("%d",&c);
}
if(c==0)
caidan();
elseif(c+i>100)
printf("储存区最多可存储100门课程,总输入个数即将超过100,我们最多只能帮您保存100个数据!
\n");
else
{system("cls");
for(k=0;k{cla[i+k].id=i+k;
printf("课程编号%d",cla[i+k].id+1);
printf("\n请输入课程名称:
");
scanf("%s",cla[i+k].name);
printf("\n请输入课程性质:
");
scanf("%s",cla[i+k].xingzhi);
printf("\n请输入课程总学时:
");
scanf("%d",&cla[i+k].ztime);
printf("\n请输入课程授课学时:
");
scanf("%d",&cla[i+k].ktime);
printf("\n请输入课程实验或上机学时:
");
scanf("%d",&cla[i+k].stime);
printf("\n请输入课程学分:
");
scanf("%d",&cla[i+k].fen);
printf("\n请输入课程开课学期:
");
scanf("%d",&cla[i+k].xueqi);
}
i=i+c;
save();
printf("输入完成,保存信息完成!
\n");
system("pause");
caidan();
}
}
voidliulan()
{intm;
system("cls");
printf("----------------------------------课程信息浏览----------------------------------");
for(m=0;m
{
printf("\n课程编号%d",cla[m].id+1);
printf("\n课程名称:
%s",cla[m].name);
printf("\n课程性质:
%s",cla[m].xingzhi);
printf("\n课程总学时:
%d",cla[m].ztime);
printf("\n课程授课学时:
%d",cla[m].ktime);
printf("\n课程实验或上机学时:
%d",cla[m].stime);
printf("\n课程学分:
%d",cla[m].fen);
printf("\n课程开课学期:
%d",cla[m].xueqi);
printf("\n\n");
}
system("pause");
caidan();
}
voidchaxun()
{intn;
system("cls");
printf("----------------------------------课程信息查询----------------------------------");
printf("1.按课程编号查询");
printf("2.按课程名称查询");
printf("3.按课程性质查询");
printf("4.按课程总学时查询");
printf("5.按课程授课学时查询");
printf("6.按课程实验或上机学时查询");
printf("7.按课程学分查询");
printf("8.按课程开课学期查询");
printf("9.返回主菜单");
printf("请输入你的选择,按回车确定:
");
scanf("%d",&n);
if(n==1)cxid();
elseif(n==2)cxname();
elseif(n==3)cxxz();
elseif(n==4)cxzt();
elseif(n==5)cxkt();
elseif(n==6)cxst();
elseif(n==7)cxf();
elseif(n==8)cxxq();
elseif(n==9)caidan();
else
{system("cls");
printf("请重新输入正确的选项(1-9)!
\n");
system("pause");
chaxun();
}
}
voidread()
{intj,k;
FILE*fp,*ap;
if((fp=fopen("","rt"))==NULL)
{system("cls");
printf("未找到已存数据纪录,您需要重新输入数据!
\n");
i=0;
system("pause");
shuru();
}
else
{
system("cls");
printf("数据读取成功,您可以正常使用本系统!
\n");
for(j=0;j<100;j++)
{fread(&cla[j],sizeof(cla[j]),1,fp);
if(cla[j].id==-1)
break;
}
i=j;
fclose(fp);
if((ap=fopen("","rt"))==NULL)
printf("\n注:
学生信息为空\n!
");
for(k=0;k<100;k++)
{fread(&stu[k],sizeof(stu[k]),1,fp);
if(stu[k].id==-1)
break;
}
e=k;
fclose(ap);
system("pause");
caidan();
}
}
voidsave()
{FILE*fp,*ap;
intl;
if((fp=fopen("","wt"))==NULL)
printf("打开课程文件错误!
\n");
for(l=0;l
if(fwrite(&cla[l],sizeof(cla[l]),1,fp)!
=1)
printf("课程数据写入失败!
");
fclose(fp);
if((ap=fopen("","wt"))==NULL)
printf("打开学生文件错误!
\n");
for(l=0;lif(fwrite(&stu[l],sizeof(stu[l]),1,fp)!
=1)
printf("学生数据写入失败!
");
fclose(ap);
}
voidguanli()
{intn;
system("cls");
printf("--------------------------------学生选修课程管理--------------------------------\n\n");
printf("1.课程信息浏览");
printf("2.课程信息修改");
printf("3.课程信息删除");
printf("4.返回主菜单");
printf("请输入你的选择,按回车确定:
");
scanf("%d",&n);
if(n==1)liulan();
elseif(n==2)xiugai();
elseif(n==3)shanchu();
elseif(n==4)caidan();
else
{system("cls");
printf("请重新输入正确的选项(1-4)!
\n");
system("pause");
caidan();
}
}
voidshanchu()
{intn,x;
system("cls");
printf("请输入您要删除的课程编号,输入0为返回上一级菜单:
\n");
scanf("%d",&n);
if(n>i&&n<0)
{printf("本编号信息为空,请重新输入!
");
system("pause");
shanchu();
}
elseif(n==0)guanli();
else
{FILE*fp;
if((fp=fopen("","wt+"))==NULL)
{system("cls");
printf("打开失败\n");
system("pause");
guanli();
}
else
{
system("cls");
printf("正在删除,请稍候...\n");
for(x=n-1;x
fread(&cla[x],sizeof(cla[x]),1,fp);
for(x=n-1;x
{strcpy(cla[x].name,cla[x+1].name);
strcpy(cla[x].xingzhi,cla[x+1].xingzhi);
cla[x].ztime=cla[x+1].ztime;
cla[x].ktime=cla[x+1].ktime;
cla[x].stime=cla[x+1].stime;
cla[x].fen=cla[x+1].fen;
cla[x].xueqi=cla[x+1].xueqi;
}
i--;
save();
fclose(fp);
system("pause");
guanli();
}
}
}
voidxiugai()
{inta;
system("cls");
printf("请输入您需要修改的课程编号,输入0为返回上一级菜单:
");
scanf("%d",&a);
if(a>i&&a<0)
{printf("本编号信息为空,请重新输入!
");
system("pause");
xiugai();
}
elseif(a==0)guanli();
else
{FILE*fp;
if((fp=fopen("","wt+"))==NULL)
{system("cls");
printf("打开失败\n");
system("pause");
guanli();
}
printf("课程编号%d",a);
printf("\n请输入课程名称:
");
scanf("%s",cla[a-1].name);
printf("\n请输入课程性质:
");
scanf("%s",cla[a-1].xingzhi);
printf("\n请输入课程总学时:
");
scanf("%d",&cla[a-1].ztime);
printf("\n请输入课程授课学时:
");
scanf("%d",&cla[a-1].ktime);
printf("\n请输入课程实验或上机学时:
");
scanf("%d",&cla[a-1].stime);
printf("\n请输入课程学分:
");
scanf("%d",&cla[a-1].fen);
printf("\n请输入课程开课学期:
");
scanf("%d",&cla[a-1].xueqi);
save();
fclose(fp);
guanli();
}
}
voidcxid()
{system("cls");
inta;
printf("----------------------------------课程信息查询----------------------------------");
printf("\n请输入您需要查找的课程编号:
\n");
scanf("%d",&a);
printf("\n课程编号%d",cla[a-1].id+1);
printf("\n课程名称:
%s",cla[a-1].name);
printf("\n课程性质:
%s",cla[a-1].xingzhi);
printf("\n课程总学时:
%d",cla[a-1].ztime);
printf("\n课程授课学时:
%d",cla[a-1].ktime);
printf("\n课程实验或上机学时:
%d",cla[a-1].stime);
printf("\n课程学分:
%d",cla[a-1].fen);
printf("\n课程开课学期:
%d\n",cla[a-1].xueqi);
system("pause");
chaxun();
}
voidxuesheng()
{intn;
system("cls");
printf("----------------------------------学生选修课程----------------------------------\n\n");
printf("1.学生信息录入");
printf("2.学生选课察看");
printf("3.学生信息修改");
printf("4.学生信息删除");
printf("5.返回主菜单");
printf("请输入你的选择,按回车确定:
");
scanf("%d",&n);
if(n==1)xsshuru();
elseif(n==2)xschakan();
elseif(n==3)xsxiugai();
elseif(n==4)xsshanchu();
elseif(n==5)caidan();
else
{system("cls");
printf("请重新输入正确的选项(1-5)!
\n");
system("pause");
xuesheng();
}
}
voidxsshuru()
{intc;
intk;
system("cls");
printf("----------------------------------学生信息录入----------------------------------");
printf("请输入你要增加的学生数,输入0则返回主菜单!
\n");
scanf("%d",&c);
while(c<0&&c>100)
{
printf("数据输入有误,请重新输入!
(输入数据为0-100)\n");
scanf("%d",&c);
}
if(c==0)
caidan();
elseif(c+e>100)
printf("储存区最多可存储100门课程,总输入个数即将超过100,我们最多只能帮您保存100个数据!
\n");
else
{system("cls");
for(k=0;k{stu[e+k].id=e+k;
printf("学生编号%d",stu[e+k].id+1);
printf("\n请输入学生姓名:
");
scanf("%s",stu[e+k].name);
printf("\n请输入课程编号:
");
scanf("%d",&stu[e+k].kechengid);
strcpy(stu[e+k].kechengname,cla[stu[e+k].kechengid-1].name);
}
e=e+c;
save();
printf("输入完成,保存信息完成!
\n");
system("pause");
xuesheng();
}
}
voidxschakan()
{intm;
system("cls");
printf("----------------------------------学生信息浏览----------------------------------");
for(m=0;m{
printf("\n学生编号:
%d",stu[m].id+1);
printf("\n学生姓名:
%s",stu[m].name);
printf("\n课程编号:
%d",stu[m].kechengid);
printf("\n课程名称:
%s",stu[m].kechengname);
printf("\n\n");
}
system("pause");
xuesheng();
}
voidxsxiugai()
{inta;
system("cls");
printf("请输入您需要修改的学生编号,输入0为返回上一级菜单:
");
scanf("%d",&a);
if(a>e&&a<0)
{printf("本编号信息为空,请重新输入!
");
system("pause");
xsxiugai();
}
elseif(a==0)xuesheng();
else
{FILE*ap;
if((ap=fopen("","wt+"))==NULL)
{system("cls");
printf("打开失败\n");
system("pause");
xuesheng();
}
printf("学生编号:
%d",a);
printf("\n请输入学生姓名:
");
scanf("%s",stu[a-1].name);
printf("\n请输入课程编号:
");
scanf("%d",&stu[a-1].kechengid);
strcpy(stu[a-1].kechengname,cla[stu[a-1].kechengid-1].name);
save();
fclose(ap);
xuesheng();
}
程序执行后的部分效果图
封面效果:
主菜单
课程信息管理菜单
课程信息查询
课程信息查询
信息录入
信息保存
小组成员分工情况:
姓名
完成任务
占任务总工作量比例
得分(满分100)
黄滔
程序编写
20%
白云鹏
程序搜集部分编写
20%
简利林
循环程序编写
20%
柴建彬
程序编写
20%
王巧云
程序编写
20%
程序开发体会:
黄滔:
时光飞逝,弹指之间,一学年已经过去了,能和大家一起开发一个这样的程序是我的荣幸。
感觉到团队的力量和大家的热情。
白云鹏:
有一种变化叫成长;有一种力量叫坚韧;有一种责任叫付出;有一种幸福叫成功;有一种快乐叫工作。
简利林:
通过大家一段时间的努力我们组终于成功将C语言学生选修课管理系统开发出来了,在其中有很多困难,但通过不懈努力我们一一克服,最终尝到胜利的甜果。
柴建彬:
为什么我们能成功,因为我们有最好的队友,为什么我们能完成,因为我们都有付出,感谢大家共同的努力。
王巧云:
虽然在这段时间里我们有过放弃,有过懈怠,但是大家仍然一股劲坚持了下来,最终将其完成,能和大家一起工作是一种成长,我很高兴。