C语言程序报告学生学籍信息管理系统_第1页
C语言程序报告学生学籍信息管理系统_第2页
C语言程序报告学生学籍信息管理系统_第3页
C语言程序报告学生学籍信息管理系统_第4页
C语言程序报告学生学籍信息管理系统_第5页
免费预览已结束,剩余32页可下载查看

下载本文档

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

文档简介

1、C 语言课程设计院系:工程学院 姓名:刘若愚 学号:20051001606 班号:05205235 指导教师:王老师 日期:2007年9月C语言程序设计报告第一部分题目要求程序设计题目:学生学籍信息管理系统设计【要求】使用下面的数据,设计一个简单的学籍信息管理系统。学生基本信息文件(A.TXT)及其内容:学号姓名性别宿舍号码电话号码()1张成成男 5018773211102李成华女 1018772311203王成凤女 1018772311204张明明男 5028773433305陈东男 5018773211106李果男 5028773433307张园园女 10287756122学生成绩基本信息

2、文件©TXT)及其内容:学号课程编号课程名称学分平时成绩试验成绩卷面成绩01A01大学物理366788202B03高等数学478-19001B03高等数学445-18802C01VF3657666功能要求及说明:数据录入功能:录入每个学生的学号、课程编号、课程名称、学分、 平时成绩、试验成绩、卷面成绩共7个数据。综合成绩、实得分根据条件自动运综合成绩的计算:如果本课程的试验成绩为-1 ,则表示无试验,综合成绩=平时成绩 *30%+卷面成绩*70%;如果试验成绩不为-1,表示本课程有试验,综合成绩=平时成绩*15%+试验成绩*15%+卷面成绩*70%。实得学分的计算:采用等级学分制。综

3、合成绩在90-100之间,应得学分二学分*100%;综合成绩在80-90之间,应得学分二学分*80%;综合成绩在70-80之间,应得学分二学分*75%;综合成绩在60-7()之间,应得学分二学分*60%;综合成绩在60以下,应得学分二学分*0%。(2)查询功能;分为学生基本情况查询和成绩查询两种1»学生基本情况查询:输入一个学生的学号活姓名,查出此生的基本信息并显示输 出。输入一个宿舍号码,可查询出本室所有的学生的基本信息并 显示输出。成绩查询:输入一个学号时,查询出此生的所有课程情况,格式如下:学号:姓名;课程编号:课程名称:综合成绩:实得学分:课程编号:课程名称:综合成绩:实得学

4、分:课程编号;课程名称: 综合成绩:实得学分:共修:XX科,实得总学分为:XXX删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删 除此人所有的信息排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显 示数据。第二部分需求分析根据题目要求,由于学生信息是存放在文件中,所以应该提供文件 的输入、输出等操作;在程序中要浏览学生的信息,应提供显示、查找、排序等 操作;另外还应该提供键盘式选择菜单实现功能选择。第三部分总体设计根据上面的需求分析,可以将这个系统的设计分为以下几个模块:第四部分详细设计主函数主函数设计一般要简单,只提供输入,处理和输出部分的函数调用。其中各功能模块用菜

5、单方式选择。【流程图】程用#includc<stdio.h> void mcnuO int n,w;puts(Ht 1 .browse 2.enter 3.Scarch ,r);puts(Ht 4.browsc2 5xntcr2 6.Search2H);puls(Ht7xxit,1);printffrChoice your number(l-7): bbbb11);scanf("%d”,&n);if(n<l | |n>7)/对选择的数字作判断/w=l;gctcharO;else w=0;while (w=l);switch(n)case 1: brow

6、sc();brcak;/浏览模块/case 2: cntcr();brcak;/输入模块/ease 3: scarchQ;brcak;/查找模块/ease 4: bn)wsc20;brCak;/浏览模块/case 5: cntcr20;brcak;/输入模块/ease 6: scarch2();brcak;/查找模块/case 7: cxit(O);brcak;/退出 /mainO menuQ;2»各功能模块设计输入模块:先采用结构体数组存储数据struct a int xuehao;char namcl 5;char sex 10;int shushcnum;int tclcnum

