版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级级语言课程设计报告实验课程:课程设计 年级:16级 实验成绩:课程设计名称:学生成绩管理系统姓名:石宏伟任课教师:杨有安 学号:160101050027 实验日期:一、目的通过编一些小程序,巩固和利用所学的知识,加强变成能力。本课题涉及的知识内容:关于时间的函数,for循环嵌套,if语句,一维数组,结构数组,自定义函数等高级语言内容。二、内容与设计思想1.设计内容学生信息管理系统登记学生信息删除学生信息浏览所有已经登记的学生查找(4.1)按学号查找(4.2)按姓名查找(4.3)按成绩查找根据总成绩排序储存到文件从文件导出退出系统主要代码结构学生成绩管理系统学生成绩管理系统操作操作查询成绩统计登记删除显示查询按成绩查询按姓名查询按学号查询各门平均分 主要代码段分析。总共分为八个板块,分别作为学生成绩录入,删减,浏览,查找,排序,储存和导出的作用。用switch函数将整体分成八个菜单,以方便直接进行操作。本程序中,对于学生信息的记录用了结构数组的形式,对于主要数据结构的应用如下:
结构数组:
Typedef
struct
student
/*结构体*/
char
xuehao[20];
/*
学号*/
char
xingming[20];
/*
姓名*/
int
score[M];
/*
分数*/
int
sum;
/*
总成绩*/本程序执行的入口是main函数,然后用switch语句实现对各个函数的调用。被调用的函数都是没有形参的,函数直接实现所需要的功能。最后,再从main函数中结束整个程序的运行。
其中涉及到被调用的函数有:
Void
menu
显示帮助信息;
Void
dengji
登记学生信息
;
Void
shanchu
删除学生信息
;
Void
liulan
浏览学生信息
;
Void
chazhao
查找学生信息;
Void
paixu
学生信息排序;
Void
cunchu
存储学生信息;
Void
daochu
导出学生信息;三、使用环境本次上机实践所使用的平台和相关软件。平台:Windows7相关软件:MicrosoftVisualC++6.0四、调试过程1.测试结果分析经检验,运行结果正确五、总结通过此次为期三周的课程设计实训课,我更加了解了关于C语编程以及程序书写的更多的知识,在当初的C语课时留下了许多问题,比如结构体,以及连接,通过此次课程,我巩固了在C语课中遗留的问题,并且使当初遗忘了的知识点更加明了。这次课程设计,我成功的创建了一个信息管理的系统,在编写这个系统过程中,我遇见了颇多的问题,比如,无法显示出结果或者直接是无法运行,在经过严密的程序检查后,一般发现我的问题主要是细节上的问题,如在个别语句后面忘记加‘;’,在此次设计过程中虽然遇见了一些问题,但总体还是成功的,在编写程序的过程中,细节明显更加重要,细节决定成败,通过此次课程也让我的C语言知识更加的清晰明了。六、附录1.源代码#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#defineM3#defineN100voidmenu();#include"head.h"voidmain(){ menu();} #include"head.h"typedefstructstudent{ charxuehao[20]; charxingming[20]; intscore[M]; intsum;}STUDENT; STUDENTstudent[N]; intrenshu=0;voidfhzjm(){ charbiaozhi[20]; printf("\n"); printf("还需要操作么?如果需要操作请输入:yes,否则请输入:no\n"); scanf("%s",biaozhi); if(strcmp(biaozhi,"yes")==0){menu();} else if(strcmp(biaozhi,"no")==0)exit(0); else{printf("请输入正确的字符,谢谢!\n");fhzjm();}}voidDengJi(){ intrs; inti,j,k=1; system("CLS"); printf("请输入需要输入几个学生信息:"); scanf("%d",&rs); for(i=renshu;i<renshu+rs;i++,k++) { printf("请输入第%d个学生的学号:",k); scanf("%s",student[i].xuehao); printf("请输入学生的姓名:"); scanf("%s",student[i].xingming); printf("请输入学生%d门课的成绩",M); for(j=0;j<M;j++) { printf("请输入第%d门课的成绩:",j+1); scanf("%d",&student[i].score[j]); student[i].sum+=student[i].score[j]; } } renshu=renshu+rs; fhzjm();}voidShanChu(){ charshanchuinfo[10]; system("CLS"); printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n"); scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0) { renshu=0; printf("删除成功\n\n"); } elseif(strcmp(shanchuinfo,"one")==0) { structstudent*p=NULL; charchoice[20]; inti,j,k=0; printf("请输入你要删除的人的学号:"); scanf("%s",choice); for(i=0;i<renshu;i++) { if(strcmp(choice,student[i].xuehao)==0) { k=1;j=i;break; } } if(k) { if(renshu==1) { p=&student[0]; free(p); renshu=0; } else { for(i=j;i<renshu;i++) { student[i]=student[i+1]; }renshu=renshu-1; } printf("删除成功\n\n"); } } else { printf("输入数据错误!\n"); ShanChu(); } fhzjm();}voidLiuLan(){ inti,j; system("CLS"); if(renshu==0) { printf("系统里面没有任何学生的信息!\n"); } else { for(i=0;i<renshu;i++) { printf("第%d个学生的学号为:%s\n",i+1,student[i].xuehao); printf("第%d个学生的姓名为:%s\n",i+1,student[i].xingming); for(j=0;j<M;j++) { printf("第%d个学生的第%d门课的成绩:%d\n",i+1,j+1,student[i].score[j]); } printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum); } } fhzjm();}voidChaZhao(){ charchoice[10],xinxi[20]; inti,j,k=0; system("CLS"); if(renshu==0) { printf("系统里面没有任何学生的信息!\n"); fhzjm(); } printf("三种查找方式:学号,姓名,成绩,请输入查找方式:"); scanf("%s",choice); if(strcmp(choice,"学号")==0) { printf("请输入需要查找学生的学号:"); scanf("%s",xinxi); for(i=0;i<renshu;i++) { if(strcmp(xinxi,student[i].xuehao)==0) { j=i;k=1; break; } } if(k==0) printf("输入信息有误:\n"); else { printf("您所查找的学生的信息为:\n"); printf("----学号----姓名----英语成绩----高数成绩----计算机成绩\t\n"); printf("------%s------%s-------%d---------%d-------------%d\t\n",student[j].xuehao,student[j].xingming, student[j].score[0],student[j].score[1],student[j].score[2]); }} else if(strcmp(choice,"姓名")==0) { printf("请输入需要查找学生的姓名:\n"); scanf("%s",xinxi); for(i=0;i<renshu;i++) { if(strcmp(xinxi,student[i].xingming)==0) { j=i;k=1;break; } } if(k==0) printf("输入信息有误:\n"); else { printf("您所查找的学生的信息为:\n"); printf("----学号-----姓名-----英语成绩-----高数成绩-------计算机成绩---\n"); printf("----%s-----%s-----------%d-----------%d---------------%d---\n",student[j].xuehao,student[j].xingming, student[j].score[0],student[j].score[1],student[j].score[2]); } } else if(strcmp(choice,"成绩")==0) { printf("请输入需要查找学生的成绩:\n"); scanf("%s",xinxi); for(i=0;i<renshu;i++) { if(strcmp(xinxi,student[i].xingming)==0) { j=i;k=1;break; } } if(k==0) printf("输入信息有误:\n"); else { printf("您所查找的学生的信息为:\n"); printf("-----学号-----姓名-----英语成绩-----高数成绩-------计算机成绩-----\n"); printf("-----%s-----%s-----------%d-----------%d---------------%d-----\n",student[j].xuehao,student[j].xingming, student[j].score[0],student[j].score[1],student[j].score[2]); } } fhzjm();}voidPaiXu(){ structstudent*p1[N],**p2,*temp; inti,j; system("CLS"); p2=p1; for(i=0;i<renshu;i++) { p1[i]=student+i; } for(i=0;i<renshu;i++) { for(j=i+1;j<renshu;j++) { if((*(p2+i))->sum<(*(p2+j))->sum) { temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp; } } } printf("按照总成绩排序之后的信息为:\n"); printf("-----学号-----姓名------总成绩-----\n"); for(i=0;i<renshu;i++) { printf("-----%s-----%s--------%d\n",(*(p2+i))->xuehao,(*(p2+i))->xingming,(*(p2+i))->sum); } fhzjm();}voidCunChu(){ inti; FILE*rs; if((rs=fopen("card.dat","wb"))==NULL) { printf("notopen"); exit(0); } for(i=0;i<renshu;i++) { fwrite(&student[i],sizeof(student[i]),1,rs); } if(ferror(rs)) { fclose(rs); perror("写文件失败!\n"); return;} printf("存储文件成功!\n"); fclose(rs); fhzjm();}voidDaoChu(){ structstudentt; inti=0; FILE*fp=fopen("card.dat","rb"); renshu=0; if(NULL==fp) { perror("读取文件打开失败!\n"); return;} memset(student,0x0,sizeof(student)); while(1) { fread(&t,sizeof(t),1,fp); if(ferror(fp)) { fclose(fp); perror("读文件过程失败!\n"); return; } if(feof(fp)) { break; } student[i]=t; i++; } fclose(fp); renshu=i; printf("导出文件成功!\n"); fhzjm();}#include"head.h"voidmenu(){ intn; system("CLS"); printf("学生信息管理系统\n"); printf("-------------------MENU-----------------\n"); printf("1.登记学生信息\n"); printf("2.删除学生信息\n"); printf("3.浏览所有已经登记的学生\n"); printf("4.查找\n"); printf("4.1.按学号查找\n"); printf("4.2按姓名查找\n"); printf("4.3按成绩查找\n"); printf("5.根据总成绩排序\n"); printf("6.存储到文件\n"); printf("7.从文件导出\n"); printf("8.退出系统\n");a:printf("请选择:"); scanf("%d",&n); switch(n) { case1: DengJi(); break; case2: ShanChu(); break; case3: LiuLan(); break; case4: ChaZhao(); break; case5: PaiXu(); break; case6: CunChu(); break; case7: DaoChu(); break; case8: exit(0); break; default: { printf("请输入1-8之间的数字\n"); gotoa; } }}基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究基于TCP/IP协议的单片机与Internet互联的研究与实现变频调速液压电梯单片机控制器的研究基于单片机γ-免疫计数器自动换样功能的研究与实现基于单片机的倒立摆控制系统设计与实现单片机嵌入式以太网防盗报警系统基于51单片机的嵌入式Internet系统的设计与实现单片机监测系统在挤压机上的应用MSP430单片机在智能水表系统上的研究与应用基于单片机的嵌入式系统中TCP/IP协议栈的实现与应用单片机在高楼恒压供水系统中的应用基于ATmega16单片机的流量控制器的开发\t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防水施工合同简单范本
- 二零二四年度股权转让与投资框架合同
- 医院精神科开放病房协议书范本(2篇)
- 卫生纸购销合同格式
- 解析指南利息借款合同的撰写技巧
- 面料采购销售合同
- 电梯设备安装合同协议范本
- 实习生实习保证协议
- 安全承诺我践行
- 医用防护服供货合同
- 关键装置、重点部位
- 安全文明施工措施费用检查表
- (中职)前厅服务与管理第二版情景一散客入住办理教学课件
- 2022小说精读批注海明威小说《一天的等待》附阅读试题答案解析
- 四肢骨折及相关护理课件
- 二、逻辑门 课件(17张幻灯片)
- 班级管理(第3版)教学课件汇总全套电子教案(完整版)
- 高中语文选择性必修上 .《论语》十二章原文+重点字词、文言现象+翻译+把关题高二语文文言文知识梳理
- MBTI人格理论教学课件
- TCVN-2622-越南建筑防火规范(中文版)
- 新型柔性电子用聚酰亚胺膜材料项目环境报告表
评论
0/150
提交评论