程序设计基础课程设计报告

合集下载

c#程序设计课程程序设计报告

c#程序设计课程程序设计报告

C#程序设计设计说明书简单浏览器的设计与实现学生姓名夏守成学号1006111097班级10计算机一班成绩指导教师朱老师计算机科学与技术C#课程设计评阅书课程设计任务书2011—2012学年第一学期专业:计算机科学与技术学号:1006111097 姓名:夏守成课程设计名称:C#课程设计设计题目:简单浏览器的设计与实现完成期限:自2011 年12月14日至2011 年12 月21 日共1周设计依据、要求及主要内容(可另加附页):根据程序设计所学知识,设计与实现一个简单浏览器,该简单浏览器设计的内容和功能要求如下:(1)有合理的首页页面设计,背景柔和,(2)有多个按钮,比如说前进、后退、刷新删除等(3)输入地址栏,支持所有的网址,并有转到功能(4)设计登陆页面。

(5)可以存储网址,进行网内连接,(6)是利用C#编写程序,该浏览器简单但功能齐全(7)使用时同样可以最大化最小化(8)按钮是利用画图工具进行拷贝下来的(9)地址默认为百度要求:系统功能设计基本完善,并写出详细的设计说明书。

指导教师(签字):批准日期:年月日摘要关键词:前进、后退、刷新、输入合法地址、运行程序,在网内搜索,使用vs2008中的C#编写程序,利用画图工具。

拷贝前进、后退的按钮目录1课题描述 (4)2程序设计流程图 (4)2.1 系统说明 (4)2.2主界面的设计 (4)3 功能的设计 (4)3.1 简单浏览器功能的设计 (4)3.简单浏览器功能的设计 (5)3.3 简单浏览器功能的设计 (5)4测试 (5)4.1系统测试 (5)4.2 调试结果 (6)4.3 错误原因分析 (6)总结 (6)参考文献 (6)附录: (7)源代码: (7)1课题描述利用C#编写简单的程序,创建一个简单的浏览器,包含基本的功能,培养编写程序的兴趣。

实践中了解浏览器的一些特性2程序设计流程图2.1 系统说明使用win7系统,vs2008中的控制台应用程序,设计主界面,并拖放按钮。

Python语言程序设计基础第二版课程设计

Python语言程序设计基础第二版课程设计

Python语言程序设计基础第二版课程设计1. 课程设计目的本课程设计的目的是为了帮助学生进一步理解Python语言的程序设计基础,提高编程能力。

通过课程设计,学生将学会使用Python语言进行程序分析、设计和实现,并掌握一些常用的数据结构和算法,能够解决实际问题。

2. 教学内容本课程设计主要包括以下内容:•程序分析和设计的基本概念•Python语言的基本语法和数据类型•控制流程语句和函数的使用•文件读写和异常处理•常用的数据结构和算法(链表,堆栈,队列,二叉树等)•GUI编程(使用PyQt)3. 课程设计要求在本课程设计中,要求学生选择一个实际问题进行分析和解决,具体要求如下:3.1 问题描述选择一个你感兴趣的实际问题,例如学生成绩管理系统、图书馆管理系统等。

根据问题需求,设计并实现一个解决方案。

3.2 功能要求在设计解决方案的过程中,需要考虑以下功能:•学生信息的录入和修改;•成绩的录入和修改;•成绩的统计和分析;•数据的持久化和读取。

你可以自定义更多的功能来完善你的方案。

3.3 作业提交要求学生需要提交以下文件:•Python源代码文件;•详细的设计文档,包括具体的需求分析、系统设计、算法和数据结构的分析,程序流程图等。

作业提交时间截止到课程结束前,提交方式可以使用邮件或在线提交。

4. 评分标准学生完成本次课程设计后,将按以下标准进行评分:•完成度:完成度越高,得分越高;•功能实现:实现的功能越多,得分越高;•代码质量:代码的规范程度和可读性越高,得分越高;•系统设计:系统设计的合理性和思路清晰度越高,得分越高;•实用价值:方案的实用价值越高,得分越高。

5. 参考资料•Mark Lutz, 《Python语言程序设计基础(第二版)》, 机械工业出版社;• B.M. Kim and H.W. Park, 《Introduction to Computer Science with Python》, Springer.6. 结束语本课程设计旨在帮助学生更好地掌握Python语言的程序设计基础,提高编程水平,为将来的工作和学习奠定基础。

