高校人事管理系统课程设计C++版

高校人事管理系统课程设计C++版
高校人事管理系统课程设计C++版

一. 需求分析

1. 目的与意义

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

2. 系统流程图

二. 总体设计

1. 系统功能分析

执行程序后,按界面的显示,选择1—8种操作。选1,增加人员资料,资料包括编号、职工类别、姓名、性别、年龄、来院时间、职务、职称、党派、学历。选2,删除人员信息。选3,修改人员信息,可以选择要修改的内容。选4,查询人员信息,可按编号或姓名查询。选5,数据存盘。选6,数据装入。选7,显示所有信息。选8

,退出。

2. 系统功能模块划分与设计

三.详细设计

1.源程序代码

#include

#include

#include

#include

class person

{

private:

int no;//编号

char type[20];//职工类型

char name[20];//姓名

char sex[10];//性别

int age;//年龄

char time[20];//来院时间

char pos[20];//职务

char techpos[20];//职称

char party[20];//党派

char study[30];//最高学历

person *mynext;//指针语

public:

person(int nnum,char ntype[],char nname[],char nsex[],int nage,char ntime[],char npos[],char ntechpos[],char nparty[],char nstudy[]) {

no=nnum;

strcpy(type,ntype);//将ntype的值复制给type

strcpy(name,nname);

strcpy(sex,nsex);

age=nage;

strcpy(time,ntime);

strcpy(pos,npos);

strcpy(techpos,ntechpos);

strcpy(party,nparty);

strcpy(study,nstudy);

mynext=NULL;

}

person(int nnum,char ntype[],char nname[],char nsex[],int nage,char ntime[],

char npos[],char ntechpos[],char nparty[],char nstudy[],person *next)

//某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。

//现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、来院时间。

{

no=nnum;

strcpy(type,ntype);

strcpy(name,nname);

strcpy(sex,nsex);

age=nage;

strcpy(time,ntime);

strcpy(pos,npos);

strcpy(techpos,ntechpos);

strcpy(party,nparty);

strcpy(study,nstudy);

mynext=next;

}

void setnext(person *next)

{

mynext=next;

}

person *getnext()

{

return mynext;

}

int getnum()

{

return no;

}

char *getname()

{

return name;

}

char *getsex()

{

return sex;

}

char *getpos()

{

return pos;

}

char *gettechpos()

{

return techpos;

}

char *gettime()

{

return time;

}

char *getparty()

{

return party;

}

char *getstudy()

{

return study;

}

int getage()

{

return age;

}

void getag(int as)

{

age=as;

}

char *gettype()

{

return type;

}

};

class School

