C语言课程设计学生考勤系统_第1页
C语言课程设计学生考勤系统_第2页
C语言课程设计学生考勤系统_第3页
C语言课程设计学生考勤系统_第4页
C语言课程设计学生考勤系统_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

1、PAGE PAGE 55C语言程序设计课程设计报告设计题目:学生考考勤系统统设计专 业微微电子科科学与工工程班 级微微电1331 学 生赵赵 杨 怡指导教师 年 学期设计任务:C语言言课程设设计任务务书100题目:学生生考勤系系统设计计功能:学生生考勤系系统应包包含各班班学生的的全部信信息。每每个学生生是一条条记录,包包括姓名名、性别别、学号号、日期期、节次次、出勤勤情况等等信息。本本系统可可以模拟拟考勤过过程、记记录考勤勤结果,并并能在课课程结束束后按照照设定的的考勤评评分标准准自动给给出每个个学生的的考勤分分数。要求:1、用用C语言言实现程程序设计计;2、利用结结构体进进行相关关信息处处理

2、;3、系统的的各个功功能模块块要求用用函数的的形式实实现;4、界面友友好(良良好的人人机交互互),程程序加必必要的注注释。平时成绩:验收答辩成成绩:设计报告成成绩:总评成绩:指导教师:一、总体设设计1程序的的总体设设计确定界面面,使用用户可选选择操作作项目(录录入,修修改,查查询,评评分)。录入功能能:使用用结构体体,要求求用户输输入姓名名、性别别、学号号、日期期、节次次、当前前出勤情情况等信信息,并并写入文文件。 修改功能能:使用用户输入入学号,姓姓名其中中一项可可以修改改考勤其其信息。对对于修改改功能的的实现,是是先将所所有文件件内容读读入到内内存中,然然后修改改考勤值值,最后后再重新新覆

3、盖写写入文件件。查询模块块:使用用字符串串比较函函数,利利用循环环找到对对应结构构体数组组元素,然然后输出出需要信信息。对对于查询询功能的的实现,同同修改,是是先将所所有文件件内容读读入到内内存中,然然后查找找到其中中某项,最最后输出出到屏幕幕。评分模块块:系统统根据总总的应道道考勤数数按照百百分制,求求出每个个学生的的分数,并并输出到到屏幕。2. 数据据结构学生信息用用结构体体记录,包包括姓名名(字符符数组)、性性别(字字符型)、日日期(年年月日三三个字符符数组)、节节次(整整型)、出出情况(整整型)。3. 函数数原型声声明 voiid mmainn() /主主函数void inpput()

4、; /录录入数据据函数void chaangee(); /修改改数据函函数void seaarchh(); /查询数数据函数数void evaaluaate(); /计算算总评函函数二、详细设设计1.maiin( )函数数void maiin()void inpput(); /录录入数据据函数void chaangee(); /修改改数据函函数void seaarchh(); /查询数数据函数数void evaaluaate(); /计算算总评函函数 ccharr ittem; ssysttem(coolorr 344);printtf( n);printtf( n);printtf( 学 生

5、 考 勤 管 理 系 统 n);printtf( n);printtf( BY 朱胜佳佳 n);printtf( n);printtf( n);printtf( n);printtf( 1.学生信信息及考考勤情况况录入 n);printtf( n);printtf( 2.学生信信息及考考勤情况况修改 n);printtf( n);printtf( 3.学生信信息及考考勤情况况查询 n);printtf( n);printtf( 4.学生考考勤总评评分数查查询 n);printtf( n);printtf( n); /用户户界面printtf(n);printtf( 请请选择您您需要的的操作n)

