版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计课程设计名称:高级语言程序设计专业班级: 计专08级1班 学生姓名:王玉攀学号:200838940116指导教师:阎娟课程设计时间:2008621 -2007.7.2计算机科应用技术专业课程设计任务书学生姓名王玉攀专业班级计算机应用技术0801 班学号20083894011608计算机班学生成绩管理系统课题性质工程设计课题来源自拟题目指导教师阎娟同组姓名全面熟悉、掌握 C语言基本知识,掌握 C程序设计中的顺序、分支、循环 三种结构及数组、函数、指针和文件的操作,熟悉编制和调试程序的技巧,掌 握分析结果的若干有效方法,进一步提高上机动手能力。主要功能:1、建立:录入学生信息包括:姓名,学
2、号,各科成绩等。2、维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息主要内容统计:要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况4、查询:查询时可实现按姓名查询、按学号查询5.排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示任务要求参考文献排序结果分)(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加1.设计正确,2 .界面友好,3 .程序精炼,4 上机演示。5.提交材料:方案合理,能实现相应功能。 使用方便。结构清晰。(1)源程序清单
3、及程序框图(2)课程设计报告(1)C程序设计(第三版),谭浩强,北京,清华大学出版社,2007C语言编程宝典,王大刚,第二版,机械工业出版社.C语言程序设计 张磊,高等教育出版社(4)数据结构与算法一一面向对象的 C+设计模式(5)数据结构教程 李春葆,北京,清华大学出版社审查意见指导教师签字:教研室主任签字:年月日1需求分析1、通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2、通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据 文件等知识的运用。3、通过课程设计,提高程序开发功能,能运用合理的控制流程编写清晰高 效的程序。4、通过课程设计
4、,训练 C程序调试能力,能将一个中小型各级组织系统联 调通过。5、通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、通话课程设计,培养分析问题、解决实际问题的能力。2概要设计(1) 模块划分程序的模块组成:主函数:int main()新建函数:STUDENT *i nit()输入函数:STUDENT *create()显示函数:void print(STUDENT *head)删除函数:STUDENT *delete(STUDENT *head)保存函数:void save(STUDENT *head)修改函数:STUDENT *Modify(STUDENT *head,STUDENT
5、 *new)各个函数的主要功能:输入函数:随时输入数据。菜单函数:显示系统主菜单。 显示函数 : 显示所有学生的信息。 寻找函数 : 方便查找学生信息。 删除函数 : 删除某学生的信息。 插入函数 : 可以插入新的信息。 保存函数 : 保存好学生信息 , 以免丢失。 2) 程序总体框架界面如下:欢迎使用 08级计算机班 成绩管理系统管理员初始用户名和密码均为 wangyupan请输入用户名: wangyupan请输入密码: wangyupan运行结果如下:+ 学生成绩管理系统 + 1录入学生信息+2浏览学生信息+3查询学生信息+4删除学生信息+5修改学生信息+0退出系统请输入你的选择:如果选择
6、 1 录入学生信息 有以下需要输入:请输入学生学号:请输入学生姓名:请输入学生成绩如果选择是 2 浏览学生信息 即前面录入的学生信息就会显示出来。如果选择是 3 查询学生信息 信息查询可以分为:学号查询和姓名查询, 学号查询:输入学生学号就能查出该学生的信息;姓名查询:输入学生姓名就能查出该学生的信息;如果选择是 4 删除学生信息 请输入你要删除学生的学号:即可完成对学生信息的删除,如果选择是 5 修改学生信息 请输入你要修改的学生学号,正确输入学号就能对该生进行信息修改。如果选择是 0 就是退出系统 按任意键即退出系统。3 运行环境(软、硬件环境)硬件环境:Cpu:P2.4GH DRR: 2
7、56MB WINDOWS XP/2000软件环境:在 Visual C 6.04 开发工具和编程语言C 语言5 详细设计#include /* 引用库函数 */#include#include#includetypedef struct /* 定义结构体数组 */ char num10; /* 学号 */char name20; /* 姓名 */int score; /* 成绩 */Student;Student stu80; /* 结构体数组变量 */ int menu_select() /* 菜单函数 */ char c;do菜单选择 */system(cls); /* 运行前清屏 */p
8、rintf(tt*Students Grade Management System*n); /* printf(tt | 1. Input Records |n);printf(tt | 2. Display All Records |n);printf(tt | 3. Sort |n);printf(tt | 4. Insert a Record |n);printf(tt | 5. Delete a Record |n);printf(tt | 6. Query |n);printf(tt | 7. Statistic |n);printf(tt | 8. Add Records from
9、 a Text File|n);printf(tt | 9. Write to a Text file |n);printf(tt | 0. Quit |n);printf(tt*n);printf(tttGive your Choice(0-9):); c=getchar(); /* 读入选择 */ while(c9); return(c-0); /* 返回选择 */ int Input(Student stud,int n) /* 输入若干条记录 */ int i=0;char sign,x10; /*x10 为清除多余的数据所用 */ while(sign!=n&sign!=N) /*
10、判断 */ printf(tttstudents num:); /* 交互输入 */ scanf(ttt%s,studn+i.num);printf(tttstudents name:); scanf(ttt%s,studn+);printf(tttstudents score:); scanf(ttt%d,&studn+i.score); gets(x); /* 清除多余的输入 */ printf(tttany more records?(Y/N); scanf(ttt%c,&sign); /* 输入判断 */ i+;return(n+i);void Display(Studen
11、t stud,int n) /* 显示所有记录 */ int i;printf(tttn); /*格式头 */printf(tttnumber name scoren);printf(tttn);for(i=1;i1&i%10=0) /* 每十个暂停 */printf(tttn); /* 格式 */printf(ttt);system(pause);printf(tttn);printf(ttt);system(pause);void Sort_by_num(Student stud,int n) /* 按学号排序 */ int i,j,*p,*q,s;char t10;for(i=0;in-
12、1;i+) /* 冒泡法排序 */for(j=0;j0)strcpy(t,studj+1.num);strcpy(studj+1.num,studj.num);strcpy(studj.num,t);strcpy(t,studj+1.name);strcpy(studj+1.name,);strcpy(,t);p=&studj+1.score;q=&studj.score;s=*p;*p=*q;*q=s;int Insert_a_record(Student stud,int n) /* 插入一条记录 */char x10; /* 清除多余输入所用 */
13、 printf(tttstudents num:); /* 交互式输入 */ scanf(ttt%s,studn.num);printf(tttstudents name:); scanf(ttt%s,);printf(tttstudents score:); scanf(ttt%d,&studn.score); gets(x);n+;Sort_by_num(stud,n); /* 调用排序函数 */ printf(tttInsert Successed!n); /* 返回成功信息 */ return(n);int Delete_a_record(Student stud,
14、int n) /* 按姓名查找,删除一条记录 */ char s20;int i=0,j;printf(ttttell me his(her) name:); /* 交互式问寻 */ scanf(%s,s);while(strcmp(,s)!=0&in) i+; /* 查找判断 */ if(i=n) printf(tttnot find!n); /* 返回失败信息 */ return(n);for(j=i;jn-1;j+) /* 删除操作 */ strcpy(studj.num,studj+1.num);strcpy(,studj+1.name); st
15、udj.score=studj+1.score;printf(tttDelete Successed!n); /* 返回成功信息 */ return(n-1);void Query_a_record(Student stud,int n) /* 查找并显示一个记录 */ char s20;int i=0;printf(tttinput his(her) name:); /* 交互式输入 */ scanf(ttt%s,s);while(strcmp(,s)!=0&in) i+; /* 查找判断 */ if(i=n) printf(tttnot find!n); /* 输入失败
16、信息 */return;printf(ttthis(her) number:%sn,studi.num); /* 输出该学生信息 */ printf(ttthis(her) score:%dn,studi.score);void Statistic(Student stud,int n) /* 新增功能,输出统计信息 */ int i,j=0,k=0,sum=0;float aver; /* 成绩平均值 */ for(i=0;istudi.score) j=i;if(studk.scorestudi.score) k=i;aver=1.0*sum/n;printf(tttthere are %
17、d records.n,n); /* 总共记录数 */ printf(tttthe hignest score:n); /* 最高分 */ printf(tttnumber:%s name:%s score:%dn,studj.num,,studj.score); printf(tttthe lowest score:n); /* 最低分 */printf(tttnumber:%s name:%s score:%dn,studk.num,,studk.score); printf(tttthe average score is %5.2fn,aver);
18、 /* 平均分 */int AddfromText(Student stud,int n) /* 从文件中读入数据 */ int i=0,num;FILE *fp; /* 定义文件指针 */char filename20; /* 定义文件名 */printf(tttInput the filename:);scanf(ttt%s,filename); /* 输入文件名 */if(fp=fopen(filename,rb)=NULL) /* 打开文件 */ printf(tttcannt open the filen); /* 打开失败信息 */printf(ttt);system(pause)
19、;return(n);fscanf(fp,%d,&num); /* 读入总记录量 */while(inum) /* 循环读入数据 */fscanf(fp,%s%s%d,studn+i.num,studn+,&studn+i.score);i+;n+=num;fclose(fp); /* 关闭文件 */printf(tttSuccessed!n);printf(ttt);system(pause);return(n);void WritetoText(Student stud,int n) /* 将所有记录写入文件 */int i=0;FILE *fp; /* 定义文件指针 */ch
20、ar filename20; /* 定义文件名 */printf(tttWrite Records to a Text Filen); /* 输入文件名 */ printf(tttInput the filename:);scanf(ttt%s,filename); if(fp=fopen(filename,w)=NULL) /* 打开文件 */printf(tttcannt open the filen);system(pause);return;fprintf(fp,%dn,n); /* 循环写入数据 */while(in)fprintf(fp,%-16s%-15s%dn,studi.nu
21、m,,studi.score); i+;fclose(fp); /* 关闭文件 */printf(Successed!n); /* 返回成功信息 */void main() /* 主函数 */int n=0;for(;)switch(menu_select() /* 选择判断 */case 1: printf(tttInput Recordsn); /* 输入若干条记录 */ n=Input(stu,n);break;case 2:printf(tttDisplay All Recordsn); /* 显示所有记录 */ Display(stu,n);break;case
22、3:printf(tttSortn);Sort_by_num(stu,n); /* 按学号排序 */ printf(tttSort Suceessed!n);printf(ttt); system(pause);break;case 4: printf(tttInsert a Recordn);n=Insert_a_record(stu,n); /* 插入一条记录 */ printf(ttt);system(pause);break;case 5: printf(tttDelete a Recordn); n=Delete_a_record(stu,n); /* 按姓名查找,删除一条记录 */ printf(ttt);system(pause);break;case 6: printf(tttQueryn);Query_a_record(stu,n); /* 查找并显示一个记录 */ printf(ttt);system(pause); break;case 7:printf(tttStatisticn);Statistic(stu,n); /* 新增功能,输出统计信息 */ printf(ttt);system(pause);break;case 8:printf(tttAdd Records from
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 展会策划与筹备实施完整方案
- 教职员工安全生产培训讲义
- 小学生练笔写作技巧与提升方法
- 公路桥梁养护技术及实施方案
- 高职物流专业实习报告模板
- 爱眼护眼活动方案及讲座设计
- 2025年煤矿换证复审:消防人员灭火救援技能试卷及答案
- 2025年矿井爆破作业人员三级安全培训考核试卷及答案
- 2025年煤矿应急演练评估试卷及答案-应急演练培训效果评估测试
- 2025年煤矿紧急疏散演练评估培训试卷及答案
- GB/T 22415-2008起重机对试验载荷的要求
- GA 139-2009灭火器箱
- 火力发电工程建设标准强制性条文执行表格锅炉分册
- 中国地质大学武汉软件工程专业学位研究生实践手册
- 《投资银行》或《资本运营》风险投资业务课件
- DBJ50T-163-2021 既有公共建筑绿色改造技术标准 清晰正式版
- 低阶煤、褐煤干法制备气化用高浓度水煤浆技术
- GB∕T 37458-2019 城郊干道交通安全评价指南
- 盘锦浩业芳烃抽提装置操作规程
- DB33_T 2301-2020番茄水肥一体化技术规程(高清正版)
- 路面病害处理专项施工组织方案
评论
0/150
提交评论