c程序设计学生选修课程系统.docx
《c程序设计学生选修课程系统.docx》由会员分享,可在线阅读,更多相关《c程序设计学生选修课程系统.docx(14页珍藏版)》请在冰豆网上搜索。
c程序设计学生选修课程系统
一、课程设计的题目和意义
题目五:
学生选修课程系统设计
假定有n门课程,每门课程有:
课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:
1、系统以菜单方式工作
2、课程信息录入功能(课程信息用文件保存)
3、课程信息浏览功能
4、课程信息查询功能
查询方式
按学分查询
按课程性质查询
5、学生选修课程(可选项)
通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。
“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。
二、详细设计
1、模块功能介绍
题目:
学生选修课程系统设计:
课程信息包括:
课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等。
试设计一学生选课系统,使之能提供以下功能:
选课信息录入功能(学生信息用文件保存)---输入
选课信息浏览功能---输出
查询功能---算法
进入选课信息操作
2、程序流程图
3、程序清单
#include
structcourse
{
intnum;
charname[20];
charkind[10];
inttime;
intttime;
intetime;
intmark;
intterm;
};
structstudent
intsnum;
intcnum;
charcname[20];
/*课程信息录入*/
voidinsert()
voidmain();
FILE*fp;
structcoursec;
intcount;
inti;
if((fp=fopen("course.txt","a+"))==NULL)
printf("cannotopenfile\n");
}
printf("\n请输入课程门数:
\n");
scanf("%d",&count);
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:
for(i=0;i{scanf("%d%s%s%d%d%d%d%d",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);fprintf(fp,"%d%s%s%d%d%d%d%d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}fclose(fp);main();}/*课程信息浏览*/voidbrowser(){voidmain();FILE*fp;structcoursec;inta;if((fp=fopen("course.txt","r"))==NULL){printf("\nCannotopencourse!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*课程信息查询*/voidsearch(){voidmain();FILE*fp;structcoursec;intscore;charkind[10];inta;intb;printf("1.按学分查询,2.按课程性质查询.\n");printf("请选择查询方式,输入选项数字:");scanf("%d",&b);if(b==1){printf("\n请输入您要查询的学分:\n");scanf("%d",&score);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannotopencourse!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(c.mark==score)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}elseif(b==2){printf("\n请输入您要查询的课程性质:\n");scanf("%s",&kind);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannotopencourse!\n");}printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(strcmp(c.kind,kind)==0)printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}else{printf("输入错误!");exit(1);}fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*统计选课情况*/voidxuanke_information(){voidmain();inttotal=0;inta;FILE*fp;structstudents;if((fp=fopen("student.txt","r"))==NULL){printf("\nCannotopenstudent!\n");}printf("学号课程编号课程名称\n");for(;!feof(fp);){fscanf(fp,"%d%d%s\n",&s.snum,&um,&ame);total++;printf("%7d%9d%13s\n",s.snum,um,ame);}printf("\n选课学生总人数为:%d人",total);fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*学生选修课程*/voidxuan_ke(){voidmain();structstudents;structcoursec;inta;FILE*fp;printf("\n请输入您的学号及您要选择的课程编号:");scanf("%d%d",&s.snum,&um);if((fp=fopen("course.txt","r"))==NULL){printf("\nCannotopencourse!\n");}for(;!feof(fp);){fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);if(um==c.num)break;}fclose(fp);if((fp=fopen("student.txt","a+"))==NULL){printf("\nCannotopenstudent!\n");}fprintf(fp,"%d%d%s\n",s.snum,um,c.name);fclose(fp);printf("\n1-返回主菜单;2-退出选课系统\n");scanf("%d",&a);if(a==1)main();elseexit(0);}/*主菜单*/voidmain(){intn,w=0;printf("********************************************************************************\n");printf("学生选课系统菜单\n");printf("********************************************************************************\n");printf("1-录入选课信息\n");printf("2-浏览选课信息\n");printf("3-查询选课信息\n");printf("4-统计选课情况\n");printf("5-进入选课操作\n");printf("0-退出选课系统\n");printf("********************************************************************************\n");printf("请选择输入选项前数字:");scanf("%d",&n);do{if(n>5||n<0){printf("\n输入错误!请重新输入!\n");scanf("%d",&n);}elsew=1;}while(w==0);switch(n){case1:insert();break;case2:browser();break;case3:search();break;case4:xuanke_information();break;case5:xuan_ke();break;case0:exit(0);}return;}4、系统运行结果主菜单功能选课信息录入选课信息查询选课学生统计进入选课操作
scanf("%d%s%s%d%d%d%d%d",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
fprintf(fp,"%d%s%s%d%d%d%d%d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
fclose(fp);
main();
/*课程信息浏览*/
voidbrowser()
inta;
if((fp=fopen("course.txt","r"))==NULL)
printf("\nCannotopencourse!
for(;!
feof(fp);)
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&c.name,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark,&c.term);
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,c.name,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
else
exit(0);
/*课程信息查询*/
voidsearch()
intscore;
intb;
printf("1.按学分查询,2.按课程性质查询.\n");
printf("请选择查询方式,输入选项数字:
");
scanf("%d",&b);
if(b==1)
printf("\n请输入您要查询的学分:
scanf("%d",&score);
if(c.mark==score)
elseif(b==2){
printf("\n请输入您要查询的课程性质:
scanf("%s",&kind);
if(strcmp(c.kind,kind)==0)
else{
printf("输入错误!
exit
(1);
/*统计选课情况*/
voidxuanke_information()
inttotal=0;
structstudents;
if((fp=fopen("student.txt","r"))==NULL)
printf("\nCannotopenstudent!
printf("学号课程编号课程名称\n");
fscanf(fp,"%d%d%s\n",&s.snum,&um,&ame);
total++;
printf("%7d%9d%13s\n",s.snum,um,ame);
printf("\n选课学生总人数为:
%d人",total);
/*学生选修课程*/
voidxuan_ke()
printf("\n请输入您的学号及您要选择的课程编号:
scanf("%d%d",&s.snum,&um);
if(um==c.num)
break;
if((fp=fopen("student.txt","a+"))==NULL)
fprintf(fp,"%d%d%s\n",s.snum,um,c.name);
/*主菜单*/
voidmain()
intn,w=0;
printf("********************************************************************************\n");
printf("学生选课系统菜单\n");
printf("1-录入选课信息\n");
printf("2-浏览选课信息\n");
printf("3-查询选课信息\n");
printf("4-统计选课情况\n");
printf("5-进入选课操作\n");
printf("0-退出选课系统\n");
printf("请选择输入选项前数字:
scanf("%d",&n);
do
if(n>5||n<0)
printf("\n输入错误!
请重新输入!
elsew=1;
}while(w==0);
switch(n)
case1:
insert();break;
case2:
browser();break;
case3:
search();break;
case4:
xuanke_information();break;
case5:
xuan_ke();break;
case0:
return;
4、系统运行结果
主菜单功能
选课信息录入
选课信息查询
选课学生统计
进入选课操作
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1