文档库 最新最全的文档下载
当前位置:文档库 › C++课程设计学生选课系统设计

C++课程设计学生选课系统设计

C++课程设计学生选课系统设计
C++课程设计学生选课系统设计

目录

1系统需求分析 (2)

2总体设计 (3)

3详细设计 (4)

4界面设计与各功能模块实现 (5)

5 系统调试 (9)

6 实验心得体会 (9)

7附:源程序 (11)

1系统需求分析

(1)、本系统是针对高校学生的选修课程而设计,通过本系统高校学生可以很方便地进行自由选课。主要的问题描述是(功能要求):n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。

(2)、主要要求实现的功能如下:

①课程信息录入功能:能根据提示将各课程的相关信息进行输入并保存;

②课程信息浏览功能:能将已经录入并保存的信息进行浏览;

③查询功能:可根据不同的查询方式查询相应的课程信息。其中查询方式有按学分查询和按课程性质查询两种;

系统流程图如下:

(3)、输入输出要求:

系统以菜单方式工作。用户根据每一个功能模块输入相应内容,然后进行相应的操作。如需进行其他操作,可返回主菜单。输出的内容要有一个良好的界面,使用户看清楚明白。

2总体设计

(1)、系统功能分析

本系统主要由一个Class类及其五个成员函数组成。课题所要求的功能由各个函数分别得以实现。首先,在Class类内定义了一些成员变量,用来保存课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,还对它的成员变量进行了声明,如:

然后,在类外,通过作用域运算符将类内声明的成员函数定义,以及进行相应的操作,以实现相应的功能。主要包括功能要求中的五大功能,即信息输入、信息浏览、按学分查询课程、按课程性质查询课程等。

最后,在主函数中设置目录显示。用switch瓜分不同的功能选项。系统根据用户输入的符号,调用相应的成员函数,完成功能的实现。

(2)、各个模块之间的关系如下图:

3详细设计

(1)数据库需求分析

该程序主要包含一个Class类和一个main()函数。其中Class类中有Input(),OutPut(),Search(),SearchByscore(float),SearchByKind(strin

g)函数来实现各功能。像在Input()信息输入函数中,ofstream outfile 创

建一个文件输出流对象语句就要用到系统库函数fstream,而conio.h则是Console (键盘和屏幕) 输出输入函数的头文件,con - Console,io -- input,output。程序中各功能函数如SearchBy (float)按分数查询和SearchByKind(string)按性质查询,显然是两个独立的函数,但其实现过程很像似。

(2)数据库概念结构设计(E-R图)

(3)数据库逻辑结构设计

(4)类层次图

4界面设计与各功能模块实现

(1)、功能实现的文件模块:

在主函数中设置目录显示。设计一个友好、漂亮的界面,通过switch语句进行选择进入相应的功能模块,建立一个class类的对象a,用对象名调用class 类的功能函数,恰当的使用清屏函数。通过对象a调用相应的成员函数,如a.Input()、a.OutPut()、a.Search()等等,这些公有函数成员就是这个系统要求设计的功能模块。各个功能函数的具体实现如下:

①、录入函数模块:

首先,创建一个文件输出流对象outfile,打开文件,判断文件是否存在。通过while设一个无限循环,当给出指定条件时退出。在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学

时、实验或上机学时、学分、开课学期等等。将需要的课程输入完毕之后,可根据提示再输入“f”,即可返回主菜单,重新进行功能的选择。该步骤界面设计操作图如下:

(输入“1”,根据提示输入课程信息:)

显示(浏览)函数模块:

该函数首先创建了输入流文件对象infile,使用语句infile.open(file),然后定义一个string类型的二维数组,用来保存从文本内读取的信息,用for循环保证保存不止一门课程的信息。最后,cout输出显示所有保存的信息。操作界面图如下:

查找功能,即按学分查找和按课程性质查找,具体的实现如下:

按课程性质查找:创建输入流文件对象infile,然后定义一个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示,界面设计操作图如下:

按课程学分查找:原理同上,如果用户输入的学分与所保存的信息想对应,则将对应的课程信息输出显示。输入“0”可返回主菜单。具体程序见源程序清单。该步骤界面显示如下:

5 系统调试

(1)、在查找功能函数当中,刚开始我输入的课程性质用数字代替,而后面我的查找函数在进行输入比较时是用汉字进行比较的,这样就导致了查找错误,刚开始我找了好久也找不出来,后来还是在同学的帮助下终于找到了这个错误,并改正。输出了正确的结果。

(2)、在class类当中我刚开始把成员变量如课程性质只简单的设置为字符型char,当在类外进行初始化时出现了错误,因为把要获得字符串的函数只简单的设置为字符型是不行的,它的返回得不到一个字符串,要把其设置string 类型或者数组类型,这样就可以通过编译了。

(3)、进行程序调试时,事先函数中没有用到清屏,导致界面繁琐不清晰。后来在头文件中加了#include,又在程序中适当地添加了system("cls")语句,这才使得界面友好清晰。

6 实验心得体会

心得

连续三天的课程设计终于要接近尾声了。虽然接下来还要面临紧张的期末考试,但总算可以稍微松一口气。

说实话,每次做课程设计、写实验报告,我都好上火长痘好几天。本来因为上学期的课程设计没有认真做,在网上下载了一篇类似的题目,自己作了一些修改,便跑去答辩,被老师当众批评,心里羞愧得要死!心里暗下决心,这次试验报告一定要自己写,不管写得多差,只要自己很努力地认真在写就好了。

这次题目初看不是很难,一个类,一些成员变量,几个成员函数,将它们组合起来就OK了。可是越写下去,便觉得处处是难题。到最后感觉自己像处在一个大迷宫里,四周到处是出口,走近了一看,却发现那只是上面画着门的墙壁······

