C语言实现的学生成绩管理系统
更新时间:2023-05-22 05:04:01 阅读量: 实用文档 文档下载
- c语言学生成绩管理程序推荐度:
- 相关推荐
C语言实现的学生成绩管理系统
an
C语言课程设计报告
系部名称 : 专业名称 : 班 级 : 学
号 :
2009 年 5 月25 日 至 2009年 6 月5 日
题 目: 学生信息管理系统
学生姓名 : 指导教师 :
时间 :
C语言实现的学生成绩管理系统
一、课程设计目的
1)对C各部分知识的综合应用能力 2)提高程序设计的能力
3)提升对于较大程序的抽象分析设计能力 4)学习调试和测试的技巧
二、课程设计内容
1)熟悉C实验环境,按给定的上机步骤练习完成; 2)熟悉C程序的编辑,编译,链接和运行的过程。 3)编译一个应用系统程序,形成一个软件系统。
三、需求分析
随着当今社会发展,信息化水平逐步提高,对教务管理有了新的要求,因此,编写一个信息管理系统是十分有必要的。
该软件主要是实现对学生信息进行系统化的管理,首先可以对学生基本信息进行输入和读取,其次查找并显示特定学生的相关信息,然后可以插入学生的相关信息,还有就是可按学生相关信息排序,以求达到简易操作的目的。
四、概要设计(或总体设计)
1.系统结构图(功能模块图)和数据变量说明
2.功能模块说明
1.输入模块 2.列表模块
C语言实现的学生成绩管理系统
3.查找模块 4.修改模块
5.增加模块
6.成绩排序
C语言实现的学生成绩管理系统
五、运行情况
1. 主菜单
2.录入数据
3.输出数据
4.查找数据
5.增加数据
5.增加数据
C语言实现的学生成绩管理系统
6.修改数据
7.成绩排序
8.退出系统
C语言实现的学生成绩管理系统
六、设计体会和反思
通过两周的上机实习,我对C语言又有了崭新的认识。
C语言的学习是一个系统的过程,需要长期的知识积累和储备并辅以大量的上级实际操作练习,自己也应该有所体会,在实践中成长,在实践中求知。
这次我设计的课题是学生信息管理系统。课题要求对学生信息实现一系列基本操作。我选择通过结构体数组来实现这个设计。通过fread和fwrite两个函数实现对文件的读写,过程比较简洁(这里也有参考《C程序设计》中某例题的思想)。通过大量的符号和printf语句,使得操作界面更加和谐友善,这些都是我通过这次实习积累的经验。
同时,设计完成后我也发现了代码中的一些不足,例如在录入数据时要求输入序号的值,这个我认为操作比较复杂,但由于时间紧迫,未能提出完美的解决方案,但此问题并不影响程序的运行和要求的实现。经过实际检验,只要按照程序要求输入,就能够实现。
总之,通过这次实习,我也认识到了我自己在程序设计这门课程上的不足,在以后的学习实践中,要更加的严谨踏实,对知识的把握要更加的细致入微,要活学活用,争取在这个学科上取得更大的进步。
七、参考文献
谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005
C语言实现的学生成绩管理系统
八、程序源代码
#include "stdio.h" #define SIZE 100000 #include"string.h" #include"stdlib.h" #include"conio.h"
struct student 结构体数据 {int n; int num;
char name[10]; int C; int Maths; int En; float ave; }stu[SIZE];
/*录入数据(向文件fp中录入信息)*/
void finput() { FILE *fp; int i,p;
fp=fopen("fstu","wb"); for(i=0;i<SIZE;i+1) { printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i++); scanf("%d",&i);
if(i==-1) { fclose(fp); return; }
else { printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:");
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; stu[i].n=i+1;
fwrite(&stu[i],sizeof(struct student),1,fp); } }
fclose(fp); }
/*输出文件fp中的数据*/
void flist() { FILE *fp; int i;
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("-----------------------------------------------------------\n\n");
C语言实现的学生成绩管理系统
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }
/*查找数据*/
void fsearch() { FILE *fp; int i,num;
fp=fopen("fstu","rb"); rewind(fp);
printf("请输入要查找的学号:"); scanf("%d",&num);
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 查询结果\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;i<=SIZE;i++) if(stu[i].num==num) {
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n"); fclose(fp); }
/*增加文件fp中的数据*/
void fadden() { int i,s; FILE *fp;
fp=fopen("fstu","ab+"); rewind(fp);
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); s=i;
for(i=s;i<SIZE;i++) { printf("i=%d 输入序号i(当输入i=-1时,返回),i=",i+1); scanf("%d",&i); if(i==-1) { fclose(fp); return; } else { printf("请输入学号,姓名,C成绩,数学成绩,英语成绩:"); stu[i].n=i+1;
C语言实现的学生成绩管理系统
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(&stu[i],sizeof(struct student),1,fp); } }
fclose(fp); }
/*修改文件fp中的数据*/
void fchange() { FILE *fp; int i,num,n; int flag=0;
printf("请输入要修改学生的学号:"); scanf("%d",&num); for(i=0;i<=SIZE;i++) if(stu[i].num==num) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n");
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); n=i; flag=1; break; }
if(flag==0) { printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 输入错误!\n"); printf(" 请返回!\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); return; }
printf("\n\n\n");
fp=fopen("fstu","rb+");
fseek(fp,n*sizeof(struct student),0);
printf("请输入新的学号,姓名,C成绩,数学成绩,英语成绩:");
scanf("%d%s%d%d%d",&stu[i].num,stu[i].name,&stu[i].C,&stu[i].Maths,&stu[i].En); stu[i].ave=(stu[i].C+stu[i].Maths+stu[i].En)/3.0; fwrite(&stu[i],sizeof(struct student),1,fp); fclose(fp);
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("-----------------------------------------------------------\n\n");
C语言实现的学生成绩管理系统
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }
/*成绩排序*/
void ftaxis() { int i,j,n; FILE *fp;
struct student t;
fp=fopen("fstu","rb");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表\n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;fread(&stu[i],sizeof(struct student),1,fp)==1;i++) {
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("-----------------------------------------------------------\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); n=i;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(stu[i].ave<stu[j].ave) { t=stu[i]; stu[i]=stu[j]; stu[j]=t; }
fp=fopen("fstus","wb"); printf("\n\n\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf(" 成绩列表 \n");
printf("-----------------------------------------------------------\n");
printf("序号 学号 姓名 C成绩 数学 英语 平均\n"); printf("-----------------------------------------------------------\n"); for(i=0;i<n;i++) { fwrite(&stu[i],sizeof(struct student),1,fp);
printf("%d%8d%8s%8d%8d%8d%16.2f\n",stu[i].n,stu[i].num,stu[i].name,stu[i].C,stu[i].Maths,stu[i].En,stu[i].ave); }
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); fclose(fp); }
C语言实现的学生成绩管理系统
/*主函数*/
main() { int n; for(;;) { printf("\n");
printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 欢迎来到学生信息管理系统 ※\n"); printf("※ ※\n"); printf("※ 系部:通信工程 专业:通信工程 ※\n"); printf("※ 姓名: 学号: ※\n"); printf("※ 班内序号: 指导老师: ※\n"); printf("※ ※\n"); printf("※ 主菜单 ※\n"); printf("※ ※\n"); printf("※ ▲1.录入数据▲ ※\n"); printf("※ ▲2.输出数据▲ ※\n"); printf("※ ▲3.查找数据▲ ※\n"); printf("※ ▲4.增加数据▲ ※\n"); printf("※ ▲5.修改数据▲ ※\n"); printf("※ ▲6.成绩排序▲ ※\n"); printf("※ ▲7.退出系统▲ ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n\n"); printf("请输入选择项(1-7):"); scanf("%d",&n); printf("\n\n\n\n"); if(n>0&&n<8) { switch(n) { case 1:finput();break; case 2:flist();break; case 3:fsearch();break; case 4:fadden();break; case 5:fchange();break; case 6:ftaxis();break;
case 7:printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 谢谢使用! ※\n"); printf("※ 再见! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); exit(0); } } else { printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("※ ※\n"); printf("※ 输入错误! ※\n"); printf("※ 请退出! ※\n"); printf("※ ※\n"); printf("※※※※※※※※※※※※※※※※※※※※※※※※\n"); break; } } }
C语言实现的学生成绩管理系统
Created on 6/22/2011 3:16:35 PM
第 11 页 共 10 页
正在阅读:
C语言实现的学生成绩管理系统05-22
课题评审书 空表06-25
《儿童的人格教育》读后感09-13
阳光校园我们是好伙伴作文600字07-15
关于秋雨的作文400字8篇04-01
立体几何中的向量方法之方向向量与法向量08-11
泵阀公司网站建设策划书案例08-24
重庆市万州三中2014届九年级上学期语文期中试题(word版含答案)06-15
二年级语文《苏红的画》评课稿09-10
自考古代文学史(一)选择题大总结03-09
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 管理系统
- 成绩
- 语言
- 实现
- 学生
- 表现为眶神经痛的大脑后动脉瘤
- 国内银行网上银行转账手续费介绍
- 幼儿园教师月工作考核细则
- 写字楼 商业楼宇招商租赁制度流程规范四个案例合集
- AutoCAD计算截面面积、惯性矩
- 福州市下岗职工再就业情况调查报告
- 电子商务运营中重要的数据点
- 水箱液位控制系统(二)正文部分--毕业设计
- 江苏省郑集高级中学2013—2014学年度高一第一次学情调查
- SSP431 Audi RS6 技术自学手册
- 急性白血病的诊断与分型3
- 《遥感概论》新第1章
- b5小学语文教学论文 阅读教学中自主学习方法探究 (2)
- 必修三生物生态系统的稳定
- 中考英语作文突破指导—作文模板
- 新人音版小学音乐四年级下册-冬夜静悄悄-精品教案
- 消防部队灭火救援战斗力综合评估
- 淮北到宏村旅游攻略
- 概率论与数理统计课程设计
- 皇城二中小学部教师任课上报统计表2014.08 (1)