{

private:

person *myfirst;

int firstnum;

public:

School()//无参构造函数

{

myfirst=NULL;//将指针置空

}

School(int nnu,char ntyp[],char nnam[],char nse[],int nag,char ntim[],char npo[],char ntechpo[],char npart[],char nstud[])//有参构造函数

{

myfirst=new

person(nnu,ntyp,nnam,nse,nag,ntim,npo,ntechpo,npart,nstud);

}

//在信息最后添加新的信息

void insertatlast(int nnum,char ntype[],char nname[],char nsex[],int nage,char ntime[],char npos[],char ntechpos[],char nparty[],char

nstudy[])

{

person *next=myfirst;//定义对象指针并付初值

if(next==NULL)

myfirst=new

person(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy);

else

{

while(next->getnext()!=NULL)

next=next->getnext();

next->setnext(new

person(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,nstudy,n ext->getnext()));

}

}

void printf(int r)//获取信息

{

int nage;

char

ntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[2 0],nstudy[20];

cout<<"请输入编号为"<

cout<<"输入职工分类码[行政人员,教师,一般员工,退休人员,返聘人员,临时工]:"<

cin>>ntype;

cout<<"输入姓名:"<

cin>>nname;

cout<<"输入性别:"<

cin>>nsex;

cout<<"输入年龄:"<

cin>>nage;

cout<<"输入来院时间:"<

cin>>ntime;

cout<<"输入职务[无,科级,处级,地级]:"<

cin>>npos;

cout<<"输入职称[无,初级,中级,高级]:"<

cin>>ntechpos;

cout<<"输入加入党派[群众,中共党员,民主党派]:"<

cin>>nparty;

cout<<"输入学历[小学,初中,高中,大专,大学,硕士,博士]:"<>nstudy;

insertatlast(r,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,n study);

}

void printf1(person *ahead)//输出信息

{

cout<<"编

号:"<getnum()<<"姓

名:"<getname()<

cout<<"性

别:"<getsex()<<"年

龄:"<getage()<

cout<<"职工类

型:"<gettype()<<"职务:"<getpos()<

cout<<"职

称:"<gettechpos()<<"学历:"<getstudy()<

cout<<"政治面

貌:"<getparty()<<"来院时间:"<gettime()<

}

void printf()

{

person *ahead=myfirst;

cout<<"编号---姓名---性别---年龄---职工类型---职务---职称---学历---政治面貌---来院时间\n"<

while(ahead!=NULL)

{ cout<getnum()<getname() ;

cout<getsex()<getage() ;cout<gettype()<get pos() ;

cout<gettechpos()<getstudy();

cout<getparty()<gettime()<

ahead=ahead->getnext();

}

}

void add()//添加新信息

{

int i,a,b;

person *p1=myfirst;

if(p1==NULL)

{

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

cin>>i;

printf(i);

}

else

{

if(p1->getnext()==NULL)//如果p1的后继指针为空,则执行“printf(a)”

{

a=p1->getnum()+1;

printf(a);

}

else

{

while(p1->getnext()!=NULL)//p1的后继指针不为空,则执行“printf(b)”

{

p1=p1->getnext();

}

b=p1->getnum()+1;

printf(b);

}

}

}

bool removedatnum( )//删除信息

{

int bh;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入要删除人员的编号:";

cin>>bh;

if(ahead==NULL)

return false;

else

if(ahead->getnum()==bh)

{

myfirst=myfirst->getnext();

cout<<"编号为"<

delete ahead;

return true;

}

else

{

ahead=ahead->getnext();

while(ahead!=NULL)

{

if(ahead->getnum()==bh)

{

follow->setnext(ahead->getnext());

cout<<"编号为"<

delete ahead;

return true;

}

follow=ahead;

ahead=ahead->getnext();

}

cout<<"要删除的成员不存在!"<

return false;

}

}

bool find1()//按编号查找

{

int id;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入编号:"<

cin>>id;

cout<<"**********************************"<

if(ahead==NULL)

{

cout<<"无人员信息!"<

return false;

}

else

{

while(ahead!=NULL)

{

if(ahead->getnum()==id)

{

printf1(ahead);

return true;

}

else

{

follow=ahead;

ahead=ahead->getnext();

}

}

cout<<"无此人信息:"<

return false;

}

}

bool find2( )//按姓名查找

{

char nm[20];

person *ahead=myfirst;

person *follow=ahead;

cout<<"输入姓名";

cin>>nm;

cout<<"**********************************"<

if(ahead==NULL)

{

cout<<"无人员信息"<

return false;

}

else

{

while(ahead!=NULL)

{

if(strcmp(ahead->getname(),nm)==0)

{

printf1(ahead);

return true;

}

else

{

follow=ahead;

ahead=ahead->getnext();

}

}

cout<<"查无此人:"<

return false;

}

}

bool upperson()//修改信息

{

int iid;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入要修改人员的编号:";

cin>>iid;

if(ahead==NULL)

{

cout<<"无人员信息"<

return false;

}

else

{

while(ahead!=NULL)

{

if(ahead->getnum()==iid)

{

printf1(ahead);

int nu=-1;

for(int i=1;nu!=0;i++)

{

int ml;

int mll;

char ty[30];

cout<<"请选择要修改的内容:"<

cout<<" 1:姓名2:性别3:年龄4:职工类型 5:职务"<

cin>>ml;

switch(ml)

{

case 1:

{

cout<<"请输入姓名:";

cin>>ty;

strcpy(follow->getname(),ty);

};break;

case 2:

{

cout<<"请输入性别:";

cin>>ty;

strcpy(ahead->getsex(),ty);

};break;

case 3:

{

cout<<"请输入年龄:";

cin>>mll;

ahead->getag(mll);

};break;

case 4:

{

cout<<"请输入职工类型:";

cin>>ty;

strcpy(ahead->gettype(),ty);

}; break;

case 5:

{

cout<<"请输入职务:";

cin>>ty;

strcpy(ahead->getpos(),ty);

};break;

case 6:

{

cout<<"请输入职称:";

cin>>ty;

strcpy(ahead->gettechpos(),ty);

};break;

case 7:

{

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

cin>>ty;

strcpy(ahead->getstudy(),ty);

};break;

case 8:

{

cout<<"请输入政治面貌:";

cin>>ty;

strcpy(ahead->getparty(),ty);

};break;

case 9:

{

cout<<"请输入来院时间:";

cin>>ty;

strcpy(ahead->gettime(),ty);

};break;

}

return true;

}

}

else

{

ahead=ahead->getnext();

follow=ahead;

}

}

cout<<"没有此人"<

return false;

}

}

void load()

{

int nnum,nage;

char

ntype[20],nname[20],nsex[20],ntime[20],npos[20],ntechpos[20],nparty[2 0],nstudy[20];

ifstream fperson;

fperson.open("person.txt",ios::in);

while(fperson.good())

{

fperson>>nnum>>ntype>>nname>>nsex>>nage>>ntime>>npos>>ntechpos>>n party>>nstudy;

insertatlast(nnum,ntype,nname,nsex,nage,ntime,npos,ntechpos,nparty,ns tudy);

}

fperson.close();

cout<<"\n人员和相关数据已经装入.....\n";

}

void save()//保存文件到文件中

{

ofstream fperson;

fperson.open("person.txt",ios::out);

person *p=myfirst;

while(p)

{

fperson<getnum()<<"\t"<gettype()<<"\t"<getname()<<"\t "<getsex()<<"\t"<getage()<<"\t"<gettime()<<"\t"<getpo s()<<"\t"<gettechpos()<<"\t"<getparty()<<"\t"<getstudy();

fperson<

p=p->getnext();

}

fperson.close();

cout<<"保存数据已经完成"<

}

~School()//析构函数,删除各指针!

{person *next=myfirst,*temp;

while(next!=NULL)

{

temp=next;

next=next->getnext();

delete temp;

}

myfirst=NULL;

}

};

