《管理信息系统》课程设计
——期末实验考核
英文名称:Management Information System,MIS
适用对象:公共事业管理、市场营销、财务管理等本科专业
学 时:4学时
管理信息系统作为一门将计算机技术、数据通讯技术和管理科学综合起来的新兴边缘学科,具有很强的实践性。学好管理信息系统这门课程,不仅要学习和了解管理信息系统的基本概念、理论体系和方法工具,而且要结合开发管理信息系统的实践,深刻领会在系统开发全过程中的理论实质,增强信息资源的开发意识,培养学生分析、设计、研制信息系统的能力。
一、目的
通过管理信息系统实验,使学生深刻领会系统规划、系统分析、系统设计和系统实施过程中体现的管理信息系统的基本概念和理论体系,掌握系统开发的原则和方法,并结合实际构造信息系统的逻辑模型和物理模型,培养学生具有开发研制管理信息系统的能力。
二、课程设计内容及要求
1、本课程设计主要涉及书面材料的撰写,内容包括管理信息系统前期的系统调查,系统分析,系统设计,系统实施等主体环节。
2、课程设计由学生拟定或选择一个题目来完成。
3、课程设计最终成果以Word文档形式排版并打印上交。同时需将电子文档发送到唯一指定信箱:fangxinglin@126.com,邮件主题以小组学生名单为主题。
三、实验内容及学时安排(4学时)
四、课程设计报告内容撰写要求
1.系统分析部分
1)系统概述、可行性分析
2)业务流程概述
3)数据流程图
*4)数据字典
2.系统设计部分
1)功能结构图设计
2)代码设计
*3)系统运行环境
4)数据库设计
3.系统实施部分
1)计算机系统实施(即一套合理的计算机软、硬件配置清单)
*2)网络系统实施
注意:(*为可选项)
课程设计报告撰写的基本要求是报告不少于3000字。以小组为单位提交一份书面报告,小组人数最多4人,单独一个人完成的可另加分!需在提交的书面报告封面注明设计选题、班级、姓名、学号。
五、参考题目
注意:以下题目仅供参考,可以另选题目
1.学生成绩管理系统
2.学生信息管理系统
3.小型旅馆(酒店)管理系统
4.学生宿舍管理系统
5.教务信息管理系统
6.工资管理系统
7.超市进销存系统
8.企业设备管理系统
9.人力资源管理系统
10.物业收费管理系统
11.住宅小区物业管理信息系统
12.仓库管理系统
13.医院管理信息系统
14.员工培训管理系统
15.企业策划管理信息系统
16.材料采购管理信息系统
17.(院)系团委工作支持系统
18.图书馆管理(租赁)信息系统
19.XX(选择某一学生社团)管理信息系统
20.客户管理系统
21.旅游资源管理系统
22.旅行社管理系统
第二篇:课程设计(小题)
1 函数重载 定义重载函数max3用于计算三个数的最大值(参数类型分别为int和double)。 #include<iostream>
using namespace std;
int max3(int x, int y, int z)
{
}
double max3(double x, double y, double z)
{
}
void main()
{
} int a, b, c; cout << "Please input three integer:"; cin >> a >> b >> c; cout << "The Max of three is " << max3(a, b, c) << endl; double a1, b1, c1; cout << "Please input three real number:"; cin >> a1 >> b1 >> c1; cout << "The Max of three is " << max3(a1, b1, c1) << endl; return ((x > y ? x : y) > (x > z ? x : z) ? (x > y ? x : y) : (x > z ? x : z)); return ((x > y ? x : y) > (x > z ? x : z) ? (x > y ? x : y) : (x > z ? x : z));
2 类的组合
定义point类,数据成员包括x,y,成员函数包括构造函数,拷贝构造函数和析构函数,以及setx,getx,sety,gety四个属性函数。定义line类,端点由两个point类的对象组成,包括构造函数,析构函数以及计算线段长度的函数getlength。在main函数中,定义line的对象,并输出其长度。
#include<iostream>
#include<cmath>
using namespace std;
class point
{
private:
double x, y; point(){} point(double x, double y) :x(x), y(y) {} void setx(double xx) { } double getx(){ return x; } x = xx; public:
}; void sety(double yy) { } double gety(){ return y; } point(point & p) { } ~point(){} x = p.x; y = p.y; y = yy;
class line
{
private:
};
void main()
{
} point p1(2, 3); point p2(5, 6); line l1(p1,p2); cout << "The length of the line is " << l1.getlength()<<endl; point a, b; line(point aa,point bb) :a(aa), b(bb) {} double getlength() { } ~line(){} double length; length = sqrt(pow((a.getx() - b.getx()), 2) + pow((a.gety() - b.gety()), 2)); return length; public:
3 对象数组和函数
定义student类,数据成员包括姓名name和成绩score,成员函数包括构造函数,拷贝构造函数和析构函数。定义函数void highestscore(student s[]),输出分数最高的学生姓名和分数。在main函数中定义student s[N],调用highestscore函数,输出分数最高的学生姓名和分数。
#include<iostream>
#include<iomanip>
#include<string>
const int N = 2;
using namespace std;
class student {
private:
string name; double score; student(){} student(string n, double s) :name(n), score(s) {} student(student &s) { } /*void setname(string nn) { } string getname(){ return name; } void setscore(double ss) { } double getscore(){ return score; }*/ void highestscore(student s[]) { } ~student(){} friend ostream & operator <<(ostream & os, student s) { os << s.name << " " << s.score << endl; int k = 0; double max; max = s[0].score; for (int i = 1; i < N; i++) { } cout << "The name is " << s[k].name << endl; cout << "Highestscore is " << s[k].score << endl; if (max < s[i].score) { } max = s[i].score; k = i; score = ss; name = nn; name = s.name; score = s.score; public:
}; } return os; friend istream & operator >>(istream & is, student &s) { } is >> s.name >> s.score; return is;
void main()
{
} student s[N]; for (int i = 0; i < N; i++) { } s[N].highestscore(s); cin >> s[i];
4 静态数据成员
设计一个书类,能够保存书名、定价,所有书的本数和总价。(将书名和定价设计为普通数据成员;将书的本数和总价设计为静态数据成员)
class book{
private:
double priece;
string name;
static int num;
static double total;
};
int book::num;
double book::total;
5 动态内存分配
定义point类,数据成员包括x,y,成员函数包括构造函数,拷贝构造函数和析构函数,以及setx,getx,sety,gety四个属性函数。在main函数中,用new和delete分配和释放N个point的数组。(N是const常量,N=10)
#include<iostream>
const int N = 10;
using namespace std;
class point
{
private:
int x, y; point(){} point(int x, int y) :x(x), y(y) public:
}; {} point(point & p) { } void setx(int xx) { } int getx(){ return x; } void sety(int yy) { } int gety(){ return y; } ~point(){} y = yy; x = xx; x = p.x; y = p.y;
void main()
{
} point *p = new point[N]; delete[] p;
6 类的继承
定义一个point类,包含私有数据成员x,y,成员函数包括无参构造函数,带参构造函数,set和get属性函数。定义circle类,从point类公有派生,增加数据成员半径r,成员函数包括无参构造函数,带参构造函数,计算面积函数getarea。在main函数中定义一个circle的对象,并计算其面积。
#include<iostream>
using namespace std;
class point
{
private:
double x, y; point(){} point(double x, double y) :x(x), y(y) {} void setx(double xx) { } double getx(){ return x; } void sety(double yy) x = xx; public:
}; { } double gety(){ return y; } ~point(){} y = yy;
class circle :public point
{
private:
};
void main()
{
} circle c1(2, 3, 4.5); cout << "The area of circle is " << c1.getarea() << endl; double r; circle(){} circle(double x, double y, double r) :point(x, y), r(r) {} double getarea() { } return 3.14*r*r; public:
7 虚基类
定义vehicle类,数据成员包括私有的weight,公有的构造函数,析构函数和输出函数dispaly;从vehicle类公有派生car类,增加数据成员载人数personnum,公有的构造函数,析构函数和输出display;从vehicle类公有派生truck类,增加数据成员载货量laod,公有的构造函数,析构函数和输出函数display;从car类和truck类共同公有派生出pickup类,包括公有的构造函数和输出函数。在main函数中,定义pickup类对象,并输出其基本信息。 #include<iostream>
using namespace std;
class vehicle
{
private:
double weight; vehicle(double w) :weight(w) {} void display() { } ~vehicle(){} cout << "the weight of vehicle is " << weight << endl; public:
};
class car :virtual public vehicle {
private:
};
class truck :virtual public vehicle {
private:
};
class pickup :public car, public truck {
public:
};
void main() pickup(double w1, int p, double w2, double l, double w) :car(w1, p), truck(w2, l), {} void display() { } ~pickup(){} vehicle::display(); car::display(); truck::display(); vehicle(w) double load; truck(double ww, double l) :vehicle(ww), load(l) {} void display() { } ~truck(){} //vehicle::display(); cout << "The load of the truck is " << load << endl; public: int personnum; car(double ww, int p) :vehicle(ww), personnum(p) {} void display() { } ~car(){} //vehicle::display(); cout << "The number of person is " << personnum << endl; public:
{
} pickup p1(211, 2, 200, 170,100); p1.display();
8 运算符重载,友元函数和this指针
定义一个计数器类counter,具备自增,自减功能(前后缀);输入输出>>,<<功能。在main函数里测试该类。
#include<iostream>
using namespace std;
class counter
{
private:
}; double num; counter(){} counter(double n) :num(n) {} counter operator++() { } counter operator--() { } counter operator++(int) { } counter operator--(int) { } friend ostream & operator << (ostream & os, counter c); friend istream & operator >> (istream & is, counter &c); counter nn; nn.num = this->num; num--; return nn; counter nn; nn.num = this->num; num++; return nn; --num; return *this; ++num; return *this; public:
ostream & operator << (ostream & os, counter c)
{
}
istream & operator >> (istream & is, counter &c)
{
}
void main()
{
} counter c1,c2; cin >> c1; c2 = c1.operator++(0); cout << "c1=" << c1; cout << "c2=" << c2; is >> c.num; return is; os << c.num << endl; return os;
9 虚函数和抽象类
定义一个抽象类shape,包括公有的计算面积area函数,计算体积volume函数,输出基本信息函数printinfo(三个函数均为纯虚函数)。从shape公有派生point类,增加私有数据成员x,y坐标,以及构造函数,析构函数。从point公有派生circle类,增加私有数据成员半径r,以及构造函数,析构函数。从circle公有派生cylinder类,增加私有数据成员高度h,以及构造函数,析构函数。(在定义三个派生类的过程中,自己考虑需要重定义哪个虚函数)。在main函数中,定义shape类的指针,指向派生类的对象,输出三类对象的基本信息,面积,体积;(将shape指针改为引用再尝试)。 #include<iostream>
using namespace std;
class shape
{
public:
};
class point :public shape
{
private:
int x, y; point(int x, int y) :x(x), y(y) {} void printinfo() { public: virtual double area() = 0; virtual double volume() = 0; virtual void printinfo() = 0;
}; } cout << "x=" << x << ",y=" << y << endl; ~point(){}
class circle :public point {
private:
};
class cylinder :public circle {
private:
double h; cylinder(int x, int y, double r, double h) :circle(x, y, r), h(h) {} double area() { } double volume() { } void printinfo() { } circle::printinfo(); cout << "h=" << h << endl; //cout << "volume is " << volume() << endl; return circle::area()*h; return circle::area(); public: double r; circle(int x, int y, double r) :point(x, y), r(r) {} double area() { } void printinfo() { } ~circle(){} point::printinfo(); cout << "r=" << r << endl; //cout << "circle area is " << area() << endl; return 3.14*r*r; public:
}; ~cylinder(){}
void main()
{
} cylinder c1(2, 3, 4, 5); shape *s; s = &c1; (*s).printinfo(); cout << "circle area is " << s->area() << endl; cout << "volume is " << (*s).volume() << endl;
10 模板
设计一个堆栈的类模板Stack,在模板中用类型参数T表示栈中存放的数据,用非类型参数MAXSIZE代表栈的大小。
#include<iostream>
//const int MAXSIZE = 5;
using namespace std;
template<typename T,int MAXSIZE>
class stack
{
private:
};
void main() T a[MAXSIZE]; int top; stack() :top(0) {} void push(int x) { } T pop() { } if (top == 0) cout << "the stack is empty" << endl; top--; else return a[top]; if (top == MAXSIZE) cout << "the stack is full" << endl; a[top] = x; else top++; public:
{
} stack<int,5> s; s.push(1); cout << s.pop() << endl;;
11 文件读写
定义学生类数组,有N个人(N=5),包括姓名和语数外三名课的成绩,通过重载<<和>>运算符实现学生数组的文件读写。(姓名用string name;) #include<iostream>
#include<fstream>
#include<string>
#include<iomanip>
const int N = 3;
using namespace std;
class student
{
private:
};
void main()
{
student s[N]; fstream file; file.open("d:\\student.txt", ios_base::out); if (file.is_open()) { for (int i = 0; i < N; i++) char name[10]; double Chinese, Math, English; student(){} student(char n[], double c, double m, double e) :Chinese(c), Math(m), English(e) { } friend ostream & operator << (ostream & os, student s) { } friend istream & operator >> (istream & is, student &s) { } is >> s.name >> s.Chinese >> s.Math >> s.English; return is; os << s.name << " " << s.Chinese << " " << s.Math << " " << s.English << endl; return os; strcpy_s(name, n); public:
} } { } file.close(); cin >> s[i]; file << s[i]; else cout << "file can't be opened!" << endl; student s1[N]; fstream file1("d:\\student.txt", ios_base::in); if (file1.is_open()) { } else cout << "file can't be opened!" << endl; for (int i = 0; i < N; i++) { } file1.close(); file1>> s1[i]; cout << s1[i];