6、;scanff(%c,&ittem); sswittch(iteem) caase 1: iinpuut();brreakk; caase 2: cchannge();bbreaak; caase 3: ssearrch();bbreaak; caase 4: eevalluatte();brreakk; /实现功功能选择择流程图:开 始开 始1breakgoal()search()amend()record()432switch(item) switch(item)switch(item)输出界面1breakgoal()search()amend()record()432switch(ite

7、m) switch(item)switch(item)输出界面结束结束2.inpput() 函函数void inpput()int ii,j=0,jjx=11;printtf( *学 生 基基 本 信 息息 录 入*n);if(ffp=ffopeen(datte.ttxt,ww)=NNULLL)printtf(文件打打开失败败n); eexitt(0);for(ii=0;jx=1;i+) /输输入信息息循环 ffor(;j=0;) /输入确确认循环环getchhar();printtf(请输入入第%dd个学生生的姓名名 ,i+11);gets(stuui.naame);printtf(请输入入

8、第%dd个学生生的学号号 ,i+11);gets(stuui.nuumbeer);printtf(请输入入第%dd个学生生的性别别(男:m 女女:f) ,i+11);stuii.ssex=gettchaar();printtf(请输入入第%dd个学生生的生日日(格式式:年 月 日日) ,i+1);scanff(%d%dd%d,&sstui.yeaar,&stuui.moonthh,&sstui.dayy); priintff(请请输入第第%d个个学生的的当前考考勤次数数 ,i+11);scanff(%d,&sttuii.kkq);printtf(您输入入的信息息为 姓姓名 %s 学学号 %s

9、性性别 %c 生生日 %d年%d月%d日n 0 重重输 11 确认认,sstui.namme,sstui.nummberr,sttuii.ssex,stuui.yeear,stuui.moonthh,sttuii.dday);scanff(%d,&j); /输入入确认 jj=0; iif(ffwriite(&sttuii,ssizeeof(strructt sttudeent),1,fp)!=11) pprinntf(文件件写入错错误nn); /写入文文件printtf( 是否继继续输入入下一个个学生信信息 00 终止止 11 继续续n);scanff(%d,&jxx); /继续续输入选选择f

10、closse(ffp); pprinntf(0 返回主主菜单n);getchhar();a=gettchaar();getchhar();if(a=00) maiin(); /返回回主菜单单流程图:开始开始0=j0=j打开文件打开文件1=jx1=jx0=i0=ijx=1?jx=1?YYj=0?j=0?Y输入i+1个学生信息生信息输入i+1个学生信息生信息NN输入j值选择是否确认输入j值选择是否确认写入文件写入文件i+1=ii+1=i输入jx值选择是否继续输入jx值选择是否继续结束结束3.chaangee()函函数void chaangee() iint i=00,j=0,sswayy,t,x;

11、 ccharr naame10,nuumbeer110;printtf( *学 生生 考 勤 修修 改*nn); iif(fp=foppen(daate.txtt,r)=NULLL) /将将文件内内容读入入内存printtf(文件打打开失败败n); eexitt(0);for(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /读取文文件内容容fclosse(ffp); /关闭文文件printtf(选择查查找方式式 1 按照姓姓名查找找 22 按照照学号查查找);scanff(%d,&swway)

12、; /*按按照姓名名查找开开始*/if(swway=1)printtf(请输入入需要修修改学生生的姓名名 );/priintff(ii=%dd,ii);scanff(%s,namme);for(jj=0;t!=0;jj+) t=strrcmpp(sttujj.nnamee,naame);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-

13、11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq); prrinttf(是否修修改该生生考勤信信息 0 否否 11 是); /选选择是否否修改考考勤 sscannf(%d,&xx); /输输入选择择变量值值if(x=1)printtf(请输入入新的考考勤值 );scanff(%d,&sttujj-1.kqq); /输入入新的考考勤值 iif(fp=foppen(daate.txtt,w)=NULLL) /以只写写方式打打开文件件 pprinntf(文件件打开失失败nn); exiit

14、(00); ffor(j=00;ji;jj+) iff(fwwritte(&stuuj,siizeoof(sstruuct stuudennt),1,ffp)!=1) prrinttf(文件写写入错误误n); /写写入文件件 ffcloose(fp); /关闭闭文件printtf(是否继继续修改改其他学学生考勤勤 0 否 1 是是);scanff(%d,&x);if(x=1) chhangge();/*按照姓姓名查找找结束*/ /*按按照学号号查找开开始*/if(swway=2)printtf(请输入入需要修修改学生生的学号号 );/priintff(ii=%dd,ii);scanff(%s,

15、nummberr);for(jj=0;t!=0;jj+) t=strrcmpp(sttujj.nnumbber,nummberr);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.k

