C语言课程设计报告
选课模块
学生浏览模块
30
C语言课程设计报告
学生查询模块
学生删除模块
八、结果分析
31
C语言课程设计报告
程序的优缺点
【功能上的优点】主要体现在以下三点:
1.简洁明了的程序菜单。程序主要采用了六组层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。
2.人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地进行程序的操作。
3.智能化的模块设计。程序的智能化主要体现在减少了许多人工操作。如功能模块操作结束后,均会返回主菜单进行下一模板的运行,并提示是否再进行类似的操作,这样给用户带来了操作的方便,大大提高了学生选课的效率。
本程序达到了C语言课程设计题目的所有要求。即本程序(1)系统一菜单方式工作(2)课程信息和学生选课信息录入功能(课程信息用文件保存输入(3)课程信息浏览功能——输出(4)查询功能(至少一种查询方式)——算法(5)按学分查询(6)某门课程学生选修情况(可选项)的功能要求。
与此同时,程序各模块开发设计依据了程序的具体实际的使用情景,而有所改进,使其更具有实用性。 【程序的缺点】 主要表现在以下四点:
1.程序虽然经过多次精简,但仅仅是形式上、小范围的精简,仍
未得到本质上的精简,即未找到更加简单、更加高效、更加合理、更小占用的资源的算法。
2.程序仍然存在不合理的地方,例如程序某些部分输入错误会导致程序中止或转向其他功能模块,即程序建议用户注意提示,进行合理的准确的输入,这样更有利于管理工作。
3.程序功能仍然不够完善。例如信息表达方式不丰富,比较单一,缺少图片、音乐等元化表达方式。
32
C语言课程设计报告
附录(源程序代码)
#include \#include \#include \#include\void prin1(); void choose(); typedef struct subjects {
int num; //课程编号 char name[20]; //课程名称 char kind[10]; //课程性质 int stime; //总学时 int ttime; //授课学时 int etime; //实验或上机学时 int score; //学分 int term; //开课学期 struct subjects *next; }SUB;
SUB *head=NULL;
SUB *create_form() //创建链表 {
SUB *head,*tail,*p; int num,stime,ttime; int etime,score,term; char name[20],kind[10]; int size=sizeof(SUB); head=tail=NULL;
printf(\输入选修课程信息:\\n\
33
C语言课程设计报告
scanf(\&term);
while(num!=0) { &term);
}
tail->next=NULL; return head; }
void savefile() //保存文件 {
SUB *p; FILE *fp;
34
p=(SUB *)malloc(size); p->num=num; strcpy(p->name,name); strcpy(p->kind,kind); p->stime=stime; p->ttime=ttime; p->etime=etime; p->score=score; p->term=term; if(head==NULL)
head=p; tail->next=p; else tail=p;
scanf(\