程序设计基础课程设计实验

程序设计基础课程设计实验

程序设计基础课程设计实验一、课程目标知识目标:1. 让学生理解程序设计的基本概念,掌握编程语言的语法和结构。

2. 培养学生运用程序设计思想解决问题的能力,包括数据表示、逻辑判断和循环控制等。

3. 使学生了解程序设计的流程,学会编写、调试和优化程序。

技能目标:1. 培养学生运用编程工具进行程序设计和调试的能力。

2. 培养学生独立思考和解决问题的能力,提高编程解题技巧。

3. 培养学生团队协作和沟通能力,能够与他人共同完成程序设计任务。

情感态度价值观目标:1. 培养学生对程序设计的兴趣和热情,激发学生学习编程的积极性。

2. 培养学生勇于尝试、不怕失败的精神,提高学生面对编程挑战的自信心。

3. 引导学生认识到编程在科技发展和社会进步中的重要作用,培养学生的社会责任感和创新意识。

课程性质:本课程为程序设计基础课程,旨在让学生掌握编程基本技能,培养编程思维。

学生特点:学生为初中年级,具备一定的逻辑思维能力,好奇心强,对新鲜事物感兴趣。

教学要求:注重理论与实践相结合,以实例为主线,引导学生主动探索,培养实际编程能力。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 程序设计基本概念:程序、编程语言、算法等基本概念介绍。

2. 编程环境搭建:安装编程软件,了解编程环境,学会使用开发工具。

3. 语法基础:变量、数据类型、运算符、表达式和语句等。

4. 控制结构:顺序结构、分支结构(if语句)、循环结构(for、while语句)。

5. 函数与模块:函数的定义、调用、参数传递,模块的导入和使用。

6. 数组与列表:数组的概念、使用,列表的创建、操作。

7. 文件操作:文件的打开、读取、写入和关闭。

8. 编程规范与调试:代码风格、命名规则,调试技巧和错误处理。

9. 综合实例分析:分析实际编程案例,学会运用所学知识解决问题。

教学内容安排与进度:第1-2周:程序设计基本概念,编程环境搭建。

第3-4周:语法基础,变量、数据类型、运算符。

C语言程序设计课程设计报告

C语言程序设计课程设计报告

C语言程序设计课程设计实验报告一、设计名称:学生成绩治理查询系统实验项目性质:综合性所涉及课程:C语言程序设计打算学时:实验学时12二、设计目的:1.通过本课程设计,培育上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,把握工程软件设计的大体方式,强化上机动手能力,闯过编程关;2.为后续各门运算机课程的学习打下坚实基础。

3.明白得程序设计的思路,把握结构化程序设计的方式,综合利用C语言进行程序编写,巩固常常利用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培育。

提高编写程序解决实际问题的能力、调试程序的技术。

三、设计环境(软件、硬件及条件)1.硬件:PC机2.软件:Turbo C++四、设计说明:程序系统的结构:用一系列图表列出本程序系统内的每一个程序(包括每一个模块和子程序)的名称、标识符和它们之间的层次结构关系。