7、;a10;struct bint xuchao;int kcchcnghao;char kcchciigmingl 5;int xucfcn;int pingshichcngji;int shiyaiichcngji;int juanmiaiichcngji;int zonghcchcngji;int shidcchcngji;b10;a10.b10中每个数组元素对应一个学生void jisuanQint i, n,nl, n2, n3,n4;fbr(i=0;i<10;i+)if (bi.shiyaiichcngji=-l)bi.zonghcchcngji=b|i.pingshichcn

8、gji*0.3+bi.juanmianchcngji*0.7;break;if (bi.shiyanchcngji!=-l)(bi.zc)iighcchcngji=bi.pingshichciigji*0.15+bi.juanmiaiichcngji*0.7+bi.sliiyanchcngji*0.15;break;if(bp.zonghcchcngji>90&&bi.zonghcchcngji<100)n4=bi.xucfcn;bp.shidcchengji=(n4)*(l);break;else if (bi.z()nghcchcngji>80&&

9、amp;bi.zc)nghcchcngji<90) n3=bi.xucfcn;bi.shidcchcngji=(n3)*0.9;break;else if(bi.z()nghcchcngji>70&&bi.zonghcchcngji<80) n2=bi.xucfcn;bi.shidcchciigji=(n2)*0.8;break;else if(bf.zonghcchcngji>60&bi.2onghcchcngji<70) nl=bi.xucfcn;bi.shidcchciigji=(nl)*0.7;break;else if (bi.z

10、onghcchcngji<60)n=bi.xucfcn;bi.shidcchcngji=n*O;break;此简单程序计算综合成绩与实得学分【程序】enterQprintfHow many chcngjijibcnxinxi datas(0-%d)?:fr,l0);scanf("%cT,&n);printf(,rn Enter data now nnH);for(i=0;i<n;i+)printffnlnput %dth chcngjijibcnxinxi record.nn,i+l);input(i);调用输入函数调用保存函数printfLbackO;一个任务结

11、束时让用户选择是浏览还是返浏览模块:该模块的功能是显示所有学生记录信息。【流程图】显示学生记录按任意键显示下一屏按任意键返回主菜单【程序】browscf)浏览全部模块 int i,j,n;n=load();加载记录printf_facu0;调用显示数据结构项目函数for(i=0;i<n;i+) if(i%10=0) printff1 nnPass any key to contiunc.n);目的是分屏显示gctchO; puts(Hnnfl);printf_onu(i);调用显示一个记录的函数printf(ntThcrc arc %d record.nni);printf(nnPass

12、 any key to back.M);getchO;按任意键menuQ;br()wsc20 该浏览模块的功能是显示所有学生的成绩基本信息 int i,j,n;n=k)ad2();printCcc2();for(i=0;i<n;i+) if(i%10=0) printff1 nnPass any key to contiunc.,r);getchO; puts("nn");printf_onc2(i);printf(,rlThcrc arc %d record.nH,n);printf(nnPass any key to back./1);getchf);menuQ;

13、查找模块;该模块的功能是根据输入的学生姓名查找对应的记录,找到以后,增加删除功能。【流程图】【程序】search。查找学生基本信息的模块 int i,n,k,wl = 1 ,w2,w3,w4;struct a s;n=k)ad();dodo k=l;printf(nnnEnvcr number that you want to search! number1);scanf("%dn,&s.xuehao);输入要修改的数据的学号printfLfaccO;调用显示数据结构项目函数f()r(i=0;i<n;i+) 查找要修改的数据if(s.xuchao=ai.xucha()k

14、=i; printLonc(k);brcak;调用显示一个记录的函数if(k=-l)prinif("nnNo cxisl!plcasc,r);printf("nnArc you again?nt l).Again 2)No and back bbb“);scanf("%d”,&wl);保证在第一次找的的基础上再查找找不到时能退出whilc(k=-l&&wl=l); 如果W1不等于1时直返回scarch20查找学生成绩基本信息的模块 int i,n,k,wl = 1 ,w2,w3,w4;struct a s;n=k)ad2Q;dodo k=-

15、l;printf(HnnEntcr number that you want to search! number");scanf("%d',&s.xucha。);print匚cc20;for(i=0;i<n;i+)if(s.xuchao=ai.xucha()k=i; printf_onc2(k);brcak;if(k=-l)printf("nnNo exist!please,r);printf(HnnArc you again?nt 1).Again 2)No and back bbb“);scanf("%d",&

16、wl);whilu(k=-l &&wl =1);删除模块:该模块的功能是先显示所有学生的信息,考虑到记录的数据较多,建议采用分屏显示【程序】Void del。排序模块:该功能模块的功能是要求将学生记录的综合成绩或实得分升序或降序排序并显示数据。假设这里采用选择法排序。【流程图】【程序】Void ordcrf)排序模块Struct student s;n=k)ad();For(i=0;i<n-l;i+)Savc(n);Puts( "n'n" );PrintfLbackO;设计出的程序如下#include<stdio.h> void m

