C语言学生选课系统实现

学生选修课程系统设计

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("**  
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值