目录
第一章、摘要、关键词 (2)
第二章、课程设计任务内容与思路 (3)
第三章、程序功能划分及流程图 (3)
第四章、程序运行结果 (5)
第五章、设计心得 (9)
第六章、小组分工 (10)
第七章、参考文献 (11)
第一章、摘要与关键词:
1、摘要:
近年来,随着学校和扩招规模的不断扩大,在校学生的数量也相应的增加,有关学生的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致学生选课管理上的混乱,人力与物力过多浪费,学生管理费用的增加,从而使管理人员的负担过重,影响整个学生选课的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生选课系统,对学生以及课程进行集中统一的管理。
系统开发的总的设计目标是实现学生选课的系统化、规范化和自动化,实现对学生和课程的集中统一的管理。
2、关键词:
选课系统、结构体、课程查询、跳转函数
第二章、课程设计任务内容与思路 1、创建学生、课程结构体,课程查询功能 2、课程与学生信息录入,管理 3、学生选课功能的实现 第三章、程序功能划分及流程图 1、主函数
2、选课函数
开始
输入要选择的课程的编号
flag++
Y N
结束
courses[j].c_num==n
j=0;j<i;
(i 初始化为0)
flag==0
没有找到对应课程
Y
N
选课成功
j++
开始start ()堆栈
菜单、功能选项
使用case 条件语句跳转函数goto 根据选择进入各函数
3、查询课程函数
开始
输入要查询的课程的编号
flag++
Y N
结束
courses[j].c_num==n
j=0;j<i-1;(i 初始化为0)
flag==0
没有找到对应课程
Y
N
打印相应的课程
j++
4、课程增加与删除
开始
输入要增加的课程的编号
printf (“编号已使用过”)
Y
N
结束
courses[j].c_num==n
j=0;j<i-1;(i 初始化为0)
j++
frwrite 写入课程信息到文件
开始
输入要删除的课程的编号n
Y
N
结束
courses[j].c_num==n
j=0;j<i-1;(i 初始化为0)
j++
不存在相应课程
k=0;k<j;
frwrite 写入课程信息到文件
k++k=j+1;k<i-1;
k++
第四章、程序运行结果 1、主界面
2、录入课程信息
3、课程信息管理
4、录入学生信息
5、学生信息管理
6、学生选课
7、系统信息查看及存储
8、退出系统
第五章、设计心得
由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。
本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。
通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。
程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。
对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。
通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。
所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。
总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。
第六章、小组分工
1、组长:
●信息录入函数设计(学生信息、课程信息)
1、从键盘录入
2、从文件录入
●算法设计。
●任务报告书的修订。
●信息文件的创建。
2、组员A:
●查询函数设计(课程名查询)
●退课函数设计。
●任务报告书初稿。
3、组员B:
●信息管理(学生信息、课程信息)
1、增加信息
2、删除信息
●结构体构造。
●查阅资料。
4、组员C:
●选课函数的实现。
●存储信息至文件。
●主函数设计。
第七章、参考文献
Visual C++课程设计案例精编
C语言课程设计案例精编
数据结构(C语言)
C语言程序设计教程(第二版)
附录、部分源程序
主函数:
int main()//主函数
{
int i;
start:
printf("\n\t\t\t欢迎使用学生选课系统!\n"); printf("菜单:\n");
printf("1.录入课程信息\n");
printf("2.课程管理\n");
printf("3.录入学生信息\n");
printf("4.学生信息管理\n");
printf("5.学生选课\n");
printf("6.系统信息查看及存储\n");
printf("7.退出系统\n");
printf("\n请输入菜单选项(1~7):\n"); scanf("%d",&i);
if(i<1||i>7)
{printf("输入错误,请重输:\n");
goto start;}
switch(i)
{case(1):
{system("cls");
inputc();
goto start; break;}
case(2): {system("cls"); managementc(); goto start; break;}
case(3): {system("cls"); inputs();
goto start; break;}
case(4): {system("cls"); managements(); goto start; break;}
case(5): {system("cls"); elective();
goto start; break;}
case(6):
{system("cls");
store();
goto start;
break;}
case(7):
{system("cls");
printf("感谢使用本系统!\n\n再见!\n");} }
return(0);}
二、课程信息与学生信息
struct couse//课程信息结构体
{int num1;
char name1[20];
int score;
int nelepeo;//课程已选人数
int Melepeo;//课程人数上限
struct couse*next;};
struct student//学生信息结构体
{int num2;
char name2[20];
int nelenum[50];//已选课程编号
int nelen;//已选课程数量struct student*next;
};
void Ms()
{for(kk1=0;kk1<1100;kk1++) for(kk2=0;kk2<1200;kk2++) for(kk3=0;kk3<1200;kk3++);} 三、选课函数
void elective()
{int i;
printf("\t\t\t学生选课\n"); printf("1.查询可选课程\n"); printf("2.查询已选课程\n"); printf("3.返回主菜单\n"); printf("请输入(1~3):\n"); scanf("%d",&i);
switch(i)
{case(1):cheak();break;
case(2):hcheak();break;
case(3):break;}
}。