void main()

{

School s;//定义对象

int c;

do

{

cout<<"**************************************************"<

cout<<" 高校人事管理系统 "<

cout<<" "<

cout<<" 1---增加人员资料 "<

cout<<" 2---删除人员信息 "<

cout<<" 3---修改人员信息 "<

cout<<" 4---查询人员信息 "<

cout<<" 5---数据存盘 "<

cout<<" 6---数据装入 "<

cout<<" 7---显示所有信息 "<

cout<<" 8---退出 (1-8):"<

cout<<"**************************************************"<

cin>>c;

switch(c)

{

case 1:s.add(); break;

case 2:s.removedatnum(); break;

case 3:s.upperson(); break;

case 4:{

int nm;

cout<<"1-通过编号。2-通过姓名。请选择:";

cin>>nm;

if(nm==1)

s.find1();

else

s.find2();

};break;

case 5: s.save();break;

case 6: s.load();break;

case 7: s.printf();break;

}

}while(c!=8);

}

2.类层次图

数据成员:

int no,char type[20], char name[20], char sex[10],

int age, char time[20], char pos[20],

char techpos[20], char party[20], char study[30]

person *mynext

函数:

person(int nnum,char ntype[],char nname[],char

nsex[],int nage,char ntime[],char npos[],char

ntechpos[],char nparty[],char nstudy[]) class person person(int nnum,char ntype[],char nname[],char

nsex[],int nage,char ntime[],

char npos[],char ntechpos[],char nparty[],char

nstudy[],person *next)

void setnext(person *next) person *getnext()

int getnum() char *getnam e()

char *getsex() char *getpos()

char *gettechpos() char *gettime()

char *getparty() char *getstudy()

int getage() void getag(int as)

char *gettype()

数据成员:

person *myfirst,int firstnum

函数

School()

School(int nnu,char ntyp[],char nnam[],char nse[],int

nag,char ntim[],char npo[],char ntechpo[],

char npart[],char nstud[])

void insertatlast(int nnum,char ntype[],char

nname[],char nsex[],int nage,char ntime[]

,char npos[],char ntechpos[],char nparty[],

char nstudy[])

class School void printf(int r)

void printf1(person *ahead)

void printf()

void add()

bool removedatnum( )

bool find1()

bool find2( )

bool upperson()

void load()

void save()

~School()

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

1.界面设计

cout<<"**************************************************"<

cout<<" 高校人事管理系统 "<

cout<<" "<

cout<<" 1---增加人员资料 "<

cout<<" 2---删除人员信息 "<

cout<<" 3---修改人员信息 "<

cout<<" 4---查询人员信息 "<

cout<<" 5---数据存盘 "<

cout<<" 6---数据装入 "<

cout<<" 7---显示所有信息 "<

cout<<" 8---退出 (1-8):"<

cout<<"**************************************************"<

cout<<"**************************************************"<

2.各功能模块实现

添加功能

void add()//添加新信息

{

int i,a,b;

person *p1=myfirst;

if(p1==NULL)

{

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

cin>>i;

printf(i);

}

else

{

if(p1->getnext()==NULL)//如果p1的后继指针为空,则执行“printf(a)”

{

a=p1->getnum()+1;

printf(a);

}

else

{

while(p1->getnext()!=NULL)//p1的后继指针不为空,则执行“printf(b)”

{

p1=p1->getnext();

}

b=p1->getnum()+1;

printf(b);

}

}

}

删除功能

bool removedatnum( )

{

int bh;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入要删除人员的编号:";

cin>>bh;

if(ahead==NULL)

return false;

else

if(ahead->getnum()==bh)

{

myfirst=myfirst->getnext();

cout<<"编号为"<

delete ahead;

return true;

}

else

{

ahead=ahead->getnext();

while(ahead!=NULL)

{

if(ahead->getnum()==bh)

{

follow->setnext(ahead->getnext());

cout<<"编号为"<

delete ahead;

return true;

}

follow=ahead;

ahead=ahead->getnext();

}

cout<<"要删除的成员不存在!"<

return false;

}

}

修改功能

bool upperson()