主程序:新建:输入记录(遇#号时停止输入)。

插入:在指定位置插入记录。

显示:列出所有记录。

查询:一、按学号查询;二、按名字排序。

删除:一、按学号删除;二、按名字删除;3、删除所有记录。

排序:一、按语文成绩排序;二、按英语成绩排序;3、按数学成绩排序。

保留:保留为任意名字,系统自动加后缀名为.txt。

读取:读取程序目录下的后缀名为.txt的文件。

退出:退出程序。

五、各功能模块的具体实现,用图表表示。

输入记录显示开始:输入学号输入的学号是否为#Y N 结束,返回主菜单输入记录循环输入结束开始p=hp!=NULL输出学生信息;p=p->next结束按学号(姓名)查询信息Y N读取文件六、各模块(函数)的功能介绍,数据结构设计描述,参数说明等。

STUDENT *init(); /*初始化链表*/STUDENT *create(); /*新建链表*/STUDENT *del_no(STUDENT *h);/*按学号删除信息*/STUDENT *del_name(STUDENT *h); /*按姓名删除信息*/void print(STUDENT *h); /*显示信息函数*/void search_no(STUDENT *h); /*按学号搜索*/void search_name(STUDENT *h); /*按姓名搜索*/STUDENT *insert(STUDENT *h); /*插入信息函数*/void sort(STUDENT *h);/* 排序函数*/void save(STUDENT *h);/*保留数据到文件*/void load(STUDENT *h); /*从文件读取数据*/int menu_main(); /*菜单函数*/void inputs(char *prompt,char *s,int count);/*输出信息*/七、程序代码:Enter records\n");printf(" 2. Add records\n");printf(" 3. List records\n");printf(" 4. Search records\n");printf(" 5. Delete records\n");printf(" 6. Sort records\n");printf(" 9. Quit\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~9):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>9); /*选择项不在1~9之间重输*/return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Search records on number\n");printf(" 2. Search records on name\n");printf(" 3. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~3):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>3);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Chinese\n");printf(" 2. English\n");printf(" 3. Math\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}Delete records on number\n");printf(" 2. Delete records on name\n");printf(" 3. Delete all records\n");printf(" 4. Back\n\n");printf("*****************************************\n");do{ printf("\n Enter you choice(1~4):"); /*提示输入选项*/ scanf("%s",s); /*输入选择项*/c=atoi(s); /*将输入的字符串转化为整型数*/}while(c<1||c>4);return c; /*返回选择项,主程序依照该数挪用相应的函数*/}.");/*提示*/getch(); /*读入任意字符*/}.\n");getch(); /*读入任意字符*/if(p==h)h=p->next;elseq->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s); }printf("\nPress any key to continue..."); getch(); /*读入任意字符*/return h;}.\n");getch();if(p==h)h=p->next;else q->next=p->next;free(p); /*释放*/printf("\n%s had been deleted\n",s);}printf("\nPress any key to continue...");getch(); /*读入任意字符*/return h;}.");getch(); /*读入任意字符*/}.");getch(); /*读入任意字符*/}xt"};STUDENT *p;FILE *fp; /*指向文件的指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"wb"))==NULL) /*打开文件,并判定打开是不是正常*/ {printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;while(p!=NULL){if(fwrite(p,sizeof(STUDENT)-sizeof(p->next),1,fp)!=1){printf("Error!\n");exit(1);} /*写入*/p=p->next;}fclose(fp); /*关闭文件*/printf("\n------OK------\n");printf("Press any key to continue...");getch(); /*读入任意字符*/}xt"};STUDENT *p,*a1=NULL,*a2=NULL;FILE *fp;/*概念文件指针*/printf("\n Input the filename:");scanf("%s",outfile);strcat(outfile,last);if((fp=fopen(outfile,"rb"))==NULL)/*打开文件*/{printf("\nCannot open file!\n");exit(1); /*退出*/}p=h;a1=a2=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp); while(!feof(fp)){n++;if(n==1)h=a1;else a2->next=a1;a1=(STUDENT *)malloc(LEN);fread(a1,sizeof(STUDENT)-sizeof(a1->next),1,fp);}a2->next=NULL;printf("\n------OK------\n");printf("Press any key to continue...");getch(p); /*读入任意字符*/}///////////////////////////////////////////void sort(STUDENT *h) /*排序函数*/{int i=0,j;STUDENT *p,*q,*t,*h1,*z;clrscr(); /*清屏*/printf("Enter you choice :\n");scanf("%d",&j);z=h;h1=h->next;h->next=NULL;while(h1!=NULL){t=h1;h1=h1->next;q=h;while(t->score[--j]<p->score[--j]&&p!=NULL){q=p;p=p->next;}if(p==q){t->next=p;h=t;}else{t->next=p;q->next=t;}}p=h;while(p!=NULL){i++;p=p->next;}h=z;printf("------OK------\n");}//////////////////////////////////////////////////九、体会、总结本课程设计完成了设计一个学生成绩治理系统,学生的学习成绩进行治理,具有查询和检索功能,而且能够对指定文件操作。

程序设计课程设计报告

程序设计课程设计报告

程序设计课程设计报告一、引言程序设计是计算机科学与技术领域中的重要学科,涉及到软件开发、算法设计和编程等方面。

本报告旨在总结和展示我们小组在程序设计课程中的设计过程和成果。

