数电课程设计:汽车尾灯控制电路.doc

上传人:doc321 文档编号:14863796 上传时间:2022-02-22 格式:DOC 页数:24 大小:3.51MB
返回 下载 相关 举报
数电课程设计:汽车尾灯控制电路.doc_第1页
第1页 / 共24页
数电课程设计:汽车尾灯控制电路.doc_第2页
第2页 / 共24页
数电课程设计:汽车尾灯控制电路.doc_第3页
第3页 / 共24页
数电课程设计:汽车尾灯控制电路.doc_第4页
第4页 / 共24页
数电课程设计:汽车尾灯控制电路.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《数电课程设计:汽车尾灯控制电路.doc》由会员分享,可在线阅读,更多相关《数电课程设计:汽车尾灯控制电路.doc(24页珍藏版)》请在三一文库上搜索。

1、精品文档 课 程 设 计 报 告课程设计名称: C程序设计 系 : 三 系 学 生 姓 名 : 班 级: 12通信1班 学 号: 20210306135 成 绩: 指 导 教 师: 开 课 时 间:2021-2021学年二学期欢迎下载精品文档目 录第一章 学生通讯录信息管理系统需求分析11.1设计题目及要求11.2设计思路模块图1第二章 学生通讯录信息管理系统概要设计2第三章 学生通讯录信息管理系统概要详细设计6第四章 学生通讯录信息管理系统测试15小 结20致谢21参考文献22欢迎下载精品文档第一章 学生通讯录信息管理系统需求分析1.1设计题目及要求1.题目:学生通讯录信息管理系统2功能要求

2、:1能建立、修改和增删学生通讯录 2能够按多种方式进行查询3其他要求:1能够利用所学c语言知识实现模块化程序设计2能够编译和组件程序,修改程序中的语言类错误,调试程序中的逻辑类错误,使程序功能实现运行。3作出总结并写好实验报告。1.2设计思路模块图1根据功能要求和知识点编写学生通讯录信息管理系统程序,包括以下模块:(1)主函数和退出程序模块main:可以菜单显示、按任意键退出程序(2)添加信息模块add:可以一次完成假设干条信息的输入。(3)显示信息模块display:显示全部学生通讯录信息。(4)查找信息模块find:按三种方式查找学生通讯录信息,并显示。(5)修改信息模块modify:按姓

3、名修改通讯录信息。(6)删除信息模块remove:按姓名删除通讯录信息。(7)保存信息模块save:保存通讯录信息。学生通讯录信息管理系统2.模块图图1-2-1:显示学生通讯录信息添加学生通讯录信息查找学生通讯录信息修改学生通讯录信息删除学生通讯录信息保存学生通讯录信息主函数包括退出程序图1-2-1第二章 学生通讯录信息管理系统概要设计2.1模块流程图: 1.主函数程序流程图:系统的菜单显示如何运行图2-1-1.1 系统如何退出程序图2-1-1.2开始输入n1n7输出“输入错误,重选1-7: Y N执行数字对应功能结束图2-1-1.1开始savedTag=0输出是否保存原来的记录?(Y/N)

4、N输入mm!=n&str0!=N Y输出Press any key to continue N结束程序 Y保存结束图2-1-1.22.添加通讯录信息流程图:系统如何实现添加信息功能图2-2-1开始输入numberinumber Y N输入学生通讯录信息返回主菜单结束图2-2-23.显示信息流程图:系统如何实现显示信息功能图2-2-3开始numStus=0 N Y输出没有可供显示的记录! 显示信息返回主菜单结束图2-2-34.查找信息流程图:系统如何实现查找信息功能图2-2-4开始输入mm!=1&m!=2&m!=3&m!=4 Y N执行数字对应查找方式输出输入错误,请重新选择:输入查找信息num