{

int iid;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入要修改人员的编号:";

cin>>iid;

if(ahead==NULL)

{

cout<<"无人员信息"<

return false;

}

else

{

while(ahead!=NULL)

{

if(ahead->getnum()==iid)

{

printf1(ahead);

int nu=-1;

for(int i=1;nu!=0;i++)

{

int ml;

int mll;

char ty[30];

cout<<"请选择要修改的内容:"<

cout<<" 1:姓名2:性别3:年龄4:职工类型 5:职务"<

cin>>ml;

switch(ml)

{

case 1:

{

cout<<"请输入姓名:";

cin>>ty;

strcpy(follow->getname(),ty);

};break;

case 2:

{

cout<<"请输入性别:";

cin>>ty;

strcpy(ahead->getsex(),ty);

};break;

case 3:

{

cout<<"请输入年龄:";

cin>>mll;

ahead->getag(mll);

};break;

case 4:

{

cout<<"请输入职工类型:";

cin>>ty;

strcpy(ahead->gettype(),ty);

}; break;

case 5:

{

cout<<"请输入职务:";

cin>>ty;

strcpy(ahead->getpos(),ty);

};break;

case 6:

{

cout<<"请输入职称:";

cin>>ty;

strcpy(ahead->gettechpos(),ty);

};break;

case 7:

{

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

cin>>ty;

strcpy(ahead->getstudy(),ty);

};break;

case 8:

{

cout<<"请输入政治面貌:";

cin>>ty;

strcpy(ahead->getparty(),ty);

};break;

case 9:

{

cout<<"请输入来院时间:";

cin>>ty;

strcpy(ahead->gettime(),ty);

};break;

}

return true;

}

}

else

{

ahead=ahead->getnext();

follow=ahead;

}

}

cout<<"没有此人"<

return false;

}

}

查询功能

1.按编号查询

bool find1()

{

int id;

person *ahead=myfirst;

person *follow=ahead;

cout<<"请输入编号:"<

cin>>id;

cout<<"**********************************"<

if(ahead==NULL)

{

cout<<"无人员信息!"<

return false;

}

else

{

while(ahead!=NULL)

{

if(ahead->getnum()==id)

{

printf1(ahead);

return true;

}

else

{

follow=ahead;

ahead=ahead->getnext();

}

}

cout<<"无此人信息:"<

return false;

}

}

2.按姓名查询

bool find2( )

