谁能给我个c++课程设计的题目啊,我想做个大点的程序、、
- 提问者网友:绫月
- 2021-05-02 14:39
- 五星知识达人网友:思契十里
- 2021-05-02 15:35
一、目的与要求:
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)完成系统总结报告以及系统使用说明书。
- 1楼网友:野味小生
- 2021-05-02 16:30
一、课程设计要求
(以下内容,全部按:宋体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