欢迎来到天天文库
浏览记录
ID:13478917
大小:89.50 KB
页数:9页
时间:2018-07-22
《《c程序设计》课程设计指导书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、长春理工大学光电信息学院《C程序设计》课程设计指导书信息工程分院计算机实验室8一、课程设计的目的采用结构化程序设计方法,综合运用C语言的基本知识,尤其是数组、函数、指针及流程控制等,并补充课程中虽未涉及但实用中必要的其他内容,实现一个功能较为齐全的程序实例。二、设计题目学生成绩管理系统。程序的主要功能如下:1、按学号记录一个班M名学生N门课程的期末考试成绩;2、逐一显示M个学生的有关数据;3、实现查找、删除;4、能统计出补考学生及其相应科目。三、设计的方法步骤1、自愿结合,每2~3名同学为一组,选组长一名。2、由组长主持,全组一起消化理解整个程序
2、的基本功能。在此基础上,明确每一名同学所承担的具体模块(函数)。3、尽可能独立地实现系统的功能(组内同学可一起讨论),确有困难,可参照本指导书中所附的示范案例。4、应认真研读本指导书中示范案例中的思考题,为答辩做准备。四、课程设计报告的内容1、课程设计目的;2、课程设计题目及主要功能;3、程序中用到的主要数据结构及程序的总体功能框图;4、所实现的模块(函数)功能及源程序;5、所实现的模块(函数)中最能代表你设计水平的②算法框图;(可选)6、程设计的心得体会。(可选)五、答辩要求1、以组为单位答辩,答辩时应提供能运行的完整程序及课程设计报告(每人1
3、份)。2、组长概述程序的总体功能及总的设计思路后,逐个同学上机演示你本人承担的模块功能并回答老师的提问。3、提问问题中除指导书上列出的思考题,还包括老师随时针对你的源代码、框图等以及设计中涉及到的基本知识所提出的问题。附1:设计参考案例a)设计的基本思路依据N.Wirth的著名公式:程序=数据结构+算法其中数据结构要解决两个问题:表示一个学生的属性及M个学生的集合;算法则应实现程序的功能。二、数据结构用一个结构体类型表示一个学生的属性:typedefstructstudent{longnum;/*学号*/charname[20];/*姓名*/in
4、tscote[N];/*N门功课考试成绩*/structstudent*next;/*为构成链表而设*/}Student;我们采用单链表表示M个学生的集合,这主要是为了熟悉链表的操作。所以在Student类型中事先已设置了next域。。我们也可以采用结构体数组表示M个学生的集合(当然应去掉Student中的next域)。三、系统的功能框图8主模块统计单删除菜单单显示单录入显示单个节点查找四、系统各功能模块(函数)的实现1、主模块(main()函数)主模块的主要功能是反复显示菜单,根据用户的选项,调用相应的功能模块,直到用户选择退出。参考程序如下:
5、#include"my.h"charcourse[N][20];voidmain(){Student*head;Student*p;charch;longnum;/*numberofstudents*/inti;clrscr();printf("Enter%dcoursenames:",N);for(i=0;i6、or.");exit(1);}else{p->number=0;p->next=NULL;strcpy(p->name,"headnode");for(i=0;iscore[i]=0;head=p;}do{ch=menu();switch(ch){case'1':input(head);break;case'2':display(head);printf("Enteranykeytocontinue,please:");getche();break;case'3':delete(head);8printf("Enter7、anykeytocontinue,please:");getche();break;case'4':printf("Enterthenumberofstudent:");scanf("%ld",&num);p=search(head,num);if(p==NULL)printf("%ldnumberstudentisnotfound.",num);elsedispnode(p->next);printf("Enteranykeytocontinue,please:");getche();break;case'5':reexamine(8、head);printf("Enteranykeytocontinue,please:");getche();break;case'
6、or.");exit(1);}else{p->number=0;p->next=NULL;strcpy(p->name,"headnode");for(i=0;iscore[i]=0;head=p;}do{ch=menu();switch(ch){case'1':input(head);break;case'2':display(head);printf("Enteranykeytocontinue,please:");getche();break;case'3':delete(head);8printf("Enter
7、anykeytocontinue,please:");getche();break;case'4':printf("Enterthenumberofstudent:");scanf("%ld",&num);p=search(head,num);if(p==NULL)printf("%ldnumberstudentisnotfound.",num);elsedispnode(p->next);printf("Enteranykeytocontinue,please:");getche();break;case'5':reexamine(
8、head);printf("Enteranykeytocontinue,please:");getche();break;case'
此文档下载收益归作者所有