{

char nm[20];

person *ahead=myfirst;

person *follow=ahead;

cout<<"输入姓名";

cin>>nm;

cout<<"**********************************"<

if(ahead==NULL)

{

cout<<"无人员信息"<

return false;

人事管理系统——C语言

人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建档案信息; 2、删除信息; 3、追加信息; 4、搜索查找信息(按姓名或者编号搜索); 5、浏览全部信息; 6、修改信息; 7、信息排序; 8、信息统计; 三、详细设计; 1、主函数: 〈1〉需求分析: 为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。 main()函数定义如下: main()

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

高校人事管理系统

数据库原理实训报告 题目 __高校人事管理系统__ 信息工程学院 二○一四年十二月 摘要 高校人事管理系统包括人事档案信息录入、人事档案信息显示及人事信息查询等。系统开发采用了C++,有开发效率高,调试容易,维护方便等优点。实现了显示信息分页,组合查询等方便用户的功能,提高了高校人事管理的效率。

目前软件市场有很多人事管理系统软件,有的功能强大,适合管理大型的集团型企业,有的功能单一,适合管理小型企业。针对高校的人事管理软件却没有通用的商业软件。因为高校的人事管理有其特殊性,每个院校之间的差别很大,管理方法存在很大差别。市场化的通用商品软件很难满足所有高校的人事管理需求。高校的人事管理软件均采用定制化开发,根据本校的实际情况,开发切合本校实际的管理程序。 在设计时我们根据E-R图的类型和一些实际需求转化为相应的关系模型,并通过分析关系模型中依赖关系,对关系模型进行了优化,同时根据确切需求分析各个关系模式所属范式和优化原因。最终确定了在数据库中存储所用的关系模式,定义了基本表和视图模式,确定了系统功能模块图,得到了数据库的关系图。 根据以上得到的结果,构建出符合要求的数据库,通过物理设计将逻辑模型转化为物理模型,确定了存储结构和建立的索引以及功能模块。利用C++平台使数据库与程序相结合构成了具有相应功能的系统。 关键字:数据库;E-R图;数据流图;高校人事管理;系统设计;系统实现

目录 1.前言 (1) 1.1选题的理由和实际意义 (1) 1.2研究现状及趋势 (2) 2需求分析 (3) 3 系统设计 (6) 3.1定义 (6) 3.2系统模块图 (6) 3.2.1管理员功能模块图 (6) 3.2.2部门主任功能模块图 (7) 3.2.3教师功能模块图 (7) 3.3 E-R图 (8) 3.4 数据表的设计 (8) 3.5用例列举 (10) 3.5.1数据表 (10) 3.5.2视图 (12) 3.5.3存储过程 (12) 4总结 (14) 5附录:读书笔记 (15) 参考文献 (17)

C语言-人事管理系统

人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件中重新储存,这样的方法容易理解、容易编写,但当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,也即最多可储存的职工人数为100; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建档案信息; 2、删除信息; 3、追加信息; 4、搜索查找信息(按姓名或者编号搜索); 5、浏览全部信息; 6、修改信息; 7、信息排序; 8信息统计; 三、详细设计; 1、主函数: 〈1〉需求分析: 为使系统执行完每部分功能后能够方便的回到系统主界面,main()函数设计的 很简单,只包含一个menu()函数,其余的全部功能都通过menu()函数调用来实现,并通过menu()函数的递归调用实现返回主界面的功能。

仓库管理系统C课程设计报告

《高级语言程序设计》 课程设计报告 设计题目图书管理系统 专业计算机科学与技术 班级 姓名 学号 2007 年6 月5日 目录 1.设计目的 (3) 2.设计思想 (3) 3.类及对象设计 (4) 4.程序源代码 (5) 5.调试记录 (16) 6.总结 (18) 仓库管理系统 1.设计目的 通过实习进一步掌握所学的基本知识,学会解决实际问题的方法 2设计题目 1、问题描述(功能要求):某公司现有以下设备:普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%,要求对所有的库存设备都能按照品名进行显示、查找、增加和删除、保存的功能。

2、问题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)分析系统中的各个实体之间的关系及其属性和行为; (2)根据问题描述,设计系统的类层次; (3)完成类层次中各个类的描述(包括属性和方法); (4)完成类中各个成员函数的定义; (5)完成系统的应用模块; (6)功能调试; (7)完成系统总结报告以及系统使用说明书。 2.设计思想 (1)设计classadmin管理库,实现对仓库信息的描叙;class shelf柜台类库实现建立电器资料;class ele电器类,实现对电器的描述,电器的编号,货架号,名称,数量,价格等;class mana函数类,实现对电器的入库,查找,出库等。 (3)设计菜单来实现功能设计 1、输入商品 2、商品查找 3、查询入库 4、商品出库 5、退出系统 3.设计类及对象 (1)本程序定义了四个类,定义如下: classadmin { public: admin(); private:

高校人事管理系统的设计与实现

高校人事管理系统的设计与实现 【摘要】在现代化的人事管理工作中,依靠先进的计算机技术及网络信息技术创建高校人事管理系统是促进高校管理发展的重要举措。为适应现代化需求,提高高校人事管理工作效率,建立高校人事管理系统可以满足多样的人事管理需求,实现人事信息的统一管理,方便调用、修改、维护等工作。因此本文针对高校的实际情况,管理工作中涉及的各个方面,对高校人事管理系统的设计与实现进行了初步探索。 【关键词】高校人事;管理系统;设计与实现 人事管理是高校人事部的一项重要工作,教师职工每年都有人员变动情况发生,因此建立人事管理系统要满足人事信息变更快的特点,来优化工作进程。现在进入数字化时代,网络信息技术发展迅猛,要针对学校自身的特点来制定操作方便、实用的管理系统。现在高校的教职工、学生信息数据量大,要采取高效管理信息的模式,就要实现智能化管理,优化人事管理系统,同时保证系统的安全性,方便终端用户的查询使用。人事管理的对象是高校中每位教职员工的基本信息、人事分析统计数据等,而且信息数据是要定期更新、不断变化的,因此建设一个完善的管理系统就显得尤为重要,不仅可以准确的统计数据,还能够节约管理成本、提高管理效率。在拥有大存储量空间的同时,加强保密性管理,方便系统使用人员的工作衔接等诸多好处。 1.高校人事管理系统功能分析 首先实现高校在职员工的基本信息及岗位信息管理,方便统一查阅与维护,这是整个系统的重要组成部分。系统管理员拥有专属权限来灵活操作和管理人事信息,对数据信息进行删减、修改处理,上级领导也可快速查询。 对教职员工的工资管理功能、岗位信息管理功能、统计审核功能等的使用,由专门人员进行数据统计工作。比如教师职称的分类,教学科目的分类,编制分类及学位分类等都可以在教职工信息管理模块中实现;教师工资信息可通过出勤、缺勤记录,绩效奖励制度等计算工资。 最后,设置不同级别的分级管理员,比如部门管理员和系统管理员,不同级别对应不同权限,实现自上而下的统一管理。系统管理员可制定增添或减少各级部门管理员权限,比如可分设档案管理员、招聘管理员等,可分配修改、删减权限等,管理员可分别根据职称、任教科目等信息进行统计查询。基于系统个人信息繁多,系统还要保持数据的安全与稳定,具有备份和恢复功能。 2. 高效人事管理系统设计 人事管理系统在研究设计时,进行全面的需求分析,既能够满足当前的高校人事管理工作需求又能够方便数据挖掘与采集,以及后期软件升级维护等工作的

高校人事管理系统C++代码

#include #include #includepowered by https://www.360docs.net/doc/9e18397448.html, #include using namespace std; class employee { protected: int number; char name[20]; char sex[6]; char workplace[20]; char place[20]; char nation[6]; char birth[20]; char party[10]; char id[20]; float score[5]; public: Employee *nest; Employee(){} ~Employee(){} char* getname(){ return name; } int getnumber(){ return number; } double getscore(int i){ return score[i];} float get(){ return(score[0]+ score[1]+ score[2]+ score[3]+ score[4]);} void input() { int e=1; cout<<“\t\t\t按提示输入 :”<>workplace ; do { cout<< “\t\t输入性别 :” ; cin>>sex ; if(strcmp(sex,“man”)==0 || strcmp(sex,“woman”)==0) { cout<<“\t\t输入籍贯:”; cin >>place; cout<<“\t\t输入民族:”; cin >>nation;

C语言程序设计课程设计报告

C语言程序设计课程设 计报告 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目: C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 2.1 掷骰子游戏 (5) 2.2 射击游戏 (7) 2.3 计算存款本息之和 (8) 2.4肇事逃逸 (10) 2.5 礼炮 (12) 2.6 汽车加油 (14) 2.7 大优惠 (16) 2.8 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C 语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能;

2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式 ③必须上机调试通过 二、方案实现与调试 2.1掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述

人事管理系统解决方案

人事管理系统解决方案 一、系统简介 人事管理系统是针对高校人事工作而专门开发的多功能集成应用,它能够实现高校教职工管理工作的信息化、统一化,为各种事务性工作的办理提供统一的流程。人事管理系统采用数据库技术、分布式信息处理技术构建,依托校园网络运行,实现对高校人事信息进行数据管理、维护、共享、交换,并以工作岗位为核心实现对教职工的电子身份认证和权限管理。 人事管理系统能够对原有系统进行有效整合,实现资源共享,简化办理流程,在提升工作效率的同时,确保各种数据的权威性和准确性。高校引入人事管理系统后,能够大幅提升人事管理方面的整体水平。人事管理系统能够实现功能模块的定制化,适用于各类大中专院校。系统具有极强的兼容性和可拓展性,功能模块间能够随意组合,以实际应用为最终目的。 二、系统功能 人事管理系统是为解决大量复杂的教职工日常工作而设计,在功能上涵盖了所有环节,本着实用的设计思想,着眼与高校后勤的管理特色和实际需要,帮助高校对人力资源管理的各项业务流程进行全面的电子化管理,解决人力资源管理的实际问题。 1、组织机构设置

对后勤组织机构的基本信息进行设置和维护。可以增加、修改和删除组织机构信息(在权限允许的情况下),也可以查看各部门下属的人员信息。 2、岗位信息设置 对后勤各部门下的岗位类别和信息进行设置和维护。其中包含:岗位类型、岗位位置、职责范围、岗位编制数、岗位职责、岗位职责条件及服务细则考核标准、岗位系数、岗位津贴等。 3、人事档案管理

对人员的基本信息进行管理和维护。可以根据人员的类别(在编、非在编、自管、离职、退休)查询人员的基本信息和部门的人数。也可以添加、修改和删除(有权限控制)人员的基本信息。在人员的基本信息记录中还可以添加人员的各种证件扫描件,并且可以查看这些证件的图片。系统可以用电子表格文件还具有批量导入人员基本信息的功能。 4、人员合同管理 对人员的劳动合同进行管理和维护。可以增加、修改和删除人员的劳动合同信息。可以对人员的合同进行续签、改签和换签操作,系统还能够对人员的转正时间、合同到期时间进

C语言课设之人事管理系统之欧阳家百创编

C语言课程设计 欧阳家百(2021.03.07) ——人事管理系统题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息;(5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data);

C+课程设计报告代码

C++课程设计报告 专业: 学号: 姓名: 同组人: 提交日期: 【设计目的】 1、通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。 2、了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。【设计内容】 1、设计某公司的库存管理系统。此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。 2、系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。 3、系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:date.dat。 4、作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能,所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。 5、下图中黑体字部分程序块为我完成的代码块

【实验环境】 1.硬件环境: (1)电脑型号戴尔 Inspiron 5557 笔记本电脑 (扫描时间:2017年01月11日) (2)操作系统Windows 10 Enterprise 64位 ( DirectX 12 ) (3)处理器英特尔 Core i7-6500U @ 2.50GHz 双核 (4)主板戴尔 03XTY7 ( 英特尔 PCI 标准主机 CPU 桥 - 100 Series 芯片组Family/eSPI Controller - 9D48 ) (5)内存8 GB ( 镁光 DDR3L 1600MHz ) (6)主硬盘三星 SSD 850 EVO 500GB ( 500 GB / 固态硬盘 ) (7)显卡Nvidia GeForce 930M ( 4 GB ) (8)显示器友达 AUO38ED ( 15.3 英寸 ) 2.软件环境:Windows 10 Enterprise 64位 ( DirectX 12 )、Visual Studio 2015 【设计中使用函数说明】 (1)char manage::first_face()//首页:该函数是该系统的首页。 (2)void manage::in_cangku()//入库函数:该函数是将商品信息录入到文件中。 (3)void manage::out_cangku()// 出库函数:该函数将商品信息读取后找到用户想要出库的商品然后进行商品报损。 (4)void manage::find_property()//查询函数:该函数用于让用户选择自己想要的查询商品的方式:俺商品名称查询、按商品价格查询、按商品价格查询。

C课程设计报告含代码

C课程设计报告含代码Newly compiled on November 23, 2020

专业: C++课程设计报告 学号: 姓名: 同组人: 提交日期: 【设计目的】 1、通过设计一个较为简单的《商场库存货物管理系统》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。 2、了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。【设计内容】 1、设计某公司的库存管理系统。此程序是为了更好的处理货物的详细信息。包括货物的货物的入库、出库、查询、统计。并且能够很好的让使用者了解库存货物的有关信息。 2、系统要求能够按编号显示、查找、增加、删除、和保存各类货物的信息。输入和输出货物的有关信息并且对输入保存文件里确定程序至少具备以下功能:查询模块、增加模块、删除模块、货物的有关信息数据存盘等的基本模块。 3、系统具有“货物的有关信息数据存盘”的功能,所以货物的有关信息数据可以保存到磁盘文件,那么也就意味着今后可以从磁盘文件读出货物的有关信息,可以方便用户使用,避免数据重复录入,考虑到系统实现简洁,货物数据文件采用文本文件,货物数据文件名:。 4、作为一个完整的系统,除了具有增加货物,删除货物的信息模块,还应该具有修改货物相关信息的功能,所以本系统具备了“商品入库”、“商品出库”、“查询统计”、“商品报损”、“退出系统”,这5个基本功能,就可以以最简捷的方式实现对货物的管理,也就实现了系统的要求。 5、下图中黑体字部分程序块为我完成的代码块

高校人事管理系统-面向对象程序设计说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2011年秋季学期 面向对象课程设计 题目:高校人事管理系统 专业班级: 姓名: 学号: 指导教师: 成绩:

目录 摘要 (1) 前言 (2) 正文 (3) 一、需求分析 (3) 二、总体设计 (4) 1、类的层次设计 (4) 2、功能设计 (4) 3、系统功能模块图 (5) 三、系统测试 (6) 总结 (9) 参考文献 (10) 致谢 (11)

摘要 目前市面上流行的人事管理系统不少。但是,对于企、事业单位的人事管理系统来说,不需要大型的数据库系统。只需要一个操作方便,功能实用,能满足本中心对数据的管理及需求的系统。人事管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。我们的目标就是在于开发一个功能实用、操作方便,简单明了的人事管理系统.能够录入人事的基本资料,在操作上能够完成诸如添加、修改、删除、按各种条件进行查询、新用户的设置及密码修改等方面的工作,基本满足人事日常业务的需要。 关键词:人事管理;文件;链表;c语言;

前言 科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。随着企业自身人力资源的日益庞大、复杂程度逐渐增强,人机作坊再也无法适应如今企业的人事管理了,取代的是运用各种领域的知识,结合计算机科学而开发的人事管理系统,科学合理的来管理企业人事信息档案及扩充的人力资源管理系统。从而引出了一门新的学科——管理信息系统,它跨越了若干个领域,形成一整套科学合理的信息收集和加工的方法,构成一个纵横交织的系统。人事管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。 对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。人事管理系统是对工作人员进行统一的管理,可以进行方便的进行录入,查询,修改,删除,退出。随时把握人员的异动情况,更轻松人事管理工作为企业人力资源管理提供了全面解决方案。

C语言课程设计-人事管理系统

C语言课程设计 ——人事管理系统

题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search by number); 5、按姓名搜索(search by name); 6、浏览全部数据(browse all); 7、修改数据(modify the data); 8、排序功能(order the volume); 9、统计功能(data a volume); 系统功能模块图如下:

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

C语言课设之人事管理系统

C语言课程设计 ——人事管理系统

题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事的变动情况,添加删除记录; (2)查询功能:能根据编号和姓名进行查询; (3)编辑功能(高级):根据查询对相应的记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者的信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入的数据进行相应的存储; 一、需求分析: 根据题目要求,职工信息是存放在文件中的,所以应该提供相应的文件的输入输出的功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应的操作,另外菜单式的选择方式选择程序的功能也是必须需的。另外程序中要求存储的模块,采用的方式均为将原文件中的所有数据读入内存,在内存中处理之后以覆盖的方式写入文件存贮,这样的方法在一定程度上提高了对数据处理的灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据的风险,另外当文件中的数据量很大时,这种方法也存在一定的难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search by number); 5、按姓名搜索(search by name);

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

