c程序设计学生选修课程系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一、课程设计的题目和意义 (2)
二、详细设计 (3)
1、模块功能介绍 (3)
2、程序流程图 (4)
3、程序清单 (5)
三、系统运行结果 (11)
一、课程设计的题目和意义
题目五:学生选修课程系统设计
假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计一选修课程系统,使之能提供以下功能:
1、系统以菜单方式工作
2、课程信息录入功能(课程信息用文件保存)
3、课程信息浏览功能
4、课程信息查询功能
查询方式
按学分查询
按课程性质查询
5、学生选修课程 (可选项)
通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。
“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。
二、详细设计
1、模块功能介绍
题目:学生选修课程系统设计:
课程信息包括:课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等。
试设计一学生选课系统,使之能提供以下功能:
选课信息录入功能(学生信息用文件保存)---输入
选课信息浏览功能---输出
查询功能---算法
按学分查询
按课程性质查询
进入选课信息操作
2、程序流程图
3、程序清单
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
struct course
{
int num;
char name[20];
char kind[10];
int time;
int ttime;
int etime;
int mark;
int term;
};
struct student
{
int snum;
int cnum;
char cname[20];
};
/*课程信息录入*/
void insert()
{
void main();
FILE *fp;
struct course c;
int count;
int i;
if((fp=fopen("course.txt","a+"))==NULL)
{
printf("cannot open file\n");
}
printf("\n请输入课程门数:\n");
scanf("%d",&count);
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");
for(i=0;i<count;i++)
{
scanf("%d %s %s %d %d %d %d %d",&c.num,&,&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.kind,c.time,c.ttime,c .etime,c.mark,c.term);
}
fclose(fp);
main();
}
/*课程信息浏览*/
void browser()
{
void main();
FILE *fp;
struct course c;
int a;
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&,&c.kind,&c.time,&c.tti me,&c.etime,&c.mark,&c.term);
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,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();
else
exit(0);
}
/*课程信息查询*/
void search()
void main();
FILE *fp;
struct course c;
int score;
char kind[10];
int a;
int b;
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("\nCannot open course!\n");
}
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.e time,&c.mark,&c.term);
if(c.mark==score)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,c.kind,c.time,c.ttime, c.etime,c.mark,c.term);
}
}
else if(b==2){
printf("\n请输入您要查询的课程性质:\n");
scanf("%s",&kind);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
printf("课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n");
for(;!feof(fp);)
{
fscanf(fp,"%d%s%s%d%d%d%d%d\n",&c.num,&,&c.kind,&c.time,&c.ttime,&c.e time,&c.mark,&c.term);
if(strcmp(c.kind,kind)==0)
printf("%5d%12s%9s%9d%9d%11d%11d%11d\n",c.num,,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();
else
exit(0);
}
/*统计选课情况*/
void xuanke_information()
{
void main();
int total=0;
int a;
FILE *fp;
struct student s;
if((fp=fopen("student.txt","r"))==NULL)
{
printf("\nCannot open student!\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();
else
exit(0);
}
/*学生选修课程*/
void xuan_ke()
{
void main();
struct student s;
struct course c;
int a;
FILE *fp;
printf("\n请输入您的学号及您要选择的课程编号:");
scanf("%d%d",&s.snum,&um);
if((fp=fopen("course.txt","r"))==NULL)
{
printf("\nCannot open course!\n");
}
for(;!feof(fp);)
{
fscanf(fp,"%d %s %s %d %d %d %d %d\n",&c.num,&,&c.kind,&c.time,&c.tti me,&c.etime,&c.mark,&c.term);
if(um==c.num)
break;
}
fclose(fp);
if((fp=fopen("student.txt","a+"))==NULL)
{
printf("\nCannot open student!\n");
}
fprintf(fp,"%d %d %s\n",s.snum,um,);
fclose(fp);
printf("\n1-返回主菜单;2-退出选课系统\n");
scanf("%d",&a);
if(a==1)
main();
else
exit(0);
}
/*主菜单*/
void main()
{
int n,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);
}
else w=1;
}while(w==0);
switch(n)
{
case 1:insert();break;
case 2:browser();break;
case 3:search();break;
case 4:xuanke_information();break;
case 5:xuan_ke();break;
case 0:exit(0);
}
return ;
}
4、系统运行结果主菜单功能
选课信息录入
选课信息查询
选课学生统计
进入选课操作。