C语言之学生档案管理_第1页
C语言之学生档案管理_第2页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*#include#include#include #include#define MAX 500 /定义储存容量typedef structint month,day,year。/出生年月BD。typedef structint number。/学号char name13。/姓名char sex7。/性别:male or femaleBD birth。/出生年月MM-DD-YYchar addr35。/地址ST。ST studentMAX。/全局变量/*函数声明*/void menu_show()。/显示菜单void menu()。/菜单响应char get_menu_choice()。/

2、获取菜单选择信息FILE*file_operate(char*mode)。/文件操作模块voidadd(FILE*fp)。/添加学生信息void show(FILE*fp)。/显示学生信息void search(FILE*fp)。/查找学生信息void modify(FILE*fp)。/修改学生信息void del(FILE*fp)。/删除学生信息voidf_backup()。/文件备份void psw_check()。/密码验证voidset_psw()。/设置密码int main()system(cls)。psw_check()。menu()。return 0。/* voidmenu_sh

3、ow()printf(nn)。一叶星尘S欢*主函数*显示菜单*void menu()while(1)menu_show()。switch(get_menu_choice()case 1:add(file_operate(a)。system(pause)。system(cls)。break。case 2:show(file_operate(rb)。system(pause)。system(cls)。break。case3:search(file_operate(rb)。system(pause)。system(cls)。break。case 4:modify(file_operate(rb)。s

4、ystem(pause)。system(cls)。break。case 5:del(file_operate(r)。system(pause)。system(cls)。break。case 6:f_backup()。system(pause)。system(cls)。break。case 7:set_psw()。system(pause)。system(cls)。printf(t+- - +n)。printf(t|学生档案管理系统|n)。printf(t|-|n)。printf(t|【1.输入数据】|【5.删除数据】|n)。printf(t|【2.显示数据】|【6.备份数据】|n)。print

5、f(t|【3.查询数据】|【7.设置口令】|n)。printf(t|【4.修改数据】|【0.退出 】|n)。printf(t+- +n)。*菜单响应模块*break。case 0:printf(Thank you for use this program.n)。system(pause)。system(cls)。exit(0)。/正常退出char get_menu_choice()char menu_choice。dofflush(stdin)。printf(Pleasechoice:)。scanf(%c,&menu_choice)。if(menu_choice7)puts(input

6、error,try again.)。while(menu_choice7)。return menu_choice。FILE*file_operate(char*mode)char choise。FILE*fp。dofflush(stdin)。if(fp=fopen(d:student,mode)=NULL) /打开文件puts(File operation failure)。puts(Try Again(y/n)?)。scanf(%c,&choise)。while(choise=y|choise=Y)。if(choise=n|choise=N)exit(1)。/非正常退出return

7、fp。void add(FILE*fp)*接收菜单选择*文件操作*输入资料*int i=0。char choice=y。doprintf(No.(11101040221): )。scanf(%d,&studenti.number)。printf(Name(less than 12character): )。scanf(%s,&)。printf(Sex(maleor female): )。scanf(%s,&studenti.sex)。printf(Birthday:n)。printf( year:)。scanf(%d,&studenti

8、.birth.year)。printf( month:)。scanf(%d,&studenti.birth.month)。printf( day:)。scanf(%d,&studenti.birth.day)。printf(Address: )。scanf(%s,studenti.addr)。if(fwrite(&studenti,sizeof(ST),1,fp)!=1) puts(data write error.)。i+。fflush(stdin)。printf(Continue(y/n)?)。scanf(%c,&choice)。while(choice=y

9、|choice=Y)。fclose(fp)。void search(FILE*fp)int i,m。char search_name20。/查找姓名变量char choice=y。for(i=0。feof(fp)=0。i+) /读取文件if(fread(&studenti,sizeof(ST),1,fp)!=1&feof(fp)=0) puts(error)。m=i-1。/m被赋值为数组非空数据最大索引值dofflush(stdin)。puts(Enter the name for searching: )。*查找信息*gets(search_name)。for(i=0。im。

10、i+) /遍历数组if(strcmp(search_name,)=0) /判断是否有要查找的学生姓名,有则显示数据printf(No.:%d Name: %s Sex: %s Birth:%d-%d-%dAddress:%sn,studenti.number,,studenti.sex,studenti.birth.year,studenti.birth.month,studenti.birth.day,studenti.addr)if(feof(fp)!=0)puts(searching done.)。puts(continue(y/n)?

11、)。scanf(%c,&choice)。while(choice=y|choice=Y)。fclose(fp)。void show(FILE*fp)int i,m。for(i=0。feof(fp)=0。i+)if(fread(&studenti,sizeof(ST),1,fp)!=1&feof(fp)=0)puts(error)。m=i-1。printf(There %d Record:n,m)。printf(Number Name Sex Birth Addressn)。for(i=0。im。i+)printf(%-8d%-12s%-6s%-4d-%-2d-%-2d3

12、5sn,studenti.number,,studenti.sex,studenti.birth.year,studenti.birth.month,studenti.birth.day,studenti.addr)if(feof(fp)!=0)*显示资料*%-puts(Display Informtion Done.)。fclose(fp)。void modify(FILE*fp)int number_temp。char i,m,j=0。FILE*fp_update。for(i=0。feof(fp)=0。i+) /读取文件if(fread(&a

13、mp;studenti,sizeof(ST),1,fp)!=1&feof(fp)=0) puts(error)。m=i-1。dofflush(stdin)。printf(Enter number for change: )。scanf(%d,&number_temp)。for(i=0。im。i+)if(number_temp=studenti.number)j=i。printf(No.: %d Name: %s Sex: %s birth:Address:%sn,studenti.number,,studenti.sex,studenti.birth.

14、year,studenti.birth.month,studenti.birth.day,studenti.addr)if(j=0)puts(No this record.)。break。fflush(stdin)。printf(change data %d(y/n)?,number_temp)。/修改确认scanf(%c,&choice)。if(choice=n|choice=N) /修改资料continue。printf(No.: )。scanf(%d,&studentj.number)。printf(Name:)。scanf(%s,)。print

15、f(Sex: )。*修改资料*%d-%d-%dscanf(%s,studentj.sex)。printf(Birthday: )。printf( year:)。scanf(%d,&studentj.birth.year)。printf( month: )。scanf(%d,&studentj.birth.month)。printf( day: )。scanf(%d,&studentj.birth.day)。printf(Address: )。scanf(%s,studentj.addr)。fflush(stdin)。printf(continue(y/n)?)。scan

16、f(%c,&choice)。while(choice=y|choice=Y)。fp_update=file_operate(w)。for(i=0。im。i+)if(fwrite(&studenti,sizeof(ST),1,fp_update)!=1)puts(updateerror.)。puts(changedone.)。fclose(fp_update)。void del(FILE*fp)int i,m,t=-1。int number_temp。char choice=y。for(i=0。feof(fp)=0。i+)if(fread(&studenti,sizeof

17、(ST),1,fp)!=1&feof(fp)=0) puts(error)。m=i-2。dofflush(stdin)。printf(Enter the number for delete: )。scanf(%d,&number_temp)。for(i=0。im+1。i+)if(studenti.number=number_temp) /删除前显示学生资料printf(No.: %d Name: %s Sex: %s Brith: Address:%sn,studenti.number,,*删除资料*%d-%d-%dstudenti.sex,stude

18、nti.birth.year,studenti.birth.month,studenti.birth.day,studenti.advoid f_backup()FILE*fp,*fp_bak。char ch。char filename312。/存放备份文件文件名printf(Enter the backup file name:)。scanf(%s,filename)。fp=file_operate(rb)。fp_bak=fp。if(fp_bak=fopen(filename,wb)=NULL)puts(backup file error.)。exit(0)。dr)。fflush(stdin

19、)。printf(delete %d(y/n)?)。scanf(%c,&choice)。if(choice=n|choice=N) break。for(t=i。tm。t+)studentt=studentt+1。puts(delete data done.)。m-。if(t=-1&choice!=n&choice!=N)printf(No %ds data!n,number_temp)。/删除数据fflush(stdin)。printf(continue(y/n)?)。scanf(%c,&choice)。while(choice=y|choice=Y)。fclo

20、se(fp)。fp=file_operate(w)。for(i=0。im+1。i+)if(fwrite(&studenti,sizeof(ST),1,fp)!=1)puts(error)。fclose(fp)。*文件备份*while(!feof(fp)ch=fgetc(fp)。fputc(ch,fp_bak)。fclose(fp)。fclose(fp_bak)。puts(file backup success.)。void psw_check()char psw8,psw_ i,leap。FILE*fp。if(fp=fopen(d:sn.txt,rt)=NULL) /读取密码,如不成功则要求设置密码puts(You must set password first.)。menu()。if(fread(psw,sizeof(psw),1,fp)!=1) puts(error.)。for(i=0。i8。i+) /解密pswi=pswi。doleap=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论