学生成绩管理系统 C语言课程设计
- 格式:doc
- 大小:138.00 KB
- 文档页数:24
可修改编辑
精品doc 学生成绩管理系统
1.程设计的目的
通过本程序可以训练学生程序设计的基本技能,让学生掌握C程序各种函数的应用。同时也大大增加了学生的学习兴趣,提高了学生的编程能力。进一步掌握和利用C语言进行程设计的能力;进一步理解和运用结构化程设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;掌握书写课程设计开发文档的能力.
2.设计方案论证
2.1设计思路
(1)输入学生初始信息模块:
其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示存在此学生。
(2)查询模块:
可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。
(3)插入模块:
可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。
(4) 学生的信息以及成绩:可修改编辑
精品doc 通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。
(5)退出系统:
可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。
3.程序源代码
#include
#include
#include
#include
#include
#include
#include
#include
#define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr(); break;
int shoudsave=0;
struct student /* 学生信息结构体定义*/学生成绩管理系统
初初始信息模块 查查询模块 插插入模块 信信息及成绩 退退出系统 可修改编辑
精品doc {
char num[10],name[20],sex[4];
int score1,score2,score3,totle,ave;
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*L;
void print1()
{
cprintf("\r================================================================================");
}
void print2()
{
cprintf("\n\r 1.输入学生信息 在这里你可以按照提示输入学生的学号,姓名,性别及各科成绩.\n");
cprintf("\n\r 2.注销学生信息 在这里你可以按照学号或姓名将某一名学生的信息从本系统中删除.\n");
cprintf("\n\r 3.查询学生信息 在这里你可以按照学号或姓名查询某一名学生的信息.\n");
cprintf("\n\r 4.修改学生信息 在这里你可以按照提示修改某一名学生的学号,姓名,性别及各科成绩.");
cprintf("\n\r 5.学生信息排序 在这里你可以看到所有学生的成绩成绩.\n");
cprintf("\n\r 6.学生信息统计 在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");可修改编辑
精品doc cprintf("\n\r 7.显示学生信息 在这里你可以看到系统中所有学生的信息.\n");
cprintf("\n\r 8.保存学生信息 在这里你可以将学生你信息保存到内存中.\n");
cprintf("\n\r 9.帮助信息 在这里你可以获得帮助信息.\n");
cprintf("\n\r 0.退出系统 在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");
}
void menu()
{
cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");
cprintf("\r\xba 学生信息导入 \xba 学生信息处理 \xba");
cprintf("\r\xba____________________________________\xba_________________________________________\xba");
cprintf("\r\xba 1-->输入学生信息 \xba 6-->学生信息统计 \xba");
cprintf("\r\xba 2-->注销学生信息 \xba 7-->显示学生信息 \xba");
cprintf("\r\xba 3-->查询学生信息 \xba 8-->保存学生信息 \xba");
cprintf("\r\xba 4-->修改学生信息 \xba 9-->帮助信息
\xba");
cprintf("\r\xba 5-->学生信息排序 \xba 0-->退出系统
\xba");
cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xc可修改编辑
精品doc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");可修改编辑
精品doc }
void wrong()
{
cprintf("\n\r输入错误!请验证后重新输入.\n");
}
void notfind()
{
cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");
}
void printc() /* 此函数用于输出中文格式 */
{
cprintf("\r 学号 姓名 性别 英语成绩 数学成绩 C语言成绩 总分
平均分\n ");
}
void printe(Node *p) /* 此函数用于输出英文格式 */
{
cprintf(" %-8s%-10s%5s%12d%13d%13d%8d%9d\n\r",p->data.num,p->,p->data.sex,p->data.score3,p->data.score2,p->data.score1,p->data.totle,p->data.ave);
}
可修改编辑
精品doc Node* Locate(L l,char findinfo[],char nameornum[]) /*
该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0) /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findinfo)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->,findinfo)==0)
return r;
r=r->next;
}
}
return 0;
}
可修改编辑
精品doc void input(L l) /*
增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next; /* 将指针置于最末尾 */
while(1)