二、设计目标本次程序设计课程项目的主要目标是设计和实现一个个人信息管理系统。

该系统应包括以下功能:1. 用户注册和登录功能:用户可以通过注册账号并进行登录,以便使用系统中的各项功能。

2. 个人信息管理功能:用户可以管理自己的个人信息,包括姓名、年龄、联系方式等,可以进行查看、编辑和删除等操作。

3. 日程管理功能:用户可以添加和管理自己的日程安排,包括日期、时间、地点和备注等。

4. 密码修改功能:用户可以修改登录密码,确保账号安全性。

5. 用户数据备份和恢复功能:用户可以将自己的数据进行备份,并在需要时进行恢复。

三、设计步骤1. 需求分析:首先,我们小组成员深入了解了用户的需求,明确了项目的功能和特点。

通过分析用户需求,我们确定了系统的基本功能和界面设计。

2. 系统设计:根据需求分析结果,我们进行了系统设计。

包括数据库设计、界面设计和算法设计等方面。

数据库设计决定了用户信息和日程数据库的结构,界面设计决定了用户交互的方式和页面展示方式,算法设计决定了系统功能的实现方式。

3. 编码实现:在系统设计完成后,我们根据设计结果进行编码实现。

采用适当的编程语言和开发工具,我们按照系统设计的要求编写代码,实现系统的各项功能。

4. 测试与调试:在编码实现完成后,我们对系统进行了测试和调试。

通过模拟用户操作和输入各种情况下的数据,我们确保系统能够正确运行,并处理各种异常情况。

5. 优化与改进:在测试和调试过程中,我们不断优化和改进系统的性能和用户体验。

通过对系统的使用和反馈进行分析,我们进一步完善系统功能和界面设计,提升用户体验。

四、实现成果经过团队成员的共同努力,我们小组成功实现了个人信息管理系统。

该系统具有以下特点和功能:1. 用户注册和登录功能:用户可以通过注册账号并登录,确保账号的安全性。

程序设计基础课程设计报告

程序设计基础课程设计报告

程序设计基础课程设计报告
本次课程设计旨在深化我们对程序设计基础的理解和应用。

通过实际操作,我们学习了算法设计、数据结构选择及代码优化等关键技能。

在解决问题的过程中,我们遇到了诸如逻辑错误、运行效率低等问题,但通过团队合作、反复调试和查阅资料,最终成功解决了这些问题。

这次课程设计不仅提高了我们的编程能力,还锻炼了我们的逻辑思维和团队协作能力。

我们深刻认识到,良好的程序设计不仅需要扎实的理论知识,还需要灵活的应用能力和不懈的探索精神。

展望未来,我们将继续巩固和扩展程序设计知识,努力提升编程水平,为解决实际问题和推动科技发展贡献自己的力量。

C语言程序设计基础第二版课程设计

C语言程序设计基础第二版课程设计

C语言程序设计基础第二版课程设计介绍C语言是一种广泛应用的程序设计语言,具备高效性、可移植性和易学易用等特点。

C语言程序设计基础第二版是一本关于C语言的教材,以简洁明了的语言阐述了C语言的各种基本概念和应用场景。

本次课程设计旨在加深学生对C语言的理解,从而提高实际的编程能力。

通过实践演练,帮助学生掌握C语言的基本操作和常见技巧,以便在日后的编程实践中更加游刃有余。

目标本次课程设计主要目标如下:1.帮助学生深入理解C语言的语法和常用的编程技巧。

2.培养学生的编程思维,注重算法和实现。

3.提升学生的团队协作和沟通能力。

分工针对本次课程设计,将学生分为三组:1.编写单个程序的组(5人):该组学生将负责设计和编写单个C语言程序,要求代码结构清晰,逻辑清晰,充分考虑可读性和可维护性。

2.编写多个程序的组(5人):该组学生将负责设计和编写多个C语言程序,每个程序的功能各异,从基础的语法运用到高级操作的实现。

3.管理和协调组(3人):该组学生将负责监督和协调整个课程设计的进程,负责程序的统一管理和排版。

要求1.每个组需要完成的程序数量不少于5个。

2.代码量不少于500行。

3.提交的代码和文档需要使用Markdown文本格式输出。

4.文档中包含程序的详细说明和对代码实现的解释,注重实用性和易读性。

