求一份C语言C语言学生成绩管理系统实训报告告 内容如下:

当前位置: >>
C语言实习报告
C 语言程序设计 课程设计报告学生成绩管理系统专业: 班级: 姓名: 指导教师: 年 月 日 目录1.课程设计目的................................................................................................................................ 2 2.问题需求分析................................................................................................................................ 2 3.系统设计........................................................................................................................................ 2 4.编程实现........................................................................................................................................ 4 5 系统测试........................................................................................................................................ 6 6.实习总结...................................................................................................................................... 111.课程设计目的了解基于C语言的软件开发基本过程与方法,熟悉结构化程序设计的基本方 法,了解计算机工作模式,掌握开发一个小型实用系统的基本方法,学会调试一 个较长程序的基本方法,养成良好的程序设计习惯和严谨的工作态度,初步获得 应用编写C语言程序来解决实际问题的能力。2.问题需求分析根据题目要求,由于要录入、读取、保存学生成绩信息,因而要实现文件的 输入和输出功能; 要求用户可以查询各个学生的成绩,并且可以添加学生成绩信 息等,因而要提供查找和添加功能;另外,还应提供键盘式选择菜单以实现功能 选择。3.系统设计3.1数据结构由于该系统涉及多个学生的成绩存储,因此,定义一个数据结构,用于存储 这些信息。现仅对学生英语成绩、数学成绩、C 语言成绩进行统计管理。 建立以下数据结构: typedef struct student { //存储学生学号 char name[MAX_NAME]; //存储学生姓名 //存储学生英语成绩 //存储学生数学成绩 double P //存储学生C语言成绩 double mark_ //平均成绩 double mark_ //总成绩 } STUDENT;3.2总体软件框架学生成绩管理系统数据输入数据输出数据插入 开始数据排序数据查找输出菜单根据菜单输入 n 的值选 择程序输 入输 出排 序查 找插 入保 存退 出结束3.3 程序模块设计将学生成绩管理系统划分为以下几个模块: 1、显示菜单模块:用 void paint()来实现 2、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等 相关信息;用函数 void input(STUDENT *data, int *len)来实现此操作。 3、成绩输出模块:输出学生的信息以及成绩,用函数 void output(STUDENT *data, int len)来实现:通过学生的姓名来查看学生的相关成绩。 4、排序模块:用函数 void sort(STUDENT *data, int len)来实现 5、成绩查询模块:用 void find(STUDENT *data, int len) 来实现,找到 就输出此学生全部信息。 6、插入模块:用函数 void insert(STUDENT *data, int *len)来实现,插 入到合适的位置。 7、保存文件:用函数 void save(STUDENT *data, int len)来实现,将信息 保存到文件中,再关闭文件。 8、主函数:使用switch条件语句调用主菜单函数,选择菜单中要选择对象来 执行不同的模块。4.编程实现4.1 成绩输入模块【流程图】开始输入学生的学号、姓名、 各科成绩N学号是否为 -1Y接 着 输入 新 的学生信息返回主菜单4.2成绩输出模块将输入的所有学生成绩输出 4.3成绩排序模块【流程图】开始按平均分排序返回主菜单4.4成绩查询模块: 流程图】 【输入学生学 号Y是否找到学生 记录N显 示 找到 的 记录提 示 未查 询 到相关信息学号是否为-1N返回主菜单 4.5成绩插入模块输入学生成 绩信息按其平均分将其 插入适当位置返回主菜单4.6成绩保存模块将所有学生的成绩信息保存到成绩统计表.txt中4.7主函数【流程图】开始显示一系列功能选 项根据 sele 的值调用各 功能函数结束5.系统测试运行开始: 选择 1 输入成绩: 选择 2 输出成绩:选择 3 按平均分排序: 选择 4 查找(输入学号 1) :选择 5 插入新数据: 选择 6 保存:选择 0 退出 6.实习总结课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻 炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科 学技术发展的日新月异, 当今计算机应用在生活中可以说得是无处不在。因此作 为二十一世纪的大学来说掌握程序开发技术是十分重要的,而 C 语言又是最常 见,功能最强大的一种高级语言,因此做好 C 语言课程设计是十分必要的。 回 顾起此次课程设计, 至今我们仍感慨颇多, 的确, 自从拿到题目到完成整个编程, 从理论到实践,在这几天里,可以学到很多很多的东西,同时不仅可以巩固了以 前所学过的知识, 而且学到了很多在书本上所没有学到过的知识。通过这次课程 设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的 实际动手能力和独立思考的能力。在设计的过程中遇到许多问题,可以说得是困 难重重。这毕竟是第一次做,难免会遇到过各种各样的问题,同时在设计的过程 中发现了自己的不足之处, 对一些前面学过的知识理解得不够深刻,掌握得不够 牢固。通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 通过学习《C 语言课程设计》使我了解到 C 语言是一门实践性很强的课程, 以及 C 语言的基本语法规则.程序设计.以及解题的全过程, 加深对 C 语言的了解, 得到程序设计的基本方法和技巧的训练,从而更加深一步的对知识的了解,真正 能使 C 语言这个强有力的编程工具去解决实际问题。7.附:关键源程序#include &stdlib.h& #include &stdio.h& #include &string.h& #define MAXN 35 #define MAX_NAME 256 typedef struct student //学生信息 { char name[MAX_NAME]; double P double mark_ double mark_ } STUDENT; /*---------------显示信息子程序------------*/ void paint() { system(&cls&); printf(&%55s\n&, &中国地质大学(武汉)学生成绩管理系统\n&); for (i=0; i&80;i++) putchar('='); putchar('\n'); printf(& 1 输入信息 2 输出信息 \n&); printf(& 3 按平均分排序 4 按学号查找 \n&); printf(& 5 插入 6 保存到文件 \n&); printf(& 0 退出\n&); for (i=0;i&=79;i++) putchar('='); putchar('\n'); printf(&%s\n&, &请输入各操作对应的序号:&); } /*-----------输入信息子程序---------*/ void input(STUDENT *data, int *len) { putchar('\n'); printf(&%s\n&, &请输入新的记录,如果需要退出当前菜单请输入 -1.&); printf(&%s\n&, &格式:\n&); printf(&%s\n&, &学号 姓名 英语 数学 C 语言&); putchar('\n'); scanf(&%d&, &no); while(no != -1) { data[*len].no = scanf(&%s %lf %lf %lf&, data[*len].name, &data[*len].english, &data[*len].math,&data[*len].Programming); data[*len].mark_ave=(data[*len].english+data[*len].math+da ta[*len].Programming)/3.0; data[*len].mark_tot=data[*len].english+data[*len].math+dat a[*len].P (*len)++; scanf(&%d&, &no); } } /*---------------输出信息子程序---------------*/ void output(STUDENT *data, int len) { system(&cls&); printf(&%8s&, &学号&); printf(&%8s&, &姓名&); printf(&%8s&, &英语&); printf(&%8s&, &数学&); printf(&%10s&, &C 语言&); printf(&%12s&, &平均分&); printf(&%10s&, &总分&); putchar('\n'); for (i =0; i & 80; i++) putchar('='); putchar('\n'); for (i = 0; i& i++) { printf(&%8d&, data[i].no); printf(&%8s&, data[i].name); printf(&%8.1lf&, data[i].english); printf(&%8.1lf&, data[i].math); printf(&%10.1lf&, data[i].Programming); printf(&%12.1lf&, data[i].mark_ave); printf(&%10.1lf&, data[i].mark_tot); putchar('\n'); } for (i =0; i & 80; i++) putchar('='); putchar('\n'); printf(&按回车键继续.&); getchar(); /*存储 enter*/ getchar(); /*存储输入内容*/ } /*--------------排序子程序------------*/ void sort(STUDENT *data, int len) { int i,j,k; STUDENT for (i=0; i&len-1; i++) { for (k=i, j=i+1; j& j++) if (data[k].mark_ave & data[j].mark_ave) k=j; if (k != i) { temp = data[i]; data[i] = data[k]; data[k] = } } printf(&%s\n&, &下面显示排序结果,如果需要退出当前菜单请输入 -1.&); for(i=0;i&++i) { printf(&%8d&, data[i].no); printf(&%8s&, data[i].name); printf(&%8.1lf&, data[i].english); printf(&%8.1lf&, data[i].math); printf(&%10.1lf&, data[i].Programming); printf(&%12.1lf&, data[i].mark_ave); printf(&%10.1lf&, data[i].mark_tot); putchar('\n'); } int no=1; while(no!=-1) { scanf(&%d&,&no); } } /*--------------------查找子程序-----------------------*/ void find(STUDENT *data, int len) { int find_no, int index=1; while(index==1) { result=0; printf(&%s\n&, &请输入需要查找的学生的学号,退出当前菜单请 输入 -1.&); scanf(&%d&, &find_no); if (find_no == -1) /*exit the fine sub program*/ while( data[result].no != find_no && result & len) result ++; if (result &= len ) { printf(&%s\n&, &未查询到相关信息&); index=1; } else { system(&cls&); printf(&%s\n&, &查询信息如下:&); for (i =0; i & 80; i++) putchar('='); putchar('\n'); printf(&%8s&, &学号&); printf(&%8s&, &姓名&); printf(&%8s&, &英语&); printf(&%8s&, &数学&); printf(&%10s&, &C 语言&); printf(&%12s&, &平均分&); printf(&%10s&, &总分&); putchar('\n'); printf(&%8d&, data[result].no); printf(&%8s&, data[result].name); printf(&%8.1lf&, data[result].english); printf(&%8.1lf&, data[result].math); printf(&%10.1lf&, data[result].Programming); printf(&%12.1lf&, data[result].mark_ave); printf(&%10.1lf&, data[result].mark_tot); putchar('\n'); for (i =0; i & 80; i++) putchar('='); putchar('\n'); index=1; } index=0; } } /*-----------------插入子程序-------------*/ void insert(STUDENT *data, int *len) { int no, double english, math, Programming, mark_ave, mark_ char name[MAX_NAME]; while(1) { printf(&%s\n&, &输入新的记录,退出当前菜单请输入-1.&); printf(&%s\n&, &格式:&); printf(&%s\n&, & 学号 姓名 英语 数学 C 语言&); scanf(&%d&, &no); if (no == -1) /*exit*/ data[*len].no = scanf(&%s %lf %lf %lf&, name, &english, &math, &Programming); mark_ave=(english+math+Programming)/3.0; mark_tot=english+math+P pos = 0; while ((data[pos].mark_ave & mark_ave) && (pos & *len) ) pos ++; for (i = *len-1; i &= i--) data[i+1] = data[i]; data[pos].no = strcpy(data[pos].name, name); data[pos].english = data[pos].math = data[pos].Programming = P data[pos].mark_ave = mark_ data[pos].mark_tot = mark_ (*len)++; } } void save(STUDENT *data, int len)//将数据保存到文件 { FILE * fp=fopen(&成绩统计表.txt&,&w&); fprintf(fp,&%8s&, &学号&); fprintf(fp,&%8s&, &姓名&); fprintf(fp,&%8s&, &英语&); fprintf(fp,&%8s&, &数学&); fprintf(fp,&%10s&, &C 语言&); fprintf(fp,&%12s&, &平均分&); fprintf(fp,&%10s\n&, &总分&); fprintf(fp,&========================================================= ===============\n&); putchar('\n'); for (i = 0; i& i++) { fprintf(fp,&%8d&, data[i].no); fprintf(fp,&%8s&, data[i].name); fprintf(fp,&%8.1lf&, data[i].english); fprintf(fp,&%8.1lf&, data[i].math); fprintf(fp,&%10.1lf&, data[i].Programming); fprintf(fp,&%12.1lf&, data[i].mark_ave); fprintf(fp,&%10.1lf\n&, data[i].mark_tot); } fprintf(fp,&============================================== ==========================\n&); fclose(fp); printf(&文件已保存到\&成绩统计表.txt\&&); getchar(); getchar(); } /*-----------主程序--------------*/ void main() { STUDENT data[MAXN]; int len = 0; paint(); scanf(&%c&, &sele); while (sele != '0') { switch(sele) { case '1': input(data, &len); case '2': output(data, len); case '3': sort(data, len); case '4': find(data, len); case '5': insert(data, &len); case '6': save(data, len); default: if (sele != '\n') printf(&%s\n&, &输入错误!&); } if (sele != '\n') paint(); scanf(&%c&, &sele); } }参考书目: [1] 谭浩强,《C 程序设计》,清华大学出版社,2011 [2] 张冬梅等,《基于 PBL 的 C 语言课程设计及学习指导》,清华大学出版社,2011
c语言实习报告 - 目 录 一、前言………2 前言………2...C语言实习报告 - C 语言课程设计 系部: 系部:电子工程系 专业:计算机应用 101 班 专业: 姓名: 姓名:邢莹莹 指导老师:赵生智,徐巧格, 指导老师:赵生智,徐...C语言课程设计实习报告_学习总结_总结/汇报_实用文档。c语音课程设计 C 语言课程设计实习报告 学姓班 号名级 :
:廖伯黎龙霞: 数学 1502 指导老师: ...六、自我总结及感想:虽然实习时间不长便结束了,但对于这次 c 语言实习,我对此非常重视,因 为实习不仅仅是对我们所学知识的验证,更是发现自身不足,发现所学知识...C语言实习报告书_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档C语言实习报告书_计算机软件及应用_IT/计算机_专业资料。生命科学学院 ...C语言实习报告 - C 语言课程实习报告 所在院系 :经济管理学院 班级学号:083081 学姓序号 :
名 :胡雅雯 程序 已存档...重庆城市管理职业学院 《C 语言程序设计》实习报告 班专学 级业号 软件 A1501 软件技术 学生姓名 指导教师 评定成绩 信息工程学院 2016 年 06 月 21 日 题目...C语言课设实习报告 - C 语言课程设计实习报告 C 语言课程设计实习报告 目录一、程序分析与设计......c语言实习报告―xiaoli - 假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、学分、开课学期等信息,学生可按要求(如总学分不得少于...C语言实习报告 - 中国地质大学(武汉) 计算机高级语言课程设计(C) 实习报告 姓名: 实习题目: 班级: 学号: 学院: 专业:xxxx 指导老师: xxx 歌星大奖赛 xxx xxx...
All rights reserved Powered by
www.tceic.com
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。C语言实习报告 南京廖华
C语言实习报告
C语言课程设计报告 银行账户管理系统
231132 姜紫阳
一、整体需求分析 二、程序设计思想 三、程序流程框架示意 四、程序主要片段及说明 五、程序优劣性分析及改进点 六、自我总结及感想 七、附录:源代码
一、 总体需求分析
设计一个银行账户管理程序,账户的信息有账号(唯一)、身份证(唯一)、余额、密码等,允许用户进行如下操作:开户、取款、转账、查询、修改密码,一个用户只能有一个户头,应检测身份证是否被注册。
程序运行时,可以由用户选择进行何种操作,开户操作要求输入用户信息后检测身份证是否被使用,不允许用户透支,根据账号可以进行用户的信息查询,所有的账户信息应存放到一个文件中,可以随时的访问和更新。
二、程序设计思想 银行账户管理的实现由于人数的不确定性,避免内存的浪费以及出现数组元素不够的情况,选择使用链表进行操作。为保证储户信息可以保存下来,在程序文件夹里面创建了一个“shuju.txt”的文件用以保存数据。 程序主要包括信息数据的处理以及程序操作界面两个部分。因此,我创建了一个工程,主要包括4个部分。第一个部分是“function.h”,在里面申明了我要使用的所有函数,并且定义一个用户类 ctm,数据成员主要有身份证号码(id)、账号(ac)、密码(co)、余额(am)以及指向自身的指针(next)等内容,用以生成链表,保存用户信息。同时,定义了一个ctm型的head指针,用以记录生成链表的头指针。第二部分为“function.c”文件,在这个c文件中,我主要写了8个函数,首先是基础的从文件中读取数据形成链表的函数data()。然后是将文件格式化并将链表的信息写到文件中的函数datanew()。还有就是通过账号读取账户地址,并将ctm型变量的地址返回的*acread(ac)函数,在此基础上,写了5个函数用以实现开户、取款、转账、查询、修改密码。开户函数主要是先检测身份证是否被使用,然后在链表的结尾加上一个新的数据,并让原链表尾指向新的数据首地址。取款函数主要为读出账户地址,并改变里面的am项,修改密码函数与取款函数类似。转账函数是在取款函数的基础上,分别读取当前用户的地址和目标用户的地址,并修改其中的am数据。查询函数主要为读出目标地址,然后显示其中的数据。操作界面上,我定义了一个“control.c”的文件,在里面,主要包括了4各menu()函数用以显示我想要显示的菜单。还有3个关键的函数,有初始化函数init()、进入系统的函数*enter()、还有退出的函数iexit()。初始化函数主要是使用了建立链表的函数用以读取数据生成链表,然后改变菜单,等待进入系统。enter函数主要实现核对账号密码的信息,并返回用户数据的指针*now,用以以后的各个功能。还有退出函数iexit(),使用datanew()保存用户信息,并显示退出界面。最后一个部分为“main.c”在里面,我只写了一个主函数main。主函数中,写了系统整体的框架。将各个函数整合。实现循环选择等功能。
三、 程序流程框架示意 开始 选择 登录系统 开户 功能选择 取款 转账 查询 修改密码 继续退出
四、 主要程序片段及说明 1、主函数: void main() {
struct ctm *
int i=2,j,k=1;
while(i==2)
} } now=enter(); while(k==1) {
scanf(\ switch(j)
case 1: out(now);
case 2: read(now);
case 3: move(now);
case 4: change(now);
default :printf(\输入错误\\n\ }
printf(\输入1返回操作界面,输入2退出\\n\ scanf(\} iexit(); 主函数主要实现流程图所示的过程,先初始化,形成链表并改变head指针指向链表首地址,清屏显示菜单。定义了两个开关,i和k,i设为2,进入循环,让用户在菜单1中选择开户或者直接登录,如果选择开户,那么i仍为2,开完户后继续选择开户或登录,如果选择登录,则i变为1退出循环,清屏显示菜单2(CLR为定义过得清屏函数system(“cls”))。k默认设置为1,进入循环,进入后选择相应的功能,完成后由用户选择是否继续,如果继续,输入1,k仍为1,继续循环。输入其他的结束循环并进入自己定义的退出函数iexit退出。 2、读取文件信息,新建链表的函数: void data() {
long id,ac,
struct ctm *count,*p;
head=count=NULL;
fp=fopen(\ while(!feof(fp))
p=(struct ctm *)malloc(sizeof(struct ctm));
779 66 2525#qq.com 联系客服:计算机专业c语言实训报告范文
版本说明软件地址查看查看查看查看查看
相关合集:
相关热搜:
暴力摩托2004是一款与众不同的竞速类游戏,英文名叫“Road Rush”,移植于3DO游戏主机的一款动作赛车游戏。它拥有非常逼真的画面和音响效果,如疾驰而过的汽车呼啸声,摩托车的引擎声和转弯时轮胎与地面摩擦而产生的声音。而且它在游戏中加入了对抗成份,比赛中你可以使用拳、脚去干扰对方,使其落后于你,是不是很卑鄙啊? 游戏中千万不能手下留情,因为对手会主动攻击你。...
高速下载地址
联通下载地址1
电信下载地址
移动及其他下载地址
(您的评论需要经过审核才能显示)
很好,计算机专业c语言实训报告范文已安装并使用了,谢谢!
越更新越好用了,之前有些功能我都找不到,现在的计算机专业c语言实训报告范文太令我惊喜了
就是偶尔有点卡,点击我名字,给你介绍更好的
下载计算机专业c语言实训报告范文中,希望可以正常使用,别遇到BUG就好了
这个计算机专业c语言实训报告范文好用么,我看大小是0.1MB,跟前一个版本差别并不大
回复20楼(云南省昆明市网友):新版支持了。
计算机专业c语言实训报告范文这么好的软件你到哪里去找啊
好桑心,用了其它的工作报告软件后,回过头发现还是这个计算机专业c语言实训报告范文最适合我了。。
跟其它工作报告相比,我个人认为这个计算机专业c语言实训报告范文还算是这里做的比较不错的软件了。
工作报告推荐豆丁微信公众号
君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
C语言实训报告
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口谁有C语言模拟ATM系统的实训报告??急需!!!_百度知道
谁有C语言模拟ATM系统的实训报告??急需!!!
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
获赞数:10
0 0,你自己做了实训项目后,实训报告应该是比较容易写的了,你们老师应该会给你模版吧、、、在网上下载一份实训报告参考一下格式,然后自己填写就好了,需求不一样,没法给你一个你满意的、、、
你有做过的报告吗???自己真的不会,我们刚大一,只学了最基本的,,学校有些 好大喜功!!!!!!!!!一味模仿别的学校
你应该学一下咋个写报告这些,在做项目的时候代码这些编写相对是比较简单的,你可以在网上下载一份相应的C语言实训报告参考一下格式,然后自己填写就好了,你的需求不一样,没法给你一个你满意的、、、 这样写了对你以后还是很有好处的
feipoxuetiaowu
feipoxuetiaowu
获赞数:17
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 c语言实训报告 的文章

 

随机推荐