


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计学生成绩管理系统学 院自动化学院专业班级学号姓名联系方式 2013年11月11日程序代码:#include<stdio.h>#include<stdlib.h>#include<string.h>#pragma comment(lib,"winmm.lib")#include <windows.h>void add(char filename);struct STUDENT * rdfile(char filename,int *num);void display(char filename);int alter
2、(char filename);int delet(char filename);void rank(char filename);void decorete(int clr,char color,char width,char heighth,char title,char edge,int curn,int curk); int char2int(char cha);float avecal(struct STUDENT *p);void fail(char filename);int removefile(char filename);/ 删除 则返回 1,未删 除返回 0;int so
3、und(int sflag,int i,int s);struct STUDENTchar name10;char course510;float score5;float ave;int xuhao;int sw=-1;void main()FILE *fp;int num=0;char filename20,cz;sound(0,0,sw);while(1)file: decorete(0,"0e","67","27","" 学生成 绩管理 " 欢迎 您",'+',0,0);
4、 decorete(1,"15","67","27","输入数据文件名(默认:.bin)",' ',0,0);decorete(1,"15","67","27","< 退出程序:exit;列出文件:list",' ',1,24); printf(">>");fflush(stdin);gets(filename);printf("n"); if(s
5、trcmp(filename,"exit")=0)sound(1,1,sw);exit(0);if(strcmp(filename,"list")=0)sound(4,0,sw);system("dir /o:d *.bin");fflush(stdin);getchar();gotofile;strcat(filename,".bin");if(fp=fopen(filename,"r")=NULL)sound(2,0,sw);decorete(1,"15","6
6、7","27","文件不存在,是否创建该文件?<Y/y>",' ',0,24); printf("-");fflush(stdin);cz=getchar(); printf("n"); if(cz='Y'|cz='y')fp=fopen(filename,"w");elsegoto file;fclose(fp); sound(4,0,sw); cz=' ' while(1) display(filename
7、);S.< /关声decorete(1,"07","105","35"," 选择操作:",' ',0,0);decorete(1,"07","105","35","A.不和格学生名单B.排序 C修改 D.删除E.增加音F退出本文件 R删除文件N.退出程序",'',0,50);fflush(stdin);cz=getchar();switch(cz)case 'A':sound(4,0
8、,sw);fail(filename);break;case 'a':sound(4,0,sw);fail(filename);break;case 'B':rank(filename);sound(4,0,sw);break;case 'b':rank(filename);sound(4,0,sw);break;case 'C':alter(filename);sound(4,0,sw);break;case 'c':alter(filename);sound(4,0,sw);break;case 'D&
9、#39;:delet(filename);sound(5,0,sw);break;case 'd':delet(filename);sound(5,0,sw);break;case 'E':add(filename);sound(4,0,sw);break;case 'e':add(filename);sound(4,0,sw);break;case 'F':sound(5,0,sw);goto file;case 'f':sound(5,0,sw);goto file;case 'r':if(re
10、movefile(filename)goto file;break;case 'R':if(removefile(filename)goto file;break;case 'N':sound(1,1,sw);exit(0);case 'n':sound(1,1,sw);exit(0);case 'S':sw=sw;sound(4,0,sw);break;case 's':sw=sw;sound(4,0,sw);break;void add(char filename)FILE *fp; int i, *rs,rs
11、h; float temps; struct STUDENT *p; rs=↱p=rdfile(filename,rs); prsh=(struct STUDENT *)malloc(sizeof(struct STUDENT); prsh->xuhao=rsh+1;printf("tt 请输入名字: "); name: fflush(stdin);gets(prsh->name); if(strlen(prsh->name)=0)printf("ttt");goto name; strcpy(prsh->cour
12、se0," 高等 数学 "); strcpy(prsh->course1," 物理 "); strcpy(prsh->course2," 外语 "); strcpy(prsh->course3,"C 语 言"); strcpy(prsh->course4," 德育 ");printf("ntttt输入各成 绩 :n");for(i=0;i<5;i+) printf("ttttt%s:",prsh->coursei); s
13、core: fflush(stdin);scanf("%f",&temps); if(temps>=0&&temps<=150) prsh->scorei=temps;else sound(2,0,sw); printf("ttt 分数范围(0-150),重新 输入:"); goto score; prsh->ave=avecal(prsh); if(fp=fopen(filename,"a")=NULL)sound(3,0,sw);printf(" 无法打开相关文件! &qu
14、ot;);exit(0);fprintf(fp,"%d. 姓 名 : %8s %8s :%5.2f %5s :%5.2f %5s :%5.2f %6s :%5.2f %5s :%5.2f 平 均 分 :%5.2fn",prsh->xuhao,prsh->name,prsh->course0,prsh->score0,prsh->course1,prsh->score1 ,prsh->course2,prsh->score2,prsh->course3,prsh->score3,prsh->course4,pr
15、sh->score4,prsh- >ave);fclose(fp);struct STUDENT * rdfile(char filename,int *num)FILE *fp;struct STUDENT *p;int xh=0;char ch;p=(struct STUDENT *)malloc(sizeof(struct STUDENT*);if(fp=fopen(filename,"r")=NULL)sound(3,0,sw);printf(" 无法打开相关文件! n");system("pause");exit
16、(0);while(ch=fgetc(fp)!=EOF) fseek(fp,-1L,1); pxh=(struct STUDENT *)malloc(sizeof(struct STUDENT);pxh->xuhao=xh+1;fscanf(fp,"%d. 姓 名 : %8s %8s :%f %5s :%f %5s :%f %6s :%f %5s :%f 平 均 分 :%fn",&pxh->xuhao,pxh->name,pxh->course0,&pxh->score0,pxh->course1,&pxh->
17、;score1,p xh->course2,&pxh->score2,pxh->course3,&pxh->score3,pxh->course4,&pxh->score4,&pxh- >ave);xh+;*num=xh; / 最大的序 号fclose(fp);return p;void display(char filename)struct STUDENT *p;int xh;int *rs,rsh;rs=↱p=(struct STUDENT *)malloc(sizeof(struct STUDEN
18、T*);p=rdfile(filename,rs);decorete(0,"07","107","35"," 文件中的 内容 ",'*',0,0);for(xh=0;xh<*rs;xh+)printf(" %d. 【 %s 】 %8s :%5.2f %5s :%5.2f %5s :%5.2f %6s :%5.2f %5s :%5.2f 平 均 分 :%5.2fn",pxh->xuhao,pxh->name,pxh->course0,pxh->scor
19、e0,pxh->course1,pxh->score1,px h->course2,pxh->score2,pxh->course3,pxh->score3,pxh->course4,pxh->score4,pxh->ave);printf("n");int alter(char filename)FILE *fp;int ren,ke,i,*rs,rsh;char c;float tempg;struct STUDENT *p;rs=↱p=rdfile(filename,rs);xiugai: deco
20、rete(1,"35","107","25"," 将修改学生对应的序号: ",' ',0,50);fflush(stdin);scanf("%d",&ren);if(ren<=0|ren>rsh)sound(2,0,sw);printf("t不存在该学生的信息,重新 输入<Y/y,其他任意键退出修改>:");fflush(stdin);c=getchar();if(c='Y'|c='y')goto
21、 xiugai;elsereturn 0;ren=ren-1;decorete(1,"16","107","25"," ",' ',0,42);printf(" 修 改 【 %s 】 成 绩 :nnt0全 部1%-12s2%-12s3%-12s4%-12s5%-12sn",pren->name,pren->course0,pren->course1,pren->cour se2,pren->course3,pren->course4);cs:f
22、flush(stdin);decorete(1,"16","107","25"," ",' ',0,48);printf("->");scanf("%d",&ke);if(ke<0|ke>5) sound(2,0,sw);printf("tt输入有误,重新输入: ");goto cs;for(i=0;i<5;i+)if(ke!=0)i=ke-1;printf("%s(%f):",pren-
23、>coursei,pren->scorei);zs: fflush(stdin);scanf("%f",&tempg);if(tempg>=0&&tempg<=150) pren->scorei=tempg;elsesound(2,0,sw);printf("tt 分数范围(0-150),重新 输入: ");goto zs;if(ke!=0)i=ke;i=5; pren->ave=avecal(pren); printf("ttt 完成? (Y/y)");fflush(std
24、in); c=getchar();if(c='Y'|c='y') if(fp=fopen(filename,"w")=NULL) sound(4,0,sw);printf(" 无法保存! ");elsefor(i=0;i<rsh;i+)fprintf(fp,"%d. 姓 名 : %8s %8s :%5.2f %5s :%5.2f %5s :%5.2f %6s :%5.2f %5s :%5.2f 平 均 分 :%5.2fn",pi->xuhao,pi->name,pi->cours
25、e0,pi->score0,pi->course1,pi->score1,pi->course2 ,pi->score2,pi->course3,pi->score3,pi->course4,pi->score4,pi->ave);fclose(fp); sound(4,0,sw); puts(" 成功保存! ");else goto xiugai;return 0;int delet(char filename)FILE *fp;int i,del, *rs,rsh;struct STUDENT *p;char
26、c,delc;rs=↱p=rdfile(filename,rs);display(filename);del:decorete(1,"35","107","25"," 将删除信息序 号<删除全部: a>:",' ',0,50);fflush(stdin);scanf("%c",&delc);if(delc=97|delc=65)if(fp=fopen(filename,"w")=NULL)sound(3,0,sw);prin
27、tf("fail !");exit(0);fclose(fp);return 0;del=delc-48;if(del<1|del>rsh)sound(2,0,sw);decorete(1,"35","107","25","不存在该学生信息,是否 继续? <Y/y,其他任意键退出删除',0,50);fflush(stdin);c=getchar();if(c='y'|c='Y')goto del;elsereturn 0;if(fp=fopen(f
28、ilename,"w")=NULL)sound(3,0,sw);printf("fail !");elsefor(i=0;i<rsh;i+)if(i=del-1)i+;if(i<rsh)if(i>del-1)pi->xuhao-;fprintf(fp,"%d. 姓名: %8s %8s :%5.2f %5s :%5.2f %5s :%5.2f %6s :%5.2f %5s :%5.2f 平均 分 :%5.2fn",pi->xuhao,pi->name,pi->course0,pi->sco
29、re0,pi->course1,pi->score1,pi->course2 ,pi->score2,pi->course3,pi->score3,pi->course4,pi->score4,pi->ave);fclose(fp);return 0;void rank(char filename)FILE *fp; char ch;int i,j,k,*rs,rsh,max;struct STUDENT *p;rs=↱p=rdfile(filename,rs);prsh=(struct STUDENT *)malloc(s
30、izeof(struct STUDENT); display(filename);decorete(1,"16","107","35"," 排序 选项 ",' ',0,0);decorete(1,"16","107","35","0 姓名 1 高等数学 2物理 3外语 4C 语言 5 德育 6平均分 ",' ',0,50);rank: fflush(stdin);ch=getchar();if(ch<
31、;48|ch>54) sound(2,0,sw);printf("ttt 无效 选择 !重新 输入: ");goto rank;if(fp=fopen(filename,"w")=NULL)sound(3,0,sw);printf("fail ! "); for(i=0;i<rsh;i+) /rsh 注意max=i;for(j=i;j<rsh;j+) if(ch-48)=0&&strcmp(pmax->name,pj->name)>0)|(ch-48)>0&&(
32、ch-48)<6)&&pmax->scorech-49 <pj->scorech-49)|(ch-48)=6&&pmax->ave<pj->ave)/ 后 rsh,rsh-1,rsh-2. 最大的 标为 max strcpy(prsh->name,pmax->name); strcpy(pmax->name,pj->name); strcpy(pj->name,prsh->name);for(k=0;k<5;k+) prsh->scorek=pmax->scorek;
33、 pmax->scorek=pj->scorek; pj->scorek=prsh->scorek;pi->ave=avecal(pi);fprintf(fp,"%d. 姓 名 : %8s %8s :%5.2f %5s :%5.2f %5s :%5.2f %6s :%5.2f %5s :%5.2f 平 均 分 :%5.2fn",i+1,pi->name,pi->course0,pi->score0,pi->course1,pi->score1,pi->course2,pi->sc ore2,pi->
34、;course3,pi->score3,pi->course4,pi->score4,pi->ave);fclose(fp);void decorete(int clr,char color,char width,char heighth,char title,char edge,int curn,int curk)int i,len,num;char *mode;len=strlen(width)+strlen(heighth)+strlen(title)+35;mode=(char *)malloc(len);if(clr=0)strcpy(mode,"m
35、ode con:cols=");strcat(mode,width);strcat(mode," lines=");strcat(mode,heighth);strcat(mode," &color ");strcat(mode,color);system(mode);if(edge!=' ') num=char2int(width);for(i=0;i<num;i+)printf("%c",edge);if(strlen(title)!=1) num=(char2int(width)-strl
36、en(title)/ 2;for(i=0;i<num;i+)printf(" ");puts(title);if(edge!=' ')num=char2int(width);for(i=0;i<num;i+)printf("%c",edge);for(i=0;i<curn;i+)printf("n");for(i=0;i<curk;i+)printf(" ");int char2int(char cha)int i,len,num=0; len=strlen(cha);for
37、(i=0;i<len;i+) num=(chai-48)+10*num;return num;float avecal(struct STUDENT *p)int i;float ave,sum=0; for(i=0;i<5;i+) sum+=p->scorei;ave=sum/5;return ave;void fail(char filename)int *rs,rsh,i,j,nflag=0;struct STUDENT *p;rs=↱p=rdfile(filename,rs);decorete(0,"07","105&qu
38、ot;,"35"," 挂科学生名 单",'.',0,0); for(i=0;i<rsh;i+)nflag=0; for(j=0;j<5;j+)if(pi->scorej<60) if(nflag=0) printf("n%12s 挂科科目: ",pi->name); nflag+; printf("%10s %5.2f",pi->coursej,pi->scorej); if(nflag)printf("n");fflush(stdin)
39、;getchar();int removefile(char filename)FILE *fp;char remove30; strcpy(remove,"del /p "); strcat(remove,filename); system(remove); sound(5,0,sw);if(fp=fopen(filename,"r")=NULL)return 1;elsereturn 0;int sound(int sflag,int i,int s)FILE * fp;char WIN7621="Logon Sound.wav"
40、,"Logoff Sound.wav","Error.wav","Hardware Fail.wav","Hardware Insert.wav","Hardware Remove.wav"char XP615="登录音.wav","注销音.wav","错误.wav","硬件故障.wav","硬件 插入.wav","硬件 删 除.wav"char PATH60="I:
41、WindowsMediaWindows "if(s=0)return 0;strcat(PATH,WIN7sflag);if(i=0)if(fp=fopen(PATH,"r")=NULL) strcpy(PATH,"C:WINDOWSMediaWindows XP "); strcat(PATH,XPsflag);PlaySound(PATH,NULL,SND_FILENAME|SND_ASYNC|SND_NODEFAULT); elsePlaySound(PATH,NULL,SND_FILENAME|SND_ASYNC|SND_NODEFAU
42、LT);elseif(fp=fopen(PATH,"r")=NULL) strcpy(PATH,"C:WINDOWSMediaWindows XP "); strcat(PATH,XPsflag);PlaySound(PATH,NULL,SND_FILENAME|SND_SYNC|SND_NODEFAULT); elsePlaySound(PATH,NULL,SND_FILENAME|SND_SYNC|SND_NODEFAULT);return 0;运行效果:1.启动 <出现以下界面并伴随有系统登录声音>:此时输入exit则退出程序,输入li
43、st可列出当前文件中所有bin文件2.输入文件名可进入文件,若不存在则询问是否创建:选择是,则3.创建并进入文件:此时文件内容为空,输入 e/E,可4.添加学生信息半詡人弓我堆: 导等鹤学叨U 物理:00CiH:4输入所有学生信息:挂科学生若单挂科科目挂料斜目判理挂科科目-出= -匚 LJ515匕心0.W 80.« Hr-f n !MPl II 85.«?文匸“终琨J业J s”屮葩內昌敲软井夸-黜仆验2D10半tentt暂也蛭药I半外谱 6B, 05外语 O.Di物理:PQ.OO 仙理:60,00 韬遅7讯,g 豹渥 TltJCi.OCi 物锂:9L. K '珂归:
44、£ !. J;夕、谣:12'AQ0 夕 rjS ; Ck.<00 外ig ; E&44 >Hg :1SD. 00 夕、為:IDO. OC #H5 : 65.00 兀岸择fl :九刁貝冷学生若单b-H/t匕停也D.JB隐区划匂s. 'JT/Xti F,退出本文件乩删琼丈件毗退岀辽畔r-igo 4.00平曲分IJS.8U 平均尸=15.80 壬均廿苗a iZ;r7' 3 10*T.iii 半均分:禺”ie -J?- :7C.8O<1哦灰5.按A查看不和格学生列表6.按B进入排序模式 <以c语言排序为例 > 排序后:彩拼昔_箭般
45、西10半千氏権学生名甲;抹序亡得改D.別触(:语肓:dg言:J5.X CtH :玄1,3 CiB : 40.DC 亡胃古:30.00 eigft :";習渥:')i,LXl 挪曰:9LWSJS : 90-00 辆理:34. W 初埋;doc 物理:6J.00髙芋蹌事:回炖 言弄:皿m 庄够学:朋40 高等斟宇:mo 趕欝文学:皿m 虔瑙宇:M0.OO朴语 ElSCxQD夕卜亡Jhg :12OlO0榊-诰:6E.QUJbE : 59.00列-谱:0.00选犀揑惟:期7T1 口 :哄E 肌退出本文件氐制瞪玄芈JT.退出1记序平均补:07. 00 平坦汁:94.M 平均井:9S.
46、3Q 丰半初' :5弐| 苹均歼:S7. 60 朿歧沿:lS,tOix o卜吉干羊3-小灰交4. 聘半年 去蟻羊工 乩换太網回7.输入C进行修改模式 学生输入序号输入5修改德育成绩,显示所修改的科目和原来成绩,输入新成绩,回车:有甲* mM - JR 4卜* * *乩不厦椅学丄呂显bjm 匕修囲DV件"辔旃回T.bU严 中贰内寺90. <Xi 10. W 30,004.00Ci>in : 10Q.C0 q£fc _'3! QJ 9-册味氐燼加直遇出蚊徉R.JElBfr*#也退岀即?ifia¥1恳改辽黑*SKOC11;頁于岀VI收理k,pr iqnjr vp上丸1_1詈1,心口<11_1 也Dgk口 p学性 匪事l)fg£ :7乂 b 亍 w 产IL.hi c语言愉人育i岂垂箭输.气:>s详匕eq班;:tii羊k>Tie 如举灰羊单太 先頁小暧幡现sioaoo:90.00 iw:99.00 tW:80.00 tW;01,00刊珂:30.00 iES:1WUD :tl.OD :9C.U0 ;Sd.00 7叫 :eo.oo外佶:15(X0u 夕i-i台! iuix ou 井書:L2X 00 夕囉:65.0Q 外這:50*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石油加工、炼焦及核燃料合作协议书
- 2025年食品搅拌均匀机械合作协议书
- 2025年市政工程合作协议书
- 2025年直流传动矿井提升机合作协议书
- 2025年食品级纤维素醚项目合作计划书
- 电力工程安全施工责任证明书(6篇)
- 环保科技领域研发成果证明书(5篇)
- 环卫工人用工协议
- 游戏开发测试授权协议
- 2025年浙江危险货物运输押运员模拟考试
- 核磁共振成像
- 1+x网店推广习题
- 工业自动化设备装配与调试考核试卷
- 2025年低空经济科普知识竞答考试题库300题(含答案)
- 2025年安徽蚌埠市东方投资集团有限公司招聘笔试参考题库含答案解析
- 《休闲农业》课件 项目二 休闲农业分类及模式分析
- 2025年安徽省交通控股集团限公司社会化公开招聘自考难、易点模拟试卷(共500题附带答案详解)
- 三管感染的预防与控制
- 2025年中医养生茶饮课件
- 第21课《己亥杂诗(其五)》教学课件【知识精研】统编版语文七年级下册
- 消除艾滋病、梅毒和乙肝母婴传播项目工作制度及流程(模板)
评论
0/150
提交评论