5.最终产出的程序都需要经过测试和完善,确保代码的运行正确和稳定性。

6.全部源码和文档需要打包并提交。

时间进度本次课程设计的时间进度如下:1.第一周:确定分组,明确全组任务,熟悉Markdown格式。

2.第二周到第六周:分别完成单个程序和多个程序的编写,周期时间限制为一周。

3.第七周:总结经验、讨论问题、修改收尾。

参考资料1.C程序设计基础(第2版)作者:谭浩强2.《C程序设计语言》(第2版)作者:Brian W. Kernighan,DennisM. Ritchie3.C语言程序设计(第3版)作者:陈洪庆, 陈小莉结论本次课程设计旨在使学生更深入地理解C语言的基本要素和常用技巧,锻炼学生的编程思维能力和团队协作沟通能力,从而为日后的编程实践和职业规划打下坚实基础。

大学C++程序设计课程设计

大学C++程序设计课程设计

课程设计(实训)报告20xx-20xx学年第1学期课程名称:C++程序设计课程设计设计题目:编程实现一些基本的计算系别:信息工程系班级:XXXX姓名:XXXX起止日期:2019.12.30~2020.1.3指导老师:XXXX目录目录 (1)1背景概述 (2)1.1项目的背景和来源 (2)1.2项目的目的和意义 (2)2.需求分析 (2)2.1功能目标和要求 (2)2.2性能指标和要求 (2)2.3用户界面设计要求 (2)3.总体设计 (3)3.1总体设计方案 (3)3.2程序总体架构 (3)3.3文件组织结构 (3)4.详细设计 (4)5.测试纠错 (5)6.经验总结 (5)致谢参考文献编程实现一些基本的计算1.背景概述 C++是C 语言的继承,它既可以进行C 语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。

《C++程序设计课程设计》是一门单独考核的课程,其重要性不言而喻。

1.1项目的来源和背景《C++程序设计课程设计》是完全由C++来进行设计并完成项目的课程,随着C++学习的逐渐深入,知识的逐渐扩充,程序设计课程设计其实是对已学知识的一次复习,同时期末临近,课程复习显得格外重要。

1.2项目的目的和意义针对所学知识进行综合性的编程实践,通过用C++语言编写一个完整的应用程序,让大家学习如何进行团队协作,掌握C++程序设计的基本思想、方法和技术,领悟C++程序设计的思想和规律,熟练掌握程序的编译、测试、纠错和运行方法,实现理论知识与实践经验的有效结合。

2.需求分析这个项目主要是用C++解决一些基本的计算并能正常运行。

系统功能要求点击运行后一秒内能够运行,程序简洁高效,占用系统资源较少,结构清晰,较好体现C++程序设计的思想和规律。

2.1功能目标和要求这个业务处理系统旨在用高效简洁的方法实现一些基本的数学计算,并设置有一些菜单能够让用户选择任何一个项目进行体验,做到系统可以多次运行计算。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计(大作业)报告课程名称:程序设计基础设计题目:学生成绩记录薄设计院系:信息技术学院班级:设计者:学号:指导教师:设计时间: 2013.7 8.-2013.7.13信息技术学院昆明学院课程设计(大作业)任务书姓名:院(系):信息技术学院专业:计算机科学与技术学号:任务起止日期:2013.7 .8-2013.7.13课程设计题目:学生成绩记录薄设计课程设计要求:(1)通过课程设计,进一步掌握 C 语言的语法结构,基本流程,更加深入和全面理解所学的基本概念、基本原理和基本方法。

(2)独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高程序编制、程序调试及综合应用的能力(3)明确课程设计的目的,通过布置具有一定难度的,能综合运用所学知识的程序设计题目。

(4)程序设计经过需求分析,明确程序设计题目要求,进行合理的设计,编码阶段编出的程序易读、易懂并具有良好的交互性,界面清晰。

测试阶段应指导学生编写测试用例,尽量多地找出程序中的错误,进行调试。

工作计划及安排:第一天的,两个人合作选定题目,建立起程序的构思图形,了解题目意思,确立程序的方向,并且查阅一些资料开始构建程序。

第二天,两人商量分工合作,确定谁写那段函数,并且在总体思路的框架下,逐步写程序,并确保证程序无误。