C语言课设之人事管理系统

C语言课程设计 ——人事管理系统

题目要求: 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员、教师、一般员工)、退休人员与临时工。现在,需要存储这些人员得人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间、人员类别。其中,人员编号唯一,不能重复。 (1)添加删除功能:能根据学院人事得变动情况,添加删除记录; (2)查询功能:能根据编号与姓名进行查询; (3)编辑功能(高级):根据查询对相应得记录进行修改,并存储; (4)统计功能:能根据多种参数进行人员得统计(在职人数、党员人数、女工人数、高学历高职称人数(硕士学位以上或者副教授以上)),统计要求同时显示被统计者得信息; (5)排序功能:按照年龄、来院时间进行排序; (6)保存功能:能对输入得数据进行相应得存储; 一、需求分析: 根据题目要求,职工信息就是存放在文件中得,所以应该提供相应得文件得输入输出得功能,在程序中应该有添加删除,查询,编辑,统计,排序,保存等程序实现相应得操作,另外菜单式得选择方式选择程序得功能也就是必须需得。另外程序中要求存储得模块,采用得方式均为将原文件中得所有数据读入内存,在内存中处理之后以覆盖得方式写入文件存贮,这样得方法在一定程度上提高了对数据处理得灵活性,较容易理解,但存在处理中遇到以外情况而丢失数据得风险,另外当文件中得数据量很大时,这种方法也存在一定得难度,在本程序中将N定为100,基本上能满足要求; 二、总体设计: 根据以上需求分析,将程序分成以下几个模块: 1、新建数据文件(build new data); 2、添加记录(add data); 3、删除记录(delete data); 4、按工号搜索(search bynumber); 5、按姓名搜索(search by name); 6、浏览全部数据(browseall); 7、修改数据(modify thedata); 8、排序功能(orderthe volume); 9、统计功能(dataa volume); 系统功能模块图如下:

