1、配置数据源 11详细设计 13设计总结 22参考文献 23C语言程序课程设计一学生成绩管理系统1.设计目的通过数据库大作业课程设计的操作与实践,使学生了解关系数据库的相关理论 知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和 创新意识、创新能力。2.问题描述1.学生信息维护;2.教师信息维护;4 .学生选课信息;三 需求分析“学生成绩管理信息系统”包括四个模块:成绩录入、班级统计、年级统计、 系统功能。这四个模块既相互联系又相互独立,班级统计、年级统计模块必须以 成绩录入为基础。(1)成绩录入模块:主要功能用来对学生的成绩进行收集和修改。具体包括 学生成绩录入、修改、增加
2、、删除、查询等功能,成绩录入需要分班级、分年级 以及某个时间考试的各门功课的成绩。 修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。(2)班级统计模块:主要功能用来对学生的成绩以班级为单位进行处理。 具体包括各班学生总 成绩、平均成绩、班级排名及统计班级某分数段内的学生人数; 各个学生该科成 绩、班级排名及统计班级某分数段内的学生人数。各项统计仅对于某学期某次考 试而言。(3)年级统计模块:主要功能用来对学生的成绩以年级为单位进行处理。 具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数; 各个学生该科
3、成绩、年级排名及统计、年级某分数段内的学生人数。各项统计仅对于某学期某次考试而言, 在统计时,还应注意各年级考试科目不同。(4)系统功能模块:关于系统及退出系统。四.概要设计在概要设计里,根据系统需求设计系统 EI图,程序流图,系统功能模块图等信息,并配置了数据源。图1系统EI图图2学生信息图3功能模块图查询 *数据库1r显示结果 退出图4查询模块流程图图5班级与学生成绩流图(一)、系统的功能分析该学生成绩管理系统是基于网络在线的学生成绩管理系统,在系统中分为大的两个方面:一是教师登录页面、二是学生登录页面。(1) 教师进入学生成绩管理系统的主要功能是: 实现添加用户、添加成绩、 学籍信息修改
4、、修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等 基本功能。(2) 学生进行学生成绩管量系统的主要功能是: 实现修改密码、查询课程、 选课、查询成绩、学籍信息查询、打印等基本功能。(二八系统功能模块图图6教师功能模块图教师在学生成绩管理系统中能够对所有学生的成绩查看, 对学生按学号进行 精确查询、按学生姓名进行模糊查询,可以修改自己的登录密码,添加用户,添 加学生的成绩,打印学生的学籍信息。图7学生功能模块学生在系统中的基本功能是对自己所有成绩的查询, 课程的查询,个人登录 密码的修改,基本信息的查看,选课,打印自己的学籍信息。七.代码#in elude stri ng.h#i nc
5、lude win dows.h struct student /结构体定义 int num;char n ame10;char birthday10;int Cyuya n;int shujujiegou;struct stude nt *n ext;struct stude nt *creat_by_ in put();struct stude nt *get_last_stude nt(struct stude nt *head); struct stude nt *Pri nt_me nu_main() /主菜单struct stude nt *pri nt_table_head()pr
6、in tf(+ + + + + +n)printf(| 学号 | 姓名 |出生日期| c成绩 |数据结构成绩|n);struct stude nt *pri nt_table_row(struct stude nt *p)|%10d|%10s|%10s|%10d|%10d|n,p- num,p- name,p-birthday,p- Cyuya n,p_shujujiegou);void prin t_table_bottom()struct stude nt * Creat_stu_record() / 建立链表struct stude nt *plaststu=NULL,*p newstu
7、;char con ti nue_in put=N;struct stude nt *head=NULL;while(1) if(head=NULL) head=creat_by_ in put(); prin t_table_head();prin t_table_row(head);prin t_table_bottom();elsepn ewstu=creat_by_ in put();prin t_table_head();prin t_table_row(p newstu);plaststu=get_last_stude nt(head);plaststu-n ext=p newst
8、u;是否继续输入学生信息? (Y继续,N返回菜单)ngetchar();continueput=getchar();if(con ti nue_in put= n|c ontinue_in put=)system(clsPrin t_me nu_ mai n();break;retur n head;struct stude nt *creat_by_ in put()struct stude nt *pn ewstu=(struct stude nt *)malloc(sizeof(struct stude nt); printf(请输入学生信息n学号:scanf(%d,&pnewstu-n
9、um);姓名:%s,pnewstu-name);出生年月:birthday);请输入学生成绩nC 语言:,&(pnewstu-Cyuyan);数据结构:shujujiegou); pn ewstu-n ext=NULL;return pn ewstu;struct stude nt *get_last_stude nt(struct stude nt *p )if(p- next=NULL)return p;retur n get_last_stude nt(p-n ext);void Prin t_Stu_Doc(struct stude nt *head)struct stude nt *
10、p;char r;if(head=NULL)n No Records”);for(p=head;p;p=p-n ext)|%1Od|%1Os|%1Os|%1Od|%1Od|nbirthday,p-)(按Enter键返回主菜单)nr=getchar();if(r!=1按姓名查找struct stude nt *search_by_ name(struct stude nt *head) struct stude nt *p=head;char con ti nue_in put;/*int isfound=0;*/请输入要查找的姓名:sca nf(, name);查找 %sn,name);whi
11、le(p!=NULL)if(strcmp(p-n ame ,n ame)=0)prin t_table_row(p);n ext;/* isfou nd=1; */printf(”是否继续查找?(Y继续;N返回主菜单)n getchar();|c on ti nue_in put=search_by_ name(head);按学号查找struct stude nt * search_by_id(struct stude nt *head)/int id;请输入要查找的学号:scan f(id);查找 %dn,id);num=id)/*isfo un d=1;是否继续查找? (Y继续;searc
12、h_by_id(head);struct stude nt*modify_record_by_id(struct stude nt*head) 按学号修改请输入要修改的学生的学号: nif(p=NULL)抱歉,没有学号为 %d的学生n请输入学生信息:n(p-num);name);birthday);请输入学生成绩:pri nt_table_row(p);pri nt_table_bottom();继续修改学生信息吗 ?Y 继续;N返回主菜单nyYcreat_by_ in put();按姓名修改struct stude nt*modify_record_by_ name(struct stude
13、 nt*head)struct stude nt*p=head;请输入要修改的学生的姓名:抱歉,没有姓名为 %s的学生n printf(struct stude nt *in sert_record(struct stude nt *head) 插入struct stude nt *ptr1;struct stude nt *ptr,*stud;struct stude nt *ptr2=head;请输入一个学号,在此之前插入学生信息 :stud=creat_by_ in put();ptr=stud;head=ptr;head-else if(head-ptr-n ext=head;whil
14、e(ptr2!ptr1=ptr2;ptr2=ptr1- if(ptr2- num=id)ptr1- next=ptr;ptr- n ext=ptr2; break;prin t_table_row(ptr);是否继续插入学生信息 ?(Y继续N返回主菜单)nretur n in sert_record(head);struct stude nt *Delete_record_by_id( struct stude nt *head) 按学号删除struct stude nt *p=head,*ppre=NULL;请输入要删除的学号:”);抱歉,没有该学号的学生信息!确定要删除学号为 %d的学生的
15、信息吗? ( Y确定;N返回主菜单)n “,p_ n um);ppre=head;if(ppre=p)head=p-free(p);while(ppre!if(ppre _n ext=p)ppre _n ext=p-ppre=ppre _删除成功!/ Prin t_me nu_ mai n();继续删除学生信息吗?N返回主菜单)Delete_record_by_id(head);return 0;struct stude nt *Delete_record_by_ name( struct stude nt *head) 按姓名删除请输入要删除的姓名:n ame ,n ame)=0) break;抱歉,没有该姓名的学生信息!goto end;确定要删除姓名为%s的学生的信息吗?n ame);pp
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1