计算机本科c++课程设计题目及要求.docx
- 文档编号:7182914
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:70
- 大小:101.30KB
计算机本科c++课程设计题目及要求.docx
《计算机本科c++课程设计题目及要求.docx》由会员分享,可在线阅读,更多相关《计算机本科c++课程设计题目及要求.docx(70页珍藏版)》请在冰豆网上搜索。
计算机本科c++课程设计题目及要求
课程设计题目及要求
一.题目(在下列题目中,每人任选一题)
1、工资管理系统
2、人事管理系统
3、银行储蓄管理系统
4、客房管理系统
5、学生学籍管理系统
6、考试管理系统
7、民航(铁路)订票系统
8、商场销售管理系统
9、水电管理系统
10、证券交易分析系统
11、商场(工厂)库存管理系统
12、公路交通管理系统
二、文档要求
1、需求分析;
2、系统总框图;
3、每个模块的设计分析;
4、列出所有定义的函数及说明;
5、举例说明1、2个比较有特点的算法;
6、存在的问题与不足及对策;
7、使用说明(操作手册);
8、附上程序源代码;
以上仅提供参考。
三.要求
1、所写的有效代码不得少于300行,并用A4幅面的纸打印,封面格式参考范例,正文用宋体五号字,标题用黑体五号,正文字数不的少于2000字,不含源代码。
2、用A4幅面的纸打印出文档,。
3、在程序中,最好使用文件作为数据载体。
四、成绩评定方法
根据课程设计完成的质量、正确性和工作量综合评分,具体如下:
1、文档:
50%
2、程序:
50%
范例一:
C++课程设计报告
设计题目:
人事管理系统
学生姓名:
_______________
班级:
_______________
指导教师:
_______________
年月日
一、需求分析
在现代化的企业管理中,人事管理系统有着十分重要的作用,然而,用大型软件系统来于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种单位自然有十分重要作用。
某小型企业出与这种目的制作了这个人事管理系统
二、程序的主要功能
1、添加功能:
添加一个职员的基本信息,包括姓名,工作证号,身份证号码,生日,家庭住址,家庭电话号码,部门,薪水,性别,职务、
2、删除功能:
能够对一个职员的信息进行删除按姓名进行删除、
3、除全部职员信息:
能够对于全部职员的信息进行删除!
4、显示功能:
显示所有职员的主要信息包括姓名,身份证号码,工作证号,生日、!
5、查找功能:
根据你键入的职员姓名,显示其详细信息!
6、修改功能:
对职员的信息进行修改。
三、程序运行平台
具体操作如下:
首先进入VC++6.0,打开原代码person.cpp,然后进入原程序,接着选择Options下的Linker,选择Libraries,弹出一个对话框,再选择Graphicslibrary,然后确认即可!
!
四、系统总框架图
五、程序类的说明
∙Date类的声明
classDate
{
public:
Date();//Date类的构造函数
voidset();//Date类的设置函数
friendistream&operator>>(istream&in,Date&da);//重载“》”
friendostream&operator<<(ostream&out,Dated);//重载“《”
voidoperator=(Dated);重载“=”
private:
intyear;//年
intmonth;//月
intday;//日
};
∙people类的声明
classpeople
{
public:
people();//people类的构造函数
friendostream&operator<<(ostream&out,peoplep);//重载“〈〈”
friendistream&operator>>(istream&in,people&p);//重载“〈〈”
voidoperator=(peoplep);//重载“=”
voidset();//people类的设置函数
char*getname();//获得姓名
char*getsex();//获得性别
char*getid();//获得id
char*gettelephone();//获得电话号码
Dategetbirthday();//获得生日
char*getnumber();//获得工作证号
voidsetname(char*);//设置姓名
voidsetsex(char*);//设置性别
voidsetid(char*);//设置id
voidsetnumber(char*);//设置工作证号
voidsetaddress(char*);//设置家庭地址
voidsettelephone(char*);//设置电话号码
voidsetbirthday(Date);//设置出生日期
voidsetsalary(char*);//设置薪水
voidsetpost(char*);//设置职务
voidsetdepartment(char*);//设置工作部门
protected:
charname[20];//姓名
charsex[5];//性别
charid[20];//身份证号
chartelephone[10];//电话号码
Datebirthday;//出生日期
charnumber[20];//工作证号
charaddress[100];//家庭地址
charsalary[10];//薪水
charpost[20];//职务
chardepartment[30];//工作部门
public:
people*next;//下一个节点
people*previous;//上一个节点
};
classpeoplelist:
publicpeople
{
public:
peoplelist();//peoplelist类的构造函数
voidset();//peoplelist类的设置函数
voidadd();//添加函数
voiddisplay();//显示函数
voidfind();//查找函数
voiddeleteAll();//清空函数
voidsave();//写入文件
voidload();//读进内存
voidmodify();//修改函数
voidremove();//删除函数
private:
people*start;//链表头
people*end;//链表尾
};
六、模块分析
1.添加模块
系统将提示用户输入新添加的职员的信息,插入在链表中
2.显示模块
显示模块将输出所有职员的主要资料。
3.修改模块
首先由用户输入要修改的职员的姓名,然后系统用修改函数查找,显示该名职员的资料,然后系统提示用户输入需要修改的项目和新的资料。
4.查找模块
首先由用户输入要查找的职员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的职员资料。
5.删除模块
首先由用户输入要删除的单个职员姓名,然后调用删除函数,删除该名职员的资料。
6.清空模块
系统将会把所有职员的资料全部删除,将链表清空。
七、比较有特色的函数
voidpeoplelist:
:
remove()
{
textmode(C80);
textbackground(BLUE);
clrscr();
gotoxy(10,10);
cout<<"pleaseinputthenameofthestudnetyouwanttoremove:
";
charn[20];
cin>>n;
clrscr();
people*temp;
temp=start;
while(temp)
{
if(strcmp(temp->getname(),n)==0)
break;
}
if(temp==NULL)
{
gotoxy(20,10);
cout<<"thestudentnamedosenotexist!
"< } else { if(temp->previous)//删除的节点不是第一个 { temp->previous->next=temp->next; if(temp->next)//删除的节点不是最后一个 temp->next->previous=temp->previous; else end=temp->previous; } else//删除的节点是第一个 { if(temp->next)//删除的节点不是最后一个 { temp->next->previous=NULL; start=temp->next; } else start=end=NULL;//删除节点是最后一个,链表只有一个节点 } gotoxy(30,10); cout<<"removesucceed! "< } getch(); } 八、存在的不足与对策 由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,查错能力也不强,对于一些不正确的输入可能会造成一些难以预料的结果,因此,请不要故意输入错误信息。 这些不足请老师多多谅解。 今后设计者会更多的学习编程技巧,不断的提高程序设计水平。 九、程序源代码 #include"iostream.h" #include"string.h" #include"stdlib.h" #include"stdio.h" #include"fstream.h" #include"conio.h" #include"graphics.h" #include"dos.h" #include"process.h" #defineTURE1 #defineFALSE0 #defineKB_S_N_DOWN80 #defineKB_S_N_UP72 #defineKB_S_N_ENTER28 #defineKB_S_N_D32 #defineKB_S_N_Q16 #defineKB_S_N_M50 #defineKB_S_N_A30 #defineKB_S_N_F33 #defineKB_S_N_R19 #defineKB_S_N_E18 voidWelcome(); intget_key(); intgetitem(int); voidlight_bar(); voidbox(intx,inty,intwi,inthi,charbkcolor,charcolor); introw,item_num=7; unsignedsize; void*buf; ///////////////////////////////////////////// voidbox(intx,inty,intwi,inthi,charbkcolor,charcolor) { textbackground(bkcolor); textcolor(color); inti; gotoxy(x,y); putch(0xda); for(i=1;i putch(0xc4); putch(0xbf); for(i=1;i { gotoxy(x,i+y);putch(0xb3); gotoxy(x+wi,i+y);putch(0xb3); } gotoxy(x,y+hi); putch(0xc0); for(i=1;i putch(0xd9); } ///////////////////////////////////////////// voidWelcome() { intgraphdriver=VGA; intgraphmode=VGAHI; initgraph(&graphdriver,&graphmode,"d: \\bc\\bgi"); intseed=1858; intdotx,doty,h,w,color,maxcolor; maxcolor=getmaxcolor(); w=getmaxx(); h=getmaxy(); srand(seed); for(inti=0;i<250;i++) { dotx=i+random(w-1); doty=i+random(h-1); color=random(maxcolor); setcolor(color); putpixel(dotx,doty,color); circle(dotx+1,doty+1,1); } srand(seed); settextstyle(TRIPLEX_FONT,HORIZ_DIR,6); outtextxy(30,150,"Welcometothesystem"); getch(); closegraph(); } ///////////////////////////////////////////////// intgetitem(introw) { intkey,done; done=FALSE; do { key=get_key(); switch(key) { caseKB_S_N_DOWN: putimage(543,91+row*25,buf,XOR_PUT); if(row==item_num-1) row=0; else row++; putimage(543,91+row*25,buf,XOR_PUT); break; caseKB_S_N_UP: putimage(543,91+row*25,buf,XOR_PUT); if(row==0) row=item_num-1; else row--; putimage(543,91+row*25,buf,XOR_PUT); break; caseKB_S_N_D: if(row! =0) { putimage(543,91+row*25,buf,XOR_PUT); row=0; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_A: if(row! =1) { putimage(543,91+row*25,buf,XOR_PUT); row=1; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_F: if(row! =2) { putimage(543,91+row*25,buf,XOR_PUT); row=2; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_M: if(row! =3) { putimage(543,91+row*25,buf,XOR_PUT); row=3; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_R: if(row! =4) { putimage(543,91+row*25,buf,XOR_PUT); row=4; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_E: if(row! =5) { putimage(543,91+row*25,buf,XOR_PUT); row=5; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_Q: if(row! =6) { putimage(543,91+row*25,buf,XOR_PUT); row=6; putimage(543,91+row*25,buf,XOR_PUT); } done=TURE; break; caseKB_S_N_ENTER: done=TURE; break; default: break; } }while(! done); returnrow; } /////////////////////////////////////////////////// intget_key() { unionREGSrg; rg.h.ah=0; int86(0x16,&rg,&rg); returnrg.h.ah; } /////////////////////////////////////////////// voidlight_bar() { putimage(543,91,buf,XOR_PUT); setcolor(WHITE); } /////////////////////////////////////// classDate { public: Date(); voidset(); friendistream&operator>>(istream&in,Date&da); friendostream&operator<<(ostream&out,Dated); voidoperator=(Dated); private: intyear; intmonth; intday; }; /////////////////////////////////////////// Date: : Date() { year=month=day=0; } ///////////////////////////////////////////////////// istream&operator>>(istream&in,Date&da) { A: inty,m,d; in>>y>>m>>d; if(y>2002) { cout<<"error! "< gotoA; } else da.year=y; if(m>12||m<1) { cout<<"error! "< gotoA; } else da.month=m; staticintdaysmonth[13]={0,31,28,31,30, 31,30,31,31,30, 31,30,31}; if(m! =2) { if(d>daysmonth[m]||d<1) { cout<<"error! "< gotoA; } else da.day=d; } else { if((y%100==0)||y%4==0&&y%100! =0) { if(d<0||d>29) { cout<<"error! "< gotoA; } else da.day=d; } else { if(d<0||d>28) { cout<<"error! "< gotoA; } else da.day=d; } } returnin; } ///////////////////////////////////////////// ostream&operator<<(ostream&out,Dated) { out< returnout; } ///////////////////////////////// voidDate: : operator=(Dated) { year=d.year; month=d.month; day=d.day; } /////////////////////////////////////////// classpeople { public: people(); friendostream&operator<<(ostream&out,peoplep); friendistream&operator>>(istream&in,people&p); voidoperator=(peoplep); voidset(); voidchange(); char*getname(); char*getsex(); char*getid(); char*gettelephone(); Dategetbirthday(); char*getnumber(); voidsetname(char*); voidsetsex(char*); voidsetid(char*); voidsetnumber(char*); voidsetaddress(char*); voidsettelephone(char*); voidsetbirthday(Date); voidsetsalary(char*); voidsetpost(char*); voidsetdepartment(char*); protected: charname[20]; charsex[5]; charid[20]; chartelephone[10]; Datebirthday; charnumber[20]; charaddress[100];
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 本科 c+ 课程设计 题目 要求