5、Stus=0 Y N输出通讯录中没有此人! 返回在菜单显示查找结果结束图2-2-45.修改信息流程图:系统如何实现修改信息功能图2-2-5开始输入姓名numStus=0 N Y修改信息输出通讯录中没有此人! 输出修改成功! 返回主菜单结束图2-2-56.删除信息流程图:系统如何实现删除信息功能图2-2-6开始输入姓名numStus=0 N Y删除信息输出通讯录中没有此人! 输出已经成功删除! 返回主菜单结束 图2-2-67.保存信息流程图:系统如何实现保存信息功能图2-2-7开始numStus=0 N Y保存信息输出没有记录可存! 结束图2-2-7第三章 学生通讯录信息管理系统概要详细设计3.

6、1 具体实现#include /*标准输入输出函数库*/#include /*标准函数库*/#include /*屏幕操作函数库*/#include /*字符串函数库*/#define INITIAL_SIZE 100 /数组初始大小#define INCR_SIZE 50 /数组每次增加的大小struct addbook_infochar name20; /姓名 char sex4; /性别char age4; /年龄char address20; /地址char phone15; / 号char qq15; /qq号char email20; /电子信箱;typedef struct ad

7、dbook_info AddInfo;extern int numStus; /记录的学生数extern AddInfo *records; /记录学生通讯录信息的数组extern char savedTag; /信息是否已保存的标志,0为已保存,1为未保存extern int arraySize; /数组大小 void handle_menu(void);int menu_select(void);void input(); /学生信息输入函数void addRecord(void);void display(void);void queryInfo(void);void modifyRec

8、ords(void);void removeRecords(void);void saveRecords(void);void quit(void);void showTable(void);int findRecord(char *target,int targetType,int from);void copyRecord(AddInfo *src,AddInfo *dest);#includeaddress.h/*初始化*/extern int numStus=0; /记录的学生数AddInfo *records=NULL; /记录学生通讯录信息的数组char savedTag=0; /

9、信息是否已保存的标志,1为已保存,0为未保存int arraySize; /数组大小/* 主函数 */int main()/初始化数组records=(AddInfo*)malloc(sizeof(AddInfo)*INITIAL_SIZE); /开辟存储空间if(records=NULL)printf(memory fail!);exit(-1);arraySize=INITIAL_SIZE;printf(n);printf(t n);printf(t* 欢送使用 * n);printf(t* 学生通讯录管理程序 * n);printf(t* 谢谢! * n);printf(t n);pri