C课程设计报告

课程设计任务书

课程设计报告 课程:面向对象程序设计学号:02 姓名:李尾冬 班级:09030301 教师:

沈阳理工大学 信息学院 课程设计名称:小型特殊计算器 1.设计内容: 实现一个特殊的计算器,可以实现复数、有理数、矩阵和集合的特殊计算。程序可以实现复数、有理数的加、减、乘、除,可以实现矩阵的加法、减法和乘法运算,也可以实现集合的求交集、并集、子集的运算。 2.设计目的与要求: 设计目的 达到熟练掌握C++语言的基本知识和技能; 基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 设计要求 要求利用面向对象的方法以及C++的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。 3.系统分析与设计 主要知识点 运算符重载增加了C++语言的可扩充性。运算符的重载实际上就是一种函数调用的形式,可以用成员函数重载运算符,就是将运算符重载定义为一个类的成员函数的形式;也可以用友元函数重载。用友元重载运算符的友元函数是独立于类以外的一般函数。 关键技术 程序中每一种数据类型用一个类来实现,共设计了4个类。复数类complex,矩阵类matrix,有理数类rational以及集合类set。每一种类都定义了相应的运算符重载函数。具体定义如下所示: (1)类complex 类complex中,成员变量image表示虚部,real表示实部。成员函数print()用来显示数据。运算符重载函数都是用友元函数来实现的。分别重载+、-、*、/运算符。 (2)类matrix 类matrix中,成员变量elems用来存放矩阵的所有元素,rows表示矩阵的行,cols表示矩阵的列。成员函数SetElems()用来给矩阵中的每一个元素赋值,