16、qq); prrinttf(是否修修改该生生考勤信信息 0 否否 11 是); /选选择是否否修改考考勤 sscannf(%d,&xx); /输输入选择择变量值值if(x=1)printtf(请输入入新的考考勤值 );scanff(%d,&sttujj-1.kqq); /输入入新的考考勤值 iif(fp=foppen(daate.txtt,w)=NULLL) /以只写写方式打打开文件件 pprinntf(文件件打开失失败nn); exiit(00); ffor(j=00;ji;jj+) iff(fwwritte(&stuuj,siizeoof(sstruuct stuudennt),1,ffp

17、)!=1) prrinttf(文件写写入错误误n); /写写入文件件 ffcloose(fp); /关闭闭文件printtf(是否继继续修改改其他学学生考勤勤 0 否 1 是是);scanff(%d,&x);if(x=1) chhangge();/*按照学学号查找找结束*/printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00) maiin();开始开始打开文件打开文件将文件内容全部读入结构体数组将文件内容全部读入结构体数组输入sway值选择查找方式输入sway值选择查找方式Sway=1?Sway=1?NNSway=2?

18、YSway=2?Y输入要查找的学号输入要查找的姓名输入要查找的学号输入要查找的姓名N查找学号查找姓名N查找学号查找姓名输入X值选择是否修改考勤输入X值选择是否修改考勤X=1?X=1?YY输入新的考勤值输入新的考勤值写入文件写入文件结束结束4. seearcch()函数void seaarchh() iint i=00,j=0,sswayy,t,x; ccharr naame10,nuumbeer110;printtf( *学 生 信信 息 查 询询*n); iif(fp=foppen(daate.txtt,r)=NULLL) /将文件件内容读读入内存存printtf(文件打打开失败败n); e

19、exitt(0);for(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /读取文文件内容容fclosse(ffp); /关闭文文件printtf(选择查查找方式式 1 按照姓姓名查找找 22 按照照学号查查找);scanff(%d,&swway); /*按按照姓名名查找开开始*/if(swway=1)printtf(请输入入需要修修改学生生的姓名名 );/priintff(ii=%dd,ii);scanff(%s,namme);for(jj=0;t!=0;jj+) t=strrcmpp(stt

20、ujj.nnamee,naame);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq); printtf(是否继继续查询询其他学学生信息息 0 否 1 是是);scanff(%

21、d,&x);if(x=1) seearcch();/*按照姓姓名查找找结束*/ /*按按照学号号查找开开始*/if(swway=2)printtf(请输入入需要修修改学生生的学号号 );/priintff(ii=%dd,ii);scanff(%s,nummberr);for(jj=0;t!=0;jj+) t=strrcmpp(sttujj.nnumbber,nummberr);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日

22、%dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq);printtf(是否继继续查询询其他学学生信息息 0 否 1 是是);scanff(%d,&x);if(x=1) seearcch();/*按照学学号查找找结束*/printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00) maiin(); 流流程图:开始开始打开文件打开

23、文件将文件内容全部读入结构体数组将文件内容全部读入结构体数组输入sway值选择查找方式输入sway值选择查找方式Sway=1?Sway=1?NNSway=2?YSway=2?Y输入要查找的学号输入要查找的姓名输入要查找的学号输入要查找的姓名查找学号查找姓名查找学号查找姓名输出该生信息输出该生信息5.evaaluaate()函数数void evaaluaate() iint i=00,j=0,sswayy,t,x; ffloaat sscorre; ccharr naame10,nuumbeer110;printtf( *学 生 考考 勤 分 数数 计 算*n);if(kqqcs=0)print