10、ntf(n);handle_menu();/* 菜单处理函数 */void handle_menu(void)for (; ;)switch(menu_select()case 1:input(); /输入信息break;case 2:display(); /显示信息break;case 3:queryInfo(); /查找信息break;case 4:modifyRecords(); /修改信息break;case 5:removeRecords(); /删除信息break;case 6:saveRecords(); /保存信息 break;case 7:quit(); /结束程序break

11、;/* 菜单项选择择函数menu_select */int menu_select()char s2;int cn=0;printf(n);printf(t*1.添加学生通讯录信息n);printf(t*2.显示学生通讯录信息n);printf(t*3.查找学生通讯录信息n);printf(t*4.修改学生通讯录信息n);printf(t*5.删除学生通讯录信息n);printf(t*6.保存学生通讯录信息n);printf(t*7.结束程序n);printf(nt数字对应功能选择,请选1-7:);for(; ;)gets(s);cn=atoi(s);if(cn7) printf(nt输入错误

12、,重选1-7:);else break;return cn;/* * 结束运行,退出 * 参数 void */void quit(void)char str5;if(savedTag=0)printf(是否保存原来的记录?(Y/N); gets(str); if(str0!=n&str0!=N)saveRecords();free(records);exit(0);#includeaddress.h/*添加学生通讯录信息*/void input()FILE *fp;int i,number; /输入学生人数printf(请输入录入学生通讯录信息人数:);scanf(%d,&number);fo

13、r(i=0;inumber;i+)printf(n);printf(姓名: ); /输入姓名scanf(%s,recordsi.name);printf(n); printf(性别: ); /输入性别scanf(%s,recordsi.sex);printf(n);printf(年龄: ); /输入年龄scanf(%s,recordsi.age);printf(n);printf(地址: ); /输入地址scanf(%s,recordsi.address);printf(n);printf( 号: ); /输入 号scanf(%s,recordsi.phone);printf(n);print

14、f(qq号: ); /输入qq号scanf(%s,recordsi.qq);printf(n);printf(电子信箱: ); /输入电子信箱scanf(%s,recordsi.email);printf(n);numStus+; printf(输入结束!n); fp=fopen(address,w); for(i=0;inumber;i+) fwrite(&recordsi,sizeof(struct addbook_info),1,fp); /从地址中写出addbook_info文件内容/ fclose(fp); /关闭文件 printf(请按任意键返回n); return;#includ

15、eaddress.h/*输出表头*/void showTable(void)printf(姓名t性别t年龄t地址t 号tqq号t电子信箱t);/*显示所有学生通讯录信息函数*/ void display(void)int i;if(numStus=0)printf(没有可供显示的记录! );return;showTable();for(i=0;inumStus;i+)/打印学生信息 printf(n%st%st%st%st%st%st%sn,recordsi.name,recordsi.sex,recordsi.age,recordsi.address,recordsi.phone,recor

16、dsi.qq,recordsi.email);/打印满20个记录后停下来if(i%19=0&i!=0)printf(输入任一个字符后继续.n);getch();printf(nn);showTable();#includeaddress.h/*按学生姓名或 号或地址查询学生通讯录信息*/int findRecord(char *target,int targetType,int from)int i;for(i=from;inumStus;i+)if(targetType=0&strcmp(target,recordsi.name)=0)|(targetType=1&strcmp(target

17、,recordsi.phone)=0)return i;return -1;void queryInfo(void)int m;printf(t请选择查询方式:n); printf(t*1.姓名n); printf(t*2. 号n); printf(t*3.地址n); printf(t*4.返回n); printf(t请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%d,&m);if(m=1)char s20; int i=0; printf(t请输入想查询的姓名:); scanf(t%s,s)

18、; while(strcmp(recordsi.name,s)!=0&i numStus) i+; if(numStus =0) printf(t通讯录中没有此人!n); return; showTable();printf(tt%st%st%st%st%st%st%st,recordsi.name,recordsi.sex,recordsi.age,recordsi.address,recordsi.phone,recordsi.qq,recordsi.email); ;if(m=2)char s20; int i=0; printf(t请输入想查询的 号:); scanf(t%s,s);

19、while(strcmp(recordsi.phone,s)!=0&i numStus) i+; if (numStus =0) printf(t通讯录中没有此人!n); return; showTable();printf(tt%st%st%st%st%st%st%st,recordsi.name,recordsi.sex,recordsi.age,recordsi.address,recordsi.phone,recordsi.qq,recordsi.email); ;if(m=3)char s20; int i=0; printf(t请输入想查询的地址:); scanf(t%s,s);

20、while(strcmp(recordsi.address,s)!=0&i numStus) i+; if(numStus =0) printf(t通讯录中没有此人!n); return; showTable();printf(tt%st%st%st%st%st%st%st,recordsi.name,recordsi.sex,recordsi.age,recordsi.address,recordsi.phone,recordsi.qq,recordsi.email); ;#includeaddress.h/*修改学生通讯录信息*/void modifyRecords(void)char s

21、20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(recordsi.name,s)!=0&inumStus) i+; if(numStus=0) printf(t通讯录中没有此人!n); return; printf(t姓名:); scanf(t%s,recordsi.name); printf(t性别:); scanf(t%s,recordsi.sex);printf(t年龄:); scanf(t%s,recordsi.age);printf(t住址:); scanf(t%s,recordsi.address);p

