永发信息网

谁能给我个c++课程设计的题目啊,我想做个大点的程序、、

答案:2  悬赏:60  手机版
解决时间 2021-05-03 04:46
c++
最佳答案
题目 高校人事管理系统

一、目的与要求:


1、目的:


(1)要求学生达到熟练掌握C++语言的基本知识和技能;


(2)基本掌握面向对象程序设计的基本思路和方法;


(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。


2、基本要求:


(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;


(2)要求在设计的过程中,建立清晰的类层次;


(3)在系统设计中要分析和定义各个类,每个类中要有各自的属性和方法;


(4)在系统的设计中,要求运用面向对象的机制(继承、派生及多态性)来实现系统功能。


3、创新要求:


在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。


4、写出设计说明书


二、设计方法和基本原理:


1、问题描述(功能要求):


某高校,主要人员有:在职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。


要求:


1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;


2) 查询功能:能根据编号和姓名进行查询;


3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;


4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);


5) 保存功能:能对输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。


6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。


2、问题的解决方案:


根据系统功能要求,可以将问题解决分为以下步骤:


(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;


(2)分析系统中的各个实体及它们之间的关系包括属性和行为;


(3)根据问题描述,设计系统的类层次;


(4)完成类层次中各个类的描述(包括属性和方法);


(5)完成类中各个成员函数的定义;


(6)完成系统的应用模块;


(7)功能调试;


(8)完成系统总结报告以及系统使用说明书。

全部回答
《C++语言程序设计课程设计》

一、课程设计要求

(以下内容,全部按:宋体5号,单倍行距格式编辑)

1.题目:电话号码信息管理系统。

2.基本要求:设计一个程序,掌握C++设计程序的一些流程,综合的运用C++使用。对流的使用,这个程序运用了一个流类的类库用继承的方法建立起来的。

3.实验目的:掌握类的设计、类的派生;C++的输入输出流;继承性和派生类;函数应用运用,提高我们对系统应用,让我们更好的运用知识C和C++知识,

还有一些语句的运用,格式控制符等运用。

4.程序功能简介

本程序具体功能如下:

(1)用户登录界面设计。

(2)信息维护:包括子模块有:增加电话号码信息、删除电话号码信息、修改电话号码信息。其中电话号码信息包括姓名、电话号码、序号。

(3)信息查询:查询时实现按姓名、序号查询,提供电话号码信息。

5.程序设计资料调研

本课程的要求是电话号码信息管理,要求完成其基本功能。其信息经过搜索,查得电话号码表。在进行某种电话号码管理操作时,通过是先显示所有的电话号码的信息,再找到符合自己要找的电话号码的操作,本系统遵循了这一习惯。

6.关键算法

在本程序中使用了struct 数据类型,所用最多的是WHILE循环结构和IF语句,然而这也正为了它的特色。循环体的嵌套思路清晰,目的明确,格式规范,易于阅读和理解。

If语句的逐层运用,正形象化的描述了计算机工作流程,而且与人的一般习惯相吻合,简单明了,易于观察理解它的来龙去脉,思路清晰直观。该程序是在汉化系统下编写完成的,所以它支持在汉化系统下运行,还支持在普通系统下运行,它允许完全用中文操作,包括对信息的添加浏览和查询等功能,它使用的指针是动态分配内存的,允许用户大量的信息录入,对它的长短不加限制,这样就方便了很多。而且中文环境更加方便使用,一目了然。

7.存在的问题与次略

本课程设计是在汉化环境下操作的,对系统要求相对严格。在输入信息时,每输入一条信息后用ENTER键结束,然后继续下一条信息的输入。如果不能按照规定方法录入,将导致信息混乱不清,只有重新启动系统开始新的输入。策略是:只有人为的去掌握输入方法,正确操作;还有是对程序改进,使程序对一些非法输入给予忽略,提示重新输入。

二、设计的思路

1.建立ifstream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据。

2.建立TelephoneBook类,构建PRIVATE私有成员和PUBLIC公有成员

3.建TelephoneBook函数,建立输入输出文件,如何打开文件

4.建立AddData函数,请输入序号、名字、电话号码构建电话号码本

5.建立UpdateData函数,可以更改序号、名字、电话号码本功能项

6.建立SearchData函数,制作输入查询电话号码的序号功能项

7.建立DeleteData函数,制作输入可以删除的电话号码的序号

8.建立Pack函数,写入电话号码二进制文件,写入电话号码本

9.建立Run函数,用do. while界面制作界面

10.建立一个主函数main(),#include"telephone_book .h"

void main(void)

{

TelephoneBook obj;

obj.run();

}

11.运行主函数main,程序运行就可以了

三、设计步骤

#include<iostream.h>

#include<string.h>

#include<fstream.h>

#include<ctype.h>

#include<iomanip.h>

#include<stdlib.h>

#include<math.h>

#include<stdio.h>

#ifndef _TELEPHONE_BOOK_H_

#define _TELEPHONE_BOOK_H_

struct TelephoneType

{

bool delfag;

unsigned int seat;

char name[16];

char teleNo[80];

};

class TelephoneBook

{

private:

fstream file;

void AddData();

void UpdateData();

void SearchData();

void DeleteData();

public:

TelephoneBook();

virtual ~TelephoneBook()

{file.close();}

void run();

};

TelephoneBook::TelephoneBook()

{

ifstream ifile("telph.dat");//建立输入文件

if(ifile.fail())

{

ofstream ofile("telph.dat");//建立输出文件

if(ofile.fail()) throw(" 打开文件失败 ");

ofile.close();

}

else

{

ifile.close();

}

file.open("telph.dat",ios::out|ios::binary);

if(file.fail()) throw(" 打开文件失败 ");

}

void TelephoneBook::AddData()

{

TelephoneType telph;

telph.delflag=false;

char yesorno;

do

{

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

cin>>telph.seat;

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

cin>>telph.name;

cout<<"请输入电话号码 :";

cin>>telph.teleNo;

file.write( (char*)&telph,sizeof(TelephoneType));

cout<<"继续添加吗 ?";

cin>>yesorno;

}

while(yesorno!='n');//注意相应成趣改变

}

void TelephoneBook::UpdateData()

{

TelephoneType telph;

unsigned int seat;

cout<<"请输入要更新的电话号码的序号 ";

file.seekg(0);//从0位开始找

while(!file.eof())

{

if(telph.seat==seat&&!telph.delflag)

break;//找到了

file.read((char*)&telph,sizeof(TelephoneType));

}

if(!file.eof())

{

cout<<setw(8)<<telph.seat<<setw(18)<<telph.name<<setw(18)<<telph.teleNo<<endl;

cout<<"输入更新以后的数据:";

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

cin>>telph.seat;

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

cin>>telph.name;

cout<<"请输入电话号码:";

cin>>telph.teleNo;

file.seekg(-sizeof(TelephoneType),ios::cur);

file.write((char*)&telph,sizeof(TelephoneTye));

}

else

{

cout<<"查无此号!"<<endl;

file.clear();

}

}

void TelephoneBook::SearchData()

{

TelephoneType telph;

unsigned int seat;

cout<<"输入要查询电话号码的序号:";

cin>>seatl;

file.seekg(0);//从0位开始找。

file.read((char*)&telph,sizeof(TelephoneType));//没有找到就往下找

while(!file.eof())

{

if(telph.seat--seat&&!telph.delflag)

break;//找到了

}

if(!file.eof())

{

cout<<setw(8)<<"号码序号:"<<setw(18)<<"姓名:"<<setw(18)<<"电话号码"<<endl;

cout<<" "<<endl;

cout<<setw(8)<<telph.seat<<setw(18)<<telph.name<<setw(18)<<telph.teleNo<<endl;

cout<<" "<<endl;

}

else

{

cout<<"查无此号!"<<endl;

file.clear();

}

}

void TelephoneBook::DeleteData()

{

TelephoneType telph;

unsigned int seat;

cout<<输入删除的电话号码的序号

cin>>seat;

file.seekg(0);//从0位开始找。

file.read((char*)&telph.sizeof(TelephoneType));

while(!file.eof())

{

if(telph.seat==seat && !telph.delflag)

break;//找到了

file.read((char*)&telph,sizeof(TelephoneType));//没找到就往下找。

}

if(!file.eof())

{

cout<<"被删除的记录为:"<<endl;

cout<<setw(8)<<telph.seat<<setw(18)<<telph.name<<setw(8)<<telph.telNo<<endl;

telph.delflag=true;

file.seekg(-sizeof(TelephoneType),ios::cur);

file.write((char*)&telph,sizeof(TelephoneType))//ikgikgbg

cout<<"删除成功!";

}

else

{

cout<<"删除失败!"<<endl;

file.clear();

}

}

void TelephoneBook::Pack()

{

ofstream outfile("tem.dat",ios::app|ios::binary);

TelephoneType telph;

file.seekg(0);

file.read((char*)&telph,sizeof(TelephoneType));

while(!file.eof())

{

if(!telph.delflag)

{

outfile.write((char*)&telph,sizeof(TelephoneType));

}

file.close();

outfile.close();

remove("telph.dat");

rename("tem.dat","telph.dat");

file.open("telph.dat",ios::in|ios::out|ios::binary);

}

void TelephoneBook::run()

{

int sel;

do

{

cout<<" 请选择:"<<endl;

cout<<"1.增加数据"<<endl;

cout<<"2.更新数据"<<endl;

cout<<"3.查询数据"<<endl;

cout<<"4.删除数据"<<endl;

cout<<"5.重组文件"<<endl;

cout<<"6.退出"<<endl;

cin>>sel;

while(cin.get()!='\n');//;dkf;IdfkI;df

switch(sel)

{

case 1:

AddData();

break;

case 2:

UpdateData();

break;

case 3:

SearchData();

break;

case 4:

DeleteData();

break;

case 5:

Pack();

break;

}

}

while(sel!=6);

}

#endif

四、设计心得

经过一个学期的学习和上机实践,使我对C++语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、指针数组、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。

五、参考文献

[1]吴乃陵, 况迎辉.C++课程设计. 北京:高等教育出版社,2006

[2]谢昕,刘觉夫,王更生.C++程序设计.北京:北京邮电大学出版社,2008

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
伤感歌曲越多越好!可以是纯音乐
梦幻西游养孩子计划
女伴男装声音怎么办?
请问有谁知道家庭维修电的时候怎样才不会触电
女人这样子威的?详细说下
封号3天后再用猪会怎样?
无锡清华同方面试问题
怎么让他知道我爱他
小豆现磨豆浆吧(洪都南大道店)这个地址在什么
有要数码相机的吗?找我
滔滔怎么注册不了
找几个好看的电视剧
哪个兄弟给我个天龙八部2的号在在朋友面前洋
农场什么时候开啊,我手机登录不上去啊
我很想长胖,但就是长不胖,想瘦却很容易,到
推荐资讯
跪求若顿激活码!!!!!!!!!
空间首页日志模块日志顺序排列
电脑桌面正常启动但是点任何图标没有反应,一
维生素B2和维生素C,能够同时食用吗?
王飞通信专营店在哪里啊,我有事要去这个地方
对你好的男生,是一定很爱你吗
怎么消除与异性接触反常?
怎样快速度去除青春痘?
现在农场黄钻什么都不送了,可知道为什么啊?
大草原羊肉专卖总店在哪里啊,我有事要去这个
用软件显示独显显存大小不一,请问与内存共享
上海南汇芦潮港学农基地的足球场地怎么样啊?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?