24、tf(请输入入应到考考勤总数数 ); /请输入入应到考考勤总数数scanff(%f,&kqqcs); iif(fp=foppen(daate.txtt,r)=NULLL) /将文文件内容容读入内内存printtf(文件打打开失败败n); eexitt(0);for(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /读取文文件内容容fclosse(ffp); /关闭文文件printtf(选择查查找方式式 1 按照姓姓名查找找 22 按照照学号查查找);scanff(%d,&swway); /*按按

25、照姓名名查找开开始*/if(swway=1)printtf(请输入入需要修修改学生生的姓名名 );/priintff(ii=%dd,ii);scanff(%s,namme);for(jj=0;t!=0;jj+) t=strrcmpp(sttujj.nnamee,naame);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnu

26、mbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq); sscorre=(stuuj-1.kq)/kqqcs*1000; pprinntf(该生生当前考考勤分数数为 %5.22f,scoore);printtf(是否继继续计算算其他学学生考勤勤分数 0 否否 11 是);scanff(%d,&x);if(x=1) evvaluuatee();/*按照姓姓名查找找结束*/ /*按按照学号号查找开开始*/if(swway=2)printtf(请输入入需要修修改学生生的学号号 );/priintff(i

27、i=%dd,ii);scanff(%s,nummberr);for(jj=0;t!=0;jj+) t=strrcmpp(sttujj.nnumbber,nummberr);if(j=i) t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stu

28、uj-1.dayy,sttujj-1.kqq);scoree=(sstuj-11.kkq)/kqccs*1100; pprinntf(该生生当前考考勤分数数为 %5.22f,scoore);printtf(是否继继续计算算其他学学生考勤勤分数 0 否否 11 是);scanff(%d,&x);if(x=1) evvaluuatee();/*按照学学号查找找结束*/printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00) maiin();流程图:开始开始输入应到考勤次数输入应到考勤次数kqcs值打开文件打开文件将文件内容全

29、部读入结构体数组将文件内容全部读入结构体数组输入sway值选择查找方式输入sway值选择查找方式Sway=1?Sway=1?YNYNSway=2?Sway=2?输入要查找的学号输入要查找的姓名输入要查找的学号输入要查找的姓名查找学号查找姓名查找学号查找姓名输出该生信息输出该生信息计算考勤分数计算考勤分数输出考勤分数输出考勤分数结束结束三、测试及及调试(测测试方案案、存在在的问题题及解决决方法)测试方案:按照每每个函数数功能进进行测试试,在做做完每个个函数对对其进行行测试,主主函数测测试,先先将所有有需要的的功能模模块函数数设置为为空,每每个函数数用一个个priintff语句来来测试主主函数。存

30、在问题:开始将将生日定定义为字字符数组组,当用用scaanf来来输入年年月日时时,年月月日之间间用空格格分隔,但但在输出出时发现现年月日日出现错错误。分析原因:用sccanff输入年年月日时时,系统统会把用用来分隔隔的空格格当做字字符读入入。解决方法:将年月月日定义义为整型型,这样样就可以以用sccanff输入,用用空格隔隔开。存在问题22:在查查找数据据时,需需要先将将所有数数据读入入一个结结构体数数组,在在读取后后未关闭闭文件,执执行查找找时查找找不到相相关信息息。分析原因:再利用用forr循环读读取全部部文件内内容后,文文件指针针将会移移至文件件末尾,这这样再执执行查找找时就会会从文件件

31、末尾开开始,显显然不符符合要求求,所以以会出现现错误。解决方法:在读取取完数据据后先关关闭文件件,在查查找时再再次打开开文件,这这时文件件指针就就会指向向文件开开头。存在问题33:再多多个使用用gettchaar或者者getts输入入的时候候,会出出现直接接跳过输输入的情情况。分析原因:在使用用gettchaar或者者getts输入入的时候候,系统统会将前前一步用用来确认认执行的的回车当当成字符符读入,导导致跳过过该步输输入。解决方法:再geetchhar或或者geets前前面加上上gettchaar()语句,读读掉回车车,下面面的geetchhar或或者geets就就可以正正常输入入。四、小

32、结通过编写该该程序,熟熟悉了CC语言的的基本语语法,选选择,循循环等结结构,深深入练习习了函数数的调用用方法,和和文件的的读写方方法,熟熟悉了结结构体的的使用,更更加深化化了面向向过程语语言思想想,和一一些基本本算法。通过对程序序的后期期调试,熟熟悉了CC常见错错误,锻锻炼了思思维的严严密性,和和完备性性。通过对程序序的注释释和画流流程图,形形成了一一套自己己编程的的风格,和和清晰地地思路,使使思维更更加条理理化,清清晰化。附件:主要要源程序序代码(需需打印)#inclludee#inclludee#inclludeeFILE *fpp; /定义文文件char a; /返回回选择变变量floa

