C语言课程设计报告选课管理系统文档格式.docx
- 文档编号:16958956
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:15
- 大小:50.24KB
C语言课程设计报告选课管理系统文档格式.docx
《C语言课程设计报告选课管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告选课管理系统文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
stdlib.h>
#defineM20
#defineN100
intx;
//x为供选课程数
/*****主主菜单函数开始*****/
voidmenu()
{intn,w;
voidenter_linformation();
voidbrowse_linformation();
voidenter_sinformation();
voidsearch_num();
voidsearch_score();
voidl_choice_num();
do
{
puts("
\t\t*******************MENU******************\n\n"
);
\t\t\t\t1.课程信息录入"
\t\t\t\t2.学生选课信息录入"
\t\t\t\t3.课程信息浏览"
\t\t\t\t4.按课程号查询"
\t\t\t\t5.按学分查询"
\t\t\t\t6.某门课程学生选修情况"
\t\t\t\t7.退出"
\n\n\t\t*****************************************\n"
printf("
Choiceyournumber(1-7):
[]\b\b"
scanf("
%d"
&
n);
if(n<
1||n>
7)
w=1;
getchar();
}
elsew=0;
while(w==1);
switch(n)
case1:
enter_linformation();
break;
//课程信息录入
case2:
enter_sinformation();
//学生选课信息录入
case3:
browse_linformation();
//课程信息浏览
case4:
search_num();
//按课程号查询
case5:
search_score();
//按学分查询
case6:
l_choice_num();
//某门课程学生选修情况
case7:
exit(0);
//退出
voidmain()
menu();
}
/*****主函数结束*****/
structlesson
intnum;
//课程编号
charname[20];
//课程名称
charkind[10];
//课程性质
intstime;
//总学时
intttime;
//授课学时
intetime;
//实验或上机学时
intscore;
//学分
intterm;
//开课学期
intchoice_num;
//选修该课的学生人数
}les[M];
//les[M]中每个数组元素对应一条课程信息
structstudent
intnumber;
//学号
intnum[20];
}stu[N];
//stu[n]中每个数组元素对应一条学生选课信息
voidprintf_face()//公共函数1:
显示数据结构项目函数
printf("
\n\tnumbernamekindstimeetimettimescoreterm\n"
voidprintf_one(inti)//公共函数2:
显示一个课程信息记录
{printf("
\n\t%d%s%s%d%d%d%d%d\n"
les[i].num,les[i].name,les[i].kind,les[i].stime,
les[i].ttime,les[i].etime,les[i].score,les[i].term);
//课程信息录入模块
voidl_input(inti)//输入一个记录到函数
{
scanf("
les[i].num);
%s"
les[i].name);
les[i].kind);
les[i].stime);
les[i].ttime);
les[i].etime);
les[i].score);
les[i].term);
l_save(intn)//保存课程信息到文件函数
FILE*fp;
inti;
if((fp=fopen("
lesrecord.txt"
"
wb"
))==NULL)
{
printf("
\nCannotopenfile\n"
returnNULL;
}
for(i=0;
i<
n;
i++)
fprintf(fp,"
%d%s%s%d%d%d%d%d\n"
fclose(fp);
voidenter_linformation()//课程信息录入函数
inti,m,k,w1;
总共多少门课(0-%d)?
"
M-1);
m);
printf_face();
m;
\n请输入第%d条课程信息\n"
i+1);
l_input(i);
//调用输入函数
if(i!
=0)l_save(m);
//调用保存函数
请选择下一步操作:
<
1>
返回继续录入课程信息<
2>
回到主菜单<
3>
退出程序[]\b\b"
k);
if(k<
1||k>
3)
w1=1;
elsew1=0;
while(w1==1);
switch(k)
case1:
case2:
case3:
//课程信息浏览模块
voidbrowse_linformation()//课程信息浏览函数
{intk,w1;
intload_lesson();
voidprintf_n(intn);
x=load_lesson();
//从文件读入课程信息
printf_n(x);
//显示课程信息
2)
///////////////
intload_lesson()//加载课程信息记录并可以计算记录个数
{FILE*fp;
inti;
if((fp=fopen("
r"
{printf("
\ncannotopenfile\n"
return0;
for(i=0;
!
feof(fp);
fscanf(fp,"
%d%s%s%d%d%d%d%d"
les[i].num,&
les[i].name,&
les[i].kind,&
les[i].stime,
&
les[i].ttime,&
les[i].etime,&
les[i].score,&
fclose(fp);
return(i);
voidprintf_n(intx)//显示所有课程信息记录
{intj;
for(j=0;
j<
x;
j++)
{if(j%10==0)
\n\npassanykeytocontinue>
..."
getchar();
\n\n"
printf_one(j);
}getchar();
//选课信息录入模块
voidenter_sinformation()//学生选课信息录入函数
voids_input(inti);
inti,n,k,w1;
\n总共有多少学生(0-%d)?
:
N-1);
{printf("
\n请输入第%d个学生学号:
\n"
s_input(i);
<
返回继续录入选课信息<
voids_input(inti)//输入一个记录到函数
intj,k,m,n,w1,total=0;
stu[i].number);
\n你想选多少门课[]\b\b"
现在输入课程编号,依次用空格隔开!
for(j=0;
scanf("
stu[i].num[j]);
for(k=0;
k<
k++)
if(les[k].num==stu[i].num[j])
{total+=les[k].score;
les[k].choice_num++;
}
if(total<
60)
警告:
你所选课程总学分不到60!
返回重新录入选课信息<
if(n<
{
}
switch(n)
请重新输入你的学号:
s_input(i);
};
voiddele()//删除模块
inti,j,num;
chara[8],b;
system("
cls"
请输入删除的姓名:
gets(a);
num;
if(strcmp(stu[i].name,a)==0)break;
for(j=i;
stu[i]=stu[i+1];
num--;
是否继续删除(y/n)?
b=getchar();
if(b=='
y'
)
dele();
else
{menu();
//按课程号查询模块
//按课程号查询函数
voidsearch_num()
inti,k,flag=0,w1;
structlessons;
\n\n输入你要查询的课程编号:
s.num);
load_lesson();
if(s.num==les[i].num)
{flag=1;
printf_one(i);
if(flag==1)
Found!
else
Notfound!
返回继续查找课程信息<
//按学分查询模块
//按学分查询函数
voidsearch_score()
intmark;
\n\n输入你要查询的课程学分:
mark);
if(mark==les[i].score)
//某门课程学生选修情况查询模块
voidl_choice_num()
inti,k,flag=0,w1;
选修这门课的总人数为:
%d\n"
les[i].choice_num);
实验总结:
1、实验中应多注意指针、数组、动态链表以及结构体类型的搭配和使用。
2、实验中各模块看似简单,但应注意其之间的搭配灵活的使用。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 选课 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)