选课系统课程设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

题目:学生选课系统设计

一、需求分析

根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。

具体要求如下:

采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。学生也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强。编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);

假设某学期共有5门课,每门课程有四项基本信息:课程编号、课程名称、学分和选课人数。学生可自行选课,假设该学期共有8个学生,学生有学号、姓名、所选课程三种基本信息,学生选课要满足每门课最多只能有3个学生选修,每个学生最多只能选2门课,试设计一个学生选课系统。

学生选课系统要求具备以下功能:

1.系统以菜单方式工作

2.浏览所有的课程信息

3.浏览所有的学生选课情况

4.任意学生信息的查询和修改功能

5.学生选课功能(学生选课时要判断课程是否已经选满,同时还要判断学生是否已经选了2门课,若学生满足选课条件才能选课,注意同一门课一个学生只能选一次)

二、概要设计

1.本程序中用到的所有数据类型的定义及含义

数据类型:一维数组

struct course

{ int num;

char subject[10];

int mark;

int count;

}cour[5]={{1,"C++",3,0},

{2,"MATLAB",3,0},

{3,"Math",5,0},

{4,"English",4,0},

{5,"Chinese",3,0}

}; ------------课程信息

struct student

{ long num;

char name[10];

char order1[10];

char order2[10];

}stu[8]={{20074001,"guo","NULL","NULL"}, {20074002,"yu","NULL","NULL"},

{20074003,"su","NULL","NULL"},

{20074004,"hua","NULL","NULL"},

{20074005,"du","NULL","NULL"},

{20074006,"su","NULL","NULL"},

{20074007,"liu","NULL","NULL"},

{20074008,"xu","NULL","NULL"},

}; ------------------学生信息

其余int, char等数据类型在各模块有不同含义,比较简单,不做赘

述。

2.主程序的流程以及各程序模块的功能要求及各自之间的层次(调

用)关系

a)void scan_1(struct course *p)

调用储存课程信息的结构体数组,输出所有课程信息

b)void scan_2(struct student *p)

调用储存学生信息的结构体数组,输出所有学生信息

c)void modify(struct student *p,struct course cour[5])

分别调用储存课程信息和学生信息的结构体数组,输出任意一

个学生的信息,并可以修改学生信息

d)void select(struct student *p,struct course cour[5])

分别调用储存课程信息和学生信息的结构体数组,为任意一个学生

进行选课

e)void menu()

菜单函数

f)void main()

主函数

三、详细设计

#include "stdio.h"

#include "conio.h"

#include "string.h"

#include "stdlib.h"

#include "windows.h"

struct course // 定义存储课程信息的结构体

{ int num; //课程号

char subject[10]; //课程名

int mark; //学分

int count; //已选人数

}cour[5]={{1,"C++",3,0},

{2,"MATLAB",3,0},

{3,"Math",5,0},

{4,"English",4,0},

{5,"Chinese",3,0}

};

void scan_1(struct course *p) //所有课程信息的浏览功能

{ system("cls");

printf(" 课程信息如下: \n");

for(p=cour;p

printf("课程号--%d 科目--%7s 学分--%d 已选人数--%d\n\n",p-

>num,p->subject,p->mark,p->count);

}

struct student // 定义存储学生信息的结构体

{ long num; //学号

char name[10]; //姓名

char order1[10]; //所选课程1 char order2[10]; //所选课程2

}stu[8]={{20074001,"guo","NULL","NULL"}, {20074002,"yu","NULL","NULL"}, //选课为空显示"NULL"

{20074003,"su","NULL","NULL"},

{20074004,"hua","NULL","NULL"},

{20074005,"du","NULL","NULL"},

{20074006,"su","NULL","NULL"},

相关文档
最新文档