我只会定义一个类和它的成员变量以及成员函数,但要求是要有N门课程呢,还要能显示你所输入的课程信息,还要按要求将分类不同的信息挑选出来······天哪,这可怎么办呢?看来,要将自己输入的信息有记录地保存起来

就好了。可是老师没教这个呀(后来才知道相关内容在C语言教科书上有,上学期的课程设计也有涉及到,但由于上次的没有认真做,所以对该知识点没有印象)。还跑去图书馆找资料,找到了相关内容,可是,答辩的时间也逼近了······第三天上午进实验室,问同学,发现已经有人将这个题目完整地做了出来,我不得不感叹人家的才思敏捷。也难怪哦,人家是脚踏实地,C语言的基础打得好,谁让我上学期玩去了呢?呵······

老师在实验室里鼓励大家积极答辩,我盯着自己的作品,这个连“半成品”都谈不上的程序,这能去答辩吗?老师也没要求必须答辩,要不,直接copy他们的程序写了实验报告交差完事了!但这不跟上学期一样了么?我这近三天的寝食难安不都白熬了么?去答辩吧,就算给自己的付出一个结果吧······老师很仁慈,我的那个程序对于题目要求根本没什么意义,也就是说我根本没完成任务。估计老师是看我熬了这三天太可怜了,勉强让我过了。

实验做完了,心情还是有点沉重,但没上次那样难过了。毕竟自己写的,通过思考,查资料,还是学到了不少东西的,对C语言也进行了巩固。我要尽快将所缺的知识填补上来,然后再下次的课程设计中打个漂亮的胜仗!

7附:源程序

#include

#include

#include

#include

#include

using namespace std;

class Course

{

private:

int courseNumber;

string courseName;

string courseKind;

int coursePeriod;

int schoolPeriod;

int experimentPeriod;

float credithour;

string courseterm;

public:

void CourseInfoInput(); //信息输入

void CourseInfoOutPut(); //信息输出

void Search(); //查找信息

void SearchByCredithour(float); //按照学分查找

void SearchByCourseKind(string); //按照课程;类型查找

};

const char* coursefile="C:\\course.txt"; //将课程信息定位到C盘下的course.txt中!!!!!!!!!

void Course::CourseInfoInput() //课程信息的录入

{

ofstream outcoursefile; //创建一个文件输出流对象

outcoursefile.open(coursefile); //打开文件

if(!outcoursefile) //判断文件是否存在

{

cout << "文件打开失败!"<< endl;

return ;

}

while(1) //无限循环,给出指定条件退出

{

cout << "***********************************课程信息***********************************\n";

cout << " 按任意键开始信息录入\n";

cout << " 输入q退出\n";

if(getch()=='q')

{

break;

}

cout<<"请输入课程编号: ";

cin>>courseNumber;

cout<<"请输入课程名称:";

cin>>courseName;

cout<<"请输入课程性质:";

cin>>courseKind;

cout<<"请输入总学时:";

cin>>coursePeriod;

cout<<"请输入授课学时:";

cin>>schoolPeriod;

cout<<"请输入实验&上机学时:";

cin>>experimentPeriod;

cout<<"请输入学分:";

cin>>credithour;

cout<<"请输入开课学期:";

cin>>courseterm;

outcoursefile<

<<" "<

}

outcoursefile.close(); //关闭输出流文件

}

void Course::CourseInfoOutPut() //课程信息的浏览

