- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计实训论文-学籍管理系统
北京联合大学
实训报告
课程名称: C语言程序设计课设
项目名称: 学籍管理系统
学 院: 信息学院 专 业: 通信工程
姓 名:
学 号:05 34 19
25 15
指导教师: 成 绩:
2011年2月18日目录
第一部分 实训题目与要求 3
1 问题提出 3
2 功能要求 3
3 任务分工 3
第二部分 设计实训题目功能 4
1 总体设计 4
2 算法设计 5
3 数据结构 15
4 程序代码设计 15
5 测试与调试 16
第三部分 实训总结 17
1 个人总结 17
2 结束语 18
附录A 程序清单 18
附录B 用户使用说明书 37
参考文献 38
第一部分 实训题目与要求
1 问题提出
学籍管理系统可广泛应用于全日制大、中小学及其他各类学校,对学生的、升级、学籍变动进行综合管理和快速查询。节省在学籍管理花费的人力和物力,能够游览学生学籍信息
能够mycreat()录入数据
myprint1()显示主菜单
myprint2()统计成绩
myprint3()处理学籍
mydisplay()创新功能
mynumsort()按学号排序
mysort()计算平均分并排序
myfenduan()统计分数段
myretake()生成并打印补考通知单
myselect()生成并打印退学通知单
mynewcreat()生成并打印新名册
2 算法设计
1 分析主模块算法:输出主菜单后键盘输入1-4并回车,进入相应应用;若输入非法选项则会提示“非法选项”并提示是否继续。
2 分析录入成绩模块算法:创建一个文件yuan.dat,并把从键盘输入的数据(学号、姓名、成绩)存放在该文件中;每写入一组记录,文件记录数增1。建立录入成绩模块的流程图如下图所示。
3 分析按学号排序模块的算法:
4 分析计算平均分并排序的算法
5 分析统计分数段的算法
6 分析生成并打印补考通知单的算法
7 分析生成并打印退学通知单的算法
8 生成并打印新名册
9 分析创新功能中的显示数据的算法
3 数据结构
struct student
{
char name[10]; /*学生姓名*/
int grade[5]; /*学生分数*/
double ave; /*学生平均分*/
char num[10]; /*学生学号*/
};
4 程序代码设计
简介函数:Mydisplay()
int n=0,j=0,k=0,m=0,ww; 首先定义整型变量 n j k m ww。
struct student temp[N]={0}; 定义结构体 temp[N]
FILE*fp=NULL; 定义指针变量fp
fp=fopen(d:\\yuan.dat,r); 此处为打开yuan.dat文件并读取其中数据 包括 学号、姓名、以及其五门功课的成绩。
if(fp==NULL)
{
printf(打开文件失败!\n);
return;
}
system(cls);
while(feof(fp)==0)
{
ww=fscanf(fp,%23s%15s,temp[n].num,temp[n].name);
if(ww==-1) break;
for(j=0;j5;j++)
{
fscanf(fp,%d,temp[n].grade[j]);
}
n++;
}此处的n记录了一共有多少位同学。
for(k=0;kn;k++)进行循环操作,分别显示出每一位同学的信息
{
printf(%23s %15s ,temp[k].num,temp[k].name);
for(m=0;m5;m++)
{
printf(%d ,temp[k].grade[m]);
}
printf(\n);
}
if(n==0)printf(\n 文件中无记录!\n);判断n是否为0,显示文件记录
else printf(\n 文件中共有%d个
文档评论(0)