2022年C语言身份证管理.docx
精品学习资源课程设计报告题目身份证治理系统学号姓名年级专业09 电子信息工程同组人员无学 号无指导老师完成日期2021年 6月24日一、实践的目的和要求加深对 C 语言课程所学学问的懂得,进一步巩固C 语言语法规章;学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的才能;二、实践内容在娴熟把握 C 语言的基本学问:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、规律运算、自增自减运算、赋值运算等);程序结构(次序结构、判定选择结构、循环结构);大程序的功能分解方法(即函数的使用) 等;进一步把握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等;欢迎下载精品学习资源三.问题描述 :用 C 语言编写程序,实现添加,删除,查找等相关功能;四.基本要求 :(1) )具备添加、删除功能;(2) )具备多种查询功能:按年龄、产生日期等;(3) )具备统计功能,能统计某年龄段的人数;(4) )在此基础上,可进行文件操作;五分析 :系统需求一、 当前身份证信息 :通过结构体 Person ID 来储存人的姓名,生日,民族,性别,地址,身份证号等等相关信息,并且通过input 函数来进行给当前身份初始信息输入 .二、身份信息查询 : 输入一个人名字 , 在文件中查找此人 , 如找到就输出此人的全部信息; 如找不到就输出查找失败的信息;三、新信息插入 :通过 insert 实现添加功能,然后仍可以按生日日期从小到大排序;四、输出全部同学信息和全部同学成果;五、退出系统 .六、附加说明:系统将来完善的功能有:可以通过年龄来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找;实际上未完成文件操作和依据年龄查询这两项功能,所以这个程序的功能也相应大打折扣,也是需要进一步改进的地方,特别是文件操作,即对文件连续储备和读取.欢迎下载精品学习资源如选择1 执行函数inputPerson ID,int n如选择2 执行函数displayPerson ID,int n如选择3 执行函数sort_by_birthPerson ID,int如选择4 执行函数delete_an_idPerson ID,int n如选择5 执行函数search_by_namePerson ID,int n如选择6 执行函数countPerson ID,int n如选择7 执行函数savePerson ID,int n如选择8 执行函数readPerson ID,int n如选择9退出程序菜单函数六.程序清单 : #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> typedef structchar name20;欢迎下载精品学习资源char sex5;char folk5 ;char birth10 ;char add20;char id20 ;Person; Person ID100;int menu_selectchar c;dosystem"cls" ;printf"ntt%c%c%c%c%c%c%cIdentityConctrol System%c%c%c%c%c%c%cnnn",3,3,3,3,3,3,3,3,3,3,3,3,3,3;printf "t %c 1.Input datenn",21;printf "t %c 2.Display datenn",21;printf "t %c 3.Sort the people by birthnn",21;printf "t %c 4.Insert an IDnn",21;printf "t %c 5.Delete an IDnn",21;printf "t %c 6.Search an ID by namenn",21;printf "t %c 7.Count the peoplenn",21;printf "t %c 8.Copy date from filenn",21 ;printf "t %c 9.Write date to filenn",21;printf "t %c 0.exitnn",21;printf" 0-9:" ;c=getchar;whilec<'0'|c>'9' ;returnc-'0';int inputPerson ID,int nint i=0 ;char sign='w',x10;system"cls";printf"tInput the date:n" ;whilesign.='n'&&sign.='N'printf"tName:" ;scanf"%s",&IDn+i.name ;printf"tSex:" ;scanf"%s",&IDn+i.sex ;printf"tFolk:" ;scanf"%s",&IDn+i.folk;printf"tbirth:" ;scanf" %s",&IDn+i.birth ;printf"tAddress:" ;scanf" %s",&IDn+i.add ;printf"tID:" ;欢迎下载精品学习资源scanf" %s",&IDn+i.id ;getsx;printf" Are you sure to continue.Y/Nn" ;scanf" %c",&sign ;i+ ;returnn+i;void displayPerson ID,int nint i ;system"cls";printf"-n";printf" namesexfolkbirthaddidn";printf"-n";fori=1 ;i<n+1 ;i+printf"%-10s%-10s%-10s%-15s%-15s%-15sn",IDi-1.name,IDi-1.sex,IDi-1.folk,IDi- 1.birth,IDi-1.add,IDi-1.id;ifi>1&&i%10=0printf"-n";system"pause";printf"-n";system"pause";void sort_by_birthPerson ID,int nint i,j ;char t20;system"cls";fori=0 ;i<n-1 ;i+ forj=0 ;j<n-1-i ;j+ifstrcmpIDj.birth,IDj+1.birth>0 strcpyt,IDj+1.name ;strcpyIDj+1.name,IDj.name ;strcpyIDj.name,t ;strcpyt,IDj+1.sex ;strcpyIDj+1.sex,IDj.sex ;strcpyIDj.sex,t ;strcpyt,IDj+1.folk ;strcpyIDj+1.folk,IDj.folk;strcpyIDj.folk,t ;strcpyt,IDj+1.birth ;strcpyIDj+1.birth,IDj.birth;欢迎下载精品学习资源strcpyIDj.birth,t ;strcpyt,IDj+1.add ;strcpyIDj+1.add,IDj.add ;strcpyIDj.add,t ;strcpyt,IDj+1.id ;strcpyIDj+1.id,IDj.id;strcpyIDj.id,t ;int insert_an_idPerson ID,int nchar x100;system"cls";printf"ntName:" ;scanf"%s",&IDn.name ;printf"tSex:" ;scanf"%s",&IDn.sex ;printf"tFolk:" ;scanf"%s",&IDn.folk ;printf"tbirth:" ;scanf"%s",&IDn.birth ;printf"tAddress:" ;scanf" %s",&IDn.add ;printf"tID:" ;scanf" %s",&IDn.id ;getsx;n+;sort_by_birthID,n ;printf"n" ;returnn;int delete_an_idPerson ID,int nchar s20;int i=0,j ;system"cls";printf"Person name you want to delete :n";scanf"%s",s;whilestrcmpIDi.name,s.=0&&i<n i+;ifi=nprintf" Sorry,there is no such a person n";returnn;forj=i ;j<n-1;j+欢迎下载精品学习资源strcpyIDj.name,IDj+1.name ;strcpyIDj.sex,IDj+1.sex ;strcpyIDj.folk,IDj+1.folk;strcpyIDj.birth,IDj+1.birth;strcpyIDj.add,IDj+1.add ;strcpyIDj.id,IDj+1.id;printf" Delete ID successfully n" ;returnn-1;void search_by_namePerson ID,int nchar s20;int i=0 ;system"cls";printf" What is the name you want to find:" ;getss;whilestrcmpIDi.name,s.=0&&i<n i+ifi=n;printf"Sorry,there is no such a personn";system"pause";returnn;printf" namesexfolkbirthprintf"addidn";%-10s%-10s%-10s%-15s%-15s%-15sn",IDi.name,IDi.sex,IDi.folk,IDi.birth,IDi.add,IDi.id;system"pause";void countPerson ID,int n char str15,str25,str35 ;int i,j=0,p,q,r ;system"cls";printf"please enter the current year:n";getsstr1;p=atoistr1;printf"please enter the age you want to count:n";getsstr3;r=atoistr3;printf" namesexfolkbirthaddidn";fori=0 ;i<n;i+ strncpystr2,IDi.birth,4 ;q=atoistr2;ifp-q=rprintf"%-10s%-10s%-10s%-15s%-15s%-15sn",IDi.name,IDi.sex,IDi.folk,IDi.birth,IDi.add,IDi.id;j+ ;欢迎下载精品学习资源printf"There are %d person about this age.n",j;system"pause";int addfromTextPerson ID,int nint i=0,num ;FILE *fp ;char filename20;printf" Enter the file name :n" ;scanf" %s",filename;iffp=fopenfilename,"rb"=NULLprintf"Can not open the file : n";system"pause";returnn;fscanffp,"%d",&num ;whilei<numfscanffp,"%s%s%s%s%s%s",IDn+i.name,IDn+i.sex,IDn+i.folk,IDn+i.birth,IDn+i.add,IDn+i.id ;i+ ;n+=num;fclosefp;printf"n" ;printf" Read successfully n";system"pause";returnn;void writetotextPerson ID,int nint i=0 ;FILE *fp ;char filename100;printf" Enter a filename: n" ;scanf" %s",filename;iffp=fopenfilename,"w"=NULLprintf"Can not open the file :n" ;system"pause";return;欢迎下载精品学习资源fprintffp,"%dn",n ;whilei<nfprintffp,"%s%s%s%s%s%s",IDi.name,IDi.sex,IDi.folk,IDi.birth,IDi.add,IDi.id;i+ ;fclosefp;printf"Write date to file successfullyn" ;void mainint n=0;for;switchmenu_selectcase 1:欢迎下载精品学习资源case 3:case 4:case 5:case 6:case 7:printf" Input the ID of the person: n" ;n=inputID,n ;break;case 2:displayID,n ;break;printf"Date sort by birth:n" ;sort_by_birthID,n ;displayID,n ;break;printf"Insert an ID: n" ;n=insert_an_idID,n;displayID,n ;break;printf"Delete an ID: n" ;n=delete_an_idID,n;break;printf"Searth an ID by name: n";search_by_nameID,n;break;printf"count the age of people:n";countID,n;欢迎下载精品学习资源case 8:case 9:break;printf"Copy date from file:n " ;addfromTextID,n;break;printf"write date to file:n n" ;writetotextID,n ;break;case 0: system"cls";printf"nnttThank you ." ;system"pause";exit0 ;欢迎下载精品学习资源七:运行结果(1) )目录界面(2) )输入界面(3) )清单(4) )按生日排序(5) )添加功能(6) )添加结果(7) )查找功能八:小结与收成经过多次的上机实践学习,使我对C 语言有了更进一步的熟识和明白,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发觉我的好多 不足之处,第一是自己在指法上仍不行,经常按错字母,通过学习也有所改进;再有对C 语言的一些标准库函数不太明白,仍有对函数调用的正确使用不够熟识,仍有对C 语言中经常显现的错误也不明白,通过实践,使我在这几个方面的熟识有所提高;通过这次程序设计对 for 循环也有了进一步的熟识,同时也明白了一些书本之外的学问,特别欢迎下载精品学习资源是动画成效; 通过实践的学习,我认到学好运算机要重视实践操作,不仅仅是学习C 语言,仍是其它的语言,以及其它的运算机方面的学问都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好运算机;九:参考文献1 C语言程序设计上机指导与习题选解主编:杨路明北京邮电高校出版社2 C语言程序设计(其次版)主编:谭浩强清华高校出版社3 C语言程序开发范例宝典人民邮电出版社4 编程大讲坛 C 语言核心开发技术从开发到熟知电子工业高校出版社物理与电子信息学院课程设计评定欢迎下载精品学习资源主要 内容包括: 设计报 告内容的完整性和完成情况、报告格式的 规范性、通 过课 程设计 取得的收 获等;指导老师评语欢迎下载