版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言大作业姓名:班级:学号:指导教师:设计时间:目录目的 题目描述和要求 三报告内容 3.1需求分析 3.2概要设计 3.3详细设计 3.4主要源程序代码 3.5测试分析 3.6设计结果 四.结论与心得 目的1.1、 通过本次大作业,锻炼我们应用C语言的语法规则和已经掌握的算法,自己解决一个较简单的课题,初步积累编程经验。1.2、通过学习掌握程序设计的方法与编程技术,学会良好的程序设计风格,为计算机在不同领域的应用打下坚实的基础。、要求我们能利用计算机解决实际问题。从分析问题入手,设计可行的算法,进而编出相应的C程序。强调上机实践过程,从实际应用出发,注重程序的实际应用。题目描述和要求题目:学生成绩管理系统应用链表及外部文件,独立设计上述应用系统,并编程实现以下功能:2.1信息录入录入学生信息(包括姓名、学号、各科成绩)。2.2信息查询输入学号,查询与学号相对应的信息(包括成绩),并按可选的自定义规则进行排序。按班级查询学生成绩。按班级统计学科总分、平均分等。信息删除与修改输入学号,删除该学号对应的成绩信息。输入学号,查询并显示出该学号信息,并在此基础上进行修改。计算学生成绩计算每位学生的总分。
计算每位学生的平均分。成绩排序。2.5信息保存将学生信息保存在文件中。2.6根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储2.7提供友好的用户界面,方便用户操作。报告内容3.1需求分析随着当今社会发展,信息化水平逐步提高,对教务管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。该软件主要是实现对学生信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定学生的相关信息,然后可以插入学生的相关信息,还有就是可按学生相关信息排序,以求达到简易操作的目的。3.2概要设计1•系统结构图(功能模块图)和数据变量说明退岀
退岀源文件函数名或其他成分功能student.cpp函数名或其他成分功能main总控函数intchoice菜单选择switch(choice)菜单处理IO_Writelnfo新建学生信息记录exit结束运行Student_lnsert增加学生信息Student_Display显示信息Student_Delete删除指定的记录Student_Select查询指定学生的信息Student_Modify修改指定学生的信息3.3详细设计1无MAIN3.3详细设计1无MAIN1r调用MENUK=0调用各个功能函数(K=?)Student_SortByAverage排序student.h结构声明学生成绩结构库函数及函数原型声明引用库函数及函数3.4主要源程序代码#include<stdio.h>#include<string.h>#inelude<cstdlib>structStudent{charID[20];charName[20];floatscor_eng;floatscor_math;floatscor_phy;floatAverage;};structStudentstudents[1000];intnum=0;floatAvg(structStudentstu){return(stu.scor_eng+stu.scor_math+stu.scor_phy)/3;}intStudent_SearchBylndex(charid[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].ID,id)==O){returni;}}return-1;}intStudent_SearchByName(charname[]){inti;for(i=0;i<num;i++){if(strcmp(students[i].Name,name)==0){returni;}return-1;}voidStudent_DisplaySingle(intindex){printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","英语成绩","数学成绩","物理成绩","平均成绩");printf(" \n");printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[index].ID,students[index].Name,students[index].scor_eng,students[index].scor_math,students[index].scor_phy,students[index].Average);}voidStudent_Insert(){while(1){printf("请输入学号:");scanf("%s",&students[num].ID);getchar();printf("请输入姓名:");scanf("%s",&students[num].Name);getchar();printf("请输入英语成绩:");scanf("%f",&students[num].scor_eng);getchar();printf("请输入数学成绩:");scanf("%f",&students[num].scor_math);getchar();printf("请输入物理成绩:");scanf("%f",&students[num].scor_phy);getchar();students[num].Average=Avg(students[num]);num++;printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}voidStudent_Modify()while(1){charid[20];intindex;printf("请输入要修改的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在!\n");}else{printf("你要修改的学生信息为:\n");Student_DisplaySingle(index);printf("--请输入新值--\n");printf("请输入学号:");scanf("%s",&students[index].ID);getchar();printf("请输入姓名:");scanf("%s",&students[index].Name);getchar();printf("请输入英语成绩:");scanf("%f",&students[index].scor_eng);getchar();printf("请输入数学成绩:");scanf("%f",&students[index].scor_math);getchar();printf("请输入物理成绩:");scanf("%f",&students[index].scor_phy);getchar();students[index].Average=Avg(students[index]);}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}voidStudent_Delete(){inti;while(1){charid[20];intindex;printf("请输入要删除的学生的学号:");scanf("%s",&id);getchar();index=Student_SearchByIndex(id);if(index==-1){printf("学生不存在!\n");}else{printf("你要删除的学生信息为:\n");Student_DisplaySingle(index);printf("是否真的要删除?(y/n)");if(getchar()=='y'){for(i=index;i<num-1;i++){students[i]=students[i+1];}num--;}getchar();}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}voidStudent_Select(){while(1){charname[20];intindex;printf("请输入要查询的学生的姓名:");scanf("%s",&name);getchar();index=Student_SearchByName(name);if(index==-1){printf("学生不存在!\n");}else{printf("你要查询的学生信息为:\n");Student_DisplaySingle(index);}printf("是否继续?(y/n)");if(getchar()=='n'){break;}}}voidStudent_SortByAverage(){inti,j;structStudenttmp;for(i=0;i<num;i++){for(j=1;j<num-i;j++){if(students[j-1].Average<students[j].Average){tmp=students[j-1];students[j-1]=students[j];students[j]=tmp;}}}}voidStudent_Display(){inti;printf("%10s%10s%8s%8s%8s%10s\n","学号","姓名","英语成绩","数学成绩","物理成绩","平均成绩");printf(" \n");for(i=0;i<num;i++){printf("%10s%10s%8.2f%8.2f%8.2f%10.2f\n",students[i].ID,students[i].Name,students[i].scor_eng,students[i].scor_math,students[i].scor_phy,students[i].Average);}}voidIO_ReadInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","rb"))==NULL){printf("不能打开文件!\n");return;}if(fread(&num,sizeof(int),1,fp)!=1)num=-1;}else{for(i=0;i<num;i++){fread(&students[i],sizeof(structStudent),1,fp);}}fclose(fp);}voidIO_WriteInfo(){FILE*fp;inti;if((fp=fopen("Database.txt","wb"))==NULL){printf("不能打开文件!\n");return;}if(fwrite(&num,sizeof(int),1,fp)!=1){printf("写入文件错误!\n");}for(i=0;i<num;i++){if(fwrite(&students[i],sizeof(structStudent),1,fp)!=1){printf("写入文件错误!\n");}}fclose(fp);}intmain(){intchoice;IO_ReadInfo();while(1){printf("\n 学生成绩管理系统 \n");printf("1.增加学生记录\n");printf("2.修改学生记录\n");printf("3.删除学生记录\n");printf("4.按姓名查询学生记录\n");printf("5.按平均成绩排序\n");printf("6.保存文件\n");printf("7.退出\n");printf("请选择(1-7):");scanf("%d",&choice);getchar();switch(choice){case1:Student_Insert();break;case2:Student_Modify();break;case3:Student_Delete();break;case4:Student_Select();break;case5:Student_SortByAverage();Student_Display();break;case6:IO_WriteInfo();break;case7:exit(0);break;}}}3.5测试分析C语言是上学期的学习内容,现在生疏了很多,以致程序运行过程中有许多 bug,测试也有很多想不到的错误。下面列举几个例子:1)IO_ReadInfo读出文件If((fp=fopen(“database.txt”,”rb”))=NULL)以二进制的格式读取文件的模式打开 database.txt文件,并把文件指针赋值为文件读取指针IO_WriteInfo写入文件If((fp=fopen(“database.tx”t,”rb”))=NULL)以二进制写入方式打开文件,和读取类似。在写这个函数的时候总是不能读出,而且写入也有问题,if(fw
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026一例消化道出血合并特殊肠道感染的个案护理
- 玻璃钢制品工安全意识强化评优考核试卷含答案
- 养鸡工操作评估水平考核试卷含答案
- 饮料灌装工QC管理评优考核试卷含答案
- 26年大病救助基因检测申请指南
- 医学26年:阵发性室上速急救处理 心内科查房
- 26年小panel检测基层应用落地细则
- 26年基因检测大数据平台搭建要点
- 2026 减脂期肉糜课件
- 2026 减脂期烧肉课件
- 消毒隔离制度试题文档(附答案)
- 2025-2026学年外研版(三起)(2024)小学英语三年级上册教学计划及进度表
- 处方审核培训课件
- 9.1 青藏高原 课件 人教版初中地理八年级下册
- 绿化部门油品管理制度
- 2025至2030年中国卡纸包装盒行业投资前景及策略咨询研究报告
- 【公开课】巴西+课件-2024-2025学年七年级地理下学期人教版
- 部队文职协议班合同
- 人工智能技术在职业技能提升中的心得体会
- 2025年春新北师大版数学七年级下册课件 第四章 三角形 问题解决策略:特殊化
- 华南理工大学《工程热力学》2022-2023学年第一学期期末试卷
评论
0/150
提交评论