C++程序设计 报告 及源代码 --学生选课系统
- 格式:doc
- 大小:441.00 KB
- 文档页数:41
摘要
C语言是在国内外广泛使用的一种计算机语言。C语言简洁紧凑、灵活方便、运算符丰富、适用范围大、可移植性好。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
本学生选课系统主要利用C语言的数组指针和文件操作能力设计开发一个小型的选课系统,至少具有如下功能:查看课程信息、查找课程信息、增加课程信息、修改课程信息、选课等功能。
本文主要对学生选课系统来进行说明。本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。还包括指针、函数、结构体、文件等C语言的基础知识的运用。
关键字:源代码、指针、调用函数、流程图、结构、数组。
目录
第一章设计题目的内容、任务及具体要求 (1)
第二章总体设计思路 (2)
2.1程序功能 (2)
2.2模块关系 (2)
2.3总体框图 (3)
第三章功能模块的具体设计 (4)
3.1主函数模块的设计 (4)
3.2显示课程信息模块的设计 (7)
3.3查询模块模块的设计 (8)
3.4增加模块的设计 (9)
3.5删除模块模块的设计 (13)
3.6修改模块模块的设计 (14)
3.7选课模块的设计 (15)
3.8显示选课情况模块的设计 (17)
第四章功能模块的调试及测试 (18)
4.1登陆界面和主菜单界面的显示 (18)
4.2查询所有课程信息的显示结果 (19)
4.3查询单个课程信息的显示结果 (19)
4.4添加课程信息的显示结果 (20)
4.5删除和修改课程信息的显示结果 (20)
4.6选课的显示结果 (21)
4.7 查询选课情况的显示结果 (22)
4.8退出 (22)
总结 (23)
致谢 (24)
参考资料: (25)
附程序清单 (26)
第一章设计题目的内容、任务及具体要求
设计题目:学生选课系统
设计内容:本程序属于非数值计算型算法设计,学生需要设计出学生选课系统所需要的基本功能,并设计简单的界面(无需图形化)。本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组的相关操作,包括数组的输入、输出、查找、插入、删除等操作,需要对数组有比较深入的掌握。要求程序运行结果正确,程序和算法具有一定程序度的健壮性,稳定性。
设计要求:
(1)通过提示菜单选择可以进行的操作。
(2)将课程的信息存入文件中,并命名为LessonInfo.txt。
(3)将选课情况信息存入文件中,并命名为SelectInfo.txt。
(4)在本系统中可以进行管理系统包含的基本操作,其中包括
1)查看所有课程的信息
2)输入一门课程的课程编号,从当前课程中进行查找,如果找到则显示该课程的相关信息,如果没有找到则给出提示信息
3)添加一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编号的课程,如果存在则提示重新输入,否则将该课程按照顺序插入到相
应位置
4)删除一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编号的课程,如果存在则将该课程删除,否则给出提示信息,提示该课程
不存在
5)选修一门课程,需要给出学号和课程编号,如果课程编号不存在则重新输入,直到输入正确为止,并将学号和相应的课程编号存入SelectInfo.txt
文件中
(5)课程基本信息包括课程编号、课程名、学时和学分这些简单信息。
(6)课程信息文件中每一行存放一门课程的信息。
第二章总体设计思路
2.1 程序功能
此系统是简单的学生选课系统。
具体的功能包括:
1)输入密码进入系统。
2)查看所有课程的信息
3)输入一门课程的课程编号,从当前课程中进行查找,如果找到则显示该课程的相关信息,如果没有找到则给出提示信息
4)添加一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编号的课程,如果存在则提示重新输入,否则将该课程按照顺序插入到相
应位置
5)删除一门课程的基本信息,通过输入课程编号,首先查找是否存在该课程编号的课程,如果存在则将该课程删除,否则给出提示信息,提示该课程
不存在
6)对课程信息进行修改。
7)选修一门课程,需要给出学号和课程编号,如果课程编号不存在则重新输入,直到输入正确为止,并将学号和相应的课程编号存入SelectInfo.txt
文件中
8)查看所选课程。
2.2 模块关系
根据提示输入学号和密码进入系统。通过主函数模块进入各个其它函数的模块,然后达到对课程信息的查看、增加、删除、修改和选课的功能,在这些模块中又调用其它小模块(如:排序模块)。本程序主要有:主函数模块、显示课程信息模块、查询模块、增加模块、删除模块、修改模块、选课模块、显示选课情况模块等八个模块组成。
2.3总体框图
先输入验证信息进入主模块,然后选择调用的模块
第三章功能模块的具体设计
3.1 主函数模块的设计
在主函数中通过inset()函数让用户输入验证信息进入,简单菜单的制作可以利用printmenu()函数实现。从文件中获取课程信息,并存放在定义的结构数组desk[100]中。定义结果的源代码为
struct classin
{
int number;
char classname[10];
int hours;
double credit;
};
typedef struct classin Classin;
Classin desk[100] = {0}
然后将文件中的信息读入此数组中,读取函数的代码为:
cfptr = fopen("LessonInfo.txt","r");
while(!feof(cfptr))
{
fscanf(cfptr, "%d%s%d%lf", &desk[i].number, desk[i].classname, &desk[i].hours, &desk[i].credit);
i++;
}
在后面的使用中都是调用此地址便可以对数组进行修改。
输入选择项choice,再用switch语句去调用其它函数,具体实现如下(主函数的主要代码):
while(choice != 8)
{