1、 课程设计报告课程设计报告 (本科)(本科) 课程: 高级语言程序设计 学号: 姓名: 班级: 2013 级计算机科学与技术 教师: 时间: 2014 年 1 月 计算机科学与技术系 1 设计名称: 学生通讯录管理系统设计 设计内容、目的与要求: 设计内容: 设计一个学生通讯录, 学生通讯录数据信息构成内容可自行设计 (如: 姓名、家庭地址、邮政编码、电话号码等等) ,通讯录数据类型定义为结构类型。 目的与要求: 设计学生通讯录 1.主要功能: (1)能建立、修改和增减学生通讯录 (2)能够多种方式进行查询 2.要求:界面友好,易于操作,采用文件存储数据。 计划与进度安排: 12 月 20 日
2、至 12 月 22 日:研究题目的要求及所给条件,综合分析实验应该达到 的目标,探讨实验需要使用的方法和解决此问题的实际情况,图书馆查阅相关资 料,综合比较; 12 月 23 日至 12 月 25 日:设计解题的方法和具体步骤,并进行分步思考,利用 主菜单函数 menu()将程序模块化,在进行各个模块的设计和制作方案,绘制实 验的流程图,再将各个模块综合,将各个函数运用于主函数中,绘制主函数的流 程图,综合运用所有的函数; 12 月 26 日至 12 月 31 日:查阅书籍,仔细研究书本上的例题,再结合网络资料, 结合各方面所得的资料,编写程序,仔细修改程序; 1 月 1 日至 1 月 2 日
3、:调试程序,运行程序,再次将程序修改; 1 月 3 日至 1 月 5 日:完善程序,仔细填写课程设计报告,再次认真阅读程序并 熟悉程序,为验收做最后的准备。 设计过程、步骤(可加页) : 整个程序主要使用了结构体类型,结构体类型充当了整个程序的骨架,将各 个程序段有机巧妙的结合在一起。例如: struct student /声明一个结构体类型 struct student long num; /学号 char name20; /姓名 int banji; /班级 char tel11; /号码 char Email20; /邮箱 int sushe; / 宿舍 struct student *
4、next; / next 是指针变量,指向结构体变量 ; 整个系统必须有一个主函数,为了尽量提高程序的易修改性,且不至于相互 干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个 程序中,一共用了 9 个函数,分别是: 2 主菜单函数 void menu(void); 输入函数 struct student *shuru(void) ; 输出单个学生信息函数 void shuchu(struct student *s); 输出所有学生信息函数 void findall() ; 按姓名查找函数 void findname() ; 按学号查找函数 void findnum() ;
5、 删除函数 struct student *stushanchu(struct student *stu) ; 排序函数 void paixu() ; 主函数 void main() , 这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。 下面是摘自源程序的主函数: void main() /*主函数*/ char a; menu(); puts(“n 您为首次使用本系统,建议您按 1 开始录入学生信息,“); a=getche(); while(a) puts(“); switch(a) case0:goto end;break; case 1: puts(“n 好了,您可以开
6、始向本系统录入学生通讯录信息了:“); stu=shuru(); system(“cls“); menu(); puts(“n 学生信息录入完毕,请输入你的选择(06):n“); break; case 2:findall();puts(“n 请输入你的选择(06):“); break; case 3:findname();puts(“n 请输入你的选择(06):“); break; case 4:findnum();puts(“n 请输入你的选择(06):“); break; case 5:stu=shanchu(stu);puts(“n 请输入你的选择(06):“); break; case 6:paixu();puts(“n 请输入你的选择(06):“); break; default:puts(“输错了!按数字 1 键录入学生信息吧!“); break; a=getche();