33、tt kqqcs=0; /应应到考勤勤次数变变量strucct sstuddentt chaar nnamee100;char nummberr111;char sexx;int yyearr;int mmontth;int dday;int kkq;stu1000; /定义储储存学生生信息的的结构体体数组/*主主 函 数 开开 始*void maiin()void inpput(); /录录入数据据函数void chaangee(); /修改改数据函函数void seaarchh(); /查询数数据函数数void evaaluaate(); /计算算总评函函数char iteem;syste

34、em(collor 34);printtf( n);printtf( n);printtf( 学 生 考 勤 管 理 系 统 n);printtf( n);printtf( BY 朱胜佳佳 n);printtf( n);printtf( n);printtf( n);printtf( 1.学生信信息及考考勤情况况录入 n);printtf( n);printtf( 2.学生信信息及考考勤情况况修改 n);printtf( n);printtf( 3.学生信信息及考考勤情况况查询 n);printtf( n);printtf( 4.学生考考勤总评评分数查查询 n);printtf( n);pri

35、nttf( n); /用户界界面printtf(n);printtf( 请请选择您您需要的的操作n);scanff(%c,&ittem);switcch(iitemm)case 1: iinpuut();brreakk;case 2: cchannge();bbreaak;case 3: ssearrch();bbreaak;case 4: eevalluatte();brreakk; /实现功功能选择择/*主主 函 数 结结 束*/*录入数数据函数数内容开开始*void reccordd()int ii,j=0,jjx=11;printtf( *学 生 基基 本 信 息息 录 入*n);if

36、(ffp=ffopeen(datte.ttxt,ww)=NNULLL)printtf(文件打打开失败败n);exit(0);for(ii=0;jx=1;i+) /输输入信息息循环 ffor(;j=0;) /输入确确认循环环getchhar();printtf(请输入入第%dd个学生生的姓名名 ,i+11);gets(stuui.naame);printtf(请输入入第%dd个学生生的学号号 ,i+11);gets(stuui.nuumbeer);printtf(请输入入第%dd个学生生的性别别(男:m 女女:f) ,i+11);stuii.ssex=gettchaar();printtf(请输

37、入入第%dd个学生生的生日日(格式式:年 月 日日) ,i+1);scanff(%d%dd%d,&sstui.yeaar,&stuui.moonthh,&sstui.dayy);printtf(请输入入第%dd个学生生的当前前考勤次次数 ,i+1);scanff(%d,&sttuii.kkq);printtf(您输入入的信息息为 姓姓名 %s 学学号 %s 性性别 %c 生生日 %d年%d月%d日n 0 重重输 11 确认认,sstui.namme,sstui.nummberr,sttuii.ssex,stuui.yeear,stuui.moonthh,sttuii.dday);scanff(

38、%d,&j); /输入入确认j=0;if(fwwritte(&stuui,siizeoof(sstruuct stuudennt),1,ffp)!=1) prrinttf(文件写写入错误误n); /写写入文件件printtf( 是否继继续输入入下一个个学生信信息 00 终止止 11 继续续n);scanff(%d,&jxx); /继续续输入选选择fclosse(ffp);printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00) maiin(); /返回回主菜单单/*录入数数据函数数内容结结束*/*修改数数据函数数内容开开

39、始*void chaangee() iint i=00,j=0,sswayy,t,x;char namme110,nummberr100;printtf( *学 生生 考 勤 修修 改*nn);if(ffp=ffopeen(datte.ttxt,rr)=NNULLL) /将文文件内容容读入内内存printtf(文件打打开失败败n);exit(0);for(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /读取文文件内容容fclosse(ffp); /关闭文文件printtf(选择查查找方式式 1

40、 按照姓姓名查找找 22 按照照学号查查找);scanff(%d,&swway);/*按照姓姓名查找找开始*/if(swway=1)printtf(请输入入需要修修改学生生的姓名名 );/priintff(ii=%dd,ii);scanff(%s,namme);for(jj=0;t!=0;jj+)t=strrcmpp(sttujj.nnamee,naame);if(j=i)t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%d

41、d日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq);printtf(是否修修改该生生考勤信信息 0 否否 11 是); /选选择是否否修改考考勤scanff(%d,&x); /输入入选择变变量值if(x=1)printtf(请输入入新的考考勤值 );scanff(%d,&sttujj-1.kqq); /输入入新的考考勤值if(ffp=ffopeen(datte.ttxt,ww)=NNULLL) /以以只写方方式打

