1、c语言课程设计身份证管理系统 1课 程 设 计 报 告题 目身份证管理系统学 号 姓 名 年级专业09电子信息工程同组人员无学 号无指导老师完成日期2010年6月24日 一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的语言程序,从而具备解决综合性实际问题的能力。 二、实践内容 在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握各种函数的应用
2、,包括时间函数、绘图函数,以及文件的读写操作等。三.问题描述:用C语言编写程序,实现添加,删除,查找等相关功能。四.基本要求:(1)具备添加、删除功能;(2)具备多种查询功能:按年龄、出生日期等;(3)具备统计功能,能统计某年龄段的人数;(4)在此基础上,可进行文件操作。五分析: 系统需求一、 当前身份证信息:通过结构体Person ID来保存人的姓名,生日,民族,性别,地址,身份证号等等相关信息,并且通过input函数来进行给当前身份初始信息输入. 二、身份信息查询: 输入一个人名字, 在文件中查找此人, 若找到则输出此人的全部信息; 若找不到则输出查找失败的信息。三、新信息插入 :通过in
3、sert实现添加功能,然后还可以按生日日期从小到大排序。四、输出全部学生信息和全部学生成绩。五、退出系统.六、附加说明:系统将来完善的功能有:可以通过年龄来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。 实际上未完成文件操作和根据年龄查询这两项功能,所以这个程序的功能也相应大打折扣,也是需要进一步改进的地方,尤其是文件操作,即对文件继续存储和读取.六.程序清单:#include#include#include#includetypedef structchar name20;char sex5;char folk5;char birth10;char add20;char i
4、d20;Person;Person ID100;int menu_select() char c;dosystem(cls);printf (ntt %c%c%c%c%c%c%cIdentity Conctrol 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 date nn,21);printf (t %c 2.Display date nn,21);printf (t %c 3.Sort the people by birth nn,21);printf (t %c 4.Insert an
5、ID nn,21);printf (t %c 5.Delete an ID nn,21);printf (t %c 6.Search an ID by name nn,21);printf (t %c 7.Count the people nn,21);printf (t %c 8.Copy date from file nn,21);printf (t %c 9.Write date to file nn,21);printf (t %c 0.exit nn,21);printf( (0-9):);c=getchar();while(c9);return(c-0);int input(Per
6、son ID,int n)int i=0;char sign=w,x10;system(cls);printf(tInput the date:n);while(sign!=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:);
7、scanf( %s,&IDn+i.id);gets(x);printf( Are you sure to continue?(Y/N)n);scanf( %c,&sign);i+;return(n+i);void display(Person ID,int n)int i;system(cls);printf(-n);printf( name sex folk birth add id n);printf(-n);for(i=1;i1&i%10=0)printf(-n);system(pause);printf(-n);system(pause);void sort_by_birth(Pers
8、on ID,int n)int i,j;char t20;system(cls);for(i=0;in-1;i+)for(j=0;j0) strcpy(t,IDj+1.name);strcpy(IDj+1.name,IDj.name);strcpy(IDj.name,t);strcpy(t,IDj+1.sex);strcpy(IDj+1.sex,IDj.sex);strcpy(IDj.sex,t);strcpy(t,IDj+1.folk);strcpy(IDj+1.folk,IDj.folk);strcpy(IDj.folk,t);strcpy(t,IDj+1.birth);strcpy(ID
9、j+1.birth,IDj.birth);strcpy(IDj.birth,t);strcpy(t,IDj+1.add);strcpy(IDj+1.add,IDj.add);strcpy(IDj.add,t);strcpy(t,IDj+1.id);strcpy(IDj+1.id,IDj.id);strcpy(IDj.id,t);int insert_an_id(Person ID,int n)char x100;system(cls);printf(ntName:);scanf(%s,&IDn.name);printf(tSex:);scanf(%s,&IDn.sex);printf(tFol
10、k:);scanf(%s,&IDn.folk);printf(tbirth:);scanf(%s,&IDn.birth );printf(tAddress:);scanf( %s,&IDn.add);printf(tID:);scanf( %s,&IDn.id);gets(x);n+;sort_by_birth(ID,n);printf(n);return(n);int delete_an_id(Person ID,int n)char s20;int i=0,j;system(cls);printf(Person name you want to delete :n);scanf(%s,s)
11、;while(strcmp(IDi.name,s)!=0&in) i+;if(i=n)printf( Sorry,there is no such a person n);return(n);for(j=i;jn-1;j+)strcpy(IDj.name,IDj+1.name);strcpy(IDj.sex,IDj+1.sex);strcpy(IDj.folk,IDj+1.folk);strcpy(IDj.birth,IDj+1.birth);strcpy(IDj.add,IDj+1.add);strcpy(IDj.id,IDj+1.id);printf( Delete ID successf
12、ully n);return(n-1);void search_by_name(Person ID,int n) char s20;int i=0;system(cls);printf( What is the name you want to find:);gets(s);while(strcmp(IDi.name,s)!=0&in) i+;if(i=n)printf(Sorry,there is no such a person n);system(pause);return(n);printf( name sex folk birth add id n);printf( %-10s%-1
13、0s%-10s%-15s%-15s%-15sn,IDi.name,IDi.sex,IDi.folk,IDi.birth,IDi.add,IDi.id);system(pause);void count(Person ID,int n) char str15,str25,str35;int i,j=0,p,q,r;system(cls);printf(please enter the current year:n);gets(str1);p=atoi(str1);printf(please enter the age you want to count:n);gets(str3);r=atoi(
14、str3);printf( name sex folk birth add id n);for(i=0;in;i+) strncpy(str2,IDi.birth,4);q=atoi(str2);if(p-q)=r)printf( %-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 addfromText(Person ID,int n)int
15、i=0,num;FILE *fp;char filename20;printf( Enter the file name :n);scanf( %s,filename);if(fp=fopen(filename,rb)=NULL)printf(Can not open the file : n);system(pause);return(n);fscanf(fp,%d,&num);while(inum)fscanf(fp,%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;
16、fclose(fp);XX文库 - 让每个人平等地提升自我printf(n);printf( Read successfully n);system(pause);return(n);void writetotext(Person ID,int n)int i=0;FILE *fp;char filename100;printf( Enter a filename: n);scanf( %s,filename);if(fp=fopen(filename,w)=NULL)printf(Can not open the file : n);system(pause);return;fprintf(
17、fp,%dn,n);while(in)fprintf(fp,%s%s%s%s%s%s,IDi.name,IDi.sex,IDi.folk,IDi.birth,IDi.add,IDi.id);i+;fclose(fp);printf(Write date to file successfullyn);void main()int n=0; for(;) switch(menu_select() case 1: printf( Input the ID of the person: n); n=input(ID,n); break; case 2: display(ID,n); break; ca
18、se 3: printf(Date sort by birth:n); sort_by_birth(ID,n); display(ID,n); break; case 4: printf(Insert an ID: n); n=insert_an_id(ID,n); display(ID,n); break; case 5: printf(Delete an ID: n); n=delete_an_id(ID,n); break; case 6: printf(Searth an ID by name: n); search_by_name(ID,n); break; case 7: prin
19、tf(count the age of people:n); count(ID,n); break; case 8: printf(Copy date from file:n ); addfromText(ID,n); break; case 9: printf(write date to file:n n); writetotext(ID,n); break; case 0: system(cls); printf(nnttThank you !); system(pause);exit(0); 七:运行结果(1)目录界面(2)输入界面(3)清单(4)按生日排序(5)添加功能(6)添加结果(
20、7)查找功能八:小结与收获经过多次的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过这次程序设计对for循环也有了进一步的认识,同时也了解了一些书本之外的知识,特别是动画效果。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。九:参考文献1C语言程序设计上机指导与习题选解主编:杨路明 北京邮电大学出版社2 C语言程序设计(第二版) 主编:谭浩强 清华大学出版社3C语言程序开发范例宝典 人民邮电出版社4编程大讲坛 C语言核心开发技术从开发到精通 电子工业大学出版社 物理与电子信息学院课程设计评定指导教师评语主要内容包括:设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1