第三天,将小程序合并,进行调试,对里面出现的问题协商合作共同解决。

第四天,开始写实验报告,对每次失败原因进行总结,并且整合两人思想纂写报告。

第五天,实训课也接近尾声,和班上的同学交流心得体会。

指导教师签字2013年7 月8日课程设计(大作业)成绩学号:姓名:指导教师:课程设计题目:学生成绩记录薄设计总结:通过一周 C 语言课程设计,不仅增加了我对 C 语言学习的兴趣,还让我对 C 语言有了更深的了解。

在这次的实训中,我们通过自己动手查找资料,并自己设计程序,还上机运行验证我们的程序。

虽然在上机调试过程中,我遇到了很多的困难,(比如:很难理解一些逻辑思维上的东西)但通过自己不断的重新理解和修正,最终还是成功的完成了程序的设计。

那种喜悦感难以用言语来表达,这让我感觉到学习也可以是快乐的。

在这次设计我不单单学习到了 C 语言的知识,也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。

有许多知识,光靠老师上课所讲的和自己看书得到的,还远远不够, C 语言主要是通过上机来熟悉并且运用的,这次的实训课让我深刻的明白了这一点。

所以在以后的学习生活中,我要经常写程序并上机进行调试,不断从中学习新的知识。

还有一点就是:不懂就问。

遇到难题实在解决不了的,问老师同学,和同学共同讨论,有合作精神也是很重要的。

希望以后还有更多的实训机会,让我得到锻炼。

指导教师评语:成绩:填表时间:指导教师签名学生成绩记录薄设计一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。

(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main ()在程序设计中的实现思路和方法。

2.课程设计要求设计一个简易学生成绩记录簿设计,其中包括:姓名,学号, C 语言成绩;具体功能:1 .系统以菜单方式工作2.创建学生成绩信息并以磁盘文件保存;3.读取磁盘文件并显示输出所有学生的成绩;4.查询学生成绩( 1)按学号查询成绩( 2)学号姓名查询成绩5.添加成绩记录;6.修改指定姓名或学号的学生的成绩并可存盘;7.显示输出 60 分以下、 60~79、 80~89、 90 分以上各分数段的学生信息。

二、总体设计根据系统的要求,系统总体设计如图 1 所示。

学生成绩记录薄学读学姓添修结生取号名加改束信并查查成学程息显询询绩生序输示成成记成入所绩绩录绩有成成绩绩三、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num;/* 学号 */char name[10];/* 姓名 */float score[3];/* 成绩 */}2.函数说明1.主函数main() 允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。

2.其他部分功能函数包括(1) 将学生成绩信息保存为文件void save();算法思想:①定义指向文件的指针变量;②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;③将存有学生成绩信息的结构体数组信息依次保存到文件中。

(2 )学生成绩信息录入函数void input()算法思想:①依次录入结构体数组中所包含的各个成员;②直到输入的结构体成员中信息为4,数据输入结束;③返回实际录入的学生成绩信息数。

(3) 从文件中读出学生成绩信息void output();算法思想:①定义指向结构体变量的指针和指向文件的指针;②输入文件的路径,打开文件,若不能打开文件给出提示信息;③将文件中的信息依次读出,最后结构体的指针为NULL 。

