面向对象程序设计课程设计报告同学通讯录管理程序
面向对象程序设计课程设计--个人通讯录管理
exportbutton.addActionListener(new export());
/*容器设置*/
con.add(pane);//添加面板
3.输入需要查询的联系人姓名,可以查询联系人的信息。
4.输入需要删除的联系人姓名,可以删除联系人。
5.可以查询全部联系人信息。
6.可以备份全部联系人的信息。
4.2总体设计
1.java.awt包,包含构成抽象窗口的工具集(abstract window toolkit)的多
个类,用来构建和管理应用程序的图形用户界面(GUI)。
combobox=new JComboBox(items);
sexlabel=new JLabel("性别:",SwingConstants.CENTER);
manradiobutton=new JRadioButton("男");
womanradiobutton=new JRadioButton("女");
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目个人通讯录管理
专业班级软件10-6班
2012年06月
目录
1设计时间1
2设计目的1
3设计任务1
4设计内容1
4.1需求分析1
4.1.1问题描述1
4.1.2基本要求1
4.2总体设计2
4.2.1包的描述2
4.2.2类的描述2
4.2.3类之间的关系2
4.3详细设计2
pane8.add(findbutton);
pane9=new JPanel(new FlowLayout(FlowLayout.CENTER,1,1));
面向对象程序设计课程设计报告同学通讯录管理程序
目录1.设计题目 (1)2.设计目的和内容 (1)2.1设计目的 (1)2.2设计内容 (1)3.基本功能描述 (1)4.设计思路 (1)5.软件设计 (2)5.1设计步骤 (2)5.2界面设计 (3)5.3关键功能的实现 (3)5.3.1添加记录 (3)5.3.2删除记录 (4)5.3.3选中记录 (4)5.3.4确认修改 (4)5.3.5保存记录 (4)5.3.6退出 (4)6.结论与心得体会 (4)7.参考文献 (4)8.附录 (5)8.1调试报告及测试结果 (5)8.2关键源代码 (10)8.2.1 Student类 (10)8.2.2全局 (10)8.2.3List Control初始化 (10)8.2.4添加记录 (11)8.2.5删除记录 (11)8.2.6选中记录 (12)8.2.7修改记录 (12)8.2.8保存记录 (13)8.2.9退出程序 (13)1.设计题目同学通讯录管理程序2.设计目的和内容2.1设计目的1)学习Visual C++的MFC开发程序的步骤。
.2)综合运用所学的类、继承和多态的知识。
3)进一步掌握程序的调试方法。
2.2设计内容1)利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;2)设计通讯录的数据结构(如:以数组或者动态链表)和相应的类;3)完成对通讯录中记录的增加、修改、删除和显示;4)将通讯录存入文本文件。
3.基本功能描述可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。
4.设计思路1)创建基于对话框的MFC应用程序,添加控件:5个Edit Control、6个Button、1个List Control;2)在5个Edit Control分别输入相应信息,点击“添加记录”Button可在ListControl 中显示相应信息,同时清空五个Edit Control以便下一个学生信息的输入;3)点中List Control选中已有一组学生信息,点击“删除记录”Button可删除该组信息;4)点中List Control选中已有一组学生信息,点击“选择该列”Button将该列信息返回到5个Edit Control。
C++面向对象程序设计---通讯录课程设计报告8
C+H面向对象程序设计课程设计报告设计题目:_______________________________________学生学号:_______________________________________学生姓名:_______________________________________专业班级:_______________________________________学生成绩:_______________________________________指导教师:_______________________________________计算机科学与技术系20* * ** **设计任务分析实现以下功能:1) 通讯录编辑(添加、删除);2) 按不同的项进行查找;3) 对已存在的通讯录按不同的项排序;4) 将通讯录写入文件;5) 从文件读入通讯录。
模块设计本次程序设计主要设计了六个模块(主要是: a.add(), a.del(),a.correct(),a.find1(),a.list1(),a.read(),a.write())a.add()函数用于通讯录中的信息进行添加,主要流程如下:a.del()函数用于通讯录中的信息进行删除,主要流程如下:a.correct()函数用于通讯录中的信息进行修改,主要流程如下:a.find1() 函数用于通讯录中的信息进行查找,主要流程如下:a」ist1()函数用于通讯录中的信息进行排序,主要流程如下:a.read()函数用于从文本文件中读取信息,主要流程如下:a.write()函数用于将信息写入文本文件,主要流程如下:三、主要数据结构结构数组:struct student{char no[13];// 结构体// 学号char name[20];// 姓名char address[100]; // 地址char tel_no[12]; // 电话char post_code[7];// 邮编char e_mail[40]; }class inter{private://E-mail//派生类// 派生类增加或替代的私有成员student st[35];public: // 派生类增加或替代的公有成员void add(char no[13],char post_code[7],char e_mail[40]); // 成员函数,添加联系人void del(char name[20]);// 成员函数,删除联系人void find1(char no[13]);// 成员函数,按学号查找联系人voidfind2(char name[20]);// 成员函数,按姓名查找联系人void list1();// 成员函数,排序联系人void list2();// 成员函数,排序联系人int correct(char name[20]);// 成员函数,修改联系人void read();// 成员函数,读取文本文件void write();// 成员函数,写入文本文件void format();// 成员函数,格式化内存保存的数据int back()// 成员函数,返回首页void print(int i)name[20],char address[100],char tel_no[12],char// 成员函数,输出显示}四、流程图五、源代码#include<iostream.h> #include<fstream.h> #include<string.h> struct student // 结构体{char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];};class inter{private:student st[35];public:void add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]);void del(char name[20]);void find1(char no[13]);void find2(char name[20]);void list1();void list2();int correct(char name[20]);void read();void write();void format();int back(){cout<<" 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写)Jchar back;cin>>back;if(back=='R'||back=='r')return 1; else return 0;}void print(int i){cout<<" 学号 :"<<st[i].no<<endl; cout<<" 姓名 :"<<st[i].name<<endl; cout<<" 地址 :"<<st[i].address<<endl; cout<<" 电话号码 :"<<st[i].tel_no<<endl;cout<<" 邮编 :"<<st[i].post_code<<endl; cout<<"E_MAIL:"<<st[i].e_mail<<endl;}};// 主函数 首页 int main(){inter a; a.format(); char select1;cout<<endl;<<"\t\t ★★★★★★★★★★★★★★★★★★★★★★★★★★ " <<endl<<"\t\t ※※" <<endl <<"\t\t ※通迅录※" <<endl<<"\t\t ※※" <<endl<<"\t\t ※ 1. 通讯录编辑 .4.按序排列 . ※" <<endl <<"\t\t ※※" <<endl<<"\t\t ※ 2. 查询联系人 .5.将文件读入程序 . ※" <<endl <<"\t\t ※※" <<endl<<"\t\t ※ 3. 将资料写入文件 . 6. 格式化(慎用) . ※" <<endl<<"\t\t※※" <<endl<<"\t\t ★★★★★★★★★★★★★★★★★★★★★★★★★★ " <<endl<<"\t\tcin>>select1; char select2; top:cout<<"\t\t计科 N082 " <<endl "<<endl<<endl<<"\t\t\t选择switch(select1){case '1':cout<<" (1)cout<<" (2) cout<<" (3) 添加 :"<<endl; 删除 :"<<endl; 修改 :"<<endl; cout<<"请选择 :"<<endl;输入添加的资料 :"<<endl;输入学号 :"<<endl;输入姓名 :"<<endl; 输入地址 :"<<endl; 输入电话号码 :"<<endl; 输入邮编 :"<<endl; 输入 E_mail:"<<endl; a.add(no,name,address,tel_no,post_code,e_mail); cout<<"返回还是回到主菜单 (T 为退出,R 为回到主菜单, 写) : "; char back_add;cin>>back_add;if(back_add=='R'||back_add=='r')goto top; elsegoto bottom; break;case '2':cout<<" 输入要删除人的姓名 :"<<endl; char name2[20]; cin>>name2; a.del(name2); cout<<" 返回还是回到主菜单 (T 为退出,R 为回到主菜单,写) : ";char back_del; cin>>back_del;if(back_del=='R'||back_del=='r')goto top; elsegoto bottom;cin>>select2; switch(select2){case '1':cout<<"char no[13]; char name[20]; char address[100]; char tel_no[12]; char post_code[7]; char e_mail[40];cout<<" cin>>no; cout<<" cin>>name; cout<<" cin>>address; cout<<" cin>>tel_no; cout<<" cin>>post_code;cout<<"cin>>e_mail;不计大小不计大小break;case '3':cout<<" charname3[20]; cin>>name3;if(a.correct(name3)) gototop;else goto bottom;break;}break;case '2':cout<<" (1)cout<<" (2) charselect3;输入需要修改人的姓名:"<<endl;根据姓名查找"<<endl; 根据学号查找"<<endl;cout<<" 请选择: ";cin>>select3;switch(select3){case '1':char name4[20];cout<<" 输入姓名: "cin>>name4;a.find2(name4);cout<<" 返回还是回到主菜单(T为退出,R为回到主菜单,写) : ";不计大小char back_f1;cin>>back_f1;if(back_f1=='R'||back_f1=='r')goto top;elsegoto bottom;break;case '2':char no4[13];cout<<" 输入学号: ";cin>>no4;a.find1(no4);cout<<" 返回还是回到主菜单(T为退出,R为回到主菜单,写) : ";char back_f2;cin>>back_f2;if(back_f2=='R'||back_f2=='r')goto top;elsegoto bottom;break;不计大小返回还是回到主菜单 (T 为退出,R 为回到主菜单,不计大小写)char back_w; cin>>back_w; if(back_w=='R'||back_w=='r')goto top; elsegoto bottom; break;按学号排序 :"<<endl; 按姓名排序 :"<<endl; 请选择 :";char select4; cin>>select4; switch(select4){case '1':a.list1();cout<<" 返回还是回到主菜单 (T 为退出,R 为回到主菜单,不计大小 char back;cin>>back;if(back=='R'||back=='r')goto top; elsegoto bottom; break;case '2':a.list2();cout<<" 返回还是回到主菜单(T 为退出,R 为回到主菜单,不计大小写) : ";char back1; cin>>back1;if(back1=='R'||back1=='r')goto top; elsegoto bottom; break;}break;case '5':a.read();cout<<"返回还是回到主菜单(T 为退出,R 为回到主菜单,不计大小写)char back_r; cin>>back_r; if(back_r=='R'||back_r=='r') goto top; elsegoto bottom; break;case '6':cout<<" 请确认删除所有资料 !(Y/N) ";char select5; cin>>select5;if(select5=='Y'||select5=='y')a.format(); cout<<"返回还是回到主菜单(T 为退出,R 为回到主菜单,不计大小写)Jchar back_f; cin>>back_f; if(back_f=='R'||back_f=='r')break; case '3':a.write();cout<<" case '4':cout<<" (1)cout<<" (2) cout<<"写)goto top;elsegoto bottom;break;}bottom:cout<<" ★★★★★★★★★★★★欢迎使用本软件!★★★★★★★★★★★ "<<endl;return 0;}// 添加联系人void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){int x=1;for(int i=0;i<35;i++){if(!strcmp(st[i].no,"0")){strcpy(st[i].address,address);strcpy(st[i].e_mail,e_mail);strcpy(st[i].name,name);strcpy(st[i].no,no);strcpy(st[i].post_code,post_code);strcpy(st[i].tel_no,tel_no);x=0;}if(x==0)break;}}// 删除联系人void inter::del(char name[20]){ int x=1;for(int i=0;i<35;i++){if(!strcmp(st[i].name,name)){strcpy(st[i].address,"0");strcpy(st[i].e_mail,"0");strcpy(st[i].name,"0");strcpy(st[i].no,"0");strcpy(st[i].post_code,"0");strcpy(st[i].tel_no,"0");}else x=0;}if(x==0)cout<<" error: 输入姓名错误!"<<endl;}// 修改联系人int inter::correct(char name[30]){int x;for(int i=0;i<35;i++){if(!strcmp(st[i].name,name))x=i;}char select;cout<<" (1) 修改姓名:"<<endl;cout<<" (2) 修改学号:"<<endl;cout<<" (3) 修改地址:"<<endl;cout<<" (4) 修改邮编:"<<endl;cout<<" (5) 修改电话号码:"<<endl;cout<<" (6) 修改E_MAIL:"<<endl;cout<<" 请选择:";cin>>select;switch(select){case '1':cout<<" 输入要修改的姓名:" char name1[30];cin>>name1;strcpy(st[x].name,name1);cout<<" 修改成功!"<<endl; return back();break;case '2':cout<<" 输入要修改的学号:"; char no1[13];cin>>no1; strcpy(st[i].no,no1);cout<<" 修改成功!"<<endl; return back();break;case '3':cout<<" 输入要修改的地址:"; char address1[100];cin>>address1; strcpy(st[x].address,address1); cout<<" 修改成功!"<<endl;return back();break;case '4':cout<<" 输入要修改的邮编:"; char post_code1[7];cin>>post_code1; strcpy(st[x].post_code,post_code1);cout<<" 修改成功!"<<endl; return back();break;case '5':cout<<" 输入要修改的电话号码:" char tel_no1[12];cin>>tel_no1; strcpy(st[x].tel_no,tel_no1);cout<<" 修改成功!"<<endl; return back();break;case '6':cout<<" 输入要修改的E_MAIL:"; char e_mail1[40];cin>>e_mail1; strcpy(st[x].e_mail,e_mail1);cout<<" 修改成功!"<<endl; return back();break;}}// 按学号查询联系人void inter::find1(char no[13]){int x,y=1,z=1;for(int i=0;i<35;i++){if(!strcmp(st[i].no,no)){ x=i; z=0;}else y=0;if(z==0) break;} if(y==0)cout<<" 输入的学号查找不到!!!"<<endl; print(x); }// 按姓名查询联系人void inter::find2(char name[20]){int x,y=1,z=1;for(int i=0;i<35;i++){if(!strcmp(st[i].name,name)){ x=i; z=0;}else y=0;if(z==0) break;} if(y==0)cout<<" 输入的姓名查找不到!!!"<<endl; print(x); }// 读取文件void inter::read(){char name1[20];cout<<" 输入你要导入的文件名: "; cin>>name1;strcat(name1,".txt"); ifstream file(name1); char line[120];char no[120];char name[120];char address[120];char post_code[120];char tel_no[120];char e_mail[120];int time=0;file.getline(line,120); while(!file.eof()){for(int k=0;k<35;k++){if(time==0){ strcpy(no,line); time=1;for(int i=0;i<120;i++){if(no[i]==':'){ i++;for(int j=0;j<13;j++) {st[k].no[j]=no[i]; i++;}}} file.getline(line,120,'\n');}if(time==1){strcpy(name,line);time=2;for(int i=0;i<120;i++){if(name[i]==':'){ i++;for(int j=0;j<20;j++) {st[k].name[j]=name[i];i++;}} file.getline(line,120,'\n');}if(time== 2){ strcpy(address,line); time=3;for(int i=0;i<120;i++){if(address[i]==':'){i++;for(int j=0;j<100;j++){ st[k].address[j]=address[i]; i++;}}} file.getline(line,120,'\n');}if(time==3){ strcpy(tel_no,line); time=4;for(int i=0;i<120;i++){if(tel_no[i]==':'){i++;for(int j=0;j<12;j++){st[k].tel_no[j]=tel_no[i]; i++;}}} file.getline(line,120,'\n');}if(time==4){ strcpy(post_code,line); time=5;for(int i=0;i<120;i++){if(post_code[i]==':'){i++;for(int j=0;j<7;j++) {st[k].post_code[j]=post_code[i]; i++;}}} file.getline(line,120,'\n');}if(time==5){ strcpy(e_mail,line); time=0;for(int i=0;i<120;i++) {if(e_mail[i]==':'){ i++; for(int j=0;j<40;j++) {st[k].e_mail[j]=e_mail[i]; i++;}}} file.getline(line,120,'\n');}}} file.close();}// 写入文件void inter::write(){char name[20];cout<<" 输入要保存的文件名" cin>>name;strcat(name,".txt");ofstream savefile(name);for(int i=0;i<35;i++){savefile << " 学号:"<<st[i].no<<endl; savefile << " 姓名:"<<st[i].name<<endl;savefile << " 地址:"<<st[i].address<<endl;savefile << " 电话号码:"<<st[i].tel_no<<endl;savefile << " 邮编:"<<st[i].post_code<<endl;savefile << "E_MAIL:"<<st[i].e_mail<<endl;}savefile.close();}// 按学号排序void inter::list1(){for(int i=0;i<34;i++){for(int j=0;j<35-i;j++){if(strcmp(st[j].no,st[j+1].no)>0){char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];strcpy(no,st[j].no); strcpy(st[j].no,st[j+1].no); strcpy(st[j+1].no,no);strcpy(name,st[j].name); strcpy(st[j].name,st[j+1].name);strcpy(st[j+1].name,name);strcpy(address,st[j].address); strcpy(st[j].address,st[j+1].address);strcpy(st[j+1].address,address); strcpy(tel_no,st[j].tel_no);strcpy(st[j].tel_no,st[j+1].tel_no); strcpy(st[j+1].tel_no,tel_no);strcpy(post_code,st[j].post_code); strcpy(st[j].post_code,st[j+1].post_code);strcpy(st[j+1].post_code,post_code); strcpy(e_mail,st[j].e_mail);strcpy(st[j].e_mail,st[j+1].e_mail); strcpy(st[j+1].e_mail,e_mail);}}}for(int k=0;k<35;k++){int x=0;if(strcmp(st[k].no,"0")){print(k);x=1;}if(x==1){cout<<endl;cout<<" --------------------------------------------------------------------------- "<<endl;}}}// 按姓名排序void inter::list2(){for(int i=0;i<34;i++){for(int j=0;j<35-i;j++){if(strcmp(st[j].name,st[j+1].name)>0){char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];strcpy(no,st[j].no); strcpy(st[j].no,st[j+1].no); strcpy(st[j+1].no,no);strcpy(name,st[j].name); strcpy(st[j].name,st[j+1].name);strcpy(st[j+1].name,name);strcpy(address,st[j].address);strcpy(st[j].address,st[j+1].address);strcpy(st[j+1].address,address);strcpy(tel_no,st[j].tel_no); strcpy(st[j].tel_no,st[j+1].tel_no);strcpy(st[j+1].tel_no,tel_no); strcpy(post_code,st[j].post_code);strcpy(st[j].post_code,st[j+1].post_code); strcpy(st[j+1].post_code,post_code);strcpy(e_mail,st[j].e_mail); strcpy(st[j].e_mail,st[j+1].e_mail);strcpy(st[j+1].e_mail,e_mail);}}}for(int k=0;k<35;k++){int x=0;if(strcmp(st[k].no,"0")){print(k);x=1;}if(x==1){cout<<endl;cout<<" --------------------------------------------------------------------"<<endl;}}}// 格式化void inter::format(){for(int i=0;i<35;i++){strcpy(st[i].address,"0"); strcpy(st[i].e_mail,"0"); strcpy(st[i].name,"0"); strcpy(st[i].no,"0");strcpy(st[i].post_code,"0"); strcpy(st[i].tel_no,"0");}}六、测试情况运行程序,首页显示如下:按1 选择通讯录编辑,编辑通讯录,显示(1)添加,(2)删除,(3)修改,运行后结果如下:第一次使用,按1 添加联系人,填入相关信息,运行图如下:返回首页,按2 可以查找联系人,可以根据姓名查找和学号查找,本次运用学号查找,运行如下:返回首页,按4 可以进行排序,可以根据姓名和学号排序,按姓名排序需要自己编辑的姓氏排序规则才能使用,本次使用学号排序,运行如下:将资料写入文件功能是将编辑好的通讯录写入文本文件,文本文件的名字可以自己输入。
c语言课程设计通讯录管理系统课程设计报告
c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言通讯录管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其软件开发的基本思路与方法。
具体目标如下:1.知识目标:–理解C语言的基本数据类型、运算符、控制结构。
–学习C语言函数的定义与调用。
–掌握结构体、文件操作等高级C语言特性。
2.技能目标:–能够运用C语言实现简单的数据结构,如链表、数组。
–培养学生使用C语言进行程序设计的能力,能够独立完成程序编写、调试与优化。
–学会使用C语言实现文件操作,包括文件的读取与写入。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣,增强其自主学习的动力。
–通过项目实践,培养学生的团队协作能力和解决问题的能力。
–引导学生理解技术对生活的影响,培养其对技术发展的责任感。
二、教学内容教学内容选取C语言编程的核心知识点,结合通讯录管理系统的实例进行讲解。
具体内容包括:1.C语言基础:数据类型、变量、运算符、控制结构。
2.函数:函数定义、调用、参数传递、返回值。
3.数据结构:数组、链表、栈和队列。
4.文件操作:文件读写、文件指针。
5.通讯录管理系统实现:结构体定义、系统功能实现、项目管理。
三、教学方法结合C语言特点和通讯录管理系统实例,采用以下教学方法:1.讲授法:系统讲解C语言基础知识和通讯录管理系统的设计理念。
2.案例分析法:通过分析典型代码案例,让学生理解程序设计逻辑。
3.实验法:学生在实验室进行编程实践,巩固理论知识。
4.讨论法:分组讨论问题,培养学生的团队协作和沟通能力。
四、教学资源1.教材:《C程序设计语言》(K&R)、《C Primer Plus》。
2.参考书:《C语言编程思想》、《C语言实践》。
3.多媒体资料:教学PPT、在线编程教程、视频讲解。
4.实验设备:计算机、网络环境、编程环境(如Code::Blocks、VisualStudio)。
五、教学评估本课程的教学评估将综合考虑学生的平时表现、作业、考试等方面,以全面、客观、公正地评价学生的学习成果。
java课程教学设计(通讯录管理方案系统)
合肥学院计算机科学与技术系课程设计报告2013~2014 学年第二学期课程面向对象课程设计课程设计名称通讯录程序学生姓名XXX学号专业班级XXXXX指导教师 XXX20 年月目录一、设计题目 (1)二、设计要求 (1)三、总体设计 (1)3.1 系统功能框架 (1)3.2 系统功能说明 (3)四、详细设计 (3)1 .数据结构设计 (3)2 .系统模块设计 (10)五、运行结果 (13)一.设计题目随着社会的进步与发展,通讯越来越密切。
希望能通过对java 课程设计的学习和掌握来编写一个通讯录管理系统。
二.设计要求(1)只能使用Java 语言,采用面向对象方法进行设计,要求源程序要有适当的注释,使程序容易阅读。
2)程序必须与数据库进行通信3)系统必须是图形用户界面的形式并连接数据库三. 总体设计3.1系统总体功能框架图3.2系统功能说明1)具有新用户注册功能。
2)具有注册用户登录功能。
3)具有数据的录入功能。
4)具有数据查询功能,可以实现查询全部信息和按条件执行查询5)具有按条件删除数据功能。
6)具有统计功能4. 详细设计4.1 数据结构设计( java 程序设计)// 登录系统package com.ibm.etp.addressbook.action;import java.util.HashMap;import java.util.List;import er;import com.ibm.etp.addressbook.service.LoginService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {private static final long serialVersionUID = 1L;public String username;public String password;private String message;@Overridepublic String execute() throws Exception {HashMap<Object, Object> result = new HashMap<Object, Object>();List<User> list = null;System.out.println(username);if(username == null || username.trim().length() == 0){ result.put("success", false); result.put("msg","ername.empty");} else if(password == null || password.trim().length() == 0){ result.put("success", false);result.put("msg", "login.password.empty");} else {LoginService ls = new LoginService();list = ls.checkLogin(username);}if(list == null) {result.put("success", false); result.put("msg","er.not.exist");} else if(list.get(0).getPassword().equals(password)){ result.put("success", true); result.put("msg", "login.success");} else {result.put("success", false); result.put("msg","error.password.wrong");}if((Boolean) result.get("success")) {message = (String) result.get("msg"); return "success";} else {message = (String) result.get("msg"); return "error";}}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public void setUsername(String username) {ername = username;}public void setPassword(String password) {this.password = password;}public String getUsername() {return username;}public String getPassword() {return password;}}// 增加记录package com.ibm.etp.addressbook.action;import java.util.HashMap;import java.util.List;import er;import com.ibm.etp.addressbook.service.LoginService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; public String username;public String password;private String message;public String execute() throws Exception {HashMap<Object, Object> result = new HashMap<Object, Object>();List<User> list = null;System.out.println(username);if(username == null || username.trim().length() == 0){ result.put("success", false);result.put("msg", "ername.empty");} else if(password == null || password.trim().length() == 0){ result.put("success", false);result.put("msg", "login.password.empty");} else {LoginService ls = new LoginService(); list = ls.checkLogin(username);}if(list == null) { result.put("success", false); result.put("msg", "er.not.exist");} else if(list.get(0).getPassword().equals(password)){ result.put("success", true); result.put("msg", "login.success");} else { result.put("success", false); result.put("msg","error.password.wrong");}if((Boolean) result.get("success")) { message = (String)result.get("msg"); return "success";} else {message = (String) result.get("msg"); return "error";}}public String getMessage() {return message;}public void setMessage(Stringmessage) { this.message = message;public void setUsername(String username) { ername = username;}public void setPassword(String password) { this.password = password;}public String getUsername() { return username;}public String getPassword() { return password;}}// 删除记录package com.ibm.etp.addressbook.action;import java.util.ArrayList;import com.ibm.etp.addressbook.pojo.Record; importcom.ibm.etp.addressbook.service.DeleService;import com.opensymphony.xwork2.ActionSupport; public class DeleAction extends ActionSupport {private int id[];public String message; private boolean success=true;public boolean isSuccess() { return success;}private ArrayList<Record> list= new ArrayList<Record>(); publicArrayList<Record> getList() {return list;}public int getId(int i){ return id[i];}public int[] getId() { return id;}public void setId(int[] id) { this.id = id;public String getMessage() {return message;}public void setMessage(Stringmessage) { this.message = message;}public String execute() throws Exception { DeleService ds=new DeleService(); list=ds.removeRecord(this);try {success=true;return SUCCESS;}catch (Exception e) { success=false; return ERROR;}}}// 修改记录package com.ibm.etp.addressbook.action;import com.ibm.etp.addressbook.service.UpdateService;import com.opensymphony.xwork2.ActionSupport;public class UpdateAction extends ActionSupport { private int id;private String name;private String phone;private String email;private String birthday;private String sex;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;} public String getPhone() { return phone;}public void setPhone(Stringphone) { this.phone = phone;}public StringgetEmail() { returnemail;}public void setEmail(Stringemail) { this.email = email;} public String getBirthday() { return birthday;}public void setBirthday(Stringbirthday) { this.birthday =birthday;} public String getSex() { return sex;}public void setSex(Stringsex) { this.sex = sex;}public String execute() throwsException { UpdateService us=newUpdateService();if(us.setRecord(this)!=null) returnSUCCESS;else{ return ERROR;}}}// 查找记录行package com.ibm.etp.addressbook.action; import java.sql.SQLException;import java.util.List;import com.ibm.etp.addressbook.pojo.Record;import com.ibm.etp.addressbook.service.FindService; importcom.opensymphony.xwork2.ActionSupport; public class FindAction extends ActionSupport { private String field;private String input;private int size;private String sort;private List<Record> list ;private boolean success=true;public boolean isSuccess() { return success;}public List<Record> getList() {return list;}public void setList(List<Record> list) {this.list = list;}public String getField() {return field;}public void setField(Stringfield) { this.field = field;}public String getInput() {return input;}public void setInput(Stringinput) { this.input = input;}public int getSize() {return size;}public void setSize(intsize) { this.size = size;}public String getSort() {return sort;public void setSort(String sort) {this.sort = sort;}public String execute() throws Exception {FindAction fb = new FindAction(); fb.setField(field);fb.setInput(input);}fb.setSize(size);fb.setSort(sort);FindService fs = new FindService(); try { list = fs.find(fb);success=true; return SUCCESS;} catch (SQLException e) { e.printStackTrace(); success=false; return ERROR;4.2系统模块设计图1-1 登陆功能展示图LoginAction 类,封装的信息由密码和账户名,以及登录失败时抛出的异常方法。
课程设计---面向对象的程序设计C++电子通讯录系统
《面向对象程序设计》课程设计报告姓名:班级:信息管理062学号:200805030342信息工程学院信息管理系二〇〇9年十二月题目:建立一个电子通讯录管理系统一、题目要求:采用面向对象程序设计思想,利用二进制文件来存储数据,实现数据的输入、编辑(修改通讯信息)、管理(添加、删除)、查询(姓名查询、类别查询)等功能。
二、需求分析:根据题目要求,要实现数据的输入、编辑(修改通讯信息)、管理(添加、删除)、查询(姓名查询、类别查询)等功能。
(程序开始运行时,自动调用文件函数,将文件中的信息导入到内存里)输入-------人物姓名(name)、通讯类型(species)、手机号码(mobilephone)、办公号码(officenum)、家庭电话(homenum)、E-mail地址(emailadd)、家庭住址(address)的输入。
管理-------添加:根据选择的通讯类型,将输入的信息添加到链表中。
删除:分为两种。
1.根据姓名删除人物的通讯信息。
2.删除全部的人物信息。
(程序运行结束时,链表中剩下的信息被写到文件中)编辑-------对通讯信息的修改。
查询-------按照姓名、和通讯类型进行查询。
三、设计思路:1、文件格式设计:直接将man对象的数据挨个存到文件中。
2、对象设计:把人物的通讯信息设计成类man,由结构体inform负责对二进制文件的操作和数据记录的操作。
并设计简单的类型转换函数!(string 定义的对象转换成char 定义的字符串变量)3、利用链表来存放记录,所有记录在操作开始的时候读入文件中的存有的数据(由结构体inform取出,转移到类man的对象中,再记录到链表中),在结束的时候再把记录存回(步骤与读入记录时相反)二进制文件中。
4、设计优缺点:优点:1.类man中的私有数据采用了类string定义的对象,类string对象具有简单的输入、赋值、读取,具有很高的灵活性,更重要的是string定义的字符串没有限制一定的长度,具有动态性,使用者可以更好的控制字符串的长度。
c++ 简单通讯录管理系统 课程设计 报告
C++面向对象程序设计课程设计报告设计题目:简单通讯录管理系统学生学号:********学生姓名: ***专业班级:2010级飞行器设计专业指导教师:***航空宇航学院2011-6-211目录一.设计需求分析******************二.主要数据结构*******************三.特色**********************四.源代码*************************五.参考文献*************************一、设计需求分析2实现以下功能:1) 通讯录编辑(输入、储存、添加、删除、显示);2) 按不同的项进行查找;3) 对已存在的通讯录按不同的项排序;4) 将通讯录写入文件;5) 从文件读入通讯录。
二、主要数据结构class Node{char Name[10];//姓名int OfficePhone;//办公室电话int HomePhone;//住宅电话char MobilePhone[15];//手机号码char EMail[20];//email地址Node *Next;//下一结点指针public:Node(char *pname=NULL, int ophone=0, int hphone=0,char *pmphone=NULL, char *pemail=NULL);void Show();//显示结点数据void SetName(char *name);//修改姓名void SetOfficePhone(int o);//修改办公室电话 void SetHomePhone(int h);//修改住宅电话void SetMobilePhone(char *m);//修改手机号码void SetEMail(char *e);//修改email地址friend class AddrList;//将AddrList类说明为友元类friend void addfromtxtfile(AddrList &);//将addfromtxtfile说明为友元函数friend void writetotxtfile(AddrList &);//将writetotxtfile说明为友元函数};class AddrList{Node *HeadPtr;//链表首指针Node *TailPtr;//链表尾指针int Tag;//排序状态标志,当Tag=1时,按姓名排序当Tag=2时,按办公室电话排序public: //成员函数AddrList(Node *head=NULL, Node *tail=NULL, int tag=1)//构造函数,产生空链表,将tag的值置为1void AddTail(Node *p)//将p指向的结点加入到链表尾部void AddSort(Node *p)//将p指向的结点按Tag指定的顺序插入到链表中Node *LookUp(char *name)//按姓名查找结点,返回该结点指针void del(char *name)//删除指定姓名的结点void Sort(int tag)//按tag指定的关键字重新排序void ShowAll()//显示全部结点,每10个显示一屏void SetTag(int t)//置Tag值3int GetTag()//取tag值Node *GetHeadPtr()//取首指针~AddrList()//释放链表空间void CreateList(char *filename)//从二进制文件中读入数据,//构造链表void WriteToFile(char *filename)//将链表中数据//写入指定的二进制文件};三、特色对于本程序来说,最有特色的地方就是使用了类,还有链表来共同完成对于通讯录信息的记录还有各方面的操作。
个人通讯录系统课程设计-面向对象程序设计和数据库开发技术
************ 课程设计课程面向对象程序设计和数据库开发技术题目个人通迅录系统专业计算机应用技术班级姓名指导教师2011 年 6 月18 日一、课程设计目的课程设计有肋于大家的动手能力的增强,有利于大家对基础知道的掌握,有利于同学们对面向对象和数据库开发的进一步了解和深刻体会。
我所做的系统是为了大家能更好的管理自己的通迅录,妥善管理个人的联系人的信息。
二、系统需求分析(简要描述系统业务和功能,开发环境)。
个人通迅录管理系统是在面向对象和数据库开发两方面的基础上开发出来的,它是为了让大家妥善处理自己的联系人的信息,具有一定的保密功能,有利于自己联系人信息的安全性。
该系统主要由:用户登陆,用户注册,修改密码,查看,查询,进入登陆界面这六个界面组成,含有对通讯录信息进行添加,修改,删除的功能。
还有对用户对象信息的添加和修改功能。
对通迅录可以按不同的条件查询。
三、系统总体设计1、系统功能模块图2、系统功能描述(1)用户登录模块:分为一般用户和管理员两种身份登录,这两种身份登录后进入同一种主界面。
(2)个人管理模块:这个模块是个人对自己的相关信息进行处理,包括登陆的密码的修改;查看自己的通迅录信息,查看到联系人的具体信息。
(3)用户管理模块:包括用户注册,和用户登陆。
(4)通迅录管理模块:这个部分主要是用户对其进行操作,是用户对自己的通迅录进行添加联系人,修改联系人和删除联系人。
(5)一般管理模块:这个模块主要是用户进行查询,用户对其他用户的联系人的查询,按照不同的条件进行查询。
四、数据库设计1、概念设计(ER图)(此部分可以省略)2、逻辑设计用户信息表(用户名,用户密码,用户类型)联系人信息表(用户名,联系人编号,姓名,性别,类别名,移动电话,固定电话,工作单位,生日,)联系人类别表(类别,类别编号,备注)用户信息表—联系人信息表(用户名,用户名)联系人类别表—联系人信息表(类别,类别名)3、表的设计,包括表的结构、约束等图联系人信息表图用户信息表图联系人类别表4、视图设计(包括视图和作用)视图创建如下:SELECT dbo.[User].Type, erName, dbo.ContactsInfo.ContactsName, dbo.ContactsInfo.ContactsId, dbo.ContactsInfo.Sex, dbo.ContactsInfo.WorkUnit, dbo.ContactsInfo.Birthday, dbo.ContactsInfo.ClassName, dbo.ContactsInfo.Mobilephone, dbo.ContactsInfo.F_Telephone FROM dbo.[User] INNER JOIN dbo.ContactsInfo ON dbo.[User].UserName = erName作用:可以选取一个表或多个表中的某些字段来建立视图,这样对于某些操作更方便,更简单5、存储过程设计(包括功能算法描述和存储过程代码)(1)性别存储过程如果性别为女,则显示女的联系人的信息,如果是男,则显示男的联系人的信息。
C语言课程设计报告(通讯录)
面向过程程序设计(C语言)课程设计设计说明书通讯录系统起止日期:2011年01 月03 日至2011年01 月08 日学生姓名XXX班级学号成绩指导教师(签字)计算机与通信学院2011 年01 月08 日一、课题任务设计一个通讯录管理系统。
课题的主要任务是:1.对通讯录信息有添加、查找、显示、保存、删除、修改等操作功能。
2.可以将输入的数据保存在文本文件中,并可以将其调出使用。
我的主要任务是编写主函数,查找模块和修改模块。
二、设计要求建立通讯录信息,信息至少包含姓名、住址、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、E-mail、QQ等。
该系统提供添加、删除、修改和查找功能,其中按姓名方式删除、修改,按姓名、单位、分类方式查找。
将通讯录保存在文件中。
能够输出通讯录中的信息。
二、程序的功能设计创建:创建通讯录文件并对其命名添加:添加通讯录记录输出:显示通讯录记录删除:删除通讯录记录查找:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件中四、程序的数据设计该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。
下面六个模块都是利用C语言文件,向文件中追加数据、修改数据、查询数据和删除数据。
创建:用fopen()建立一个文本文件,然后用fprintf()向其中输入数据(例如,向文件中输入“姓名”,“地址”等),并对文件进行命名。
添加:可以添加通讯录记录,利用C语言文件,向文件中按顺序输入姓名、住址、单位、固定电话、手机号码、分类(如同事、朋友、同学、家人等)、E-mail、QQ,再用fclose()函数关闭并保存文件。
输出:也是用通过循环依次输出文件中的数据,即输出所有通讯录里的记录。
删除:输入你要删除的人的姓名后,系统会自动删除他(她)的记录,在删除通过switch语句满足提示你确认删除的功能,只有等你确认删除后才会删除。
查找:为了满足用户的实际需求,设计了三种查询方式,可以用姓名、单位、分类三种方式查找通讯录记录。
C语言程序课程设计报告———通讯录管理系统
海南大学C语言程序课程设计报告学号:***************名:***年级:2012级学院:经济与管理专业:信息管理与信息系统分数:通讯录管理系统一、需求分析设计题目及要求:◆建立通讯录信息,信息包含姓名、籍贯、电话号码、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或籍贯、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。
系统功能需求分析:主要包含一下多种功能:1)添加:添加通讯录记录2)显示:显示通讯录记录3)删除:删除通讯录记录4)查询:查询通讯录记录5)修改:修改通讯录记录6)保存:将信息保存到文件二、概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入姓名、电话号码、籍贯、电子邮箱后,会提示是否继续添加。
显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、、籍贯三种方式查询修改:输入欲修改的那个人的名字后,再依次输入姓名、电话号码、籍贯、电子邮箱即可完成修改保存:输入文件名(带后缀名)后,即可将通讯录信息保存到文件三、程序设计与分析1.1问题提出有个通讯录,要求该系统对通讯录的姓名,籍贯,电话号码,电子邮箱,进行输入,显示,查找,删除,添加,修改,保存等操作的管理。
1.2本系统涉及知识点本系统涉及到所学的知识点有:编译预处理、循环结构、选择结构、顺序结构、数组、函数等。
1.3 功能要求●制作一个通讯录,要求可以记录通讯人的详细联系方式,包括:,籍贯,电话号码,电子邮箱。
●能根据需要随时在通讯录中添加联系人●能根据联系人姓名,籍贯,电话号码中任一信息查找联系人●能根据需要修改某联系人的信息●能删除某联系人的所有详细信息1.4 各模块结构功能及程序说明◆各模块的功能➢Main 模块:根据选单内容实现调用函数➢Delete 模块:删除通讯录中某人信息➢List 模块:显示通讯录中所有人的信息◆程序说明Main 函数void main() /*主函数*/{int n=0;for(;;){switch(menu_select()){case 1:printf("\n\t添加记录到通讯录\n"); /*添加记录*/n=Input(pe,n);break;case 2:printf("\n\t\t\t 通讯录记录表\n"); /*显示记录*/Display(pe,n);break;case 3:printf("\n\t从通讯录中删除记录\n");n=Delete_a_record(pe,n); /*删除记录*/printf("\t");system("pause");break;case 4:printf("\n\t在通讯录中查找记录\n");Query_a_record(pe,n); /*查找记录*/printf("\t");system("pause");break;case 5:printf("\n\t修改通讯录中的记录\n");Change(pe,n); /*修改数据*/printf("\t");system("pause");break;case 6:printf("\n\t保存功能\n");WritetoText(pe,n); /*保存数据*/printf("\t");system("pause");break;case 0:printf("\n\t\t谢谢使用,再见!\n"); /*结束程序*/printf("\n\t\t");system("pause");exit(0);}}}四、通讯录工作流程图①添加:添加通讯录记录②显示:显示通讯录记录③删除:删除通讯录记录④查询:查询通讯录记录⑤修改:修改通讯录记录先选择查询方式,以姓名查询方式为例五、调试过程1).显示的主菜单界面2).删除界面:3).查询界面:4).保存界面:六、程序有待改进的地方源程序运用了大量的数组、循环、选择结构、函数调用,以及少量使用指针指向结构,涵盖了我们所学到绝大多数知识。
c语言课程设计通讯录管理系统课程设计报告
c语言课程设计通讯录管理系统课程设计报告一、教学目标本课程旨在通过学习C语言,使学生掌握通讯录管理系统的开发过程,培养学生的编程能力和逻辑思维能力。
具体目标如下:1.知识目标:学生能够理解C语言的基本语法和数据结构,掌握函数的定义和调用,了解面向过程的编程思想。
2.技能目标:学生能够使用C语言编写简单的程序,具备解决实际问题的能力,能够独立完成一个通讯录管理系统的开发。
3.情感态度价值观目标:学生通过课程学习,能够培养对编程的兴趣和热情,增强自我学习的动力,提高团队协作的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及面向过程的编程思想。
具体安排如下:1.C语言的基本语法:介绍变量、常量、运算符、表达式等基本概念。
2.数据结构:介绍整数、浮点数、字符等数据类型的使用,以及数组、指针等数据结构。
3.函数的定义和调用:介绍函数的声明、定义和调用,以及函数的参数传递和返回值。
4.面向过程的编程思想:介绍程序的执行流程、循环结构、条件判断等编程控制语句。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解C语言的基本语法、数据结构、函数的定义和调用等知识,使学生掌握课程的基本概念。
2.案例分析法:通过分析实际案例,让学生了解编程思想,培养学生的实际操作能力。
3.实验法:安排实验室实践环节,让学生动手编写程序,提高学生的实际编程能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:选用权威、实用的C语言教材,为学生提供系统的学习资料。
2.参考书:推荐学生阅读一些优秀的编程书籍,丰富学生的知识储备。
3.多媒体资料:制作课件、视频等多媒体资料,提高课堂的教学效果。
4.实验设备:提供充足的计算机设备,确保学生能够进行实验和实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
C语言程序设计报告——通讯录管理系统
C语言程序设计报告一.课题通讯录管理系统二.设计方案简介为了帮助广大人群解决笔记通讯录所带来的诸多不便,本人利用所学的专业知识,设计了一个简单,便利的系统供大家在线存储众多联系人信息。
这样做一来可以将自己的知识生活化,运用自己所学为他人做点事,二来,在完成这项任务的过程中,通过克服一道又一道难题,我巩固了自己的知识,发现了自己的不足,进而提升了自己的能力。
该方案从整体出发,化整为零。
各个功能都是通过独立函数实现。
其中设计了信息录入,信息查询,信息修改,信息删除,信息保存,信息显示等功能。
方案的结构一目了然,便于用户操作。
经过在Microsoft Visual C++ 6.0中多次测试,结果均与预期相符。
加上该程序要求的平台不是很高,一般用户均可方便使用。
三.算法与数据结构<一>运用的数据类型有:int, char, file,.<二>主要功能模块的算法设计思路如下:1、添加信息函数(void Add(Link l))(1)定义指向结构体变量的指针;(2)移动指针,找到插入结点;(3)在要插入的结点输入信息;(4)调用保存函数,打开文件,保存输入信息。
2、修改信息函数(void Modify(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找对应结点;(4)修改信息;(5)打开文件,保存修改记录。
3、删除信息函数(void Del(Link l))(1)定义指向结构体变量的指针;(2)用指针检验链表中是否有记录,若没记录,返回主函数;(3)根据要修改的编号查找要删除的结点;(4)修改链表,删除对应结点。
4、显示记录函数(void Disp(Link l))(1)打开文件;(2)用指针检验是否有记录;(3)若无记录,输出提示信息,返回主函数;若有记录,移动指针,依次输出记录;(4)关闭文件。
5、查询通讯录信息(void Find(Link l))(1)选择查询方式(按姓名、编号或地址);(2)输入查询关键字:(3)在链表中寻找相应结点;(4)调用输出函数,输出结点信息。
通讯录管理系统课程设计报告Java
通讯录管理系统课程设计报告Java1. 简介通讯录管理系统是一种方便用户存储和管理联系人信息的工具。
本课程设计将使用Java语言开发一个简单的通讯录管理系统,实现对联系人信息的增删改查功能。
通过本项目的实践,学习者将掌握Java编程语言的基础知识和面向对象编程的技巧。
2. 功能需求通讯录管理系统应包含以下功能: - 添加联系人信息:用户可以输入联系人的姓名、电话号码、邮箱等信息添加到通讯录中。
- 显示所有联系人信息:系统能够展示所有已保存在通讯录中的联系人信息。
- 查找联系人信息:用户可以通过姓名或电话号码查找特定联系人的信息。
- 修改联系人信息:用户可以对已保存的联系人信息进行修改。
- 删除联系人信息:用户可以删除通讯录中的联系人信息。
实现以上功能需要设计相应的数据结构和算法,以及编写用户交互界面。
3. 技术实现3.1 数据结构在Java中,可以使用ArrayList或HashMap等数据结构来存储联系人信息。
ArrayList适用于有序的联系人列表,而HashMap适用于根据键值快速查找联系人信息。
3.2 用户交互界面用户交互界面可以通过Java的Swing或JavaFX等GUI工具包来实现。
设计一个简洁明了的界面,包含菜单栏、输入框、按钮等组件,以方便用户操作。
3.3 功能实现•添加联系人信息:用户输入信息后,将联系人信息添加到数据结构中。
•显示所有联系人信息:遍历数据结构,将所有联系人信息展示在界面上。
•查找联系人信息:根据用户输入的查询条件,在数据结构中查找对应的联系人信息。
•修改联系人信息:根据用户输入的修改信息,更新数据结构中相应的联系人信息。
•删除联系人信息:根据用户输入的删除条件,从数据结构中移除对应的联系人信息。
4. 总结通讯录管理系统是一个简单实用的应用程序,能够帮助用户有效管理联系人信息。
通过本课程设计,学习者将学习如何使用Java语言开发基本的应用程序,掌握面向对象编程的基本原理和技巧。
面向对象程序设计课程设计报告:同学通讯录管理程序
目录1.设计题目................................. 错误!未定义书签。
2.设计目的和内容........................... 错误!未定义书签。
设计目的................................... 错误!未定义书签。
设计内容................................... 错误!未定义书签。
3.基本功能描述............................. 错误!未定义书签。
4.设计思路................................. 错误!未定义书签。
5.软件设计................................. 错误!未定义书签。
设计步骤................................... 错误!未定义书签。
界面设计................................... 错误!未定义书签。
关键功能的实现............................. 错误!未定义书签。
添加记录................................ 错误!未定义书签。
删除记录................................ 错误!未定义书签。
选中记录................................ 错误!未定义书签。
确认修改................................ 错误!未定义书签。
保存记录................................ 错误!未定义书签。
退出.................................... 错误!未定义书签。
6.结论与心得体会........................... 错误!未定义书签。
7.参考文献................................. 错误!未定义书签。
学生通讯录管理系统课程设计报告
学生通讯录管理系统课程设计报告一、课程设计背景学生通讯录管理系统是一个旨在帮助学生和教师更好地管理个人信息和通讯录的软件系统。
随着信息技术的不断发展,现代教育领域对教学、管理和学习等方面的要求越来越高,传统的纸质通讯录管理方式已经无法满足教育机构的需求。
因此,开发一个便捷、高效的学生通讯录管理系统成为当今教育信息化的重要课题。
二、需求分析学生通讯录管理系统主要包括以下功能模块:1.学生信息管理:用于录入、修改和删除学生个人信息,包括姓名、学号、性别、联系方式等;2.通讯录管理:实现通讯录的分类、查找、添加和删除功能,方便学生和教师进行联系;3.用户权限管理:设置不同权限等级的用户,如学生、教师和管理员,确保信息安全性;4.数据备份与恢复:对系统中的重要数据进行定期备份,保障数据的安全性;5.界面友好性:系统界面简洁明了,操作便捷,用户体验良好。
三、系统设计1. 系统架构学生通讯录管理系统采用客户端-服务器架构,客户端提供给学生和教师使用,服务器端用于存储核心数据和处理业务逻辑。
2. 数据库设计系统采用关系型数据库,主要包括以下表:•学生表(Student):包含学生的基本信息;•教师表(Teacher):包含教师的基本信息;•通讯录表(Contact):记录学生或教师之间的联系方式;•用户表(User):存储系统用户的账号信息和权限。
3. 功能实现(1)学生信息管理学生信息管理模块提供学生信息的增删改查功能,管理员可以对学生信息进行修改和删除,学生可以查看、修改自己的个人信息。
(2)通讯录管理通讯录管理模块支持对通讯录的分类和搜索功能,学生和教师可以添加、删除通讯录条目,并对通讯录进行管理。
(3)用户权限管理系统设定不同权限等级的用户,管理员有最高权限,可以管理用户账号和角色,确保系统的安全性。
四、系统实现系统采用Java语言进行开发,前端界面使用JavaFX技术,后端采用Spring框架实现业务逻辑,数据库连接采用JDBC等技术。
面向对象程序课程设计---通讯录管理系统
目录1程序的目的和需求分析 (2)1.1设计项目名称: (2)1.2课程设计目的: (2)1.3任务与需求分析 (2)2 程序的主要功能 (3)2.1输入功能:添加一个学生的基本通讯信息,包括姓名、电话号码、地址、邮编和e-mail。
(3)2.2显示功能:显示所有学生的信息包括姓名、电话号码、地址、邮编和e-mail。
(3)2.3查找功能:根据你键入的学生姓名或电话号码,显示其详细信息。
(3)2.4排序功能:能够对所有学生的信息按姓名进行排序。
(3)2.5删除功能:能够对一个学生的通讯信息进行删除,按姓名或电话号码进行删除。
. 32.6保存功能:对输入的所有信息进行保存。
(3)2.7退出系统 (3)3 程序运行平台 (3)4 总体设计 (3)5 设计思路 (3)6 详细设计与模块分析 (4)6.1 添加模块 (4)6.2 显示模块 (4)6.3 查找模块 (4)6.4删除模块 (5)7 程序代码 (6)8 结论与实验心得 (16)9参考文献 (18)1程序的目的和需求分析1.1设计项目名称:学生通讯录管理系统1.2课程设计目的:通过设计一个《学生通讯录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。
掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.3任务与需求分析本课题主要任务是编译学生通讯录管理系统,可以录入、显示、查找、插入、排序、删除和保存学生通讯信息。
(1)录入通讯信息——建立一个函数,可以添加学生通讯信息,添加完后返回主菜单;(2)显示通讯信息——建立一个函数,可以显示全部学生的通讯信息,实现后可返回主菜单。
(3)查找通讯信息——建立二个函数,可以分别通过学号、姓名查询通讯信息,查询完后返回主菜单。
C通讯录管理课程设计报告
湖南涉外经济学院课程设计报告课程名称:面向对象程序设计课程设计报告题目:通讯录管理学生姓名:蒋行伍田方成刘倩所在学院:信息科学与工程学院专业班级:计应1301 指导教师:2014 年6月10日课程设计任务书摘要在《面向对象程序设计》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。
同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
本课题要设计的是简单的通讯录管理程序。
通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
程序提供了通信录的基本管理功能。
包括添加、显示、存储、装入、查询和修改等功能。
关键词:类;C++;通讯录;结构体目录一、概述 (1)二、方案设计 (2)1.类设计 (2)2.特殊设计 (2)三、系统整体设计及详细设计 (2)1.整体设计 (2)2.详细设计 (3)四、系统测试 (6)五、结论与心得 (8)六、参考文献 (10)七、程序代码 (11)一、概述编写一个简单的通讯录管理程序。
通讯录记录有姓名,地址(省、市(县)、街道),电话号码,邮政编码等四项。
程序应提供的以下基本管理功能有:1)添加:即增加一个人的记录到通信录中2)显示:即在屏幕上显示所有通信录中的人员信息,应能分屏显示。
3)存储:即将通讯录信息保存在一个文件中。
4)装入:即将文件中的信息读入程序。
5)查询:可根据姓名查找某人的相关信息,若找到显示其姓名、地址、电话号码和邮政编码。
6)修改:可修改一个人的除姓名外其它信息。
二、方案设计1.类设计程序可用一个单向链表来管理人员信息,每个人员的姓名,地址,电话号码和邮政编码用一个类来实现,作为链表的值指针指向这些类对象,通过链表的遍历可以操作这些数据。
首先,本程序中设计如下的结构体存储通信录信息。
面向对象程序设计课程设计--电话号码管理系统
课程考核电话号码管理系统一、课程设计目标此次课程设计的目的是通过对一学期JA V A程序设计学习,使自己能够独立地运用相关软件进行JA V A程序的编写,并在此次课程设计中检验自己的掌握程度。
1、运用eclipse软件编写电话号码管理系统程序。
2、具体目的是:编写的电话号码管理程序能够进行保存,修改,删除等功能(不使用数据库)。
开发环境:Windows 7Eclipse二、课程设计内容1、使用Eclipse编写一个窗口,在窗口里有按钮,每个按钮对应相关的功能2、编写的程序可以进行电话号码的增加,删除,修改等功能,并且在子目录生成一个TXT格式的文件,文件里面保存着输入的电话号码信息。
三、过程设计1、进行程序最初的框架构思。
2、进行窗口程序的编写。
代码如下:3、窗口内按键的编写。
代码如下:当输入姓名和电话号码并且点添加时会在子文件夹里出现名为JmStar的TXT文件,文件里面保存着添加的电话号码信息如下;源代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.Calendar;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.Map.Entry;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;public class Phone extends JFrame{File file1=new File("return.ser");File file2=new File("JmStar.txt");File file3=new File("phone.ser");FileOutputStream fout;FileWriter out;FileInputStream fin;ObjectOutputStream oout;ObjectInputStream oin;Calendar ca=Calendar.getInstance();JButton btn1=new JButton("添加");JButton btn2=new JButton("删除");JButton btn3=new JButton("查询");JButton btn4=new JButton("修改");JLabel lab1=new JLabel("姓名:");JLabel lab2=new JLabel("电话号码:");JLabel show=new JLabel("输出结果");JTextField name=new JTextField();JTextField phone=new JTextField();HashMap<String,String> pn=new HashMap<String,String>();public Phone(){setSize(400,400);setLocation(200,100);setLayout(null);setTitle("电话簿");lab1.setSize(40, 40);lab1.setLocation(40, 10);lab2.setSize(80, 40);lab2.setLocation(40, 50);name.setSize(200, 40);name.setLocation(100,10);phone.setSize(200, 40);phone.setLocation(100,50);name.setSize(200, 40);name.setLocation(100,10);btn1.setSize(80,40);btn1.setLocation(100,100);btn2.setSize(80,40);btn2.setLocation(200,100);btn3.setSize(80,40);btn3.setLocation(100,150);btn4.setSize(80,40);btn4.setLocation(200,150);show.setSize(400,200);show.setLocation(40, 150);try {load();} catch (IOException e1) {e1.printStackTrace();}btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) {if(!name.getText().isEmpty()&&!phone.getText().isEmpty()){if(!pn.containsKey(name.getText())){pn.put(name.getText(),phone.getText() );show.setText("成功添加联系人"+name.getText());try {if(!file2.exists())file2.createNewFile();out=new FileWriter(file2,true);out.write(ca.getTime()+" 成功添加联系人"+"联系人姓名是"+name.getText()+"联系人号码是"+pn.get(name.getText())+"\r\n");out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}elseshow.setText("添加失败,用户已经存在");}else {show.setText("添加失败,请重新添加姓名和电话号码!");}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) {if(pn.containsKey(name.getText())){pn.remove(name.getText());show.setText("成功删除联系人"+name.getText());try {if(!file2.exists())file2.createNewFile();out=new FileWriter(file2,true);out.write(ca.getTime()+" 成功删除联系人 "+"联系人姓名是"+name.getText()+"联系人号码是"+pn.get(name.getText())+"\r\n");out.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}else {show.setText("联系人不存在,请输入联系人姓名");}}});btn3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) {if(pn.containsKey(name.getText())){show.setText("查询成功,"+"联系人姓名是"+name.getText()+",联系人号码是"+pn.get(name.getText()));try {if(!file2.exists())file2.createNewFile();out=new FileWriter(file2,true);out.write(ca.getTime()+" 成功查询联系人 "+"联系人姓名是"+name.getText()+"联系人号码是"+pn.get(name.getText())+"\r\n");out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}else {show.setText("查询失败,请输入联系人的姓名");}}});btn4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent arg0) {if(pn.containsKey(name.getText())&&!phone.getText().isEmpty()){pn.remove(name.getText());pn.put(name.getText(), phone.getText());show.setText("修改成功");try {if(!file2.exists())file2.createNewFile();out=new FileWriter(file2,true);out.write(ca.getTime()+" 成功修改联系人 "+"联系人姓名是"+name.getText()+"联系人号码是"+pn.get(name.getText())+"\r\n");out.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}else {show.setText("修改失败,请输入联系人姓名和修改的电话号码");}}});this.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){try {restore();} catch (IOException e1) {e1.printStackTrace();}System.exit(0);}});setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);add(lab1);add(lab2);add(btn1);add(btn2);add(btn3);add(btn4);add(show);add(name);add(phone);}public void load() throws IOException{if(file1.exists()){fin=new FileInputStream(file1);oin=new ObjectInputStream(fin);Person p=null;try {p=(Person)oin.readObject();oin.close();name.setText(p.getname());phone.setText(p.getphone());} catch (ClassNotFoundException e) {e.printStackTrace();}if(file3.exists()){fin=new FileInputStream(file3);oin=new ObjectInputStream(fin);String ss=null;while(true){try {p=(Person)oin.readObject();if(p.getname().equals("结束")&&p.getphone().equals("结束")){break;}pn.put(p.getname(), p.getphone());} catch (ClassNotFoundException e) {e.printStackTrace();}}oin.close();}}}public void restore() throws IOException{Set set=pn.entrySet();Iterator<Map.Entry> i=set.iterator();fout=new FileOutputStream(file3);oout=new ObjectOutputStream(fout);Person s;Object m;if(!file3.exists())file3.createNewFile();while(i.hasNext()){m=i.next();s=new Person();s.setname((String)((Entry) m).getKey());s.setphone((String)((Entry) m).getValue());oout.writeObject(s);}s=new Person();s.setname("结束");s.setphone("结束");oout.writeObject(s);oout.close();if(!file1.exists())file1.createNewFile();fout=new FileOutputStream(file1);oout=new ObjectOutputStream(fout);s=new Person();s.setname(name.getText());s.setphone(phone.getText());oout.writeObject(s);oout.close();}public static void main(String[]agres){Phone ph=new Phone();ph.setVisible(true);}}四、学习心得在整个编写过程中,总是被一个又一个难题所困扰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1.设计题目 (1)2.设计目的和内容 (1)2.1设计目的 (1)2.2设计内容 (1)3.基本功能描述 (1)4.设计思路 (1)5.软件设计 (2)5.1设计步骤 (2)5.2界面设计 (3)5.3关键功能的实现 (3)5.3.1添加记录 (3)5.3.2删除记录 (4)5.3.3选中记录 (4)5.3.4确认修改 (4)5.3.5保存记录 (4)5.3.6退出 (4)6.结论与心得体会 (4)7.参考文献 (4)8.附录 (5)8.1调试报告及测试结果 (5)8.2关键源代码 (10)8.2.1 Student类 (10)8.2.2全局 (10)8.2.3List Control初始化 (10)8.2.4添加记录 (11)8.2.5删除记录 (11)8.2.6选中记录 (12)8.2.7修改记录 (12)8.2.8保存记录 (13)8.2.9退出程序 (13)1.设计题目同学通讯录管理程序2.设计目的和内容2.1设计目的1)学习Visual C++的MFC开发程序的步骤。
.2)综合运用所学的类、继承和多态的知识。
3)进一步掌握程序的调试方法。
2.2设计内容1)利用MFC的向导,创建基于对话框的应用程序,添加按钮、编辑框等控件;2)设计通讯录的数据结构(如:以数组或者动态链表)和相应的类;3)完成对通讯录中记录的增加、修改、删除和显示;4)将通讯录存入文本文件。
3.基本功能描述可以实现学生信息(姓名、学号、系别、邮箱、电话)的添加、显示、选中修改、删除选中和保存并退出程序的功能。
4.设计思路1)创建基于对话框的MFC应用程序,添加控件:5个Edit Control、6个Button、1个List Control;2)在5个Edit Control分别输入相应信息,点击“添加记录”Button可在ListControl 中显示相应信息,同时清空五个Edit Control以便下一个学生信息的输入;3)点中List Control选中已有一组学生信息,点击“删除记录”Button可删除该组信息;4)点中List Control选中已有一组学生信息,点击“选择该列”Button将该列信息返回到5个Edit Control。
修改完成后点击“确认修改”Button,对List Control 中选中列完成修改;5)点击“确认保存”将信息保存到文本文档;6)点击“退出”退出程序。
7)可在D盘查看保存的信息。
5.软件设计5.1设计步骤1) 建立程序,添加变量和函数打开Microsoft Visual Studio 2010,新建一个基于对话框的MFC应用程序。
添加5个Static Text、5个Edit Control、6个Button、1个List Control。
在各控件属性中修改Caption,见表 1。
选择项目→类向导,添加成员变量(表 2)和成员函数(表 3)。
表 1 Caption表 2成员变量表 3成员函数2) 添加一个Student类,在Ctry2Dlg.cpp中定义Student类的对象数组emily和一个全局变量i。
3) 初始化List Control在类视图→try2→Ctry2Dlg→OnInitialog()添加初始化的代码4) 实现添加、删除、修改和保存功能在类视图→try2→Ctry2Dlg中:OnClickedButton1add()实现添加记录到List Control功能;OnClickedButton2delete()实现删除记录功能;OnClickedButton3modify()实现选中记录返回到相应Edit Control功能;OnBnClickedOk()实现在OnClickedButton3modify()功能后替换List Control中原有内容确认修改;OnClickedButton4keep()实现在保存功能;OnBnClickedCancel()退出程序。
5.2界面设计界面见图15.3关键功能的实现5.3.1添加记录利用Edit Control关联的成员变量取其中的值存到对象数组中,再将对象数组中的值显示到List Control,同时清空Edit Control以便下一组学生记录的输入。
i自增1,这样下一个记录便会存储在下一个数组元素中。
5.3.2删除记录调用m_list.GetSelectionMark选中点击了List Control中的一行;再调用m_list.DeleteItem删除该行;调用Student类的delete函数删除数组中的该组信息。
5.3.3选中记录调用m_list.GetSelectionMark获取点击的那一行;m_list.GetItemText获取想要的单元格返回到相应的Edit Control。
5.3.4确认修改结合删除和添加功能即可。
5.3.5保存记录建立CFile文件类的对象txt,文件路径为d://student.txt;CFile::modeCreate|CFile::modeWrite为文件操作类型参数设置;利用GetLength函数字符串长度,再调用Write写入到文本文档;5.3.6退出OnBnClickedCancel()退出程序。
6.结论与心得体会在这个同学通讯录管理程序设计中,通过上网搜索,我学会并使用了很多编写MFC应用程序的函数。
在这个过程中,我觉得用msdn进行查询很重要。
MFC中有很多函数,功能非常强大,网上有人说“在MFC中只有想不到,没有做不到”。
设计过程中虽然遇到了很多次困难,在每次通过查阅资料后解决难题的过程中都有很多意想不到的收获。
全力投入后运行成功是无比喜悦的,C++作为MFC等其他很多程序编写的基础,是非常重要的。
这次课程设计过程我发现自己没有好好掌握C++,很多基本的概念没有彻底理解,需要再多看看书,查查资料。
通过这次课程设计,我初步学会了基于对话框的MFC应用程序的设计,我发现原来枯燥的程序编写也有很多快乐,我对编程产生了浓厚兴趣。
7.参考文献孙鑫.(2006).VC++深入详解北京:电子工业出版社Visual.C++6.0技术内幕北京:希望电子出版社侯俊杰.(1998).深入浅出MFC8.附录8.1调试报告及测试结果图 2运行初始界面图 3键入信息图 4点击“添加记录”图 5再添加一个学生信息图 6点击第一行后点击“选择该列”取出信息到Edit Control图 7修改信息图 8点击“确认修改”图 9点击emily行后点击“删除记录”图 10点击yukaiyuan行后点击“选择该列”图 11点击“确认保存”图 12 D盘自动生产student.txt8.2关键源代码8.2.1 Student类class Student{public:Student(void);~Student(void);CString name;CString num;CString ins;CString email;CString call;void Delete();};8.2.2全局Student emily[15];int i=0;8.2.3List Control初始化BOOL Ctry2Dlg::OnInitDialog(){……// TODO: 在此添加控件通知处理程序代码DWORD dwStyle = m_list.GetExtendedStyle();m_list.SetExtendedStyle(dwStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);m_list.InsertColumn(0,_T( "姓名"));m_list.InsertColumn(1, _T("学号"));m_list.InsertColumn(2,_T( "院系"));m_list.InsertColumn(3,_T( "邮箱"));m_list.InsertColumn(4,_T( "电话"));m_list.SetColumnWidth(0, 80);m_list.SetColumnWidth(1, 80);m_list.SetColumnWidth(2, 120);m_list.SetColumnWidth(3, 120);m_list.SetColumnWidth(4, 120);return TRUE;}8.2.4添加记录void Ctry2Dlg::OnClickedButton1add(){// TODO: 在此添加控件通知处理程序代码?UpdateData();emily[i].name=m_name;emily[i].num=m_num;emily[i].ins=m_ins;emily[i].email=m_email;emily[i].call=m_call;int nCurItem = m_list.InsertItem(0,emily[i].name);m_list.SetItemText(nCurItem, 1,emily[i].num);m_list.SetItemText(nCurItem, 2, emily[i].ins);m_list.SetItemText(nCurItem, 3,emily[i].email);m_list.SetItemText(nCurItem, 4, emily[i].call);m_name="";m_num="";m_ins="";m_email="";m_call="";UpdateData(FALSE);i=i+1;}8.2.5删除记录void Ctry2Dlg::OnClickedButton2delete(){// TODO:i=m_list.GetSelectionMark ();m_list.DeleteItem(i);emily[i].Delete();}void Ctry2Dlg::OnClickedButton3modify(){// TODO: 在此添加控件通知处理程序代码i=m_list.GetSelectionMark (); //获取点击的那一行emily[i].name= m_list.GetItemText(i,0);//获得已被选择的行 SetDlgItemText(IDC_EDIT1,emily[i].name);emily[i].num=m_list.GetItemText(i,1);SetDlgItemText(IDC_EDIT2,emily[i].num);emily[i].ins=m_list.GetItemText(i,2);SetDlgItemText(IDC_EDIT3,emily[i].ins);emily[i].email=m_list.GetItemText(i,3);SetDlgItemText(IDC_EDIT4,emily[i].email);emily[i].call=m_list.GetItemText(i,4);SetDlgItemText(IDC_EDIT5,emily[i].call);}8.2.7修改记录void Ctry2Dlg::OnBnClickedOk(){// TODO: 在此添加控件通知处理程序代码?i=m_list.GetSelectionMark ();m_list.DeleteItem(i);emily[i].Delete();UpdateData();emily[i].name=m_name;emily[i].num=m_num;emily[i].ins=m_ins;emily[i].email=m_email;emily[i].call=m_call;int nCurItem = m_list.InsertItem(i,emily[i].name);m_list.SetItemText(nCurItem, 1,emily[i].num);m_list.SetItemText(nCurItem, 2, emily[i].ins);m_list.SetItemText(nCurItem, 3,emily[i].email);m_list.SetItemText(nCurItem, 4, emily[i].call);m_name="";m_num="";m_ins="";m_email="";m_call="";UpdateData(FALSE);}// TODO: 在此添加控件通知处理程序代码CFile txt;int j;txt.Open( _T("d://student.txt") ,CFile::modeCreate|CFile::modeWrite);for(int i=0;i<15;i++){j=emily[i].name.GetLength();txt.Write(emily[i].name,2*j);j=emily[i].num.GetLength();txt.Write(emily[i].num,2*j);j=emily[i].ins.GetLength();txt.Write(emily[i].ins,2*j);j=emily[i].email.GetLength();txt.Write(emily[i].email,2*j);j=emily[i].call.GetLength();txt.Write(emily[i].call,2*j);}txt.Close();}}8.2.9退出程序void Ctry2Dlg::OnBnClickedCancel(){// TODO: 在此添加控件通知处理程序代码CDialogEx::OnCancel();}。