某校学生选修课程系统设计书.docx
- 文档编号:23379962
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:28
- 大小:146.99KB
某校学生选修课程系统设计书.docx
《某校学生选修课程系统设计书.docx》由会员分享,可在线阅读,更多相关《某校学生选修课程系统设计书.docx(28页珍藏版)》请在冰豆网上搜索。
某校学生选修课程系统设计书
某校学生选修课程系统设计书
一、需求分析
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于10)自由选课。
试设计一选修课程系统,使之能提供以下功能:
1)系统以菜单方式工作
2)课程信息录入功能(课程信息用文件保存--可选)
3)课程信息浏览功能
4)查询功能:
(至少一种查询方式)
按学分查询
按课程性质查询等
5)课程信息的删除与修改
6)学生选修课程--可选
二、总体设计
三、详细设计
设计的函数有:
select():
显示菜单
Input();输入课程信息;
output();浏览信息;
kccx();课程查询;
xfcx();按学分查询;
kcxz();按课程性质查询
shanxiu();课程删除与修改;
xiu();课程修改;
shan();课程删除;
xuanke();学生选课;
xk();选课函数;
四、程序运行结果测试与分析
总菜单:
课程信息的录入:
课程查询:
选课:
课程的删除与修改:
5、编码
#include
#include
#include
structcourse
{
charnum[20];
charname[20];
charkind[10];
chartime[10];
charttime[10];
charetime[10];
charmark[4];
charterm[4];
}cou[20];
structstudent
{
charsnum[20];
intskind[20];
charsname[20];
charnum[20];
charname[20];
charkind[10];
chartime[10];
charttime[10];
charetime[10];
charmark[4];
charterm[4];
}stu[20];
voidselect()
{
printf("菜单:
\n");
printf("1.录入课程信息\n");
printf("2.课程信息浏览\n");
printf("3.课程查询\n");
printf("4.课程信息的删除与修改\n");
printf("5.学生选课\n");
printf("6.退出系统\n");
printf("\n请输入菜单选项(1~6):
\n");
}
/*课程信息录入*/
voidinput()
{
system("cls");
voidcd();
inti;
chara;
i=0;
lr:
{printf("%-10s","课程编号:
");
scanf("%s",cou[i].num);
printf("%-10s","课程名称:
");
scanf("%s",cou[i].name);
printf("%-10s","课程性质:
");
scanf("%s",cou[i].kind);
printf("%-10s","总学时:
");
scanf("%s",cou[i].time);
printf("%-10s","授课学时:
");
scanf("%s",cou[i].ttime);
printf("%-10s","实验或上机学时:
");
scanf("%s",cou[i].etime);
printf("%-5s","学分:
");
scanf("%s",cou[i].mark);
printf("%-10s","开课学期:
");
scanf("%s",cou[i].term);
i++;
printf("\n");}
shifou:
printf("是否继续,输入Y/N:
");
scanf("%c",&a);
getchar();
if(a=='n'||a=='N')
{
system("cls");
cd();
}
elseif(a=='y'||a=='Y')
{
system("cls");
gotolr;
}
else
{
printf("输入错误,请重新输入\n");
gotoshifou;
}
system("cls");
}
/*课程信息输出*/
voidoutput()
{
system("cls");
voidcd();
inti;
i=0;
chara,b;
shuchu:
{printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
i++;}
shifou:
printf("是否继续浏览下一个:
Y/N?
");
scanf("%c",&a);
if(a=='n'||a=='N')
{
printf("查询完毕,输入Y返回界面\n");
scanf("%c",&b);
getchar();
if(b=='y'||b=='Y')
{
system("cls");
cd();
}
else
{
printf("输入错误,请重新输入");
}}
elseif(a=='Y'||a=='y')
{
if(cou[i+1].num!
=0)
gotoshuchu;
else
{
system("cls");
printf("你已浏览完全部课程");
cd();
}
}
else
{
printf("输入错误,请重新输入");
gotoshifou;
}
system("cls");
}
/*学分查询*/
voidxfcx()
{
system("cls");
inti;
chara[4],b;
voidkccx();
xf:
printf("\n请输入查询的学分:
");
scanf("%s",&a);
getchar();
for(i=0;i<20;i++)
{
if(strcmp(cou[i].mark,a)==0)
{printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
}
else
{
printf("对不起,没有你查询学分的课程\n");
printf("是否继续,输入y/n:
");
scanf("%c",&b);
getchar();
{if(b=='n'||b=='N')
{
kccx();break;}
else
gotoxf;
}}}
}
/*按课程性质查询*/
voidkcxz()
{
chara[50],b;
voidkccx();
inti;
xz:
printf("请输入查询的课程性质:
");
scanf("%s",&a);
getchar();
for(i=0;i<20;i++)
{
if(strcmp(cou[i].kind,a)==0)
{
printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
}
elseprintf("对不起,没有你查询性质的课程\n");
{
printf("是否继续,输入y/n:
");
scanf("%c",&b);
getchar();
{if(b=='n'||b=='N')
{kccx();break;}
else
gotoxz;
}}}
}
voidkccx()/*课程查询*/
{system("cls");
inti;voidcd();
kc:
printf("1.按学分查询\n2.按课程性质查询\n3.返回主菜单\n");
printf("请输入(1~3):
\n");
scanf("%d",&i);
if(i<1||i>3)
{
printf("输入错误,请重输:
\n");
gotokc;
}
switch(i)
{
case
(1):
system("cls");xfcx();break;
case
(2):
system("cls");kcxz();break;
case(3):
{
system("cls");}
}
}
/*课程信息的修改*/
voidxiu()
{
system("cls");
inti,j;
charm[100],a,b,s[20];
voidshanxiu();
zong:
printf("请选择修改方式:
\n");
printf("1,按课程编号修改\n");
printf("2按课程名称修改\n");
printf("3返回\n");
printf("请选择:
");
scanf("%d",&j);
getchar();
system("cls");
if(j==1)
{
xiugai1:
printf("请输入要修改的课程的编号:
");
scanf("%s",&s);
for(i=0;i<20;i++)
{
if(strcmp(cou[i].num,s)==0)
{
printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
printf("请修改:
");
printf("%-10s","课程编号:
");
scanf("%s",cou[i].num);
printf("%-10s","课程名称:
");
scanf("%s",cou[i].name);
printf("%-10s","课程性质:
");
scanf("%s",cou[i].kind);
printf("%-10s","总学时:
");
scanf("%s",cou[i].time);
printf("%-10s","授课学时:
");
scanf("%s",cou[i].ttime);
printf("%-10s","实验或上机学时:
");
scanf("%s",cou[i].etime);
printf("%-10s","学分:
");
scanf("%s",cou[i].mark);
printf("%-10s","开课学期:
");
scanf("%s",cou[i].term);
}
elseprintf("对不起,没有您要修改的课程\n");
printf("是否继续,输入y/n:
");
scanf("%c",&a);
getchar();
system("cls");
{if(a=='n'||a=='N')
{gotozong;}
else
gotoxiugai1;
}}}
elseif(j==2)
{xiugai2:
printf("请输入要修改的课程的名称:
");
scanf("%s",&m);
system("cls");
for(i=0;i<20;i++)
{
if(strcmp(cou[i].name,m)==0)
{printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
printf("请修改:
");
printf("%-10s","课程编号:
");
scanf("%s",cou[i].num);
printf("%-10s","课程名称:
");
scanf("%s",cou[i].name);
printf("%-10s","课程性质:
");
scanf("%s",cou[i].kind);
printf("%-10s","总学时:
");
scanf("%s",cou[i].time);
printf("%-10s","授课学时:
");
scanf("%s",cou[i].ttime);
printf("%-10s","实验或上机学时:
");
scanf("%s",cou[i].etime);
printf("%-10s","学分:
");
scanf("%s",cou[i].mark);
printf("%-10s","开课学期:
");
scanf("%s",cou[i].term);
}
elseprintf("对不起,没有您要修改的课程");
printf("是否继续,输入y/n:
");
scanf("%s",&b);
getchar();
system("cls");
{if(b=='n'||b=='N')
{gotozong;}
else
gotoxiugai2;
}}
}
elseif(j==3)
{
shanxiu();}
}
/*课程的删除*/
voidshan()
{
system("cls");
inti,j,s;
charm[100],a,dd;
voidshanxiu();
zong:
printf("1,请输入要删除的课程名称\n");
printf("2,返回\n");
printf("请选择:
");
scanf("%d",&j);
getchar();
if(j==1)
{
shanchu:
system("cls");
printf("请输入要删除的课程名称\n");
scanf("%s",&m);
getchar();
for(i=0;i<20;i++)
{
if(strcmp(cou[i].name,m)==0)
{printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
printf("是否确定删除,输入Y/N:
");
scanf("%c",&dd);
getchar();
{if(dd=='y'||dd=='Y')
{
for(j=i;j<=20;j++)
{strcpy(cou[j].num,cou[j+1].num);
strcpy(cou[j].name,cou[j+1].name);/*替换排序*/
strcpy(cou[j].kind,cou[j+1].kind);
strcpy(cou[j].time,cou[j+1].time);
strcpy(cou[j].ttime,cou[j+1].ttime);
strcpy(cou[j].etime,cou[j+1].etime);
strcpy(cou[j].mark,cou[j+1].mark);
strcpy(cou[j].term,cou[j+1].term);
}
}
else{
system("cls");
printf("按任意键返回子菜单");
getchar();
shanxiu();break;
}}
}
else
{
printf("没有您要删除的课程\n");
printf("是否继续,输入Y/N:
");
scanf("%c",&a);
getchar();
system("cls");
if(a=='n'||a=='N')
{
gotozong;
}
elsegotoshanchu;
}
}
}
else
{
system("cls");shanxiu();
}
}
/*课程的删除与修改*/
voidshanxiu()
{
inti;
printf("1,修改课程\n2,删除课程\n3,返回\n");
printf("请输入(1~3):
");
scanf("%d",&i);
if(i<4&&i>0)
switch(i)
{
case
(1):
{
system("cls");xiu();break;}
case
(2):
{
system("cls");shan();break;}
case(3):
{
system("cls");break;}
}
}
/*选课函数*/
voidxk()
{
system("cls");
inti,j,s;
charm[100],a,dd,b;
voidxuanke();
zong:
printf("1,请输入要选的课程名称\n");
printf("2,返回\n");
printf("请选择:
");
scanf("%d",&j);
getchar();
if(j==1)
{
xuan:
system("cls");
printf("请输入要选的课程名称\n");
scanf("%s",&m);
getchar();
for(i=0;i<20;i++)
{
if(strcmp(cou[i].name,m)==0)
{printf("课程编号:
%s\n",cou[i].num);
printf("课程名称:
%s\n",cou[i].name);
printf("课程性质:
%s\n",cou[i].kind);
printf("总学时:
%s\n",cou[i].time);
printf("授课学时:
%s\n",cou[i].ttime);
printf("实验或上机学时:
%s\n",cou[i].etime);
printf("学分:
%s\n",cou[i].mark);
printf("开课学期:
%s\n",cou[i].term);
printf("是否确定选择该门课程,输入Y/N:
");
scanf("%c",&dd);
getchar();
{if(dd=='y'||dd=='Y')
{
printf("请输入您个人信息:
\n");
printf("%-10s","姓名:
");
scanf("%s",stu[1].sname);
printf("%-10s","性别:
");
scanf("%s",stu[1].skind);
printf("%-10s","学号:
");
scanf("%s",stu[1].kind);
printf("\n是否查看您的选课情况,y/n:
");
scanf("%c",&b);
getchar();
system("cls");
{if(b=='n'||b=='N')
gotozong;
else
{strcpy(stu[1].num,cou[i].num);
strcpy(stu[1].name,cou[i].name);
strcpy(stu[1].kind,cou[i].kind);
strcpy(stu[1].time,cou[i].time);
strcpy(stu[1].ttime,cou[i].ttime);
strcpy(stu[1].etime,cou[i].etime);
strcpy(stu[1].mark,cou[i].mark);
strcpy(stu[1].term
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选修 课程 系统 设计