学生选修课程系统设计
1、需求分析
系统以菜单方式工作,因而要提供键盘式选择菜单以实现功能选择;由于课程信息要用文件保存,因而要提供文件的输入输出操作;由于要浏览信息,所以要提供显示功能;要实现查询功能,故要提供查找操作。
2、总体设计
整个系统可以设计为信息输入模块、信息查询模块以及信息浏览模块。
3、详细设计
数据结构采用结构体,这里采用课程信息结构体和学生选课信息结构体。
Struct
{
Char courseCode[10]; //课程编号
Char courseName[20]; //课程名称
Char courseType[10]; //课程类别
Int totalPeriod; //总学时
Int classPeriod; //授课学时
Int experiPeriod; //上机学时
Float creditHour; //学分
Int term; //开课学期
}CourseInfo[N]; //课程信息结构体
Struct
{
Int stuNo; //学号;
Char courseCode[10]; //课程编号
}StuCourInfo[N]; //学生选课信息结构体
(1) 信息输入模块
从键盘输入课程信息和学生选课信息,写入文件。(fwrite, fprintf)
(2)信息浏览模块
分屏显示课程信息,每屏10条课程记录,按任意键继续。从文件中读数据(fread,fscanf),然后再显示。
(3)信息查询模块
通过菜单选择查询字段,可以按照课程编号、课程名称、课程性质、开课学期、学分对课程信息文件进行查找,查找算法可以选择基本查找、二分查找等算法。
1、首先在项目文件夹内(.c文件同级文件夹)创建class.txt文件和student.txt文件,作为系统的数据文件进行保存。
2、在初次运行系统时,建议先选择课程可学生数据添加选项,因为数据文件中不存在数据。
3、本系统最大选课数在15门以内,超出的不计。
4、源码如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>//需要用到strcmp函数
//宏定义
#define LEN 15//姓名和学号的最大字符数.文件URL路径长度,最多选课数
#define N 50//最大学生人数,课程数
int n = 0, c = 0, t = 1;//n代表当前学生人数,c表示课程数,t用来控制整个程序的执行,以及程序的退出;
int m = 0,M=0;//m添加的学生人数,M添加的课程数
//函数声明
void menu();//主菜单函数
void readInfo(); //数组初始化
void select(); //操作选择
void help(); //使用帮助
void increaseClass(); //增加课程信息
void increaseStudent(); //增加学生信息
void classDisplay(); //课程浏览
void studentDisplay(); //学生浏览
void save(int f); //信息文件保存
void find(); //查找
void findStudent();
void findClass();
void exitSys(); //退出函数
struct Class
{
char courseCode[10]; //课程编号;001
char courseName[20]; //课程名称;大学英语
char courseType[10]; //课程类型;必修
int totalPeriod; //总学时;60
int classPeriod; //授课学时;40
int experiPeriod; //上机学时;20
float creditHour; //学分;4
int term; //开课学期;1为上学期,2为下学期
}CourseInfo[N];
struct Student
{
int stuNo; //学号0000;
char courseCode[LEN][10]; //课程编号;
}StuCourInfo[N];
void menu()
{
printf("\n\n");
printf("*****************************************************\n");
printf("* 学生选修课程系统 *\n");
printf("*****************************************************\n");
printf("********************系统功能菜单*********************\n");
printf("-----------------------------------------------------\n");
printf("** 1、使用帮助\n\n");
printf("** 2、增加课程信息\n\n");
printf("** 3、增加学生信息\n\n");
printf("** 4、课程浏览\n\n");
printf("** 5、学生浏览\n\n");
printf("**