22、rintf(t 号:); scanf(t%s,recordsi.phone);printf(tqq号:); scanf(t%s,recordsi.qq); printf(t电子信箱:);scanf(t%s,recordsi.email);printf(t修改成功!);#includeaddress.h/*删除学生通讯录信息*/void removeRecords(void) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(recordsi.name,s)!=0&inumStus) i+; if(num

23、Stus=0) printf(t通讯录中没有此人!n); return; for(j=i;j100-1;j+) strcpy(recordsj.name,recordsj+1.name);strcpy(recordsj.sex,recordsj+1.sex);strcpy(recordsj.age,recordsj+1.age);strcpy(recordsj.address,recordsj+1.address);strcpy(recordsj.phone,recordsj+1.phone);strcpy(recordsj.qq,recordsj+1.qq);strcpy(recordsj.

24、email,recordsj+1.email); numStus-;printf(ttt已经成功删除!n); return; #includeaddress.h/*保存学生通讯录信息*/void saveRecords( )FILE * fp;char fname30;if(numStus=0)printf(没有记录可存! ); printf(请输入要存入的文件名直接回车选择文件 addbook_info: ); gets(fname); if(strlen(fname) = 0) strcpy(fname,addbook_info); if(fp = fopen(fname,wb) = NU

25、LL) printf(不能存入文件!n); printf(n存文件.n); fwrite(records,sizeof(AddInfo) * numStus,1,fp); fclose(fp); printf(%d条记录已经存入文件,请继续操作。n,numStus); savedTag = 1; /更新是否已保存的标记return ; 第四章 学生通讯录信息管理系统测试4.1 程序运行截图1.初始界面,如图4-1-1图4-1-12.添加学生通讯录信息界面,如图4-1-2图4-1-23.显示学生通讯录信息界面,如图4-1-3图4-1-34.查找学生通讯录信息界面1按姓名查找界面,如图4-1-4.

26、1图4-1-4.12按 号查找界面,如图4-1-4.2图4-1-4.23按地址查找界面,如图4-1-4.3图4-1-4-35.修改学生通讯录信息界面,如图4-1-5图4-1-56.删除学生通讯录信息界面,如图4-1-6图4-1-67.保存学生通讯录信息界面,如图4-1-7图4-1-78.结束程序界面,如图4-1-8图4-1-8小 结C程序设计课程设计的目的就是让我们更生动熟练地认识、理解、并掌握课堂上略显枯燥的C语言理论知识。回忆这次的课程设计,我感慨颇多,收获也不少,从看到到题目到完成整个编程,从理论到实践,在整整半个月的日子里,学到很多很多的东西,不仅稳固了以前所学过的知识,而且学到了很多

27、在书本上所没有学到过的知识,比方做事情条理性很重要。和同学剧烈的讨论,向老师的求助都是珍贵的经历与财富。这次课程设计更使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会效劳,从而提高自己的实际动手能力和独立思考的能力。所以在以后的学习中,我会更加注重实际的操练,注重动手。在设计的过程中会遇到很多问题,但这毕竟第一次,懂得求助也很重要。以前没有遇到的问题,自己知识上的漏洞借此时机也小小地补足了一下,同时也把前面所学过的知识重新温故了一遍。编写程序,编译改正语言错误,调试修改逻辑错误,有时候你一不小心多按了一个什么键,多打了一个符号都有可能是你程序无法运行的原因,所以认真仔细是非常重要的。总而言之,C程序设计课程设计是一件高精度、模范化的事情,稍有疏乎都会影响全局。过程是辛苦而又有些乏味的,不过当一个程序运行成功的时候,那种喜悦与成就感是无法比较的。尽管我的程序还是有一些错误和漏洞,并不是那么完美,不过我还是很快乐的,怎么说我也有了自己的收获,自己的进步。我知道了做事情都要不怕难,也不要怕错,勇敢去做,去争取,这些都是人生的财富,而不仅仅是在C语言上,加油!致谢参考文献1 谭浩强著. C程序设计第四版.清华大学出版社 2 谭浩强著. C程序设计课程设计第二版.清华大学出版社 欢迎下载

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1