C语言程序设计课程设计报告

《C语言程序设计》课程设计报告 (2013— 2014学年第 3 学期) 题目:C语言课程设计 专业:软件工程 班级:软件工程技术2班 姓名学号: 1 林燕萍 指导教师:吴芸 成绩: 计算机科学与技术系 2014 年6月23日

目录 一、课程设计的目的与要求 (1) 二、方案实现与调试 (3) 掷骰子游戏 (5) 射击游戏 (7) 计算存款本息之和 (8) 肇事逃逸 (10) 礼炮 (12) 汽车加油 (14) 大优惠 (16) 金币 (19) 三、课程设计分析与总结 (23) 附录程序清单 (25) 一、课程设计的目的与要求(含设计指标) C语言是一种编程灵活,特色鲜明的程序设计语言。C语言除了基知识,如概念,方法和语法规则之外更重要的是进行实训,以提高学习者的动手和编程能力,从应试课程转变为实践工具。 这是学习语言的最终目的。结合多年来的教学经验,根据学生的学习情况,为配合教学过程,使“项目教学法”能在本质上促使学生有更大进步,特编写了该《C语言程序设计任务书》,以在实训过程中给学生提供帮助。达到如下目的: 1.在课程结束之前,让学生进一步了解C程序设计语言的编程功能; 2.让学生扎实掌握C程序设计语言的相关知识; 3.通过一些有实际意义的程序设计,使学生体会到学以致用,并能将程序设计的知识与专业知识有效地结合,更全面系统地了解行业知识。 编写程序要求遵循如下基本要求: ①模块化程序设计 ②锯齿型书写格式

③必须上机调试通过 二、方案实现与调试 掷骰子游戏 2.1.1 题目内容的描述 1) 两人轮流掷骰子,每次掷两个,每人最多掷10次。 2) 将每人每次的分值累加计分 3) 当两个骰子点数都为6时,计8分;当两个点数相等且不为两个6时,计7分;当两个点数不一样时,计其中点数较小的骰子的点数。 4) 结束条件:当双方都掷10次或经过5次后一方累计分数多出另一方的30%及以上。最后显示双方分数并判定优胜者。 2.1.2输入数据类型、格式和内容限制和输出数据的说明 数据类型:整型;内容限制:随机数的产生;输入数据结果:胜利的一方 2.1.3主要模块的算法描述 本算法的思路过程:首先要随机产生随机数,然后进行算法输出数值,执行条件判断输入结果,最后比较结果,判断胜利的一方。 程序流程图 图1 掷骰子游戏 调试过程及实验结果

相关文档
最新文档