{

ifstream incoursefile; //创建输入流文件对象

incoursefile.open(coursefile); //打开

if(!incoursefile) //判断文件存在

{

cout << "文件读取失败";

return ;

}

cout << "课程编号 | 课程名称 | 课程性质 | 总学时 | 授课学时 | 实验上机学时 | 学分|开课学期\n";

string arrcourse[100][100]; //定义一个string类型的二维数组,用来保存从文本内读取的信息

int line=0;

memset(arrcourse,0,sizeof(arrcourse)); //将数组清空

while(!incoursefile.eof()) //文件不为空的条件设置

{

for(int j=0;j<7;j++)

{

incoursefile>>arrcourse[line][j];

}

line++;

}

for(int i=0;i

{

for(int j=0;j<7;j++)

{

cout << arrcourse[i][j] <<"\t";

}

cout << endl;

}

incoursefile.close();

}

void Course::SearchByCredithour(float tempch)

{

ifstream incoursefile; //创建输入流文件对象

incoursefile.open(coursefile); //打开

if(!incoursefile) //判断文件存在

{

cout << "文件读取失败";

return ;

}

string arrcourse[100][100]; //定义一个string类型的二维数组,用来保存从文本内读取的信息

int line=0;

memset(arrcourse,0,sizeof(arrcourse)); //将数组清空

while(!incoursefile.eof()) //文件不为空的条件设置

{

incoursefile>>arrcourse[line][0]>>arrcourse[line][1]>>arrcourse[line][2]>>a rrcourse[line][3]

>>arrcourse[line][4]>>arrcourse[line][5]>>arrcourse[line][6]; //文件流读取数据

line++;

}

cout << "课程编号 | 课程名称 | 课程性质 | 总学时 | 授课学时 | 实验上机学时 | 学分|开课学期\n";

for(int i=0;i

{

if(atof(arrcourse[i][6].c_str())==tempch) //比较

{

cout << arrcourse[i][0] <<" \t "<< arrcourse[i][1]<<" \t " << arrcourse[i][2]<<" \t "

<< arrcourse[i][3]<<" \t " << arrcourse[i][4]<<" \t "

<

}

}

cout << "\n\n";

incoursefile.close();

}

void Course::SearchByCourseKind(string strtemp)///课程类型查询

{

ifstream incoursefile; //创建输入流文件对象

incoursefile.open(coursefile); //打开

if(!incoursefile) //判断文件存在

{

cout << "文件读取失败";

return ;

}

string arrcourse[100][100];

int line=0;

memset(arrcourse,0,sizeof(arrcourse));

while(!incoursefile.eof())

{

incoursefile>>arrcourse[line][0]>>arrcourse[line][1]>>arrcourse[line][2]>>a rrcourse[line][3]

>>arrcourse[line][4]>>arrcourse[line][5]>>arrcourse[line][6];

line++;

}

cout << "课程编号 | 课程名称 | 课程性质 | 总学时 | 授课学时 | 实验上机学时 | 学分|开课学期\n";

for(int i=0;i

{

if(arrcourse[i][2]==strtemp)

{

cout << arrcourse[i][0] <<" \t "<< arrcourse[i][1]<<" \t " << arrcourse[i][2]<<"\t "

<< arrcourse[i][3]<<" \t " << arrcourse[i][4]<<" \t "

<

\t"<

}

}

cout << "\n\n";

}

void Course::Search()

{

while(1)

{

cout << "选择查询方式:" << endl;

cout << "(1).按课程类型查询" << endl;

cout << "(2).按学分查询" << endl;

cout << "(0).返回"<< endl;

int i;

cin>>i;

switch(i)

{

case 1:

cout << "请输入课程类型:\n";

char strtmp[100];

cin >> strtmp;

SearchByCourseKind(strtmp);

break;

case 2:

cout << "请输入学分:\n";

float ftemp;

cin >> ftemp;

SearchByCredithour(ftemp);

break;

}

if(i==0)

{

break;

}

}

}

int main()

{

Course Excourse;

while(1)

{

cout << "***************************************************************************\n" ;

cout << "* 学生选课系统 *\n";

cout << "* 请选择操作*\n";

cout << "* (1).录入课程信息*\n";

cout << "* (2).浏览课程信息*\n";

cout << "* (3).查询课程信息*\n";

cout << "* (0).退出系统*\n";

cout<<

"***************************************************************************";

cout << endl;

int i;

cin>>i;

switch(i)

{

case 1:

Excourse.CourseInfoInput();

break;

case 2:

Excourse.CourseInfoOutPut();

break;

case 3:

Excourse.Search();

break;

case 0:

exit(0);

}

}

return 1;

}

课程设计评分表

课题名称:

教师签名:

日期:

文件管理系统课程设计

课程名称:操作系统 实验题目:文件管理系统 1、课程设计选题 (3) 1.1主要设计内容 3 1.2主要设计思路 3 2、课程设计需求分析 3 3、概要设计 (4) 3.1整体设计框架 4 3.2各模块的基本功能 4 4、系统实现 5 4.1原理 6 4.2各模块算法思想 6 4.3流程图描述 9 4.4代码描述 10 5、系统测试 11

5.1系统主界面 11 5.2子系统功能测试 11 6、总结 19 7、参考文献样式 19 1、课程设计选题 1.1主要设计内容 本课程设计主要是用C语言编写,设计的是一个模拟的多用户多级目录的文 件管理系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文 件操作的实现,加深对文件系统内部功能和实现过程的理解。 1.2主要设计思路 首先系统要完成初始化的任务,建立起整个系统,等待用户注册,注册成功后,用户登录模块,对用户的用户名进行验证,如果用户登录成功,则系统进入 等待用户输入的状态,用户选择相应指令后,系统按照即定方式处理用户请求, 用户退出后,系统转入登录模块,等待下一位用户的登录。 2、课程设计需求分析 本系统为多用户多级目录的文件管理系统,用户可以根据所注册的用户名登 陆来对文件或是文件进行操作。多用户功能可以满足不同用户不同的需求,同时 也起到了很好的保密作用。 文件系统为用户提供了按名存取的功能,以使得用户能透明地存储访问文

件。为了实现按名存取,文件需要对文件存储设备进行合理的组织,分配;对存储在文件存储设备上的文件进行保护,保密和提供共享的手段。另外,文件系统还要提供检索文件或文件中记录的手段,文件系统就是完成上述功能的一组软件和数据结构的集合。 模拟一个文件管理系统,要完成对文件的基本操作,文件的基本操作有文件、文件夹的打开、新建、删除和读取写入文件,创建更改目录,列出目录内容等信息。系统建立了文件目录树,存储文件系统中的所有文件。对于用户名下的文件,用文件目录树的分枝来存贮。 采用命令行操作界面很直观,也方便用户进行操作,用户只要按照操作界面所显示的命令来操作就行了。 因为存在着同一个目录下不能有同名文件的问题。所以在进行文件的基本操作时要考虑到在已经有的文件中是否有同名文件,有的话则输出提示信息。 3、概要设计 3.1整体设计框架 系统初始化界面是由用户注册,用户登录,退出系统三个模块组成。用户登录模块再由创建用户,进入目录,删除用户,显示所有用户,显示位示图,修改用户资料几大模块组成。然后各个模块再由一些小模块组成。其中创建文件,打开关闭文件,读写文件等文件操作模块包括在进入目录模块里面。 3.2各模块的基本功能 3.21系统初始化 系统的初始化包括初始化了磁盘的空间即位示图、一个管理员用户 3.22用户注册模块 用户可以在这里注册,用户名和密码的最大长度都为10个字节,如果用户名不重复的话,则注册成功,用户的权限默认为一般用户。

实验报告 马踏棋盘

2.4题马踏棋盘 题目:设计一个国际象棋的马踏棋盘的演示程序 班级:姓名:学号:完成日期: 一.需求分析 (1)输入的形式和输入值的范围:输入马的初始行坐标X和列坐标Y, X和Y的范围都是[1,8]。 (2)输出形式: 以数组下表的形式输入,i为行标,j为列标,用空格符号隔开。以棋盘形式输出,每一格打印马走的步数,这种方式比较直观 (3)程序所能达到的功能:让马从任意起点出发都能够遍历整个8*8的 棋盘。 (4)测试数据,包括正确输入及输出结果和含有错误的输入及其输出结 果。数据可以任定,只要1<=x,y<=8就可以了。 正确的输出结果为一个二维数组,每个元素的值表示马行走的第几步,若输入有错,则程序会显示:“输入有误!请重新输入……”并且要求用户重新输入数据,直至输入正确为止。 二.概要设计 (1)、位置的存储表示方式 (2) typedef struct { int x; int y; int from; }Point; (2)、栈的存储方式 #define STACKSIZE 70 #define STACKINCREASE 10 typedef struct Stack { Point *top; Point *base; int stacksize; }; (1)、设定栈的抽象数据类型定义: ADT Stack { 数据对象:D={ai | ai∈ElemSet,i=1,2,…,n,n≥0} 数据关系:R1={|ai-1, ai∈D,i=2,…,n} 约定an端为栈顶,ai端为栈顶。 基本操作: InitStack(&s) 操作结果:构造一个空栈s, DestroyStack(&s) 初始条件:栈s已存在。 操作结果:栈s被销毁。 ClearStack(&s) 初始条件:栈s已存在。

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

学生选课管理系统软件课程设计报告(精)

山东交通学院 面向对象课程设计学生选课管理系统软件 院(系别信息工程系 班级计算091 学号xxxxxxxxxxxx 姓名 xxxxx 指导教师 xxxxx 时间2011-04-05—2011-04-17 课程设计任务书 题目学生选课管理系统 系 (部信息工程系 专业计算机 班级计算091 学生姓名 xxxxx 学号 xxxxx 0 4 月 05日至 04 月 17 日共 2 周 指导教师(签字 系主任(签字 年月日

成绩评定表

abstract In order to improve everyone's hands-on time ability and the content of the later work have certain knowledge, at the same time for everybody in a database of a learning inspection study; School for everybody arranged for a two-week course design, make everyone working environment to the database, and understand more about curriculum design is several classmates to do the same projects, the regulation of the people's operation, is later programming work strengthened the personal programming specifications. This document on the database and VC briefly simply introduces, in the form of using graphic combined with written by the students elective course system in detail. Students elective course system is a more perfect record course information, her students can add students' information, new information, show the modified students of information and inquires the student students of information, etc. For the record students' information provides convenient records. Key words: database, VC, source program, students' course selection 目录 1课程设计概述 (1 1.1学生选课管理系统软件功能概述 (1 1.2Visual C++6.0概述 (1 2学生选课管理系统软件总体设计 (1 2.1学生选课管理系统软件总体设计思想 (1 2.2总体设计流程图 (3

教务管理系统课程设计报告

教务管理系统课程 设计报告

教务综合管理系统设计报告 专业:软件工程 成员:车振军陆建伟 徐蕾杨思倩指导老师:徐明 日期: -6-15

一、引言 1.1 目的 为了保证项目小组能够按时完成小组任务及目标,便于项目小组成员更好地了解项目情况,使项目小组开展的各个过程合理有序,因此确定各个项目模块的开发情况和主要的负责人,供各项目模块的负责人阅读,做到及时协调,按步有序进行项目的开发,减少开发中的不必要损失。 预期的读者是设计人员、开发人员、项目管理人员、测试人员和用户。 1.2 背景 高校教务管理工作是高等教育中的一个极为重要的环节,是整个院校管理的核心和基础。面对种类繁多的数据和报表,手工处理方式已经很难跟上现代化管理的步伐,随着计算机及通讯技术的飞速发展,高等教育对教务管理工作提出了更高的要求。尽快改变传统的管理模式,运用现代化手段进行科学管理,已经成为整个教育系统亟待解决的课题之一。 教务管理系统是一个大型复杂的计算机网络信息系统,满足各类高校现在和将来对信息资源采集、存储、处理、组织、管理和利用的需求,实现信息资源的高度集成与共享,实现信息资源的集中管理和统一调度。为各级决策管理部门提出准确、及时的相关信息和快捷、方便、科学的决策分析处理系统;为信息交流、教务管理提供一个高效快捷的电子化手段;最终达到进一步

提高各级领导科学决策水平,提高各院系、各部门管理人员管理水平与办公效率,减轻工作负担的目的。 教务管理系统面向管理员、教师和全校学生,实现学生管理、教师管理、课程管理、成绩处理。 1.3 定义 1.3.1 MySQL MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,当前属于 Oracle 旗下公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 MySQL所使用的 SQL 语言是用于访问数据库的最常见标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,特别是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。1.3.2 MyEclipse MyEclipse,是在eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。MyEclipse的功能非常强大,支持也十分广泛,特别是对各种开源产品的支持相当不错。 二、需求分析 2.1 功能需求 2.1.1 系统目标

马踏棋盘实验报告

西安郵電學院 数据结构 课内实验报告书 院系名称:计算机学院 实验题目:马踏棋盘 学生姓名: 专业名称:计算机科学与技术班级: 学号: 时间: 2011年10月10日指导教师:曾艳

一、实验题目:马踏棋盘 二、实验目的: 通过本次实验,熟练掌握抽象数据类型栈和队列的实现,学会使用栈和队列解决具体应用问题,从而体会栈和队列的特点。 三、实验要求: 设计一个国际象棋的马踏遍棋盘的演示程序。 要求:将马随机放在国际象棋的8×8棋盘Board[8][8]的某个方格中,马按走棋规则进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入一个8×8的方阵,输出之 四、设计与实现过程 (1)栈或队列的定义及其主要操作的实现 struct Chess { int x; int y; int h;/*h记录下一次需要试探的马字格式的下标值*/ }Chess1[65]; (2)主要算法的描述 void Handlechess(int m,int n) { int flag=1,i; double j=0.0;/*增加了j用于统计while循环的执行次数,很好奇循环到底执行了多少次*/ int chessx[8]={-2,-2,-1,-1,1,1,2,2};/*马字的格式的8个位置,按下标序依次试探*/ int chessy[8]={-1,1,-2,2,-2,2,-1,1}; for(i=1;i<=64;i++) Chess1[i].h=0;/*赋初值*/ chess[m][n]=flag; Chess1[flag].x=m; Chess1[flag].y=n; while(flag<64) { j+=1.0; for(i=Chess1[flag].h;i<8;i++)/*i的初值由Chess1[flag].h确定*/ { m=Chess1[flag].x+chessx[i]; n=Chess1[flag].y+chessy[i]; if((m>=0&&m<=7&&n>=0&&n<=7)&&(chess[m][n]==0))/*去掉了函数,改为直接用关系表达式判断,提高运行速度*/ { Chess1[flag].h=i+1;/*h记录下一次需试探马字格式位置的下标*/ flag++;

C语言课程设计学生选修课程系统设计

学生选修课系统设计 一、设计目的 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。 数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。 基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 二、题目说明 假定有n门课程,每门课程都有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供一下功能: (1)系统以菜单方式工作; (2)课程信息和学生信息的录入功能(课程信息有文件保 存)----输入; (3)课程信息浏览功能----输出; (4)查询功能(至少一种查询方式)---算法; (5)按学分查询; (6)某门课程学生选修情况(可选项)。 [提示] 数据结构可用结构体,包括课程和选秀两个结构体,其中课程结构体包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况.。 三、数据结构设计 本系统的实现,全部采用链表这种数据结构,用链表实现课程的查找、添加、删除、课程的选修、追加选修的课程,课程信息采用结构体这种数据结构。 typedef struct subjects {

学生选课系统设计报告

大理学院数学与计算机学院《数据库系统设计》课程设计报告 班级:2012级计算机科学与技术1班 学号:201211514 姓名:刘秀珍 系统名称:学生选课系统 总分:

实验报告内容及撰写要求: 一、需求分析 程序的主要功能描述,可以用文字、框图、用例等方式。 参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。 主要应当包含分析的过程及分析后得到的数据流图和数据字典。 二、数据库设计 2.1 数据库概念设计 实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。 2.2数据库的逻辑设计 根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQL SERVER 2005)的表结构,并根据规范化理论对表结构进行优化调整。 同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。 三、系统实现 3.1 数据库访问 1)数据访问类及实现代码 2)SQL语句 3.2 业务逻辑层类及代码 描述业务流程、数据处理功能的模块代码 3.3表示层的实现 可以用界面截图及其实现类及核心代码描述

四、总结

一、需求分析 1.1背景 全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。 网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。 1.2系统设计要求: 设计出一个学生选课数据库系统的简要要求如下: 1)设计要求 ①建立相应的数据库及相关的表、属性、约束、规则、默认等; ②输入相应的记录(每个表不少于20条记录); ③编写进行数据管理的存储过程。 2)系统用户由系统管理员、学生用户和教师用户三类组成。 (1)系统管理员的主要功能: ①用户管理(对教师、学生信息的管理和维护); ②课程管理(对课程信息的管理和维护); ③选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)。

学生管理系统课程设计

《程序设计基础课程设计》 (j1620201) 课程设计报告 设计题目学生通讯录管理系统 学生姓名 学生班级 学生学号 指导教师 成绩评定 完成时间 参考目录:

目录 课程设计的目的---------------------1 设计内容---------------------------1 系统需求分析-----------------------1 系统设计---------------------------1 编码和测试-------------------------1 心得体会---------------------------1 附录--------------------------------1

课程设计的目的 为了进一步巩固程序设计基础课程所学到的知识,理解C++语言的重要概念及基本语法,锻炼学生熟练的运用C++语言设计程序解决实际问题的能力,开设了一周的课程设计。通过此次课程设计,巩固所学面向过程程序设计的知识,熟练掌握Visual Studio C++开发工具的运用,把所学课程相关知识加以融会贯通,全面掌握面向过程的编程思想,为后续课程的学习打下坚实的基础。 设计的内容 这是一个学生通讯录系统,内容主要是记录学生的基本信息。 系统需求分析 学生通讯录管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生通讯录管理系统应该能够为用户提供充足的信息和快捷的查询手段。学生通讯录管理系统能让老师、学校更好地记录学生的信息,例如学生的学号、性别、专业、手机号码,能让老师较方便的查询到学生的信息,给工作带来很多便利。 系统设计 本系统用menu函数显示主界面,用create函数创建通讯录信息子,用print 显示通讯录信息,用del函数删除通讯录,用insert函数添加通讯录信息,用modify函数修改通讯录信息 编码和测试 编码:附录1 测试:

马踏棋盘数据结构实践报告

马踏棋盘问题 摘要: 马踏棋盘就是在国际象棋8X8棋盘上面,按照国际象棋规则中马的行进规则,实现从任意初始位置,每个方格只进入一次,走遍棋盘上全部64个方格。理解栈的“后进先出”的特性以及学会使用回溯。 关键字:马踏棋盘、递归、栈、回溯 1.引言 马踏棋盘就是在国际象棋8X8棋盘上面,按照国际象棋规则中马的行进规则,实现从任意初始位置,每个方格只进入一次,走遍棋盘上全部64个方格。 编制程序,求出马的行走路线,并按求出的行走路线,将数字1,2….64依次填入一个8X8的方阵,并输出它的行走路线。输入:任意一个起始位置;输出:无重复踏遍棋盘的结果,以数字1-64表示行走路线。 2.需求分析 (1)需要输出一个8X8的棋盘,可以采用二维数组的方法实现。 (2)输入马的起始位置,必须保证输入的数字在规定范围内,即0<=X<=7,0<=Y<=7。 (3)保证马能走遍整个棋盘,并且不重复。

(4)在棋盘上输出马的行走路线,标记好数字1、2、3直到64。 3.数据结构设计 采用栈数组为存储结构。 #define maxsize 100 struct { int i; int j; int director; }stack[maxsize]; 4.算法设计 4.1 马的起始坐标 void location(int x,int y) //马的位置坐标的初始化 { top++; stack[top].i=x; //起始位置的横坐标进栈 stack[top].j=y; //起始位置的竖坐标进栈 stack[top].director=-1;

a[x][y]=top+1; //标记棋盘Try(x,y); //探寻的马的行走路线 } 4.2 路径探寻函数 void Try(int i,int j) { int count,find,min,director; int i1,j1,h,k,s; int b[8]={-2,-2,-1,1,2,2,1,-1},c[8]={1,-1,-2,-2,-1,1,2,2} ; //存储马各个出口相对当前位置行、列坐标的增量数组 int b2[8],b1[8]; for(h=0;h<=7;h++) //用数组b1[8]记录当前位置的下一个位置的可行路径的条数 { count=0; i=stack[top].i+c[h]; j=stack[top].j+b[h]; if(i>=0&&i<=7&&j>=0&&j<=7&&a[i][j]==0) //如果找到下一个位置 { for(k=0;k<=7;k++) { i1=i+c[k]; j1=j+b[k]; if(i1>=0&&i1<=7&&j1>=0&&j1<=7&&a[i1]

学生的的选课管理系统体系结构设计报告模板总结模板计划模板.doc

精品文档 目录 0. 文档介绍 (2) 0.1 文档目的 (2) 0.2 文档范围 (2) 0.3 读者对象 (2) 0.4 参考文献 (2) 0.5 术语与缩写解释 (2) 1. 系统概述 (3) 1.1 概述 (3) 1.2 功能描述 (3) 2. 设计约束 (5) 2.1 需求规定 (5) 2.2 运行环境 (5) 2.3 接口约束 (6) 2.4 质量约束 (7) 2.5 隐含约束 (7) 3. 设计策略 (8) 3.1 关键技术 (8) 3.2 扩展策略 (8) 3.3 复用策略 (8) 4. 系统总体结构 (10) 4.1 逻辑设计 (12) 4.2 用户接口逻辑设计 (12) 4.3 物理设计 (12) 5. 子系统的结构与功能 (13) 6. 开发环境的配置 (18) 7. 运行环境的配置 (19) 8. 测试环境的配置 (20) 9. 其他 (20)

0.文档介绍 0.1 文档目的 该文档描述了学生选课管理系统的主要功能,阐述了系统的总体构架,包括物理、逻辑结构,并说明了体系结构所采取的设计策略和所有技术。 0.2 文档范围 学生选课管理系统 0.3 读者对象 项目组长,项目负责小组,各功能模块负责人及程序员。 0.4 参考文献 资料名称资料来源 《学生选课管理系统项目计划书》学生选课管理系统《学生选课管理系统需求规格说明书》学生选课管理系统《计算机软件文档编写指南》图书馆 《 CMMI+3级软件过程改进方法与规范》图书馆 0.5 术语与缩写解释 缩写、术语解释 SPP简并行过程(Simplified Parallel Process) PM项目管理(project management) 实体实体是一个可持久化的域对象,比如电脑、书等。 数据字典对数据流程图中对象的详细描述

web管理系统课程设计

湖北第二师范学院 《Web程序设计》 课程设计报告书 班级:12级计算机应用技术(1)班学号: 姓名: 指导老师:王海军 成绩: 设计时间:2014 年 6 月12 日

简单的Web应用系统设计、开发一.登录页面: 登录页面的设计与代码: 主要以不同的角色进去就会跳进不同的页面就会有不同的权限 源代码: 后台代码: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class login1 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Label7.Text = "当前时间是:" + DateTime.Now.ToString() ;

} protected void Button1_Click(object sender, EventArgs e) { if (rbtstudent.Checked == false && rbtteacher.Checked == false) { Response.Write(""); } else { if ( rbtstudent.Checked == true) { SqlConnection con = new SqlConnection("server=.;database=school;integrated security=SSPI"); con.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; https://www.wendangku.net/doc/8516527005.html,mandText = "select * from student where stdid='" + username.Text + "'and stdmm='" + userpwd.Text + "'"; //https://www.wendangku.net/doc/8516527005.html,mandText = "select * from achievement where stdid='" + username.Text + "'"; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read()) { Session["stdid"] = dr[0]; Session["stdmm"] = dr["stdmm"]; Session["stdxb"]=dr["stdxb"]; Session["stdsfz"] = dr["stdsfz"]; Session["stdrxsj"] = dr["stdrxsj"]; Session["stdbj"] = dr["stdbj"]; Session["stddz"] = dr["stddz"]; Session["stddh"] = dr["stddh"]; Session["stdxm"] = dr["stdxm"]; username.Text= Session["stdid"].ToString(); userpwd.Text= Session["stdmm"].ToString(); Label4.Text = "登陆成功"; username.Text = "";//userID为textbox1 username.Enabled = false; userpwd.Text = "";//userPWD为textbox2

马踏棋盘分析文档

数据结构课程设计 题目:马踏棋盘 院系: 班级: 学号: 姓名: 2014-2015年度第1学期

马踏棋盘 一.题目:马踏棋盘 (3) 二. 设计目标 (3) 三. 问题描述 (3) 四. 需求分析 (4) 五. 概要设计 (4) 第一步:定义四个常量和一个数据类型 (4) 第二步:构造函数 (4) 六. 详细设计(给出算法的伪码描述和流程图) (5) 流程图设计 (5) 代码分析 (9) 第一步:定义常量与变量 (9) 第二步:构造函数 (9) ●定义一个结构体类型 (9) ●创建一个初始化函数 (10) ●创建提示输入函数 (10) ●创建产生新节点函数 (11) ●创建计算路径函数 (12) ●创建入栈函数 (13) ●创建出栈函数 (13) ●创建输出函数 (13)

第三步:在主函数中调用其它函数 (15) 七. 测试分析 (16) 八. 使用说明 (16) 九. 测试数据 (16) 十.课程设计总结 (17) 一.题目:马踏棋盘 二. 设计目标 帮助学生熟练掌握顺序栈的基本操作,让学生深入了解栈的使 用,使得更深层次的灵活运用栈。 三. 问题描述 ○所谓的马踏棋盘是:将马随机放在国际象棋的8×8棋盘的某个方格中,马按走棋规则(马走日字)进行移动。要求每个方格只进入一次,走遍棋盘上全部64个方格。由用户自行指定一个马的初始位置,求出马的行走路线,并按照求出的行走路线的顺序,将数字1、2、…、64依次填入一个8X8的方阵并输出。 从用户给出的初始位置开始判断,按照顺时针顺序,每次产生一个新的路点,并验证此路点的可用性,需要考虑的是当前路点是否超出棋盘范围和此路点是否已经走过。如果新路点可用,则入栈,并执行下一步,重复进行如上步骤,每次按照已走路点的位置生成新路点。如果一个路点的可扩展路数为0,进行回溯,直到找到一个马能踏遍棋盘的行走路线并输出。

C语言课程设计学生考勤系统

附件:《学生考勤系统》主要源程序代码 #include #include /*头文件。*/ int SIZE; /*宏定义。*/ int CLASS;

struct student /*定义一个结构体数组,包含学生信息。*/ { char name[9]; char sex[4]; int number; int count; int score; }stu[300]; void main() /*主函数,选择界面。*/ { void start(); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("# 学生考勤系统 #\n"); printf("# 欢迎您 #\n"); printf("######################################\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("\t请输入班级人数:\n"); printf("######################################\n"); scanf("%d",&SIZE); printf("\n"); printf("######################################\n"); printf("\t请输入课程节数:\n"); printf("######################################\n"); scanf("%d",&CLASS); printf("\n"); printf("\n"); printf("\n"); printf("\n"); start(); } void start() /*主函数的辅助函数——start函数。*/ { char x; void found(); void search();

学生选课系统课程设计报告

学生选课系统课程设计报告

《数据库原理》课程设计报告 题目:实验2学生选课系统 姓名:李子甘 班级:计科0601 学号:200640274 08年1月

一.需求分析 传统的选课方式都是手写的,教务处通知各 个班级选课,各个班长再通知同学,经过统 计在上交,这样繁琐的过程比较浪费时间。 再者选课时不知道所选课人数已满,要等到 教务处统计后才知道,然后再重新选择。网 上选课为同学节省时间的同时,也减少了不 必要的步骤,也更加方便管理员的管理。 网上选课系统为同学们提供了一个自由的 平台,学生们可以选择规定范围内的课程,查看已修课程总数,还可以修改个人信息。 同时也给老师提供了很大的方便,教师可以 根据统计的人数挑选一定数量的学生,也可 以方便的在网上公布成绩,让学生可以在网 上直接查寻成绩。 我国不少高校都实行学分制,它的核心是允 许学生自由选课,即把学生的自主权交给学 生。在这里,学生的选课制约因素比较复杂,工作量也很大,而且往往需要在较短的时间 内完成。运用计算机辅助选课,即能实时地 对大量选课数据进行检验和统计,十分方便 的输出选课结果,同时也避免了人工选课时

容易产生错误。 二.概念机构设计 根据系统功能设计的要求以及功能模块 的划分,各个系统的逻辑实现如下: 1.对于学生选课系统数据库,可以列出以下数 据项和数据结构: 学生信息:学号、学生姓名、学生的系名、学生性别、学生年龄、学生密码。2.对于教师信息维护数据库,可以列出以下数 据项和数据结构: 教师个人信息:教师编号、教师名称、教师密码。 3.对于后台管理数据库,可以列出以下数据项 和数据结构: 管理员信息:管理员名称、管理员密码。 课程信息:课程号、课程名称、课程类别、开课系。 选课信息:课程号、学生学号、成 绩。 4.数据流:学生管理员和教师分别有自己的权 限,学生可以查看全部选修必修课程,查看

管理信息系统课程设计范例

管理信息系统课程学习报告 专业:计算机信息管理 班级:信息1101 :刚 学号:1125486514 成绩:优 评语:该课程设计详述了“酒店管理信息系统”开发过程,结构清楚,格式能够按照要求完成;重点容叙述较好,容较全面;整体设计能够理论联系实际运用所学知识分析问题,但解决问题能力有待提高。 年月日

一、课程学习目的 管理信息系统(MIS)是管理科学、系统科学、计算机科学和通讯技术等多学科综合发展起来的边缘性、综合性、系统性的学科,它运用经济管理理论、信息理论、系统理论、计算机科学等学科的概念和方法,融合提炼组成一套新的体系,它既具有较深和较宽的理论基础,又是一门实践性很强的学科。 作为一门课程,管理信息系统是经济管理类专业的必修课。本课程的任务和学习目的是使学生掌握管理信息系统的概念、结构和建立管理信息系统的基础、管理信息系统开发方法、管理信息系统开发过程各阶段的任务与技术、管理信息系统的开发环境与工具以及其它类型的信息系统等;使学生通过本课的学习,了解管理信息系统在企业管理中的作用。并通过实践培养学生综合运用知识和分析开发应用系统的初步能力。 二、课程学习容 管理信息系统的学习和设计主要是掌握“管理信息系统开发的五个阶段”: 第一阶段:系统规划 第二阶段:系统分析 第三阶段:系统设计 第四阶段:系统实施 第五阶段:系统运行与维护 1、系统规划阶段 该阶段是将组织目标、支持组织目标所必需的信息、提供这些必须信息的信息系统,以及这些信息系统的实施等诸要素集成的信息系统方案,是面向组织息系统发展远景的系统开发计划。鉴于在实践中选题“酒店管理信息系统”,其系统规划阶段是针对酒店所提供的信息资源,为提高酒店信息管理水平,制定一个较为科学的信息系统开发规划。 其主要任务是在开发环境的调研基础之上,确定酒店管理信息管理系统的开发方向、系统需要达到的目的,制定酒店管理信息系统的总体政策和策略,做出人力、财力和物资的总体安排,制定来发活动的进度安排,制定MIS系统的总体结构,以确保酒店管理信息系统开发的下调行,避免开发的孤立性和重复性,同时预测酒店管理信息系统未来的发展,明确系统今后的发展、研究方向和准则。从战略角度为系统开发

数据结构 马踏棋盘 设计报告

《数据结构》 课程设计报告 课程名称:《数据结构》课程设计课程设计题目: 姓名: 院系: 专业: 年级: 学号: 指导教师: 2011年月日

目录 1、程序设计的目的 2、设计题目 3、分析 4、设计思想 5、算法 6、测试结果 7、调试分析 8、小结 1、课程设计的目的 1、熟练使用C++语言编写程序,解决实际问题; 2、了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力; 3、初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 4、提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 5、学习并熟悉栈的有关操作; 6、利用栈实现实际问题; 2、设计题目 【马踏棋盘】 *问题描述:将马随机放在国际象棋的8X8棋盘Bo阿rd[0..7,0..7]的某个方格中,马按走棋规则进行移动。要求每个方格上只进入一次,走遍棋盘上全部64个方格。编制非递归程序,求出马的行走路线,并按求出的行走路线,将数字1,2,…,64依次填入8X8的方阵输出之。 *测试数据:由读者指定,可自行指定一个马的初始位置。 *实现提示:每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。并探讨每次选择位置的“最佳

策略”,以减少回溯的次数。 3、分析 确定输入值的范围,输入马的初始行坐标X和Y,X和Y的范围都是1到8之间。程序的功能是输出马走的步骤,要使马从任一起点出发,通过程序能找到下一个地点,然后遍历整个棋盘。每次在多个可走位置中选择一个进行试探,其余未曾试探过的可走位置必须用适当结构妥善管理,以备试探失败时的“回溯”(悔棋)使用。并探讨每次选择位置的“最佳策略”,以减少回溯的次数。输出时可以用二维数组。 4、设计思想 输入马初始位置的坐标。将初始位置进栈,经过一个while循环,取出符合条件的栈顶元素。利用函数,找出栈顶元素周围未被占用的新位置,如果有,新位置入栈;否则弹出栈顶元素。再进行判断,最后输出。 位置的存储方式,栈的存储方式和一些操作函数为: #include #ifndef STACK_H #define STACK_H struct Point { int x; int y; int from; }; #define STACKSIZE 70 #define STACKINCREASE 10 struct Stack { Point *top; Point *base; int length;

学生选课系统设计报告

学生选课系统设计 报告

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 春季学期 C程序设计课程设计 题目:学生选课系统 专业班级:应用物理 姓名:杨维峰 学号: 指导教师:李聪 成绩:

学生选课系统 摘要 学生选课系统是教育单位不可缺少的重要系统组成部分,她对于学校的决策者、管理者管理、查看课程来说都有至关重要,因此学生选课系统应该能够为广大学、师生提供充分的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统选课方便、快捷,用简单的界面来展示学生的选课信息,能够提高对学生信息管理的效率。 关键词:方便,快捷,选课信息,选择,管理

目录 1题目要求 (4) 2需求分析 (4) 2.1功能简介 (4) 3总体设计 (4) 4详细设计 (5) 4.1 系统主要函数说明 (5) 4.1.1 主函数 (6) 4.1.2 input函数 (7) 4.1.3del函数 (8) 4.1.4find函数 (9) 4.1.5display函数 (9) 5 系统测试 (10) 6总结 (13) 参考文献 (14) 致谢 (15) 附录: (16) 源程序 (16)

文档仅供参考,不当之处,请联系改正。 1题目要求 设计一个关于学生选课方便简捷的程序,从而达到学生能够快速的选到课程。 2需求分析 数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。 2.1功能简介 此系统是一个学生选课管理系统。它包含功能有:学生选课信息的录入,学生选课信息的删除,学生选课信息的查找,学生选课信息的显示等功能。 菜单模式:此模块主要实现对本系统所有功能的显示。 录入模块:此模块主要实现对学生选课信息的录入,主要包括学生学号、学生姓名、所选课程、课程学分、授课老师。 删除模式:此模块主要实现对学生选课信息的删除。显示模块:此模块主要实现对学生选课信息的显示。 查找模块:此模块主要是经过学生学号查找该学生的选课信息。清屏模块:此模块主要是对主界面输入的信息进行清屏。退出程序:此模块主要用于退出系统。

相关文档
相关文档 最新文档