文档库 最新最全的文档下载
当前位置:文档库 › 身份证管理系统

身份证管理系统

身份证管理系统
身份证管理系统









身份证管理系统


0908***


***
年级专业
09 电子信息工程
无 同组人员
无 学 号
指导老师
***
完成日期
2010
年 6

24

安徽师范大学物理与电子信息学院 College of Physics and Electronic Information, Anhui Normal Universi
1

一、实践的目的和要求
加深对《C 语言》课程所学知识的理解,进一步巩固 C 语言语法规则。学会编制结构清 晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。
二、实践内容
在熟练掌握 C 语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结 构等) ;运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等) ;程序结构(顺 序结构、判断选择结构、循环结构) ;大程序的功能分解方法(即函数的使用)等。进一 步掌握各种函数的应用,包括时间函数、绘图函数,以及文件的读写操作等。
三.问题描述:
用 C 语言编写程序,实现添加,删除,查找等相关功能。
四.基本要求:
(1)具备添加、删除功能; (2)具备多种查询功能:按年龄、出生日期等; (3)具备统计功能,能统计某年龄段的人数; (4)在此基础上,可进行文件操作。
五.分析:
系统需求 一、 当前身份证信息:通过结构体 Person ID 来保存人的姓名,生日,民族,性别,地址, 身份证号等等相关信息,并且通过 input 函数来进行给当前身份初始信息输入. 二、 身份信息查询: 输入一个人名字, 在文件中查找此人, 若找到则输出此人的全部信息; 若找不到则输出查找失败的信息。 三、新信息插入 :通过 insert 实现添加功能,然后还可以按生日日期从小到大排序。 四、输出全部学生信息和全部学生成绩。 五、退出系统. 六、附加说明:系统将来完善的功能有:可以通过年龄来模糊查询,也可以通过姓名的 姓来先进行模糊查询,以便后面精确查找。 实际上未完成文件操作和根据年龄查询这两项功能, 所以这个程序的功能也相应大打 折扣,也是需要进一步改进的地方,尤其是文件操作,即对文件继续存储和读取.........
2

若选择 1 执行函数 input(Person ID[],int n)
若选择 2 执行函数 display(Person ID[],int n)
若选择 3 执行函数 sort_by_birth(Person ID[],int
若选择 4 执行函数 delete_an_id(Person ID[],int n)
菜 单 函 数
若选择 5 执行函数 search_by_name(Person ID[],int n)
若选择 6 执行函数 count(Person ID[],int n)
若选择 7 执行函数 save(Person ID[],int n)
若选择 8 执行函数 read(Person ID[],int n)
若选择 9
退出程序
六.程序清单:
#include #include #include #include typedef struct
3

{ char name[20]; char sex[5]; char folk[5]; char birth[10]; char add[20]; char id[20]; }Person; Person ID[100]; int menu_select() { char c; do{system("cls"); printf ("\n\t\t %c%c%c%c%c%c%cIdentity System%c%c%c%c%c%c%c\n\n\n",3,3,3,3,3,3,3,3,3,3,3,3,3,3); printf ("\t %c 1.Input date \n\n",21); printf ("\t %c 2.Display date \n\n",21); printf ("\t %c 3.Sort the people by birth \n\n",21); printf ("\t %c 4.Insert an ID \n\n",21); printf ("\t %c 5.Delete an ID \n\n",21); printf ("\t %c 6.Search an ID by name \n\n",21); printf ("\t %c 7.Count the people \n\n",21); printf ("\t %c 8.Copy date from file \n\n",21); printf ("\t %c 9.Write date to file \n\n",21); printf ("\t %c 0.exit \n\n",21); printf(" (0-9):"); c=getchar(); }while(c<'0'||c>'9'); return(c-'0'); } int input(Person ID[],int n) {int i=0; char sign='w',x[10];system("cls"); printf("\tInput the date:\n"); while(sign!='n'&&sign!='N') { printf("\tName:"); scanf("%s",&ID[n+i].name); printf("\tSex:"); scanf("%s",&ID[n+i].sex); printf("\tFolk:"); scanf("%s",&ID[n+i].folk); Conctrol
4

printf("\tbirth:"); scanf(" %s",&ID[n+i].birth ); printf("\tAddress:"); scanf(" %s",&ID[n+i].add); printf("\tID:"); scanf(" %s",&ID[n+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(Person ID[],int n) { int i,j; char t[20];system("cls"); for(i=0;i0) { strcpy(t,ID[j+1].name); strcpy(ID[j+1].name,ID[j].name);
5

strcpy(ID[j].name,t); strcpy(t,ID[j+1].sex); strcpy(ID[j+1].sex,ID[j].sex); strcpy(ID[j].sex,t); strcpy(t,ID[j+1].folk); strcpy(ID[j+1].folk,ID[j].folk); strcpy(ID[j].folk,t); strcpy(t,ID[j+1].birth); strcpy(ID[j+1].birth,ID[j].birth); strcpy(ID[j].birth,t); strcpy(t,ID[j+1].add); strcpy(ID[j+1].add,ID[j].add); strcpy(ID[j].add,t); strcpy(t,ID[j+1].id); strcpy(ID[j+1].id,ID[j].id); strcpy(ID[j].id,t); } } int insert_an_id(Person ID[],int n) { char x[100];system("cls"); printf("\n\tName:"); scanf("%s",&ID[n].name); printf("\tSex:"); scanf("%s",&ID[n].sex); printf("\tFolk:"); scanf("%s",&ID[n].folk); printf("\tbirth:"); scanf("%s",&ID[n].birth ); printf("\tAddress:"); scanf(" %s",&ID[n].add); printf("\tID:"); scanf(" %s",&ID[n].id); gets(x); n++; sort_by_birth(ID,n); printf("\n"); return(n); } int delete_an_id(Person ID[],int n) { char s[20];
6

int i=0,j;system("cls"); printf("Person name you want to delete :\n"); scanf("%s",s); while(strcmp(ID[i].name,s)!=0&&i7

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(str3); printf(" name sex folk birth add id \n"); for(i=0;i8

printf("\n"); printf(" Read successfully \n"); system("pause"); return(n); } void writetotext(Person ID[],int n) { int i=0; FILE *fp; char filename[100]; 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(fp,"%d\n",n); while(i9

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: printf("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("\n\n\t\tThank you !"); system("pause");exit(0); } } }
七:运行结果
(1)目录界面
10

(2)输入界面
(3)清单
(4)按生日排序
11

(5)添加功能
(6)添加结果
(7)查找功能
12

八:小结与收获
经过多次的上机实践学习,使我对 C 语言有了更进一步的认识和了解,要想学好它 要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多 不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对 C 语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对 C 语 言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过这 次程序设计对 for 循环也有了进一步的认识,同时也了解了一些书本之外的知识,特别是 动画效果。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习 C 语言, 还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中, 我会更加注视实践操作,使自己便好地学好计算机。
九:参考文献
[1]《C 语言程序设计上机指导与习题选解》主编:杨路明 北京邮电大学出版社
[2] 《C 语言程序设计(第二版)》 主编:谭浩强
清华大学出版社
[3]《C 语言程序开发范例宝典》
人民邮电出版社
[4]《编程大讲坛
C 语言核心开发技术从开发到精通》
电子工业大学出版社
13

物理与电子信息学院课程设计评定
内 设计 得
括:设计报告内 获等。
况、报告格


过课






14

相关文档