还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
学年第二学期学号2023-2023《高级语言程序设计》课程设计汇报题目通信录程序设计专业网络工程对口班级163班姓名代应豪指导教师程庆成绩计算机学院年月日2023425struct student*q=p;int flag=O;char c=\0,nm
[10]=,nam
[10]=,,z,;printf\n按照学号查询h或姓名查询m:\n;c=getche;if c==,h||c=-Hprintf〃请输入要查询记录的学号〃;gets nm;for p=q;p-qn;p++if strcmpnm,p-num=0printf学号姓名\n;printf,,%23s%15s%15s\n,/,p-num,p-name,p-tel;flag=l;}if flag==0printf/zwrong...\n〃;}else if c二二,m,||c二二,M,printf〃请输入要查询记录日勺姓名〃;gets nam;for p=q;p-qn;p++if strcmpnam,p-name==0printf〃学号姓名\n〃;printf z/%23s%15s%15s\nzz,p-num,p-name,p-tel;flag=l;if flag==0printfwrong.・・\n〃;}else printf/zwrong...\n〃;}void mymodifystruct student*p,int nstruct student*q=p;FILE*fp=NULL;char nam
[10]=zz/z;mydisplay p,n;printf〃请输入您想要修改记录的I姓名\n〃;gets nam;for p=q;p-qn;p++if strcmpnam,p-name==0break;if p一q二二nprintf wrong.;elseprintf〃请输入对时的学号:〃;dogets p-num;whilestrcmpp-num,/z//==0;printf〃请输入对时的姓名〃;gets p-name;printf〃请输入对时的〃;gets p-tel;}fp=fopen,zd:\\jilu.dat〃,〃w〃;iffp=二NULL{printf error;exit0;}for p=q;p-qn;p++fprintf fp,/z%23s%15s%15s\n/z,p-num,p-name,p-tel;fclose fp;}void myaddstruct student*p,int nFILE*fp=NULL;struct student*q=p;char c-\n,tempnum
[10]=〃〃,tempname
[10]=〃〃,temptel
[10]=////;printf〃\n〃;whilestrcmpp-num,///z!=0{printf zz%23s%15s%15s\nz/,p-num,p-name,p-tel;p++;}n=p-q;do{printf〃请输入新纪录的学号〃;dogetstempnum;whilestrcmptempnum,z//,==0;printf〃请输入新纪录的姓名〃;getstempname;printf请输入新纪录的”;getstemptel;for p=q;p-qn;p++if strcmptempnum,p-num=0strcmptemptel,p-tel==0printf〃学号或号码需要重新输入吗Y/N〃;c=getche;putchar\n,;break;}if p-q==n{strcpyp-num,tempnum;strcpyp-name,tempname;strcpyp-tel,temptel;break;}}while c=二,y,||c二二,Y;fp=fopen z,d:\\jilu.dat〃,〃w〃;iffp==NULL{printferror;return;}for p=q;p-q=n;p++fprintf fp,/z%23s%15s%15s\n/z,p-num,p-name,p-tel;fclose fp;M++;void mydeletestruct student*p,int nFILE*fp=NULL;struct student*q=p;charc
[10]=〃〃,tempnum
[10]=z///,tempname
[10]=///z,temptel
[10]=〃〃,choose=\0;mydisplay p,n;printf〃选择删除记录的方式:学号h姓名m〃;choose二getche;printf〃\n〃;if choose-m,||choose M{printf删除的记录;getsc;for;p-qn;p++if strcmpc,p-name==0break;ifp-qnfor;p-qn-l;p++strcpyp-num,p+1-num;strcpyp-name,p+l-name;strcpyp-tel,p+1-tel;else printf〃no\n〃;}else if choose==,h5||choose==,H,printf删除的记录:;getsc;for;p-qn;p++if strcmpc,p-num=0break;ifp-qnfor;p-qn-l;p++strcpy p-num,p+1-num;strcpyp-name,p+1-name;strcpyp-tel,p+l-tel;}else printf〃no〃;}else printf/zwrong\n/z;fp=fopen,zd:\\jilu.dat〃,〃w〃;iffp==NULL{printferror;return;}for p=q;p-qn-l;p++fprintf fp,/z%23s%15s%15s\n/z,p-num,p-name,p-tel;fclose fp;M一;}void mysortstructstudent*p,int n{FILE*fp=NULL;structstudent*q=p,*w=p,*a=p;char temp
[10]=//z/,cl=\0,c2=0;mydisplay p,n;printf〃选择按照学号h或姓名m排序:\n〃;cl=getche;if cl==,h||cl==,H,printf〃升序s或者降序j排列〃;c2=getche;ifc2二二s||c2==,Sfor;p-an;p++w=p;for q=p+1;q-an;q++if strcmpw-num,q-num0w=q;strcpytemp,w-num;strcpyw-num,p-num;strcpyp-num,temp;strcpytemp,w-name;strcpy w-name,p-name;strcpyp-name,temp;strcpytemp,w-tel;strcpyw-tel,p-tel;strcpyp-tel,temp;else ifc2==,j\\c2==,J,for;p-an;p++W=p;for q=p+l;q-an;q++if strcmpw-num,q-num0w=q;strcpytemp,w-num;strcpyw-num,p-num;strcpyp-num,temp;strcpy temp,w-name;strcpyw-name,p-name;strcpy p-name,temp;strcpy temp,w-tel;strcpy w-tel,p-tel;strcpyp-tel,temp;else printf z/555wrong...\n〃;}else ifcl==,||cl==,M5{printf〃升序s或者降序j排列〃;c2=getche;ifc2==s||c2==,Sfor;p-an;p++W=p;目录
1.设计内容及规定错误!未定义书签for q=p+l;q_an;q++
1.
1、课程设计的内容错误!未定义书签
1.
2.概要设计错误!未定义书签
3.设计过程或程序代码错误!未定义书签
3.
3.
3.
3.
3.
3.
4.设计成果与分析错误!未定义书签
4.
4.
4.
4.1先进行人工检查,即静态检查在写好一种程序后来,不要匆匆忙忙上机,而应对程序进行人工检查这一步十分重要,它能发现程序设计人员由于疏忽而导致的多数错误这一步往往轻易被人忽视,总但愿把一切都推给计算机去做,但这样会多占用机器时间,作为一种程序人员应当养成严谨欧I作风,每一步都要严格把关,不把问题留给背面的工序为了更有效地进行人工检查,所编的程序应力争做到如下几点
①应当采用构造化程序措施编程,以增长可读性;
②尽量多加注释,以协助理解每段程序的作用;
③在编写复杂日勺程序时不要将所有语句都写在main函数中,而要多运用函数,用一种函数来实现一种单独的功能各函数之间除用参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理
二、在人工检查无误后,再上机调试通过上机发现错误称为动态检查在编译时会给出语法错误的I信息,调试时可以根据提醒信息详细找出程序中出错之处并改正应当注意的是有时提醒出错的I地方并不是真正出错的位置,假如在提醒出错的行找不到错误的J话应当到上一行再找有时提醒出错的类型并非绝对精确,由于出错的状况繁多且多种错误互有关联,因此要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖假如系统提醒的出错信息诸多,应当从上到下逐一改正有时显示出一大片出错信息往往使人感到问题严重,无从下手其实也许只有一二个错误例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息这时只要加上一种变量定义,就所有错误都消除了程序实现
4.2(D功能通讯录的每一条信息包括学号、姓名、(字符数组)
1.输入功能可以一次完毕若干条信息的输入
2.显示功能完毕所有通讯录信息的显示
3.查找功能可以用学号或姓名分别完毕按姓名查找每一种通讯信息,并显示新欧I通讯信息
4.增长功能可以无限增长学生数量
5.删除功能完毕按姓名删除通讯信息并显示新的通讯信息
6.将通讯录信息存在文献d:\\jilu.dat中
7.将通讯录信息保留到新日勺文献中
(2)需要改善不懂得怎样变化DOS界面的I颜色,使界面愈加完美;字体颜色也不懂得怎样变化总结
4.3通过这次课程设计,使我对c语言有了更深入的认识和理解,要想学好它要重在实践,要通过不停的上机操作才能更好地学习它,我也发现我的好多局限性之处,首先是自己在指法上还不行,常常按错字母,通过学习也有所改善;再有对c语言的某些原则库函数不太理解,尚有对函数调用的对的使用不够熟悉,尚有对C语言中常常出现的错误也不理解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其他的语言,以及其他的计算机方面的知识都要重在实践,所后来在学习过程中,我会愈加注视实践操作,使自己便好地学好计算机在课程设计过程中,收获知识,提高能力的同步,我也学到了诸多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上欧I不良情绪因此在后来的生活和学习的过程中,我一定会把课程设计的I精神带到生活中,不畏艰难,勇往直前.参照文献5
[1]谭浩强著.C程序设计(第三版).北京清华大学出版社,2023
[2]谭浩强著.C程序设计题解与上机指导.北京清华大学出版社,2023设计内容及规定L课程设计的内容
1.
1.编写学生通信录程序,包括如下功能模块
1、通信录的每一条信息包括姓名、地址、邮政编码、号码
2、输入功能可以一次完毕若干条信息的输入
3、显示功能完毕所有通信录信息区I显示
4、查找功能完毕按姓名查找通信信息,并显示
5、增长功能增长通信信息
6、删除功能完毕按姓名删除通信信息
7、应提供一种界面来调用各个功能,调用界面和各个功能的操作界面应尽量清晰美观!、课程设计的规定与数据
1.
21、规定运用构造化程序设计措施以及C的编程思想来完毕系统的设计
2、规定有菜单、文献操作,数据使用数组、构造体、链表等均可,键盘操作或鼠标操作均可
3、系统具有增长,查询,删除等基本功能;
4、模块化程序设计:规定在设计的过程中,按功能定义函数或书写多种文献,进行模块化设计,各个功能模块用函数的形式来实现
5、完毕设计任务并编写课程设计阐明书.概要设计2设计与开发一种通讯录管理系统,对通讯录中的姓名、单位、、、mail等基本信息进行管理、重要功能如下
1.输入记录;
2.显示记录;
3.按姓名查找显示记录;
4.删除记录;
5.插入记录;
6.记录保留为文献;
7.从文献中读记录;
8.按姓名排序;
9.显示单条记录;,设计过程或程序代码3问题描述
3.1制作一种通讯录,规定该系统对通讯录日勺姓名,单位,,进行输入,显示,查找,删除,插入,保留等操作的管理功能规定
3.21,本系统采用一种构造体数组,每个数据的构造应包括;姓名,单位,名称2,本系统显示这样的菜单请选择系统功能项a输入记录;b显示所有纪录;c查找记录;d删除记录;e插入记录;f保留文献;g读文献
(1)按序号显示记录;
(2)按姓名排序;
(3)迅速查找记录;
(4)复制文献算法提醒
3.
31.数据构造;构造体类型数组
2.数据库构造;下表构成该系统的基本数据库姓名电话学号测试数据
3.4姓名学号Zhang
3.4输入重要功能欧实现
3.5J源程序.二三三叁二三二三三ttinclude stdio.h-q有找显示ttinclude conio.h按字号查找足小记录ttinclude string.hftdefine N100ttinclude stdlib.h删除int M=3;structstudent-e|快速有找按姓名查找{char num
[10];char name
[10];char tel
[10];};记录保存void myprintsystem(cis);printf(|\n〃);printf(〃|:-)请输入选项编号(0-7):I\n〃);printf(〃|\n〃);printf(〃|1一创立--------------------------通讯录|\n〃);printf(〃|---------------2一显示通讯录|\n〃);printf(|----------------------3一查询通讯录----------------------------------1\n);printf(〃|---------------4一修改通讯录--------------------IV).printf(|------------5一添力口通讯录|\n〃);printf(〃|----------------------6一删除通讯录\n〃;printf〃0-退出|\n〃);|\n〃;printf〃|\n〃;}void mycreatstructstudent*p,int nstructstudent*q=p;FILE*fp=NULL;fp=fopen z,d:\\jilu.dat〃,〃w〃;iffp==NULL{printferror;return;}for p=q;p-qn;p++printf〃\n〃;printf〃第%1条记录:\n〃,p-q+1;printf〃学号:〃;do{getsp-num;}whilestrcmpp-num,0;printf〃姓名〃;getsp-name;printf,/:〃;gets p-tel;fprintf fp,/z%23s%15s%15s\n/z,p-num,p-name,p-tel;}}void mydisplaystructstudent*p,int nFILE*fp二NULL;fp二fopen〃d:\\jilu.dat〃,〃r〃;if fp-NULL{printf error;return;}system//cls//;printf r学号姓名\n〃;while n0{fscanf fp,z/%23s%15s%15sz/,p-num,p-name,p-tel;printfz/%23s%15s%15s\n/z,p-num,p-name,p-tel;p++;n一;void mysearchstructstudent*p,int n。