17、cnuOint n,w;puts(Ht 1 .browse 2xntcr 3.Scarch 1f);puls(Ht 4.browsc2 tcr2 6.Scarch2H);puls(Ht 7.cxit printf,Choice your numbcr(l-7): bbbbH);scanf(M%dM ,&n);if(n<l | | n>7)w=l;gctcharO;else w=0;while (w=l);switch(n)ease 1: browsc();brcak;ease 2: cntcr();brcak;ease 3: scarchQ;brcak;case 4: br

18、owsc2();brcak;case 5: cntcr2();brcak;case 6: scarcli2();brcak;case 7: cxit(O);brcak;mainO mcnuO;struct a inv xuchao;char namcl 5;char sex 10;int shushenum;int tclcnum;a10;struct bint xuehao;int kcchcnghao;char kcchciigmingl 5;int xuefen;int pingshichciigji;int shiyaiichcngji; int juaiimiaiichcngji;i

19、nt zoiighcchcngji;int shidcchciigji;b10;void jisuanQint i, n,nl, n2, n3,n4;fbr(i=0;i<10;i+)if (bi.shiyaiichcngji=-l)bi.zonghcchcngji=b|i.pingshichcngji*0.3+bi.juanmianchcngji*0.7;break;if (b i .shiyanchcngji!=-1)bi.zoiighcchcngji=bi.pingshichciigji*0.15+bi.juanmiaiichcngji*0.7+b i.sliiyaiichcngji

20、*0.15;break;if(bp.z()nghcchcngji>90&&bi .zonghcchcngji< 1 (X)n4=bi.xucfcn;bf.shidcchengji=(n4)*(l);break;else if (bi.zonghcchcngji>80&&bi.2onghcchcngji<90) n3=bi.xucfcn;bp.shidcchcngji=(n3)*0.9;break;else if(bf.zonghcchcngji>70&&bi.zonghcchcngji<80) n2=bi.xu

21、cfcn;bi.shidcchciigji=(n2)*0.8;break;else if(bi.zonghcchcngji>60&bi.zonghcchcngji<70) nl=bi.xucfcn;bi.shidcchcngji=(nl)*0.7;break;else if (bi.2onghcchengji<60)n=bi.xucfcn;bi.shidcchciigji=n*O;break;cntcrQ int i,n;printf(,rHow many chcngjijibcnxinxi datas(0-%d)?:,r,10);scanf("%d&quo

22、t;,&n);printf(nn Enter data now nnM);for(i=0;i<n;i+)printffnlnpuv %dlh chcngjijibcnxinxi record.nn,i+l);input(i);if(i!=0) savc(n);printfLbackO;)browscQ int i,j,n;n=k)ad();printCfacc();for(i=0;i<n;i+) if(i%10=0) printffrnnPass any key to contiunc;getchQ; puts(”nn");print匚onc(i);printf(

23、HlThcrc arc %d record.nH,n);printf(nnPass any key to back.M);getchf);menu。;search。 int i,n,k,wl = 1 ,w2,w3,w4;struct a s;n=k)ad();dodo k=l;printf(nnnEnvcr number that you want to search! number1);scanf("%d',&s.xuchao);print匚face。;for(i=0;i<n;i+)if(s.xucha()=ai.xuchao)k=i; printf_onc(

24、k);brcak;if(k=-l)printf("nnNo cxisl!plcasc,r);printf(HnnArc you again?nt 1).Again 2)No and back bbb”);scanf("%d",&wl);whilc(k=-l &&wl =1);w4=03=0;if(k!=-l) priniff*nnWhat do you want to do?nt 1 .Search another 2.ModifyT 3'Ddctc 4.Back menu bbbM);scanf("%d",&a

25、mp;w2);switch(w2) case 2:w3=modifr(k);brcak;ease 3: printf(,rnArc you surc?nt l).surc 2).No and back bbb");scanf(M%dM,&w4);if(w4=l)bk.xuehao=();bk.kcchcnghao=0;strcpy(bk.kcchcngming,nxxxx,1);bk.xucfcn=0;bk.p ingshichcngji=O;bk.shiyaiichcngji=O;bk.juaiimianchcngji=O;bk.zonghcchengji=0;Bk.shi

