《程序设计基础课程设计》(j1620201)课程设计报告设计题目学生通讯录管理系统学生姓名学生班级学生学号指导教师成绩评定完成时间参考目录:目录课程设计的目的---------------------1 设计内容---------------------------1 系统需求分析-----------------------1 系统设计---------------------------1 编码和测试-------------------------1 心得体会---------------------------1 附录--------------------------------1课程设计的目的为了进一步巩固程序设计基础课程所学到的知识,理解C++语言的重要概念及基本语法,锻炼学生熟练的运用C++语言设计程序解决实际问题的能力,开设了一周的课程设计。
通过此次课程设计,巩固所学面向过程程序设计的知识,熟练掌握Visual Studio C++开发工具的运用,把所学课程相关知识加以融会贯通,全面掌握面向过程的编程思想,为后续课程的学习打下坚实的基础。
设计的内容这是一个学生通讯录系统,内容主要是记录学生的基本信息。
系统需求分析学生通讯录管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生通讯录管理系统应该能够为用户提供充足的信息和快捷的查询手段。
学生通讯录管理系统能让老师、学校更好地记录学生的信息,例如学生的学号、性别、专业、手机号码,能让老师较方便的查询到学生的信息,给工作带来很多便利。
系统设计本系统用menu函数显示主界面,用create函数创建通讯录信息子,用print 显示通讯录信息,用del函数删除通讯录,用insert函数添加通讯录信息,用modify函数修改通讯录信息编码和测试编码:附录1测试:心得体会:通过这次系统的设计,我知道了如何更好、更全面的去考虑一些存在的问题。
要学好基础知识,这样才能更好,更熟练的编辑一个系统。
并且要敢于尝试,敢于实践,这样遇到问题时才能迎刃而解。
并且要多与交流,一个人的力量有限,团队的力量是巨大的。
附录1系统详细设计:# include <cstdlib># include <iostream># include <string># include <iomanip>using namespace std;struct student{long num;//学号string name;//姓名long phone;//手机char pro;//专业char sex;//性别long qq;//qq号码student * next;};void menu(){cout<<endl<<endl;cout<<"**------------------------------------------**"<<endl;cout<<"*-----------------欢迎使用学生成绩管理系统---*"<<endl;cout<<"* 1.输入学生信息*"<<endl;cout<<"* 2. 输出学生信息*"<<endl;cout<<"* 3.删除学生信息*"<<endl;cout<<"* 4.插入学生信息*"<<endl;cout<<"* 5.修改学生信息*"<<endl;cout<<"* 0. 退出程序*"<<endl;cout<<"**------------------------------------------**"<<endl;cout<<endl<<endl;}student * creat(){student * head = NULL;//初始化头指针int len;//定义结点的长度int i = 0;student * p1,* p2;cout<<"请问您要输入几个学生的信息:";do{cin>>len;if (len <= 0){cout<<"输入错误,请重新输入:"<<endl;}}while (len <=0);p1 = new (student);//为p1结构体指针申请内存空间。
p2 = p1;//用p1为p2初始化,同时指向都一个内存空间。
cout<<"请输入第"<<i+1<<" 个学生的信息:"<<endl <<"学号:";//防止误输do{cin>>p1->num;if (p1->num == 0)cout<<"输入错误,学号不为零,请重新输入:";cout<<endl;}while (p1->num == 0);cout<<"姓名:";cin>>p1->name;cout<<"专业:";cin>>p1->pro;cout<<"性别:";cin>>p1->sex;cout<<"qq:";cin>>p1->qq;cout<<"手机:";;//定义“手机”变量的长度do{cin>>p1->phone;if (p1->phone >= 100000000000 || p1->phone <= 1000000000) cout<<"你的输入错误,请重新输入:"<<endl;}while (p1->phone >= 100000000000 || p1->phone <= 1000000000);if (p1->num != 0){i += 1;head = p1;//p1赋给头结点for (;i < len; i++){p1 = new (student);cout<<"请输入第"<<i+1<<" 个学生的信息:"<<endl <<"学号:";//防止误输do{cin>>p1->num;if (p1->num == 0)cout<<"输入错误,学号不为零,请重新输入:";cout<<endl;}while (p1->num == 0);cout<<"姓名:";cin>>p1->name;cout<<"专业:";cin>>p1->pro;cout<<"性别:";cin>>p1->sex;cout<<"qq:";cin>>p1->qq;cout<<"手机:";do{cin>>p1->phone;if (p1->phone >= 1000000000000 || p1->phone < 10000000000) cout<<"输入错误,手机为11位,请重新输入:";cout<<endl;}while (p1->phone >= 1000000000000 || p1->phone < 10000000000);p2->next = p1;p2 = p1;}p2->next = NULL;//在最后要是链表的最后一节结点指向空,也就是俗话说的尾节点指向为空。
}//头文件都是stdlib.hsystem("pause");//按任意键继续system("cls");//清屏函数menu();//调用界面return head;}student * del(student * head){int num;do{cout<<"请输入您要删除的学号:"<<endl;cin>>num;if (num <= 0){cout<<"输入学号错误,请重新输入:"<<endl;}}while (num <= 0);student * p1,* p2;if (head == NULL){cout<<"链表为空。
"<<endl;//头文件都是stdlib.h或者是cstdlib。
system("pause");//按任意键继续system("cls");//清屏函数menu();//调用界面return head;}p1 = head;while (num != p1->num && p1->next != NULL) {p2 = p1;p1 = p1->next;}if (num = p1->num){if (p1 == head)head = p1->next;elsep2->next = p1->next;cout<<endl<<"输出成功!"<<endl;}elsecout<<"您要的数字未找到。
"<<endl;//头文件都是stdlib.h或者是cstdlib。