3.函数设计(1)主菜单函数 main()功能:函数返回值为整数,代表所选的菜单项int main (){printf("********************************************************* \n");printf("§§\n");printf("<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§§ \n");printf("§>>欢迎进入学生成绩记录系统 <<§ \n");printf(">>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<§§ \n");printf("§§\n");printf(" §【 1】-------------------------- 创建学生成绩信息§ \n");printf("§§\n");printf(" §【 2】-------------------------- 显示所有学生成绩信息§ \n");printf("§§\n");printf(" §【 3】-------------------------- 添加学生成绩信息§ \n");printf("§§\n");printf(" §【 4】-------------------------- 查询学生成绩信息§ \n");printf("§§\n");printf(" §【 5】-------------------------- 修改学生的信息§\n");printf("§§\n");printf(" §【 6】-------------------------- 按分数段显示学生的信息§ \n");printf("§§\n");printf(" §【 0】-------------------------- 退出§\n");printf("§§\n");printf("*********************************************************\n");printf("请输入相应菜单编号 :");}(2)我负责编写的程序A.添加学生信息void Addstudent(){FILE *fp;struct student s;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("File open error!\n");{printf(" 请输入所增加学生的学号姓名 c 语言成绩: \n");scanf("%d",&s.num );scanf("%s",);scanf("%f",&s.score[0]);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/* 关闭文件 */}printf(" 写入成功 !\n");}//end function Addstudent;B.修改学生成绩void modify(){int number,i;printf(" 请输入要修改信息的学生学号:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/* 查找判断 */if(i<n)/* 查找判断 */{printf(" 请输入修改后的学生的信息:");printf("\n请输入学生的 c 语言成绩: ");scanf("%f",&stud[i].score[0]);save();}elseprintf(" 没找到该学生的信息\n");system("paues");system("cls");}C.查询学生成绩void namecheck(void);void scorecheck(void);void searchmenu(){printf(" *****欢迎进入学生成绩查询系统****** \n");printf("*1------------------ 按姓名查询成绩* \n");printf("*2----------------- 按学号查询成绩* \n");printf("*3----------------- 返回上一层* \n");printf("*4------------------ 退出* \n");printf(" ************************************* \n");printf("请输入相应菜单编号 :");int m;scanf("%d",&m);switch(m){case 1:namecheck();printf("\n");system("PAUSE");system("CLS");break;case 2:scorecheck();printf("\n");system("PAUSE");system("CLS");break;case 3:main();break;case 4: exit(0); break;}}void namecheck(){char name[10];printf(" 按照姓名查询请按\n");printf("\n 请输入姓名 :");scanf("%s",&name);printf(" 查询结果 \n");printf(" 学号姓名 c 语言成绩 \n");if(strcpy(stud[i].name,name)){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}void scorecheck(){int b;printf(" 按照学号查询请按\n");{printf("\n 请输入学号 :");scanf("%d",&b);printf(" 查询结果 \n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++)if(stud[i].num ==b){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}四、程序清单和执行结果1.头文件#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num;/* 学号 */char name[10];/* 姓名 */float score[3];/* 成绩 *//****** 以下是函数原型*******/void save(void);void input(void);void output(void);void modify();/* 修改信息 */void searchmenu(void);/* 查询信息 */void namecheck(void);/* 按姓名查询 */void scorecheck(void);/* 按学号查询 */void Addstudent();/* 添加信息 */void sclsearch();/* 成绩按分数段显示*/2.函数源程序代码与运行结果[1]函数源程序代码#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num;char name[10];float score[3];}stud[100];int i,choose,a,t=0;long int num;int main (){void save(void);void input(void);void output(void);void modify();void searchmenu(void);void Addstudent();void sclsearch();while(1){printf("********************************************************* \n");printf("§§\n");printf("§<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§ \n");printf("§>>欢迎进入学生成绩记录系统 <<§ \n");printf("§>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<<§\n");printf("§§\n");printf("§【 1】-------------------------- 创建学生成绩信息§\n");printf("§§\n");printf("§【 2】-------------------------- 显示所有学生成绩信息§\n");printf("§§\n");printf("§【 3】-------------------------- 添加学生成绩信息§\n");printf("§§\n");printf("§【 4】-------------------------- 查询学生成绩信息§\n");printf("§§\n");printf("§【 5】-------------------------- 修改学生的信息§ \n");printf("§§\n");printf("§【 6】-------------------------- 按分数段显示学生的信息§\n");printf("§§\n");printf("§【0】--------------------------退出§ \n");printf("§§\n"); printf(" ********************************************************* \n");printf("请输入相应菜单编号:");scanf("%d",&a);switch(a){case 1:input();save();break;case 2:output();printf("\n");system("PAUSE");system("CLS");break;case 3:Addstudent();printf("\n");system("PAUSE");system("CLS");break;case 4:searchmenu();printf("\n");system("PAUSE");system("CLS");break;case 5:modify();printf("\n");system("PAUSE");system("CLS");break;case 6:sclsearch();printf("\n");system("PAUSE");system("CLS");break;case 0:exit(0);default: ;}}return 0;}void save(){FILE *fp;if ((fp=fopen("stu.dat","wb"))==NULL)/*以只写的方式打开文件*/{printf(" 无法打开文件!\n");return ;}for(i=0;i<n;i++)if (fwrite (&stud[i],sizeof(struct student),1,fp)!=1)/*写入字节为 1 的信息在文件中*/ printf(" 文件写入错误!\n");fclose(fp);/* 关闭文件 */}void input()// 录入学生成绩{int i;char a;for(i=0;i<n;i++){printf("\n请输入学生成绩信息:\n");printf("\n 请依次输入学号、姓名、 c 语言成绩 :\n");scanf("%d%s%f",&stud[i].num,stud[i].name,&stud[i].score[0]);printf(" 输入: y(继续 ), n(终止 )!\n");fflush(stdin);scanf("%c",&a);if(a=='n' || a=='N')break;}n=i+1;}void Addstudent(){FILE *fp;struct student s;fp=fopen("stu.dat","ab");if((fp=fopen("stu.dat","ab"))==NULL)printf("File open error!\n");else{printf(" 请输入所增加学生的学号姓名 c 语言成绩: \n");scanf("%d",&s.num );scanf("%s",);scanf("%f",&s.score[0]);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/* 关闭文件 */}printf(" 写入成功 !\n");}//end function Addstudent;void output(){int i;//float s;FILE *fp;if((fp=fopen("stu.dat","rb"))==NULL){printf("cannot open file\n");exit(0);}printf("\n 学号姓名 c 语言成绩 \n");for(i=0;fread(&stud[i],sizeof(struct student),1,fp)==1;i++){printf("%d%10s%10.2f\n",stud[i].num,stud[i].name,stud[i].score[0]); }fclose(fp);n=i;}void modify(){int number,i;printf(" 请输入要修改信息的学生学号:");scanf("%d",&number);for(i=0;i<n;i++)if(number==stud[i].num)break;/* 查找判断 */if(i<n)/* 查找判断 */{printf(" 请输入修改后的学生的信息:");printf("\n请输入学生的 c 语言成绩: ");scanf("%f",&stud[i].score[0]);save();}elseprintf(" 没找到该学生的信息\n");system("paues");system("cls");}void namecheck(void);void scorecheck(void);void searchmenu(){printf(" *****欢迎进入学生成绩查询系统****** \n");printf("*1------------------按姓名查询成绩* \n");printf("*2----------------- 按学号查询成绩* \n");printf("*3----------------- 返回上一层* \n");printf("*4------------------退出* \n");printf(" ************************************* \n");printf("请输入相应菜单编号:");int m;scanf("%d",&m);switch(m){case 1:namecheck();printf("\n");system("PAUSE");system("CLS");break;case 2:scorecheck();printf("\n");system("PAUSE");system("CLS");break;case 3:main();break;case 4: exit(0); break;}}void namecheck(){char name[10];printf(" 按照姓名查询请按\n");printf("\n 请输入姓名 :");scanf("%s",&name);printf(" 查询结果 \n");printf(" 学号姓名 c 语言成绩 \n");if(strcpy(stud[i].name,name)){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}void scorecheck(){int b;printf(" 按照学号查询请按\n");{printf("\n 请输入学号 :");scanf("%d",&b);printf(" 查询结果 \n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++)if(stud[i].num ==b){printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}}void sclsearch(){int i;printf("90 分以上 :\n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++){if(stud[i].score[0]>=90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}printf("80~89:\n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++){if(stud[i].score[0]>=80&&stud[i].score[0]<90)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}printf("70~79:\n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++){if(stud[i].score[0]>=70&&stud[i].score[0]<80)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}printf("60~69:\n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++){if(stud[i].score[0]>=60&&stud[i].score[0]<70)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}printf("60 分以下 :\n");printf(" 学号姓名 c 语言成绩 \n");for(i=0;i<n;i++){if(stud[i].score[0]<60)printf("%d%s%.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);}}(1)系统以菜单方式工作( 2)学生成绩录入(3)显示所有学生成绩(4)查询学生成绩按姓名查询按学号查询(5)修改学生成绩(6)按分数段显示学生成绩五、调试与测试我在调试我编写的程序当中出现了很多问题,比如,按姓名查询学生成绩中if(strcpy(stud[i].name,name)),开始我写成了 stud[i].name=name,怎么改都有错误,无奈之下请教了同学,最后在同学的帮助下改对了,原来这需要使用strcpy函数才能实现。

相关文档
最新文档