42、开开文件printtf(文件打打开失败败n);exit(0);for(jj=0;jii;j+) if(fwrritee(&sstuj,sizzeoff(sttrucct sstuddentt),11,fpp)!=1) priintff(文文件写入入错误n); /写入入文件fclosse(ffp); /关闭文文件printtf(是否继继续修改改其他学学生考勤勤 0 否 1 是是);scanff(%d,&x);if(x=1) chhangge();/*按照姓姓名查找找结束*/*按照学学号查找找开始*/if(swway=2)printtf(请输入入需要修修改学生生的学号号 );/priintff(i

43、i=%dd,ii);scanff(%s,nummberr);for(jj=0;t!=0;jj+)t=strrcmpp(sttujj.nnumbber,nummberr);if(j=i)t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj

44、-1.dayy,sttujj-1.kqq);printtf(是否修修改该生生考勤信信息 0 否否 11 是); /选选择是否否修改考考勤scanff(%d,&x); /输入入选择变变量值if(x=1)printtf(请输入入新的考考勤值 );scanff(%d,&sttujj-1.kqq); /输入入新的考考勤值if(ffp=ffopeen(datte.ttxt,ww)=NNULLL) /以以只写方方式打开开文件printtf(文件打打开失败败n);exit(0);for(jj=0;jii;j+) if(fwrritee(&sstuj,sizzeoff(sttrucct sstuddentt)

45、,11,fpp)!=1) priintff(文文件写入入错误n); /写入入文件fclosse(ffp); /关闭文文件printtf(是否继继续修改改其他学学生考勤勤 0 否 1 是是);scanff(%d,&x);if(x=1) chhangge();/*按照学学号查找找结束*/printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00) maiin();/*修改数数据函数数内容结结束*/*查询数数据函数数内容开开始*void seaarchh() iint i=00,j=0,sswayy,t,x;char namme1

46、10,nummberr100;printtf( *学 生 信信 息 查 询询*n);if(ffp=ffopeen(datte.ttxt,rr)=NNULLL) /将将文件内内容读入入内存printtf(文件打打开失败败n);exit(0);for(ii=0;feoof(ffp)=0;i+) ffreaad(&stuui,siizeoof(sstruuct stuudennt),1,ffp); /读取文文件内容容fclosse(ffp); /关闭文文件printtf(选择查查找方式式 1 按照姓姓名查找找 22 按照照学号查查找);scanff(%d,&swway);/*按照姓姓名查找找开始*/

47、if(swway=1)printtf(请输入入需要修修改学生生的姓名名 );/priintff(ii=%dd,ii);scanff(%s,namme);for(jj=0;t!=0;jj+)t=strrcmpp(sttujj.nnamee,naame);if(j=i)t=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1

48、.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq);printtf(是否继继续查询询其他学学生信息息 0 否 1 是是);scanff(%d,&x);if(x=1) seearcch();/*按照姓姓名查找找结束*/*按照学学号查找找开始*/if(swway=2)printtf(请输入入需要修修改学生生的学号号 );/priintff(ii=%dd,ii);scanff(%s,nummberr);for(jj=0;t!=0;jj+)t=strrcmpp(sttujj.nnumbber,nummberr);if(j=i)t

49、=0;printtf(未找到到您所查查询的数数据,请请重新输输入nn);if(ji) /查询询成功printtf(您查找找的学生生信息如如下nn 姓名名 %ss 学号号 %ss 性别别 %cc 生日日 %dd年%dd月%dd日 当当前考勤勤次数 %dn,stuuj-1.namme,sstuj-11.nnumbber,stuuj-1.sexx,sttujj-1.yeear,stuuj-1.monnth,stuuj-1.dayy,sttujj-1.kqq);printtf(是否继继续查询询其他学学生信息息 0 否 1 是是);scanff(%d,&x);if(x=1) seearcch();/*按照学学号查找找结束*/printtf(0 返返回主菜菜单nn);getchhar();a=gettchaar();getchhar();if(a=00)

温馨提示

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

评论

0/150

提交评论