课程设计报告
课程:
学号:
姓名:
班级:
教师:
时间:
计算机科学与技术系
程序设计报告示例
前言(略)
目录(略)
1 问题概述
设计一个某公司客户信息管理系统,以解决传统客户信息管理方式的诸多不便和弊端。
2 系统需求分析
在客户的日常管理中,经常需要对客户的相关信息进行处理,采用传统的手工记录,查询方式,显然有很多不便,如多次的增、删、改可能使记录变得混乱,为今后的信息提取带来很多麻烦。为了解决这一问题,可采用现代化的手段——计算机进行系统的管理。这样可大大提高管理的质量和效率,并且使客户的日常管理也从手工操作中解脱出来,减少纸制材料的数量,对日常信息的查询、方便、快捷。因此,基于这些方面的考虑,决定开发本系统。
3 系统概要设计
3.1系统的主要功能
系统的主要功能是实现基本的客户的数据管理和维护。主要包括:
(1)添加:添加客户信息记录
(2)显示:显示客户信息记录
(3)删除:删除客户信息记录
(4)查询:查询客户信息记录
(5)修改:修改客户信息记录
(6)保存:将信息保存到文件
3.2 系统的总体结构
添加:可以添加客户信息记录,依次输入编号、姓名、年龄、电话号码、地址、电子邮箱后,会提示是否继续添加。
显示:可以以表格形式输出所有客户信息里的记录
删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
查询:可以选择用姓名、电话、地址三种方式查询
修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、地址、电子邮箱即可完成修改
保存:,输入文件名(带后缀名)后,即可将客户信息信息保存 3.3 系统软硬件环境
本程序所适用的计算机系统软硬件环境要求为: 硬件环境: Pentium III 500以上内存:256M 软件环境: Windows XP
3.4 数据结构设计
客户信息数据结构类型如下:
struct Person { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[40]; /*住址*/ };
4 系统的详细设计
根据系统总体结构对问题进行的模块划分,可以采用函数来完成模块功能的实现,分别使用了Input(Person per[],int n)、Display(Person per[],int n)、Delete_a_record(Person per[],int n)、Query_a_record(Person per[],int n)、Change(Person per[],int n)、WritetoText(Person per[],int n)等函数。其中数据的查找、数据的删除又可通过不同的方式如按学号或姓名等进行操作。
4.1 添加客户信息记录Input(Person per[],int n):
1.系统流程
图4.1 添加记录模块流程图
该函数主要用来输入新客户信息,该函数实现过程中首先定义了两个变量sign和i。首先判断sign的值,如果为字符“n”或“N”,结束信息输入,否则输入客户信息。函数参数n表示最后文件中所保存的数据记录条数,用变量i来抽象表示其中的任何一条记录。之后需使用户输入数据。以上操作成为一个循环过程,最后设计一个选择(y/n),根据用户的选择决定循环的进行,‘y’继续循环操作,‘n’则退出该函数回到主函数。
2.代码实现:
int Input(Person per[],int n)
{
int i=0;
char sign,x[10];
while(sign!='n'&&sign!='N')
{
printf("\t编号:");
scanf("\t%d",&per[n+i].score);
printf("\t姓名:");
scanf("\t%s",per[n+i].name);
printf("\t年龄:");
scanf("\t%s",per[n+i].age);
printf("\t电话号码:");
scanf("\t%s",per[n+i].num);
printf("\t通讯住址:");
scanf("\t%s",per[n+i].adds);
printf("\t电子邮箱:");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t是否继续添加?(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
4.2 显示客户信息记录Display(Person per[],int n):
略
4.3 删除客户信息记录Delete_a_record(Person per[],int n):
略
……
5 系统测试及调试
系统的测试及调试是为了发现程序中错误,而执行程序的过程。
1)双击该程序,进入一个主界面函数,出现了选择的界面
;
2)当输入“1”,则将里面的客户信息按姓名拼音的先后输出来;
……
3)在本次实习过程中碰到的编译、连接的错误主要有:
(1)缺少变量定义,定义位置不正确;
前后有些变量前后定义和使用不一致,在错误信息的提示下一般还是很容易找到。需要注意的是有些函数使用同样的变量名而表示不同的作用,因而使用要很小心,定义及定义的位置要特别留意。为减少这样的错误我后来还是用不同的变量名来表示,结果引起的那些错误解决了。
(2)语法错误;
一些语法错误在信息框的提示下一般是能够排除的。
6 用户手册
1)本系统执行文件为:Cpp1.exe。
2)进入系统界面后,在主菜单的中,选择相应的操作前的数字,出现提示界面。根据提示输入相关信息或得到预期结果。
3)在输入信息时:编号为字符型,
姓名为1~5个汉字或1~10个英文字母。
电话:为11位数字字符。
邮箱:为20位字符。
年龄:最多为8位数字字符
住址:为1~20个汉字。
7 总结
这次的程序实设计实验是对我们进入大学以来学习程序设计语言结果的一次大检验。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。但是,收获还是不小的,我不仅对C的操作有了进一步的掌握,还了解到了程序设计的书写风格及其注释的格式。
当我选择客户信息这个题目时,一开始想运用大量链表及指针来完成,但是在慢慢琢磨之后,觉得这个不一定要用链表,于是改变了编程思路。当然还有不少文件的读写问题,不过还是通过不断测试之后顺利解决了。另外一点要说的就是这个程序用了很多的循环,因此对于循环的控制要十分小心,有时while和do-while的区别也是十分重要的。
总体来说,这次C语言程序设计实验还是比较成功的,虽然最终程序还存在一些不足,但能取得这样的成绩我还是比较高兴的。
最后,要感谢学校为我们提供这次实验机会,也要感谢老师的教导,
帮助与支持。
8 参考文献
[1] 谭浩强、张基温著.C语言程序设计(第3版)》.北京:清华大学出版社,2005
……
9 附录
略
东莞理工学院《C语言程序设计》课程设计题目:图书信息管理系统院系:电子工程学院专业:电子信息工程年级:20##班别:2班指导教师:…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
河南理工大学计算机科学与技术学院课程设计报告20XX20XX学年第一学期课程名称C语言课程设计设计题目《小学算术运算测试》学生姓名…
C语言课程设计报告设计题目专业班级学号姓名任课老师时间目录一课程设计题目及所涉及知识点二课程设计思路及设计流程图三课程设计中遇到的…
C语言程序设计课程设计报告20xx20xx学年第1学期题目专业班级姓名学号指导教师成绩计算机科学与技术系20xx年12月31日目录…
C语言课程设计报告姓名张林班级计算111班学号11060101241A类基本题1围绕着山顶有10个圆形排列的洞狐狸要吃兔子兔子说可…
C语言程序设计课程设计学生姓名学号系院专业设计论文题目学生选课系统管理完成日期20xx年6月指导教师目录一实验目的二实验内容三总体…
C语言课程设计报告题目院系组别成员指导老师20xx年月日114目录一课程设计题目3二课程设计要求3三数据结构设计描述31问题描述3…
C语言课程设计参考例例子职工信息管理系统1用户分析11用户目的设计一个职工信息管理系统使之能提供以下功能1录入职工信息2显示职工信…
西安郵電大學C语言课程设计报告书学院名称:计算机学院学生姓名:专业名称:班级:学号:指导教师:时间:20XX年06月03日至20X…
大连交通大学软件学院C语言课程设计报告SOFTWAREINSTITUTEOFDALIANJIAOTONGUNIVERSITYEXP…