C++课程设计报告( 20 -- 20 年度第学期)专业学生班级学号指导教师完成日期目录目录 (2)1概述 (4)1.1 课程设计目的 (4)1.2 课程设计容 (4)2系统需求分析 (4)2.1 主体功能 (4)2.2 开发环境 (4)3系统概要设计 (5)3.1 系统功能划分 (5)●录入家具信息input() (5)●显示家具信息display() (5)●删除家具信息del() (5)●查询家具成绩find() (5)●从文件读入家具信息read() (5)●修改家具信息modi() (5)●保存家具信息save() (5)●退出exit (5)3.2 系统流程图 (6)4系统详细设计 (7)4.1 设计步骤 (7)4.2 运行结果 (8)4.3 实现主菜单的函数 (11)在每做一个函数完成的时候就会测试单独的函数最后总测试 (13) (13)主界面运行 (13) (13)显示存中记录的界面 (13)查询家具界面 (14)修改家具信息界面6小结 (14)参考文献 (16)附录 (17)附录1源程序清单 (17)家具进货管理的设计与实现1 概述1.1 课程设计目的1、巩固并加深学生对C++语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC++ 6.0集成开发环境;4、提高运用C++语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。
1.2 课程设计容课题名称:家具进货管理系统的实现说明:实现一个家具进货管理系统。
要求:1)实现基本的输入输出。
2)能够实现录入,修改,查找,删除等基本功能。
2 系统需求分析进货系统要有家具名字、进价、建议售价、进货时间、进货数量需要有进货入账、及基本的数据功能。
2.1 主体功能1、数据录入2、数据显示3、数据删除4、数据从文件读取5、数据保存到文件6、数据修改2.2 开发环境VC++ 6.03 系统概要设计3.1 系统功能划分表3-1 系统功能●录入家具信息input()●显示家具信息display()●删除家具信息del()●查询家具成绩find()●从文件读入家具信息read()●修改家具信息modi()●保存家具信息save()●退出exit3.2 系统流程图图3-1 系统流程图4系统详细设计4.1 设计步骤首先运行vc6 新建c++文件并添加到一个新的工程中界面中首先按照系统需求创建结构体然后编写主函数菜单然后按照菜单的逻辑编写每一个函数每一个函数编写完都要测试测试好继续编写下一个函数。
4.2 运行结果运行界面效果如图4-8:图4-8 总菜单录入家具信息界面从文件读入家具信息显示家具信息查询家具信息修改家具信息界面4.3 实现主菜单的函数/*主函数*/void main(){//read();int as;/*一下为功能选择模块*/do{system("cls");start: cout<<"\n\t\t\t欢迎使用家具进货管理系统"<<endl;cout<<"\n\t\t-----------------------------------------"<<endl;cout<<"\n\t\t\t\t1.录入家具信息"<<endl;cout<<"\t\t\t\t2.显示家具信息"<<endl;cout<<"\t\t\t\t3.删除家具信息"<<endl;cout<<"\t\t\t\t4.查询家具成绩"<<endl;cout<<"\t\t\t\t5.从文件读入家具信息"<<endl;cout<<"\t\t\t\t6.修改家具信息"<<endl;cout<<"\t\t\t\t7.保存家具信息"<<endl;cout<<"\t\t\t\t0.退出"<<endl;cout<<"\t\t\t\t选择功能选项:"<<endl;fflush(stdin);scanf("%d",&as);switch(as){case 1:system("cls");input();break;case 2:system("cls");display();break;case 3:system("cls");del();break;case 4:system("cls");find();break;case 5:system("cls");read();break;case 6:system("cls");modi();break;case 7:system("cls");save();break;case 0:system("exit");exit(0);default:system("cls");goto start;}}while(1);/*至此功能选择结束*/}函数用了一个死循环在按7 的时候退出主函数程序结束其他根据按不用的数字键执行不用的函数来完成相应的功能5 测试在每做一个函数完成的时候就会测试单独的函数最后总测试主界面运行显示存中记录的界面查询家具界面修改家具信息界面6 小结通过一个多星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。
看着劳动成果,很欣慰!刚开始,可以说是完全没有头绪,于是上网查,找到了些与我题目相似的源代码,然后对之进行修改,测试,最后得到我这次课程设计所需要的代码.通过计算器的设计这一课题的设计和实现,我对简单的C语言编程有了进一步的认识,对Microsoft Visual C++ 6.0这个程序的操作更加熟练了一些。
回顾此次的课程设计,我学到了很多东西不仅巩固了书本的知识并且与实践相结合提高具体操作能力,在设计的过程中发现自己的不足,有些知识掌握的不够牢靠,通过这次的课程设计之后我把前面所学的知识又重新温故了一遍。
同时,在老师和同学身上我学到了很多非常实用的知识,在此对给过我帮助的同学和老师表示由衷的感!参考文献[1]谭浩强.C程序设计(第三版)[M].:清华大学,2005.[2]谭浩强.C程序设计题解与上机指导(第三版)[M].:清华大学,2005.[3] 甄炜.C++语言和面向对象程序设计教程[M].:机械工业,2005.附录附录1 源程序清单#include<iostream.h>#include<time.h>#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<string.h>#define MAX 30//自定义函数声明区void input();void display();void del();void read();void find();void modi();void save();int now_no=0;struct jiaju{char mingzi[17]; //名字float jinjia; //进价float jianyishoujia; //建议售价char jinhuoshijian[12]; //进货时间int jinhuoshuliang; //进货数量};struct jiaju jj1[MAX];/*主函数*/void main(){//read();int as;/*一下为功能选择模块*/do{system("cls");start: cout<<"\n\t\t\t欢迎使用家具进货管理系统"<<endl;cout<<"\n\t\t-----------------------------------------"<<endl;cout<<"\n\t\t\t\t1.录入家具信息"<<endl;cout<<"\t\t\t\t2.显示家具信息"<<endl;cout<<"\t\t\t\t3.删除家具信息"<<endl;cout<<"\t\t\t\t4.查询家具成绩"<<endl;cout<<"\t\t\t\t5.从文件读入家具信息"<<endl;cout<<"\t\t\t\t6.修改家具信息"<<endl;cout<<"\t\t\t\t7.保存家具信息"<<endl;cout<<"\t\t\t\t0.退出"<<endl;cout<<"\t\t\t\t选择功能选项:"<<endl;fflush(stdin);scanf("%d",&as);switch(as){case 1:system("cls");input();break;case 2:system("cls");display();break;case 3:system("cls");del();break;case 4:system("cls");find();break;case 5:system("cls");read();break;case 6:system("cls");modi();break;case 7:system("cls");save();break;case 0:system("exit");exit(0);default:system("cls");goto start;}}while(1);/*至此功能选择结束*/}void input()//**************************************************数据录入模块{int i=0;char ch,ch2;do{cout<<"\t\t\t\t1.录入家具信息\n输入第"<<i+1<<"个家具的信息\n"<<endl;cout<<"\n输入名字:"<<endl;fflush(stdin);gets(jj1[i].mingzi);fflush(stdin);cout<<"\n输入进货时间XXXX-MM-DD:"<<endl;fflush(stdin);gets(jj1[i].jinhuoshijian);cout<<"\n输入进价:"<<endl;fflush(stdin);cin>>jj1[i].jinjia;cout<<"\n输入建议售价:"<<endl;fflush(stdin);scanf("%f",&jj1[i].jianyishoujia);cout<<"\n进货数量:"<<endl;fflush(stdin);cin>>jj1[i].jinhuoshuliang;cout<<"\n\n"<<endl;i++;now_no=i;cout<<"是否继续输入?(Y/N)"<<endl;fflush(stdin);ch=getch();}while(ch!='n'&&ch!='N');cout<<"是否保存数据?(Y/N)"<<endl;fflush(stdin);ch2=getch();if(ch2=='y' || ch2=='Y')save();system("cls");}void save()//**************************************************保存信息模块{FILE *fp;int i;char filepath[20];//cout<<"输入要保存的文件路径:");//fflush(stdin);//gets(filepath);strcpy(filepath,"result.txt");char ch;cout<<"保存(1)还是追加(2)?(1/2)";fflush(stdin);ch=getch();if(ch=='2')fp=fopen(filepath,"a");elsefp=fopen(filepath,"w");if(fp==NULL){cout<<"\n保存失败!";exit(0);}for(i=0;i<now_no;i++){fprintf(fp,"%-17s%-8.2f%-8.2f%-12s%-6d\n",jj1[i].mingzi,jj1[i].jinjia,jj1[i].jianyishoujia,jj1[i].ji nhuoshijian,jj1[i].jinhuoshuliang);}fclose(fp);cout<<"家具进货信息已保存在%s中!\n",filepath;system("pause");system("cls");}void read()//**************************************************从文件读取信息模块{FILE *fp;int i;char filepath[20];strcpy(filepath,"result.txt");if((fp=fopen(filepath,"r"))==NULL){cout<<"找不到%s文件!\n",filepath;exit(0);}now_no=0;for(i=0;i<MAX&&!feof(fp);i++){fscanf(fp,"%17s%8f%8f%12s%6d\n",jj1[i].mingzi,&jj1[i].jinjia,&jj1[i].jianyishoujia,jj1[i].jinhu oshijian,&jj1[i].jinhuoshuliang);now_no++;}fclose(fp);//cout<<"保存的在文件%s中的所有信息已经读入!\n",filepath);system("pause");system("cls");}void display()//**************************************************显示模块{int i;cout<<"名字-------------进价------建议售价----进货时间----进货数量\n"<<endl;for(i=0;i<now_no;i++){printf("%-17s%-11.2f%-11.2f%-15s%-6d\n",jj1[i].mingzi,jj1[i].jinjia,jj1[i].jianyishoujia,jj1[i].jin huoshijian,jj1[i].jinhuoshuliang);if(i%15==0 && i>0)system("pause");}system("pause");}void del()//**************************************************删除模块{int inum,i,j,k,x=0;char str[19];j=0;k=0;if(now_no==0){cout<<"记录集为空"<<endl;system("pause");}cout<<"\n输入要删除的家具名字:"<<endl;fflush(stdin);gets(str);for(i=0;i<now_no;i++)if(strcmp(jj1[i].mingzi,str)!=0){jj1[j++]=jj1[i];k++;}else{x=1;cout<<"要删除的家具信息为\n<<endl";cout<<"名字-------------进价------建议售价----进货时间----进货数量\n<<endl";printf("%-17s%-11.2f%-11.2f%-15s%-6d\n",jj1[i].mingzi,jj1[i].jinjia,jj1[i].jianyishoujia,jj1[i].jin huoshijian,jj1[i].jinhuoshuliang);system("pause");}if(x==0){cout<<"没有找到要删除的家具";system("pause");}now_no=k;system("cls");}void find()//**************************************************查找模块(按名字){char str[19];int i,x=0;cout<<"\n输入要查询的家具名字:"<<endl;fflush(stdin);gets(str);for(i=0;i<now_no;i++)if(strcmp(jj1[i].mingzi,str)==0){x=1;cout<<"名字-------------进价------建议售价----进货时间----进货数量\n"<<endl;printf("%-17s%-11.2f%-11.2f%-15s%-6d\n",jj1[i].mingzi,jj1[i].jinjia,jj1[i].jianyishoujia,jj1[i].jin huoshijian,jj1[i].jinhuoshuliang);}if(x==0){cout<<"没有找到要查询的家具";system("pause");}system("pause");}void modi()//**************************************************修改模块{int i=0;char str[19];char ch;fflush(stdin);//ch=getch();cout<<"\n输入要修改的家具名字:"<<endl;fflush(stdin);gets(str);for(i=0;i<now_no;i++)if(strcmp(jj1[i].mingzi,str)==0){fflush(stdin);cout<<"\n输入进货时间XXXX-MM-DD:"<<endl;fflush(stdin);gets(jj1[i].jinhuoshijian);cout<<"\n输入进价:"<<endl;fflush(stdin);cin>>jj1[i].jinjia;cout<<"\n输入建议售价:"<<endl;fflush(stdin);cin>>jj1[i].jianyishoujia;cout<<"\n进货数量:"<<endl;fflush(stdin);cin>>jj1[i].jinhuoshuliang;break;}system("cls");}。