第一篇:选课管理信息系统设计
学生选课管理信息系统规划
(1) 系统的意义与目标
随着学校的办学规模不断扩大,生源的急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,学校如何做管理才能够降低成本又能够提高管理质量;老师如何工作才能达到既能减轻工作量又能提高工作水平成为一直探讨和研究的一门学科。伴随着计算机的盛行,信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟,学校需要与时俱进的发展,达到科学化和高效化的管理,就需要建立一套与自身特点相适应的管理信息系统来满足学校学分制改革的要求,便于操作使用。
通过正确的口令进入系统,进行数据库的维护操作和运用,对数据安全性有一定的保障,保密性好;进入系统后可对学籍信息、班级信息进行添加、修改、删除、查询操作;用来实现学生信息管理工作流程的系统化、规范化和自动化。
(2) 系统的用户需求
通过调查,要求系统需要有以下功能:
⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;
⑵ 由于该系统的使用对象多,要求有较好的权限管理;
⑶ 原始数据修改简单方便,支持多条件修改;
⑷ 方便的数据查询,支持多条件查询;
⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;
⑹ 数据计算自动完成,尽量减少人工干预;
学生选课管理系统的性能要求;
⑴软件的可行
以Windows XP为操作系统,运用SQL的数据库技术,根据科学的管理方法与编程技术设计、开发学生信息管理系统,能符合各种技术要求,拥有较高的存储能力和处理速度。该系统的运行硬件环境PC机,当用户使用系统时,通过正确的口令进入系统,进行数据库的维护操作和运用,对数据安全性有一定的保障,用户放心使用
(2)系统科学的分析
待开发模块的一般描述
本设计主要为学校学生信息管理提供一个使用方便、经济实用的系统模块,以替代传统的手工操作方式。对学生的基本信息模块进行了设计,包括添加、删除、查询学生信息等操作。
(3)模块设计
3.1 登录界面
登录界面的设计,主要是本着实用简便的原则设计制作。
3.2 主界面
当操作员的名称和密码均正确的时候,系统便会进入信息管理(主界面)。信息管理包括系统的所有主功能模块:学籍管理、班级管理、查询管理、退出系统。它可以实现录入学籍信息、录入班级信息、查询学籍信息(按学号、按姓名、按班级查询)、退出系统等功能。
3.3 信息管理
3.3.1添加学籍信息
当操作员点击学籍管理图片按钮进入子目录,继续点击添加学籍信息图片按钮,便可进入添加学籍信息界面,对学籍信息进行录入,添加学籍信息界面的结构(如图4):
3.3.2 修改学籍信息
当操作员点击学籍管理图片按钮进入子目录,继续点击修改学籍信息图片按钮,便可进入修改学籍信息界面,对学籍信息进行更改、删除,修改学籍信息界面的结构
3.3.3修改班级信息
当操作员点击班级管理图片按钮进入子目录,继续点击修改班级信息图片按钮,便可进入修改班级信息界面,对班级信息进行录入,修改班级信息界面的结构
3.3.5 数据库表
记录表信息,添加、修改后的信息保存于学籍信息表或班级信息表中。表中包含学号、姓名等字段,使用户直观、便捷的了解学生的基本情况3.3.4查询学籍信息
学籍信息的查询基于表,其中提供了按学号,按姓名,按班级三种查询,在选择按学号、按姓名或按班级后,可在文本框中输入要查询的姓名、学号或班级,然后点击“查询”可得到满足条件的查询结果。功能是便于操作人员对学籍信息的检索查询。如按班级查询,输入要查询的班级
4.系统调试
完成对流程的编码后,最重要的是对系统的测试工作。测试在系统设计阶段有两个时期,一个时期是在编码写完每个模块后做单元测试,另一个是对系统做综合测试。
第一、模块测试:在模块测试的时候,设计者从下面几个方面考虑:模块的结构;局部数据结构;重要执行通道;出错的处理通道;影响上述方面的边界条件。
第二、整体测试:总体测试是组装软件的系统技术,本系统采用渐增集成测试,即测试单一模块,再将测试完的模块加入到系统中,进行一次系统测试,以此类推将所以模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所以模块结合。
第三、评估运行可靠性的问题:结果正确;运行速度;空间利用率;
算法的可靠性
(3)系统经费概算
初步估算约需要20万,包括硬件资源,技术资源,开发费用。培训费用等。其中,开发期间约需8万。调试与运行约需6万元。
(4) 系统开发计划
本系统计划由开发小组(开发人员4人)用12个月完成,具体时间安排计划如下:
系统调研,系统分析:3个月
系统设计:2个月
系统程序设计:3个月
系统调试:2个月
系统试运行:2个月
第二篇:C语言课程设计学生选课系统
题目
一、学生选课管理系统
第一部分:课程设计名称、目的、要求
第二部分:程序总体设计思路
第三部分:程序功能划分、图示及流程图
第四部分:程序设计数据、运行结果
第五部分:程序的优缺点
第六部分:心得体会
第七部分:附录(源程序)
第八部分:附录(参考文献)
目录
... ........... . ..... ............... ................... ............. ...........
第一部分:课程设计名称、目的、要求
名称:学生选修课程系统设计
目的:运用C语言提高解决实际问题的能力 实验环境:Microsoft Visual C++ 6.0 内容:
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。 【功能】
系统以菜单方式工作
课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出
查询功能:(至少一种查询方式)--算法 按学分查询 按课程性质查询 学生选修课程(可选项)
第二部分:程序总体设计思路
由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
具体的设计思路如下:
程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。
整个程序的设计思路到此结束。
第三部分:程序功能划分、图示及流程图
【功能模块划分及其流程图】
本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这9个部分来完成。这9个部分依次是:
1. 登录界面函数;void login() 2. 学生登录界面据函数:void stu_login() 3. 管理员登录界面函数:void man_login() 4. 退出界面函数:void bye_sys()
5. 课程选择函数:void c_select() 6. 课程浏览函数:void c_view() 7. 课程查询函数:void c_search() 8. 课程增加函数:void c_add() 9. 课程删除函数:void c_delete() 10. 菜单函数:void index() 11. 主函数部分; main()
总体设计:
学生选课系统管理员登录学生登录新增课程删除课程课程浏览查询课程学生选课课程浏览课程查询c_add函数c_delete函数c_view函数c_search函数c_select函数c_view函数c_search函数
系统功能模块图
部分函数流程图:
1、 课程选择函数:
开始输入要选择的课程的编号j=0;j
2、 课程查询函数
开始输入要查询的课程的编号j=0;j
3、 课程增加函数
开始输入要增加的课程的编号j=0;j
4、课程删除函数
开始输入要删除的课程的编号nj=0;j
本程序是一款应用软件,故数据设计、程序运行结果应在程序的
运用中得以体现,现在通过一个程序的运用事例来对程序运行结果进行演示与实现。 【软件运用举例】
1、程序开始界面如下:
选择某个选项,如进行管理员登录,进行课程的增加 进入管理员界面:
2、再选择所要进行的操作,如进行课程增加,结果如下:
下面可以进行继续增加课程或者退出:
3、选择课程浏览,可以分页查看相应的课程信息: 第一页:
第二页:
4、课程查询
查找结果:
4、 管理员课程删除操作:
删除后可以进行浏览,观察删除后的结果:
可见删除后只有一条记录。删除操作完成正确。 下面进行学生操作的使用方法:
1、学生登陆界面:
2、选择学生选课选项:
3、学生登陆也可进行课程浏览和查询函数,其结果与管理员登陆相同,不再演示。
第五部分:程序的优缺点
【程序的优点】
算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。
[算法上的优点]主要体现在以下三点:
1. 程序采用main主函数方式设计,程序的主体的功能大都由该功能
完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。
2. 程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。
3. 插入操作在本程序中将课程信息直接插入数组最后一个节点,从而减少了数据的相互移动,节省了时间。
[功能上的优点] 主要体现在以下两点:
1. 简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。 2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进行操作。
【程序的缺点】 主要表现在以下两点:
1、 本程序没有进行相应的密码操作,所以对于使用者来说可能存在比较大的不保密性。需要改善。
2、 本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件都是二进制形式。
第六部分:心得体会
选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。
本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。
通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。
程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。
对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。
总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。
第七部分:附录
一、参考文献:
1、李丽娟主编 ,C语言程序设计教程(第二版),人民邮电出版社
2、严蔚敏主编,数据结构(C语言),清华大学出版社
3、崔单主编,C语言程序设计案例精粹,电子工业出版社
4、谭浩强主编,程序设计(第三版),清华大学出版社
二、源程序
#include"stdio.h" #include"stdlib.h" #include"windows.h" #include"string.h"
void index();//首页 void login(); void bye_sys();//退出界面
void stu_login();//学生登录菜单
void c_select(); void c_view();//课程浏览
void c_add();//增加课程 void c_delete(); void c_searchs();//学生查询函数 void c_searchm();//管理员查询函数 void c_viewm();//管理员浏览函数 void c_views();//学生浏览函数
struct course//定义课程结构体
{
int c_num;
char c_name[20];
int c_score;
int c_nelepeo;//课程已选人数
int c_melepeo;//课程人数上限 }; struct student { char s_number[10];
char s_password[10]; }; struct manager { char m_name[10]; char m_password[10]; };
void index()//首页 {
char input;
printf(" ***************************** ");
printf("
湖南大学学生选课系统 ");
printf(" ***************************** ");
printf(" ***************************** ");
printf(" ***************************** ");
printf(" ***************************** ");
printf(" **********设计者:刘晓斌****** ");
input=getchar();
system("cls"); } void login()//登陆界面
{
void stu_login();
void man_login();
void bye_sys();
int input;
do
{
system("cls");
printf(" 1.学生登录 ");
printf(" 2.管理员登陆 ");
printf(" 3.退出本系统 ");
printf(" 请选择服务类别:");
scanf("%d",&input);
if (input!=1&&input!=2&&input!=3) //输入数不等于选项的时候打印画面
{
printf(" 输入出错!请重新选择~ ");
printf(" 按任意键返回选择页面~ ");
getchar();getchar();
system("cls");
}
if(input==3)//如果输入3退出系统
{
bye_sys();
}
}while(input!=1&&input!=2&&input!=3);
switch(input)
{
case 1:stu_login();break;
case 2:man_login();break;
} }
void bye_sys()//退出界面 { exit(0); }
void man_login() {
void c_add();
void c_delete();
void c_view();
void c_searchm();
int in;
do
{
system("cls");
printf(" 1.新增课程 ");
printf(" 2.删除课程 ");
printf(" 3.课程浏览 ");
printf(" 4.课程查询 ");
printf(" 5.退出 ");
printf(" 请选择服务种类:");
scanf("%d",&in);
if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)
{
printf(" 没有这项服务 按任意重新选择");
getchar();getchar();
}
}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);
switch(in)
{
case 1:c_add();break;
case 2:c_delete();break;
case 3:c_viewm();break;
case 4:c_searchm();break;
case 5:login();break;
} }
void stu_login()//学生登录菜单
{
void c_select();
void c_view();
void c_searchs();
void login();
int input;
do
{
system("cls");
printf(" --学生登陆--");
printf(" 1.学生选课 ");
printf(" 2.课程浏览 ");
printf(" 3.课程查询 ");
printf(" 4.退出 ");
scanf("%d",&input);
if(input!=1&&input!=2&&input!=3&&input!=4)
{
printf(" 没有这项服务~ ");
printf(" 按任意键重新选择");
getchar();
getchar();
}
}while(input!=1&&input!=2&&input!=3&&input!=4);
switch(input)
{
case 1:c_select();break;
case 2:c_views();break;
case 3:c_searchs();break;
case 4:login();break;
} }
void c_select() {
int n,in,i=0,j;int flag=0;
FILE *fp;
FILE *fp1;
char input;
struct course courses[10];
if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程
{
printf(" 课程不存在 ");
printf(" <按任意键返回管理菜单> ");
input=getchar();
input=getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
}
printf(" 请输入你要选课程的编号:");
scanf("%d",&n);
if((fp1=fopen("courseselect.dat","rb"))==NULL)
{
fp1=fopen("courseselect.dat","wb");
}
else
{
fclose(fp1);
fp1=fopen("courseselect.dat","ab");
}
for(j=0;j
if(courses[j].c_num==n)
flag++;
if(flag==0)
{
printf(" 不存在对应课程 ");
printf(" 继续选课请按1,退出请按2: ");
scanf("%d",&in);
switch(in)
{
case 1:c_select();break;
case 2:stu_login();break;
default:
printf("输入错误,将返回登录界面! ");
login();break;
}
}
else
{
fwrite(&courses[j],sizeof(struct course),1,fp1);
fclose(fp1);
printf(" 选课成功 请选择:");
printf(" 1.继续选课");
printf(" 2.退出,返回登录界面!");
scanf("%d",&in);
switch(in)
{
case 1:c_select();break;
case 2:stu_login();break;
default:break;
}
} }
void c_viewm()//课程浏览
{
void stu_login();
void c_view() ;
int
inp,i=0,n=0;
FILE *fp;
char input;
struct course courseview[10];
if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程
{
system("cls");
printf(" 课程不存在 ");
printf(" <按任意键返回管理菜单> ");
getchar();getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
do
{
system("cls");
if(i==1)
{
printf(" 没有记录! ");
getchar();getchar();
man_login();
}
else
{
printf(" ------共有%d条记录-------",i-1);
printf(" 课程编号: %d ",courseview[n].c_num);
printf(" 课程名字: %s ",courseview[n].c_name);
printf(" 课程学分: %d ",courseview[n].c_score);
printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);
printf(" 课程人数上限: %d ",courseview[n].c_melepeo);
printf(" 1.上一页 2.下一页 3.回目录");
printf(" 请选择:");
scanf ("%d",&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf(" 已到达首页 按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf(" 已到达尾页 按人意见返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{man_login();break;}
default:
{
printf(" 操作错误 按任意键返回");
getchar();getchar();
break;
}
}
}
}while(inp!=3);
} }
void c_views()//课程浏览
{
void stu_login();
void c_view() ;
int
inp,i=0,n=0;
FILE *fp;
char input;
struct course courseview[10];
if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程
{
system("cls");
printf(" 课程不存在 ");
printf(" <按任意键返回管理菜单> ");
getchar();getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
do
{
system("cls");
if(i==1)
{
printf(" 没有记录! ");
getchar();getchar();
stu_login();
}
else
{
printf(" ------共有%d条记录-------",i-1);
printf(" 课程编号: %d ",courseview[n].c_num);
printf(" 课程名字: %s ",courseview[n].c_name);
printf(" 课程学分: %d ",courseview[n].c_score);
printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);
printf(" 课程人数上限: %d ",courseview[n].c_melepeo);
printf(" 1.上一页 2.下一页 3.回目录");
printf(" 请选择:");
scanf ("%d",&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf(" 已到达首页 按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf(" 已到达尾页 按人意见返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{stu_login();break;}
default:
{
printf(" 操作错误 按任意键返回");
getchar();getchar();
break;
}
}
}
}while(inp!=3);
} }
void c_searchs() {
void stu_login();
void c_searchs();
int id,i=0,j,inp,k;
int flag=0;
FILE *fp;
struct course coursesear[10];
if ((fp=fopen("course.dat","rb"))==NULL)
//判断课程信息是否存在
{
system("cls");
printf(" 课程不存在 按任意键返回");
getchar();getchar();
stu_login();
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&coursesear[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
system("cls");
printf(" 请输入你要查询的课程编号:");
scanf("%d",&id);
do//检查输入是否符合要求
{
for(j=0;j
{
if(id==coursesear[j].c_num)
{
flag++;
k=j;
}
}
if(flag==1)
{
system("cls");
printf(" 课程编号:%d ",coursesear[k].c_num);
printf(" 课程名字:%s ",coursesear[k].c_name);
printf(" 课程学分:%d ",coursesear[k].c_score);
printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);
printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);
getchar();getchar();
printf(" 1.回目录继续查询 2.退出查询系统 ");
printf("请选择:");
scanf("%d",&inp);
switch(inp)
{
case 1:c_searchs();
case 2:stu_login();
default:
{
printf(" 没有这项服务 请按任意键重新输入");
getchar();getchar();
}
}
}
else
{
system("cls");
printf(" 不存在对应记录 ");
printf(" 1.回目录继续查询 2.退出查询系统 ");
printf("请选择:");
scanf("%d",&inp);
switch(inp)
{
case 1:c_searchs();
case 2:stu_login();
default:
{
printf(" 没有这项服务 请按任意键重新输入");
getchar();getchar();
}
}
}
}while(inp!=1);
}
void c_searchm() {
void stu_login();
void c_searchm();
int id,i=0,j,inp,k;
int flag=0;
FILE *fp;
struct course coursesear[10];
if ((fp=fopen("course.dat","rb"))==NULL)
//判断课程信息是否存在
{
system("cls");
printf(" 课程不存在 按任意键返回");
getchar();getchar();
stu_login();
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&coursesear[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
system("cls");
printf(" 请输入你要查询的课程编号:");
scanf("%d",&id);
do//检查输入是否符合要求
{
for(j=0;j
{
if(id==coursesear[j].c_num)
{
flag++;
k=j;
}
}
if(flag==1)
{
system("cls");
printf(" 课程编号:%d ",coursesear[k].c_num);
printf(" 课程名字:%s ",coursesear[k].c_name);
printf(" 课程学分:%d ",coursesear[k].c_score);
printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);
printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);
getchar();getchar();
printf(" 1.回目录继续查询 2.退出查询系统 ");
printf("请选择:");
scanf("%d",&inp);
switch(inp)
{
case 1:c_searchm();
case 2:man_login();
default:
{
printf(" 没有这项服务 请按任意键重新输入");
getchar();getchar();
}
}
}
else
{
system("cls");
printf(" 不存在对应记录 ");
printf(" 1.回目录继续查询 2.退出查询系统 ");
printf("请选择:");
scanf("%d",&inp);
switch(inp)
{
case 1:c_searchm();
case 2:man_login();
default:
{
printf(" 没有这项服务 请按任意键重新输入");
getchar();getchar();
}
}
}
}while(inp!=1); }
void c_add()//增加课程 {
void c_add();
void man_login();
int i=0,j,inp;
FILE *fp;
struct course course_new;
struct course courses[10];
system("cls");
printf(" 请输入课程信息");
printf(" 1.课程编号:");
scanf("%d",&course_new.c_num);
printf(" 2.课程名字:");
scanf("%s",course_new.c_name);
printf(" 3.课程学分:");
scanf("%d",&course_new.c_score);
printf(" 4.课程已选人数:");
scanf("%d",&course_new.c_nelepeo);
printf(" 5.课程人数上限:");
scanf("%d",&course_new.c_melepeo);
if((fp=fopen("course.dat","rb"))!=NULL)
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
for(j=0;j<=i-1;j++)
if(course_new.c_num==courses[j].c_num)
{
system("cls");
printf(" 对不起,这个编号已经使用过 按任意键返回管理菜单");
getchar();getchar();
man_login();
break;
}
}
if((fp=fopen("course.dat","rb"))==NULL)
{
fp=fopen("course.dat","wb");
}
else
{
fclose(fp);
fp=fopen("course.dat","ab");
}
fwrite(&course_new,sizeof(struct course),1,fp);
fclose(fp);
printf(" 信息输入完毕 按任意键继续");
getchar();getchar();
do
{
system("cls");
printf(" 1.继续输入");
printf(" 2.返回管理菜单");
printf(" 请选择");
scanf("%d",&inp);
if(inp!=1&&inp!=2)
{
printf("输入不符合要求 按任意键重新选择");
getchar();getchar();
}
}while(inp!=1&&inp!=2);
switch(inp)
{
case 1:c_add();break;
case 2:man_login();break;
} }
void c_delete()//查询后删除 {
FILE *fp;
int i=0,j,n,k,flag=0;
struct course courses[10];
void c_delete();
void man_login();
printf(" 请输入你要删除的课程编号:");
scanf("%d",&n);
if((fp=fopen("course.dat","rb"))!=NULL)
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
else
{
printf(" 不存在任何课程 按任意键返回");
getchar();getchar();
man_login();
}
for(j=0;j
{
if(courses[j].c_num==n)
{
flag=1;
fp=fopen("course.dat","wb");
for(k=0;k
fwrite(&courses[k],sizeof(struct course),1,fp);
fclose(fp);
fp=fopen("course.dat","ab");
for(k=j+1;k
{
fwrite(&courses[k],sizeof(struct course),1,fp);
}
printf(" 记录已删除! 按任意键返回 ");
getchar();getchar();
man_login();
fclose(fp);
}
}
if(flag==0)
{
printf(" 不存在对应的课程 按任意键返回");
getchar();getchar();
man_login();
} // printf(" 记录已删除! 按任意键返回 ");
}
int main() {
index(); login(); return 0; }
第三篇:《管理信息系统》课程设计
一、目的
通过课程设计使学生更进一步掌握课程的有关知识,提高实施管理信息系统的综合能力,并将所学的内容在实践中加以提高。通过查阅资料,了解所学知识的应用情况。同时也使学生通过动手进行设计,从而提高解决实际问题的能力。
二、选题
学生根据前期课内实验时自己所确定的相关行业的管理信息系统自行选择题目或自己独立开发软件。
三、任务
本课程设计分为需求分析、系统设计和应用程序运行调试维护三个阶段进行。基本要求为:
1、认真查阅资料
2、遵守课程设计时间安排
3、按时上机,认真运行或调试程序
4、认真书写报告
报告书写格式(见附录):
1、课程设计封皮
2、课程设计说明
3、课程设计成绩
4、正文
5、参考文献
四、进程
1)选定设计课题,下达设计任务(课外时间)
由学生自己选题,但学生选题需通过指导教师批准。课题应在设计周之前提前公布,并尽量早些,以便学生有充分的设计准备时间。
指导教师在公布课程设计课题时一般应包括以下内容:课题名称、设计任务、技术指标和要求、主要参考文献等内容。
2)教师讲解
a.介绍课程设计的内容、要求、安排、考核方法、注意事项
b.讲授必要的课题背景和相关知识、原理。着重帮助学生明确任务,理解管理信息系统的一般设计方法。
3)学生查询资料,进行分析、设计并完成设计报告
设计报告应包括的内容:系统分析:子系统划分、业务流程图、数据流图、数据字典、关键算法。系统设计:功能结构设计、I/O设计、代码设计、界面设计、数据库设计、网络环境。撰写设计总结报告。
4)学生运行或编制程序
学生运行并研究已有的管理信息系统,或者完成自己开发的信息系统的程序代码的编制和调试工作。
5)验收并简单考查
学生在运行使用已有的管理信息系统或编制完新的程序后,由指导老师进行检查,通过相关测试后,进行成绩评定。
审查设计报告是否规范,设计方案是否合理、正确、可行,否则要求调整或整改。教师记录学生的相应成绩。
五、考核方法与成绩评定
1、考核方法
课程设计采用课程设计报告和课程设计综合评定成绩,以课程设计报告为主,参考对相应的管理信息系统程序的熟悉程度或自己编写程度的水平。
2、成绩评定
成绩优秀、良好、中等、及格和不及格五级计分。
1)未完成设计任务,没达到设计要求则成绩为“不及格”。
2)基本完成设计任务,并撰写出课程设计报告则成绩为“及格”。
3)学生能够认真查阅资料,独立完成设计任务,程序运行或调试通过,并且撰写出课程设计报告则成绩为“中”。
4)学生能够认真查阅资料,独立完成设计任务,程序运行或调试通过,功能完善,操作灵活,界面美观,并且撰写出课程设计报告则成绩为“良好”。
5)学生根据自身的实际能力,在实现设计题目基本要求的基础上增加一些功能,评定成绩时根据其难度和完成情况给与适当加分,如界面效果,系统操作的方便性、灵活性、创新性等,如果设计非常完善则成绩为“优秀”。
第四篇:酒店客房管理信息系统设计
需求分析:
酒店在正常运营中需要对客房资源、客户信息、客房结算信息进行管理,利用酒店客房管理系统及时了解各个环节中信息的变更,提高管理的效率。系统开发的整体任务就是实现客房信息的系统化、规范化和自动化。系统主要满足一下要求:
1、为方便用户在Windows 平台上能够较好运行,熟练掌握该系统的运作,有良好的人机界面。
2、该系统的使用对象较多,为了方便管理,要求有较好的权限管理,系统用户应该具有不同的等级,按用户要求分为三个等级:系统管理员、系统操作员、一般用户。
3、由于客户流量大、流动性强,输入工作较为繁琐,要求该系统与二代身份证阅读器相连接,从而减少输入量。
4、原始数据修改简单方便,支持多条件修改。
5、方便的数据查询,支持多条件查询。
6、在相应的权限下,删除数据简单方便,数据稳定性高。
7、系统的数据权限管理严格,数据安全性高,避免数据外泄。
8、数据计算自动完成,尽量减少人工干预、
9、系统应该那个数据库维护的功能。
10、系统应该有很好的可扩展性。
11、可以建立客户数据信息库,方便日后与客户进行联系。
12、打印退宿报表,结账报表等报表。
第五篇:管理信息系统课程设计框架:
第1章 概述
1.1 系统开发背景
1.2 系统开发目的和意义
1.3 系统开发设计思想
1.4 系统开发环境概述
第2章 系统分析
2.1可行性分析
2.1.1 管理可行性
2.1.2 技术可行性
2.1.3 经济可行性
2.2 组织结构分析
2.3 管理功能分析
2.4 业务流程分析
2.5 数据流程分析
第3章系统设计
3.1 总体设计
3.2 系统功能模块设计
3.3 主要功能模块详细描述
3.4 系统流程设计
3.5 数据存储设计
3.5.1 概念模型设计
3.5.2 逻辑模型设计
3.5.3 物理模型设计
3.5.4 代码设计
3.6 界面设计
3.7 系统物理配置方案设计
第4章 结 语
参考文献