26、dechengji=0;ai.xuchao=0;strcpy(ai.namc,lxxxxH);strcpy(ai.scx,Hxxxxn);ai.shiishcnum=O;ai.tclcnum=O;break;if(w3=l | |w4=l)savc(n);printf("nnSucccss%l);printf(,rnnWhat do you wain to do?nt 1).Search another2).Back bbb");scanf("%d",&w2); whilc(w2=l);mcnuQ;input (int i) scanf(H%d%

27、d%s%d%d%d%d%d%d,&bi.xucha(),&bi.kcchcngha(),bi.kcchcngmin g,&bi.xucfcn,&bi.pingshichcngji,&bi.shiyaiichcngii,&bi.juanmiaiichcngji);jisuaiiQ;savc(int n) FILE *fp;int i;if(-fbpcnCbtxtTwb,尸二NULD printf(MnCannot open filcnM);return NULL;for(i=0;i<n;i+)if(ai.xuchao!=0)if(rite(&

28、amp;bp,sizcof(struct b),l ,fp)!=1)printf(,rfile write crrornn);fclosc(fp);lead。 FILE *fp;int i;if(fp=fopcn("b.lxiT'rb")=NULL)printf(nnCaimot openreturn NULL;fbr(i=0;!fcof(fp);i+)frcad(&bi,sizc()f(struct b),l ,fp);fclosc(fp);rcturn(i-l);|printfLfaccO printfC'nt xuehao kcchcnghao

29、 kcchcngming xuefen pingshichcngji shiyaiichcngji juanmiaiichcngji zonghcchcngji shidcchcngji M); printf_onc(int i)printf(H%5d%5d%l 5s%5d%5d%5d%5d%5d%5dH,bi.xucha(),bf.kcchcngha(),bi.kcchc ngming,bi.xucfcn,bi.pingshichcngji,bi.shiyanchcngji,bi.juanmiaiichcngji,bi.zonghcchcngji,bi.shidcchcngji);|prin

30、tfLbackO int k,w;printf(,rnntSucccssful.nnn);printffrWhat do you want to do?nnt 1).Browse all now 2).Back;bbb”);scanf("%d",&w);if(w=l) browscO;else menuO;modify(int i) int c,wl =2;do putsfnmodify by=>nnH);puts(M l).xuchao 2).kcchciighao 3).kcchcngming 4).xucfcn5).pingshichcngji 6).s

31、hiyaiichciigji 7).juanmianchciigji 8)zonghcchcngji 9)shidcchcngji10).all data 11).cancel and back ");printf(HWhich you needed?: bbbbM);scanf("%d",&c);if(c>ll | |c<l)puts(MnChoicc crror'Plcasc again!11);gctcharO;whilc(c>l 1 | | c<l);do switch(c)case l:printf(Hxucha(

32、):n);scanf(n%dM,&bi.xuchao);brcak;ease 2:printf(Hkcchenghao:M);scanf(H%dH,&bi.kcchcnghao);brcak;ease 3:printf(,rkechcngming:,r);scanf(n%sH,bi.kcchcngming);brcak; case 4:printf(Hxucfcn:M);scanf(,%dH,&bi.xucfcn);brcak;ease5:printf("pingshichcngji:");scanf("%d'',&

33、bi.pingshichungji);brcak;ease 6:printf(,lshiyanchcngji:1,)canff,%d,&b|i.shiyanchcngji);brcak;ease7:printf(Hjuanmianchcngji:H);scaiif(n%dn,&bi.juaiimianchcngji);brcak;ease 8:input(i);brcak;ease 9:mcnuO;brcak;pu is (" nNow:nM);printOheu。;printf_onc(i);printf(nnArc you surc?nnt l).Surc 2).

34、No and rcmodify 3).Back without save in this time bbb,F);scanf("%d”,&wl); while(wl =2);rctiirn(wl);cntcr2() int i,n;printf(nHow many xue sheng ji ben xin xi(0-%d)?:H,10);scanf("%d",&n);printf(Hn Enter data now nnM);for(i=0;i<n;i+)printffnlnput %dth xuc shcng ji ben xin xi r

35、cc()rd.nu,i+l);input2(i);if(i!=O) savc2(n);prin tfLback2Q;browsc2() int i,j,n;n=k)ad2();printf_facc2();for(i=0;i<n;i+) if(i%10=0) printffrnnPass any key to contiune./1);getchQ; puts("nn");printf_onc2(i);printf("n');printf(HlThcrc arc %d record.nH,n);printf(HnPass any key to bac

36、k.11);getchO;menuQ;scarch2() int i,n,k,wl = 1 ,w2,w3,w4;struct a s;n=k)ad2Q;d()do k=-l;printf(HnnEntcr number that you want to search! number");scanf(M%dM,&s.xuchao);print匚cc20;for(i=0;i<n;i+)if(s.xucha()=ai.xucha()k=i; printf_onc2(k);brcak;if(k=-l)printf("nnNo cxisl!plcasc,r);print

