




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河出/玄火,学课程设计课程设计名称:高级语言程序设计专业班级:计专08级1班学生姓名:王玉攀学 号:200838940116指导教师:阎娟课程设计时间:2008.6.21-2007.7.2计算机科应用技术 专业课程设计任务书学生姓名日r计算机应用技术王玉攀专业班级0801 班学号200838940116题目08计算机班学生成绩管理系统课题性质工程设计课题来源自拟题目指导教师阎娟同组姓名无主要内容全时悉、掌握C语言羞 三种结构及数组、函数、指针和 握分析结果的若干有效方法,进 主要功能:1、建立:录入学生信息包括:女2、维护:要求:学生信息数据! 护。此模块包括子模块有:增加 统计:要求:A输入
2、任意的一 统计出在此分数段的学生情况4、查询:查询时可实现按姓名5. 排序:能对用户指定的任意- 排序结果(使用表格的形式显刁 分)E本知识,掌握 C程序设计中的顺序、分支、循环 文件的操作,熟悉编制和调试程序的技巧,掌,步提局上机动手能力。生名,学号,各科成绩等。罢以文件的形式保存,能实现学生信息数据的维学生信息、删除学生信息、修改学生信息3、个课程名(如数学)和一个分数段(如60-70),查询、按学号查询课程名,按成绩升序或降序排列学生数据并显示排序后的输出结果)(使用多种方法排序者,加任务要求1. 设计正确,方案合理,能实现相应功能。2. 界面友好,使用方便。3. 程序精炼,结构清晰。4
3、. 上机演示。5 .提交材料:(1)源程序清单及程序框图(2)课程设计报告(1)C程序设计(第三版),谭浩强,北京,活华大学出版社,2007参W义献(2)C语言编程宝典,王大刚,第二版,机械工业出版社.(3)«C语言程序设计 张磊,高等教育出版社(4)数据结构与算法一一面向对象的 C+ +设计模式(5)数据结构教程李春葆,北京,活华大学出版社指导教师签字:宙查意见教研室主任签字:年月日1需求分析1、通过课程设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2、通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据 文件等知识的运用。3、通过课程设
4、计,提高程序开发功能,能运用合理的控制流程编写活晰高 效的程序。4、通过课程设计,训练 C程序调试能力,能将一个中小型各级组织系统联 调通过。5、通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、通话课程设计,培养分析问题、解决实际问题的能力。2概要设计(1) 模块划分程序的模块组成:主函数:int main()新建函数:STUDENT *init()输入函数:STUDENT *create()显示函数:void print(STUDENT *head)删除函数:STUDENT *delete(STUDENT *head)保存函数:void save(STUDENT *head)修改函
5、数:STUDENT *Modify(STUDENT *head,STUDENT *new)各个函数的主要功能:输入函数:随时输入数据。菜单函数:显示系统主菜单。显示函数:显示所有学生的信息。寻找函数:方便查找学生信息。删除函数:删除某学生的信息。插入函数:可以插入新的信息。保存函数:保存好学生信息,以免丢失。(2) 程序总体框架界面如下:+欢迎使用08级计算机班成绩管理系统+管理员初始用户名和密码均为 wangyupan请输入用户名: wangyupan请输入密码:wangyupan运行结果如下:+学生成绩管理系统 +1录入学生信息+2-浏览学生信息+3-查询学生信息+4-删除学生信息+5-修
6、改学生信息+退出系统请输入你的选择:如果选择1录入学生信息 有以下需要输入:请输入学生学号:请输入学生姓名:请输入学生成绩如果选择是2浏览学生信息 即前面录入的学生信息就会显示出来。如果选择是3查询学生信息 信息查询可以分为:学号查询和姓名查询,学号查询:输入学生学号就能查出该学生的信息;姓名查询:输入学生姓名就能查出该学生的信息;如果选择是4删除学生信息请输入你要删除学生的学号:即可完成对学生信息的删除,如果选择是5修改学生信息请输入你要修改的学生学号,正确输入学号就能对该生进行信息修改。如果选择是0就是退出系统 按任意键即退出系统。3运行环境(软、硬件环境)硬件环境:Cpu:P2.4GH
7、DRR: 256MB WINDOWS XP/2Q00软件环境:在 Visual C 6.04开发工具和编程语言C语H5详细设计#include<stdio.h> /* 引用库函数 */#include<stdlib.h>#include<ctype.h>#include<string.h>typedef struct /*定义结构体数组*/char num10; /* 学号 */char name20; /* 姓名 */int score; /* 成绩 */Student;Student stu80; /*结构体数组变量 */int menu_s
8、elect() /* 菜单函数 */char c;dosystem("cls"); /* 运行前清屏 */printf("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 Re
9、cord |n");printf("tt | 5. Delete a Record |n");printf("tt | 6. Query |n");printf("tt | 7. Statistic |n");printf("tt | 8. Add Records from a Text File|n");printf("tt | 9. Write to a Text file |n");printf("tt | 0. Quit |n");+6/+*、 printf
10、("tttGive your Choice(0-9):");c=getchar(); /* 读入选择 */while(c<'0'|c>'9');return(c-'0'); /* 返回选择 */int Input(Student stud,int n) /* 输入若干条记录 */int i=0;char sign,x10; /*x10为清除多余的数据所用*/while(sign!='n'&&sign!='N') /* 判断 */ printf("tttstu
11、dent's num:"); /*交互输入 */scanf("ttt%s”,studn+i.num);printf("tttstudent's name:");scanf("ttt%s”,studn+);printf("tttstudent's score:");scanf("ttt%d”,&studn+i.score);gets(x); /*清除多余的输入*/printf("tttany more records?(Y/N)");scanf(&quo
12、t;ttt%c",&sign); /* 输入判断 */i+;return(n+i);void Display(Student stud,int n) /* 显示所有记录 */int i;printf("tttn"); /* 格式头 */printf("tttnumber name scoren");printf("tttn");for(i=1;i<n+1;i+) /* 循环输入 */printf("ttt%-16s%-15s%dn”,studi-1.num,,studi-1.s
13、core);if(i>1&&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;i<n-1;i+) /*
14、冒泡法排序 */for(j=0;j<n-1-i;j+)if(strcmp(studj.num,studj+1.num)>0)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
15、stud,int n) /* 插入一条记录 */(char x10; /*清除多余输入所用*/printf("tttstudent's num:"); /* 交互式输入 */scanf("ttt%s”,studn.num);printf("tttstudent's name:");scanf("ttt%s”,);printf("tttstudent's score:");scanf("ttt%d”,&studn.score);gets(x);n+;Sor
16、t_by_num(stud,n); /* 调用排序函数 */printf("tttInsert Successed!n"); /* 返回成功信息 */return(n);int Delete_a_record(Student stud,int n) /* 按姓名查找,删除一条记录 */(char s20;int i=0,j;printf("ttttell me his(her) name:"); /* 交互式问寻 */scanf("%s",s);while(strcmp(,s)!=0&&i<n
17、) i+; /* 查找判断 */if(i=n)(printf("tttnot find!n"); /*返回失败信息 */return(n);for(j=i;j<n-1;j+) /* 删除操作 */(strcpy(studj.num,studj+1.num);strcpy(,studj+1.name);studj.score=studj+1.score;printf("tttDelete Successed!n"); /* 返回成功信息 */return(n-l);void Query_a_record(Student stud,
18、int n) /* 查找并显示一个记录*/ char s20;int i=0;printf("tttinput his(her) name:"); /*交互式输入 */scanf("ttt%s”,s);while(strcmp(,s)!=0&&i<n) i+; /*查找判断 */if(i=n) printf("tttnot find!n"); /*输入失败信息 */return;printf("ttthis(her) number:%sn”,studi.num); /*输出该学生信息 */pr
19、intf("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;i<n;i+) /* 循环输入判断 */sum+=studi.score;if(studj.score>studi.score) j=i;if(studk.score<studi.score) k=i;aver=1.0*sum/n;printf("tttthere
20、are %d records.n",n); /* 总共记录数 */printf("tttthe hignest score:n"); /* 最高分 */printf("tttnumber:%s name:%s score:%dn",studj.num,,studj.score);printf("tttnumber:%s name:%s score:%dn”,studk.num,,studk.score);printf("tttthe average score is %5.2fn”,a
21、ver); /* 平均分 */int AddfromText(Student stud,int n) /* 从文件中读入数据 */ int i=0,num;FILE *fp; /*定义文件指针*/char filename20; /* 定义文件名 */printf("tttI nput the filename:");scanf("ttt%s",filename); /* 输入文件名 */if(fp=fopen(filename,"rb")=NULL) /* 打开文件 */ printf("tttcann't ope
22、n the filen"); /* 打开失败信息 */printf("ttt");system("pause");return(n);fscanf(fp,”%d”,&num); /* 读入总记录量 */while(i<num) /*循环读入数据*/fscanf(fp,"%s%s%d”,studn+i.num,studn+,&studn+i.score);i+;n+=num;fclose(fp); /* 关闭文件 */printf("tttSuccessed!n");printf(&
23、quot;ttt");system("pause");return(n);void WritetoText(Student stud,int n) /* 将所有记录写入文件*/(int i=0;FILE *fp; /*定义文件指针*/char filename20; /* 定义文件名 */printf("tttWrite Records to a Text Filen"); /*输入文件名 */printf("tttI nput the filename:");scanf("ttt%s”,filename);if(
24、fp=fopen(filename,"w")=NULL) /*打开文件 */(printf("tttcann't open the filen");system("pause");return;fprintf(fp,"%dn”,n); /* 循环写入数据 */while(i<n)(fprintf(fp,”%-16s%-15s%dn”,studi.num,,studi.score);i+;fclose(fp); /* 关闭文件 */printf("Successed!n")
25、; /* 返回成功信息 */void main() /* 主函数 */(int n=0;for(;)(switch(menu_select() /* 选择判断 */(case 1:n=Input(stu,n);break;case 2:printf("tttDisplay All Recordsn"); /*显示所有记录 */Display(stu,n);break;case 3:printf("tttSortn");Sort_by_num(stu,n); /* 按学号排序 */printf("tttSort Suceessed!n"
26、);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(&quo
27、t;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");b
28、reak;case 8:printf("tttAdd Records from a Text Filen");n=AddfromText(stu,n); /*新增功能,输出统计彳息 */ break;case 9:printf("tttWrite to a Text filen");WritetoText(stu,n); /* 循环写入数据 */printf("ttt");system("pause");break;case 0:printf("tttHave a Good Luck,Bye-bye!n&
29、quot;); /* 结束程序 */ printf("ttt");system("pause");exit(0);6测试结果:locucnts and ScttingxVAdBini xtr atorDebug2. cxe搜狗挡音半:*Students Grade Management System*I 1. Input Records |I 2. Display All Records |I 3. Sort |I 4. Insert a Record I5. Delete a Record II 6 Query I7. Statistic II 8.
30、Add Records from a Text File II 9. Write to a Text file II 0. Quit IGive your ChoiceCO-9):|ZJ:Moctuients and Sot.trStudents1 Grade Management System* 11.2.I 3I 4.I 5.6.7I 8.I 9.I 0.衣衣衣WWW衣曹wwwwwwwwwwwwwwwwwwwwwwwtwwwwGi ve your Choi ce(0-9):2Di splay Al 1 RecordsInput Records |Di splay Al 1 Records |Sort |Insert a Record IDelete a Rec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿童农村体验活动方案
- 儿童商场清明节活动方案
- 儿童垃圾猎人活动方案
- 儿童学宋词活动方案
- 儿童淡季活动方案
- 儿童玩具双十一活动方案
- 儿童练摊活动方案
- 儿童节促销活动方案
- 儿童节餐饮活动方案
- 儿童阅读研讨活动方案
- 2024安全员知识考试题及参考答案
- 【MOOC】证券投资学-江西财经大学 中国大学慕课MOOC答案
- 《BOM培训资料》课件
- 网络工程师职称评定个人工作经历总结
- 手卫生知识答题及答案
- 海洋权益《基本概念》教案
- ()初中语文必背古诗文填空题附完整答案【题】
- 专题06手拉手模型(原卷版+解析)
- 2023日语专四真题专业四级真题
- 高中物理教学中物理实验的改进与创新
- 2024年河南高考成绩一分一段表(理科+文科)
评论
0/150
提交评论