37、f(nnnArc you again?nt 1).Again 2)No and back bbb ”);scanf("%d",&wl);whilc(k=-l&&l=l);w4=0;w3=0;if(k!=-l) printf(nnnWhat do you want to do?nt 1 .Search another 2.ModifT 3.Back menu bbbn);scanf,'%cT,&w2);switch (w2) case 2:w3=modifr2(k);brcak;if(w3=l | |w4=l)savc2(n);prin

38、effnXiiSucccssful.11);printf(HnnWhat do you want to do?nt 1).Search another2) .Back bbb");scanf("%dn,&w2); whilc(w2=l);menuQ; input2 (int i) scanf("%d %s %s %d %dH,&ai.xuchao,,ai.sex,&ai.shushcnum,ai.vclcnum );savc2(int n) FILE *fp;int i;if(fp=fopcnCla.txtM;,wb,r)=N

39、ULL) printf(niiCaimot open filcnM);rclxini NULL;for(i=0;i<n;i+)if(ai.xuchao!=0)if(fwritc(&ai,sizcof(struct a),l,fp)!=l)printf(Hfilc write crrorn,r);fclosc(fp);load2() FILE *fp;int i;if(fp=fopenCla.txtHrb,)=NULL)printffnCaimot open filc'n'1);rctxirn NULL;f()r(i=();!fcof(fp);i+)frcad(&a

40、mp;ai,sizuof(slruct a),l ,fp);fclosc(fp);rcturn(i-l);|printfLfacc2() printf(Mnt xue shciig ji ben xin xi n");printf_oic2(int i)printf(H%d%s%s%d%d,ai .xuchao,,ai.sex,ai.shushcnum,ai.tclcnum);printfLback2Q int k,w;printf(,rnntSucccssfuLnnH);printf(,rWhat do you want to do?nnt 1).Browse all

41、 now 2).Back;bbb");scanf("%d",&w);if(w=l) browsc2();else menuO;m()dify2(int i) int c,wl=2;do putsfnmodify by=>nnK);putsf1 l).xuchao 2).name 3).sex 4).shushciium 5)tclcnum 6).all data7).cancel and back M);printf(HWhich you needed?: bbbM);scanf(M%dM,&c);if(c>7| |c<l)put

42、s(nnCh()icc crrodPlcasc again!'1);gctcharQ;whilc(c>7| |c<l);do switch(c)case l:printf(,xuehao:n);scanf(,l%d,&ai.xuchao);brcak;ease 2:prinif(nnamc:M);scanf(n%sH,ai.namc);brcak;ease 3:printf(Hscx:M);scaiif(,%s,ai.scx);brcak;ease 4:printf(Hshushcnum:n);scanf(n%d'&ai.shushcnum);brc

43、ak;ease 5:printf(ntclcnum:H);scanf(H%dH,&a|i.tclcnum);brcak;ease 6:input(i);brcak;ease 7:mcnu0;brcak;puts(unNow:nn);prin tf_facc2();printf_onu2(i);printf(nnArc you surc?nnt l).Surc 2).No and rcmodify 3).Back without save in this time bbb,r);scanf("%d”,&wl); whil«w1 =2);rctiirn(wl);inscrt2()int c,i; struct a s;i=load20;puts(Hn Input one data.'n'');doprin

温馨提示

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

评论

0/150

提交评论