C语言程序设计班级档案管理系统
- 格式:doc
- 大小:182.50 KB
- 文档页数:32
课程设计报告课程名称C语言程序设计课题名称班级成绩管理系统专业班级学号姓名指导教师年月日湖南工程学院课程设计任务书课程名称C语言程序设计课题班级成绩管理系统专业班级学生姓名学号指导老师审批任务书下达日期年月日任务完成日期年月日目录一、引言 (1)二、总体设计 (2)三、详细设计 (4)四、问题分析及总结 (13)五、参考文献 (15)六、附件 (15)一、设计内容与设计要求1. 设计内容:班级成绩管理系统设计涉及的知识点:①掌握并熟练运用C语言的基本数据类型与各种表达式,程序的流程控制语句;②掌握数组的基本概念。
熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。
③掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。
④掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示,结构体变量的赋值含义,结构体与指针、函数的关系。
⑤掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。
2.设计要求:1)用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观;各项显示数据均要求以表格的形式输出;在各功能子模块中应设计相应的二级菜单。
2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)学生成绩显示:完成班级全部学生成绩的显示,显示时按表格的形式,且应有表头;(3)学生成绩追加:完成新增一个(或多个)学生的成绩记录,要求在追加过程中有相应的提示信息,完成追加后能重新计算学生平均成绩并显示;(4)学生成绩修改:要求能按学号和按姓名两种定位方式,且可以按用户要求修改记录中除学号和姓名以外的指定内容,并重新计算学生的平均成绩;(5)学生成绩信息的查询;要示系统能按学号、按姓名查询以及能查总分在某一指定范围内的学生信息,且能显示符合条件的所的记录,若所需查询的信息不存在时应有相应的提示信息。
学生信息管理系统设计案例一、引言学生信息管理系统是一种集学生信息录入、查询、修改和删除等功能于一体的软件系统。
为了满足学校对学生信息的有效管理和查询需求,本文将介绍一种用C语言实现的学生信息管理系统设计案例。
二、需求分析学生信息管理系统主要有以下几个功能模块: 1. 学生信息录入:包括学生姓名、学号、年龄、性别等基本信息的录入。
2. 学生信息查询:可以根据学号或姓名进行查询,并显示查询结果。
3. 学生信息修改:可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
4. 学生信息删除:可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
三、系统设计1. 数据结构设计为了存储学生信息,我们需要定义一个学生结构体,包括姓名、学号、年龄、性别等字段。
同时,为了方便管理学生信息,我们可以使用链表数据结构来存储学生信息,并设计一个头节点来指向链表的第一个节点。
struct student {char name[20];int student_id;int age;char gender[10];struct student* next;};struct student* head; // 头节点2. 功能模块设计2.1 学生信息录入在该功能模块中,用户需要输入学生的姓名、学号、年龄和性别等信息,并将该学生信息添加到链表中。
为了方便起见,我们可以将该功能模块定义为一个函数add_student()。
2.2 学生信息查询在该功能模块中,用户可以根据学号或姓名进行学生信息的查询。
查询结果将会显示学生的基本信息。
为了方便起见,我们可以将该功能模块定义为一个函数search_student()。
2.3 学生信息修改在该功能模块中,用户可以根据学号或姓名选择要修改的学生信息,并进行修改操作。
为了方便起见,我们可以将该功能模块定义为一个函数update_student()。
2.4 学生信息删除在该功能模块中,用户可以根据学号或姓名选择要删除的学生信息,并进行删除操作。
学生管理系统c语言简单版学生管理系统c语言简单版介绍:学生管理系统是一种用于管理学生信息的软件,它可以方便地对学生的基本信息、课程成绩等进行录入、查询、修改和删除等操作。
本文将介绍如何使用C语言编写一个简单的学生管理系统。
功能:1. 添加学生信息2. 查询学生信息3. 修改学生信息4. 删除学生信息5. 显示所有学生信息实现方法:1. 添加学生信息添加学生信息需要输入以下内容:姓名、性别、年龄、班级和电话号码。
我们可以定义一个结构体来存储这些信息,代码如下:```struct Student {char name[20];char sex[10];int age;char class[20];char phone[20];};```然后定义一个数组来存储多个学生的信息:```struct Student students[100];int count = 0; // 学生数量```接下来,我们可以编写一个函数来添加新的学生信息:```void addStudent() {struct Student student;printf("请输入姓名:");scanf("%s", );printf("请输入性别:");scanf("%s", student.sex);printf("请输入年龄:");scanf("%d", &student.age);printf("请输入班级:");scanf("%s", student.class);printf("请输入电话号码:");scanf("%s", student.phone);students[count++] = student; // 将新的学生信息存储到数组中 printf("添加成功!\n");}```2. 查询学生信息查询学生信息可以按照姓名或电话号码进行查询。
#include ”stdio.h”#include ”string.h”#include "stdlib.h"#include "conio.h"#include ”string.h”#include "fcntl。
h"typedef struct student{int num;char grade[10];char classroom[10];char name[10];float score_math;float score_chinese;float score_english;float average;float sum;}STU;typedef struct Node{STU data;struct Node *next;}*linklist;void menu();char *loginpassword(char password[],int n);//登录验证密码函数声明//linklist createstulist(linklist head);//创建学生链表即学生信息录入函数声明// void printstulist(linklist head);//学生信息输出函数声明//void searchstu_namelist(linklist head);//学生信息查询函数声明(按姓名)// void searchstu_numlist(linklist head);//学生信息查询函数声明(按学号) linklist modifystulist(linklist head);//学生信息修改函数声明//linklist delatestulist(linklist head);//学生信息删除函数声明//void savestulist(linklist head);//学生信息保存到文件函数声明// linklist loadstulist();//从文件中读取学生信息函数声明// void sortstulist(linklist head); //成绩排名函数(按年级)声明//void sort(STU stu[],int flag); //学生分班函数声明//void sortstuclass(linklist head); //成绩排名函数(按班级)声明////*************************************//void main(){char admin[]=”zhangqiong";char password[]=”123456";char person[20];char password1[10];int i;printf(”********************************************************************************\n”);printf("\t\t **********欢迎来到学生成绩管理系统**********\n\n");printf(”********************************************************************************\n\n”);printf(”\t\t\t\t用户登录\n\n\n\n");for(i=0;i<3;i++){printf("用户名:”);gets(person);fflush(stdin);printf(”\n\n\n”);loginpassword(password1,10);printf("\n\n\n”);if(strcmp(admin,person)==0&&strcmp(password,password1)==0){printf(”\t\t\t\t成功登录,亲!\n”);printf("\n\n”);printf(”按任意键继续!”);getch();menu();break;}elseprintf("\t用户名或者密码输入错误\n”);}if(i==3)printf("\t对不起,您今天输入次数太多,已被强制退出!\n”);}//**********************************************************////**********************************************************//char *loginpassword(char password[],int n)//登录密码函数,隐藏密码可见//{int i=0;int m=0;char ch;printf("用户密码:”);while((ch=getch())!='\r’&&m〈n){password[i++]=ch;printf(”*");}password[i]='\0';return password;}//***************************************************// void menu()//主界面函数//{system("cls");linklist L;L=(linklist)malloc(sizeof(Node));L—>next=NULL;int ch;do{printf(”\t -——-----—-******——--——--—---******—————-————-******-—-—-—-—-—\n\n");printf("\t\t\t**********学生成绩管理系统***********\n\n”);printf("\t ——----——--******-—-——------—******—---———--—-******—---———-——\n\n\n\n\n");printf("\t1。
c语言课程设计学生学籍管理系统一、教学目标本课程旨在让学生掌握C语言的基本语法,培养学生编写结构化程序的能力,使学生能够运用C语言实现简单的学生学籍管理系统。
通过本课程的学习,学生将能够:1.知识目标:–理解C语言的基本数据类型、运算符和表达式;–掌握函数的定义和调用,理解局部变量和全局变量的概念;–熟悉控制结构,如if语句、for循环和while循环;–了解数组、字符串和指针的基本使用方法。
2.技能目标:–能够使用C语言编写简单的程序,解决实际问题;–掌握基本的调试技巧,能够找出并修复程序中的错误;–具备阅读和理解他人代码的能力。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和热情,提高学生的自主学习能力;–培养学生团队协作的精神,增强学生的沟通能力;–培养学生解决问题的能力,提高学生的创新意识。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法:数据类型、运算符、表达式、函数、局部变量和全局变量等;2.控制结构:if语句、for循环、while循环等;3.数据结构:数组、字符串、指针等;4.学生学籍管理系统的实现:学生信息的添加、删除、修改和查询等功能。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学:1.讲授法:通过讲解C语言的基本语法和概念,使学生掌握相关知识;2.案例分析法:通过分析实际案例,使学生理解并掌握C语言在学生学籍管理系统中的应用;3.实验法:让学生动手编写代码,实现学生学籍管理系统的功能,提高学生的实际操作能力。
四、教学资源本课程的教学资源包括:1.教材:《C语言程序设计》;2.参考书:《C语言 Primer》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
以上教学资源将有助于实现本课程的教学目标,提高学生的学习效果。
五、教学评估本课程的教学评估将采用多元化评价方式,全面客观地评价学生的学习成果。
供选择的C或C++语言程序课程设计题目第一类题目应用类题目1:年历显示。
功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。
教室管理系统c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言中结构体、数组、函数等基本概念,并能运用这些知识设计教室管理系统的基本框架。
2. 学生能理解文件操作在教室管理系统中的应用,掌握文件的读写、存储等基本操作。
3. 学生了解教室管理系统的需求分析、功能模块划分,掌握模块化编程思想。
技能目标:1. 学生能够运用C语言编写程序,实现教室管理系统的各项功能,如添加、删除、查询教室信息等。
2. 学生能够运用所学知识解决实际编程问题,具备一定的程序调试和优化能力。
3. 学生能够通过本课程的学习,培养自己的团队协作、沟通能力,提高问题解决能力。
情感态度价值观目标:1. 学生通过参与教室管理系统的设计与实现,培养对计算机编程的兴趣和热情,提高学习积极性。
2. 学生在学习过程中,培养严谨、认真、负责的学习态度,树立良好的编程习惯。
3. 学生能够认识到编程在解决实际问题中的重要性,增强对信息技术的信心,提高社会责任感。
本课程针对高中年级学生,结合C语言学科特点,以实用性为导向,旨在培养学生的编程能力、问题解决能力和团队协作能力。
课程目标具体、可衡量,为后续教学设计和评估提供了明确的方向。
二、教学内容本课程教学内容紧密结合课程目标,确保科学性和系统性。
具体包括以下部分:1. C语言基础知识回顾:包括数据类型、运算符、控制语句等,涉及教材第1-3章内容。
2. 结构体与数组:讲解结构体的定义和使用,数组的应用,为教室管理系统设计提供数据结构支持,涉及教材第4章内容。
3. 函数:介绍函数的定义、调用、参数传递等,帮助学生掌握模块化编程思想,涉及教材第5章内容。
4. 文件操作:讲解文件读写、存储等基本操作,为教室管理系统提供数据持久化支持,涉及教材第6章内容。
5. 教室管理系统功能模块设计:- 教室信息添加、删除、修改、查询功能,涉及教材第7章内容;- 教室预约、取消预约功能,涉及教材第8章内容;- 用户登录、权限管理功能,涉及教材第9章内容。
《面向对象程序设计》课程设计课程设计内容与要求1、内容二:模拟实现学籍管理系统。
系统主要功能有:(1)学生基本信息的录入;(2)学生基本信息的查询;(3)学生基本信息的修改;(4)学生基本信息的删除。
2、设计要求:(1)分析数据对象及其联系;(2)实现相关类的设计;(3)分析系统功能构成;(4)对应用系统编程并运行调试一、系统中所使用的数据对象及说明1、学生档案XSDA类属性属性名称类型描述No string 学生学号Name string 学生姓名Sex string 学生性别Major string 学生专业方法方法名称功能GetNo()输入学生学号GetName() 输入学生姓名GetSex() 输入学生性别Gettel()输入学生电话2、学生成绩XSCJ类属性属性名称类型描述No string 学生学号Computer int 计算机成绩Math int 数学成绩Chinese int 语文成绩Total int 总科目记录数方法方法名称功能GetNo()输入学生学号GetComputer 输入计算机成绩GetMath()输入数学成绩GetChinese 输入语文成绩3、学生student类属性属性名称类型描述DA[MAX_RECORD] XSDA 子对象CJ[MAX_RECORD] XSCJ 子对象Point int 记录号Total int 记录数4、各个类之间的关系答:student类调用XSDA和XSCJ的子对象数组DA[MAX_RECORD]和CJ[MAX_RECORD]。
二、系统功能结构及相关算法描述1、系统功能结构三、程序源码#include <iostream> using namespace std;#include "string"class XSDA{public:string GetNo();string GetName(); string GetSex(); string GetTel();string GetMajor(); void UpDate();void display();//protected:string No;string Name;string Sex;string Tel;string Major;};class XSCJ{public:string GetNo(); double GetComputer(); double GetMath(); double GetChinese(); double GetTotal(); double Sum();void display();void UpDate();//protected:string No;double Computer;double Math;double Chinese;double Total;double sum;};class XSCJ{public:string GetNo();double GetComputer(); double GetMath();double GetChinese();double GetTotal();double Sum();void display();void UpDate();//protected:string No;double Computer;double Math;double Chinese;double Total;double sum;};string XSDA::GetNo(){cout<<"请输入学生学号:"; cin>>No;cout<<endl;return No;}string XSDA::GetName(){cout<<"请输入学生姓名:"; cin>>Name;cout<<endl;return Name;}string XSDA::GetSex(){cout<<"请输入学生性别:"; cin>>Sex;cout<<endl;return Sex;}string XSDA::GetTel(){cout<<"请输入学生电话号码:"; cin>>Tel;cout<<endl;return Tel;}string XSDA::GetMajor(){cout<<"请输入学生专业:"; cin>>Major;cout<<endl;return Major;void XSDA::display(){cout<<"---------------------------------------------------"<<endl;cout<<"-学号- 姓名- 性别- 电话号码- 专业--"<<endl;cout<<No<<" -"<<Name<<" - "<<Sex<<" - "<<Tel<<" - "<<Major<<endl;cout<<"---------------------------------------------------"<<endl;}string XSCJ::GetNo(){cout<<"请输入学生学号:";cin>>No;cout<<endl;return No;}double XSCJ::GetComputer(){cout<<"请输入该学生计算机成绩:";cin>>Computer;cout<<endl;return Computer;}double XSCJ::GetMath(){cout<<"请输入该学生数学成绩:";cin>>Math;cout<<endl;return Math;double XSCJ::GetChinese(){cout<<"请输入该学生语文成绩:";cin>>Chinese;cout<<endl;return Chinese;}double XSCJ::GetTotal(){cout<<"请输入总科目数:";cin>>Total;cout<<endl;return Total;}double XSCJ::Sum(){sum=Computer+Math+Chinese;return sum;}void XSCJ::display(){cout<<"---------------------------------------------"<<endl;cout<<"-学号- 计算机成绩- 数学成绩- 语文--"<<endl;cout<<No<<" - "<<Computer <<" - "<<Math<<" - "<<Chinese<<endl;cout<<"---------------------------------------------"<<endl;}student::student(){Total=0;Point=0;}int student::IsFull(){if(Total==500)cout<<"学生记录已满,无法添加新记录!"<<endl; return 1;}int student::IsEmpty(){if(Total==0)cout<<"学生记录为空,无法删除记录!"<<endl; return 1;}int student::GetTotal(){return Total;}int student::GetPoint(){return Point;}int student::Append(){if(student::IsFull()){DA[Point].GetNo();DA[Point].GetName();DA[Point].GetSex();DA[Point].GetTel();DA[Point].GetMajor();CJ[Point].GetNo();CJ[Point].GetComputer();CJ[Point].GetMath();CJ[Point].GetChinese();CJ[Point].GetTotal();CJ[Point].Sum();Point=Point+1;}printf("添加成功!");Total++;return Point;}void student::Edit(){string no;string Na;string sex;string tel;string major;double grade;int i,j ;int a;cout<<"请选择要修改的信息:"<<endl;cout<<"-----------------"<<endl;cout<<"- 1、学生档案-"<<endl;cout<<"- 2、学生成绩-"<<endl;cout<<"- 3、退出系统-"<<endl;cout<<"-----------------"<<endl;cin>>a;switch(a){case 1:{cout<<"请选择要修改的信息:"<<endl;cout<<"------------------"<<endl;cout<<"- 1、姓名-"<<endl;cout<<"- 2、性别-"<<endl;cout<<"- 3、电话号码-"<<endl;cout<<"- 4、专业-"<<endl;cout<<"- 5、退出系统-"<<endl;cout<<"------------------"<<endl;cin>>i;switch(i){case 1:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(DA[i].No==no){cout<<"请输入欲更改的姓名:";cin>>Na;DA[i].Name=Na;}}}break;case 2:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(DA[i].No==no){cout<<"请输入欲更改的性别:";cin>>sex;DA[i].Sex=sex;}}}break;case 3:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(DA[i].No==no){cout<<"请输入欲更改的电话号码:";cin>>tel;DA[i].Tel=tel;}}}break;case 4:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(DA[i].No==no){cout<<"请输入欲更改的专业:";cin>>major;DA[i].Major=major;}}}break;case 5:{exit(0);}break;default:{cout<<"输入操作错误,请重输"<<endl;student::Edit();}break;}}break;case 2:{cout<<"请选择要修改的信息:"<<endl;cout<<"------------------------"<<endl;cout<<"- 1、计算机成绩-"<<endl;cout<<"- 2、数学成绩-"<<endl;cout<<"- 3、语文成绩-"<<endl;cout<<"- 4、退出系统-"<<endl;cout<<"------------------------"<<endl;cin>>j;switch(j){case 1:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(CJ[i].No==no){cout<<"请选择欲更改成绩:";cin>>grade;CJ[i].Computer=grade;}}break;case 2:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(CJ[i].No==no){cout<<"请选择欲更改成绩:";cin>>grade;CJ[i].Math=grade;}}}break;case 3:{cout<<"请输入学号:";cin>>no;i=0;cout<<endl;for(i=0; i<=Total;i++){if(CJ[i].No==no){cout<<"请选择欲更改成绩:";cin>>grade;CJ[i].Chinese=grade;}}}break;case 4:{exit(0);}break;default:{cout<<"输入操作错误,请重输"<<endl;student::Edit();}}break;case 3:{exit(0);}break;default:{cout<<"输入操作错误,请重输"<<endl;student::Edit();}break;}}void student::Locate(){int i=0;cout<<"请输入学号:";string no;cin>>no;while(DA[i].No!=no && i<Total)i++;if(DA[i].No==no){cout<<"该学号位于记录:";cout<<i<<endl;}elsecout<<"该学号学生不存在!"<<endl;}void student::Seek(){int i=0;string no;cout<<"请输入学号:";cin>>no;cout<<endl;while(DA[i].No!=no && i<Total)i++;if(DA[i].No==no){DA[i].display();CJ[i].display();}elsecout<<"该学号学生不存在!"<<endl; }void student::Delete(){ int i;int a;if(student::IsEmpty()){cout<<"请输入预删除记录数:"<<endl;cin>>a;for(i=a;i<=Total;i++){DA[i]=DA[i+1];}Total=Total-1;}}void student::List(){int i;for(i=0;i<Total;i++){DA[i].display();CJ[i].display();}}void student::menu(){int i;cout<<"欢迎登录学生系统!"<<endl;cout<<"------------------------------"<<endl;cout<<"-- 1、添加学生记录--"<<endl; cout<<"-- 2、删除学生记录--"<<endl; cout<<"-- 3、定位学生记录--"<<endl; cout<<"-- 4、查找指定记录--"<<endl; cout<<"-- 5、修改学生记录--"<<endl; cout<<"-- 6、显示全部学生记录--"<<endl; cout<<"-- 7、退出学生系统--"<<endl;cout<<"------------------------------"<<endl;cout<<"请选择操作项目:";cin>>i;cout<<endl;switch(i){case 1:{student::Append();}break;case 2:{student::Delete();}break;case 3:{student::Locate();}break;case 4:{student::Seek();}break;case 5:{student::Edit();}break;case 6:{student::List();}break;case 7:{exit(0);}break;default :{cout<<"选择操作错误"<<endl;student::menu();}break;}}四、系统运行结果(截图)1、主菜单2、添加学生信息3、删除学生记录4、定位学生记录5、修改学生记录6、显示学生信息:五、课程设计总结。
一、概述随着信息技术的不断发展和应用,计算机程序设计作为重要的基础课程,对学生的综合能力有着重要的培养作用。
在C语言程序设计课程中,大作业是检验学生对知识的掌握和应用能力的重要环节。
学生信息管理系统作为一种常见的大作业题目,涉及到了文件操作、结构体、指针等多个知识点,对学生的理论知识掌握和实战能力都有一定的考验。
二、需求分析学生信息管理系统是一个管理学生基本信息的软件,具有录入、查找、删除、修改等功能。
在设计学生信息管理系统的时候,首先要明确系统的功能需求,并且考虑到系统的扩展性和健壮性。
1. 学生基本信息包括学号、尊称、性别、芳龄、专业等内容,系统应具备录入学生信息的功能,并且能够将信息保存在文件中,方便下次使用。
2. 用户可以通过查找功能根据学号或尊称查询学生信息,系统需要具备高效的查找算法。
3. 可以对学生信息进行删除和修改操作,需要保证操作的准确性和安全性。
4. 系统需要具备良好的用户界面,方便用户的操作和管理。
三、系统设计在进行学生信息管理系统的设计时,需要考虑到系统的模块化和扩展性,将整个系统划分为多个模块,进行单独设计和测试。
1. 学生信息录入模块:负责接收用户输入的学生信息,并将信息写入文件中。
2. 学生信息查找模块:通过学号或尊称进行查找操作,需要设计高效的查找算法。
3. 学生信息删除模块:实现对学生信息的删除功能。
4. 学生信息修改模块:实现对学生信息的修改功能。
5. 用户界面设计:设计友好的用户界面,方便用户的操作和管理。
四、系统实现在进行系统实现时,需要根据设计的模块进行逐一实现和测试,保证系统的稳定性和功能完整性。
1. 学生信息录入模块实现:接收用户输入的学生信息,并将信息写入文件。
2. 学生信息查找模块实现:设计高效的查找算法,并实现根据学号或尊称进行查找操作。
3. 学生信息删除模块实现:实现对学生信息的删除功能,并确保操作的准确性和安全性。
4. 学生信息修改模块实现:实现对学生信息的修改功能,保证信息的一致性。
学生信息管理系统c语言版源代码#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #define N 1000typedef struct student {int number;char name[20];int grade;int gaoshu;int yingyu;int jisuanji;int sum;}STUDENT;STUDENT student[N]; int shuliang=0;void menu();void fhzjm(){char biaozhi[20];printf("\n");printf("还需要操作么,如果需要操作请输入:yes,否则请输入:no\n");scanf("%s",biaozhi);if(strcmp(biaozhi,"yes")==0){menu();}else if(strcmp(biaozhi,"no")==0)exit(0);else{printf("请输入正确的字符,谢谢~\n"); fhzjm();}}void DengJi(){int rs;int i,k=1;system("CLS");printf("请输入需要输入几个学生信息:"); scanf("%d",&rs);for(i=shuliang;i<shuliang+rs;i++,k++) {printf("请输入第%d个学生的学号:",k); scanf("%d",&student[i].number);printf("请输入学生的姓名:");scanf("%s",student[i].name);printf("请输入学生3门课的成绩:"); printf("请输入第1门课的成绩:");scanf("%d",&student[i].gaoshu);printf("请输入第2门课的成绩:");scanf("%d",&student[i].yingyu);printf("请输入第3门课的成绩:");scanf("%d",&student[i].jisuanji);}shuliang=shuliang+rs;fhzjm();}void ShanChu(){char shanchuinfo[10];system("CLS");printf("删除全部学生信息请输入\"all\",删除指定学号的学生信息请输入\"one\"\n");scanf("%s",shanchuinfo);if(strcmp(shanchuinfo,"all")==0){int j;printf("你删除的学生信息如下:\n");printf("-----------学号-------------姓名-------------高数--------------英语--------------计算机\t\n");for(j=0;j<shuliang;j++)printf("----%d-------%s-------%d-------%d-------%d\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].jisuanji);shuliang=0;printf("删除成功\n\n");}else if(strcmp(shanchuinfo,"one")==0){struct student *p=NULL;int choice;int i,j,k=0;printf("请输入你要删除的人的学号:");scanf("%d",&choice);for(i=0;i<shuliang;i++){if(choice==student[i].number){k=1;j=i;break;}}if(k){if(shuliang==1){p=&student[0];free(p);shuliang=0;}else{for(i=j;i<shuliang;i++) {student[i]=student[i+1];}shuliang=shuliang-1;}printf("删除成功\n\n");}else{printf("输入数据错误~\n"); }}fhzjm();}void LiuLan(){int i;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");}else{for(i=0;i<shuliang;i++){printf("第%d个学生的学号为:%d\n",i+1,student[i].number);printf("第%d个学生的姓名为:%s\n",i+1,student[i].name);printf("第%d个学生的第一门课的成绩为:%d\n",i+1,student[i].gaoshu);printf("第%d个学生的第二门课的成绩为:%d\n",i+1,student[i].yingyu);printf("第%d个学生的第三门课的成绩为:%d\n",i+1,student[i].jisuanji);student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("第%d个学生的总成绩为:%d\n",i+1,student[i].sum);}}fhzjm();}void ChaZhao(){int xx;char choice,yy[20];int i,j,k=0;system("CLS");if(shuliang==0){printf("系统里面没有任何学生的信息~\n");fhzjm();}printf("三种查找方式:学号,姓名,成绩\n");printf("如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\n");printf("请输入您查找的方式:");scanf("%s",&choice);if(choice=='1'){printf("请输入需要查找学生的学号:");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].number){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='2'){printf("请输入需要查找学生的姓名:\n");scanf("%s",yy);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数成绩----英语成绩----计算机成绩----\t\n");for(i=0;i<shuliang;i++){if(strcmp(yy,student[i].name)==0){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jis uanji);}}if(k==0)printf("输入信息有误:\n");}else if(choice=='3'){printf("请输入需要查找学生的成绩:\n");scanf("%d",&xx);printf("您所查找的学生的信息为:\n");printf("----学号----姓名----高数----英语----计算机----\t\n");for(i=0;i<shuliang;i++){if(xx==student[i].grade){j=i;k=1;printf("----%d-------%s-------%d-------%d-------%d----\t\n",student[j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jis uanji);}}if(k==0)printf("输入信息有误:\n");}fhzjm();}void PaiXu(){struct student *p1[N],**p2,*temp;int i,j;system("CLS");p2=p1;for( i=0;i<shuliang;i++){p1[i]=student+i;}for( i=0;i<shuliang;i++){for( j=i+1;j<shuliang;j++){if((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }}printf("按照总成绩排序之后的信息为:\n");printf("----学号----姓名----总成绩----\t\n");for( i=0;i<shuliang;i++){student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuan ji;printf("----%d-----%s----%d-----\n",(*(p2+i))->number,(*(p2+i))->name,(*(p2+i))->sum);}fhzjm();}void CunChu(){int i;FILE *rs;if((rs=fopen("student.txt","w"))==NULL){printf("not open");exit(0);}for(i=0;i<shuliang;i++){fwrite(&student[i], sizeof(student[i]), 1, rs); }if(ferror(rs)){fclose(rs);perror("写文件失败~\n");return;}printf("存储文件成功~\n");fclose(rs);fhzjm();}void DaoChu(){struct student t;int i=0;FILE* fp = fopen("student.txt", "r");shuliang=0;if(NULL==fp){perror("读取文件打开失败~\n");return;}memset(student,0x0,sizeof(student));while(1){fread(&t,sizeof(t),1,fp);if(ferror(fp)){fclose(fp);perror("读文件过程失败~\n");return;}if(feof(fp)){break;}student[i]=t;i++;}fclose(fp);shuliang=i; printf("导出文件成功~\n"); fhzjm();}void menu(){int n=0;system("CLS");printf(" 学生信息管理系统\n");printf(" 作者:陈椿\n");printf("-------------------MENU-----------------\n"); printf(" 1.登记学生信息\n");printf(" 2.删除学生信息\n");printf(" 3.浏览所有已经登记的学生\n");printf(" 4.查找\n");printf(" 4.1按学号查找\n");printf(" 4.2按姓名查找\n");printf(" 4.3按成绩查找\n");printf(" 5.根据总成绩排序\n");printf(" 6.存储到文件\n");printf(" 7.从文件导出\n");printf(" 8.退出系统\n");a: printf(" 请选择:");scanf("%d",&n);switch (n){case 1:DengJi();break;case 2:ShanChu();break;case 3:LiuLan();break;case 4:ChaZhao();break;case 5:PaiXu();break;case 6:CunChu();break;case 7:DaoChu();break;case 8:exit(0);break;default:{printf("请输入1-8之间的数字,谢谢~\n"); goto a;}}}main() {menu();}。
课程设计报告课程名称 C语言程序设计课题名称班级档案管理系统专业计算机科学与技术班级 1410061学号 7姓名李春苗指导教师刘双红2015年6月20日课程设计任务书课程名称C语言程序设计课题班级档案管理系统专业班级 1410061学生姓名李春苗学号 7指导老师刘双红任务完成日期2014 年 6 月 20 日一、目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;7.按本任务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;8.在2010年7月2日之前,请各班学习委员收齐课程设计报告和源程序软盘交王颖老师,联系电话:。
三、进度安排第一周星期四:课题讲解,查阅资料第二周星期一: 总体设计,详细设计星期二:编程,上机调试、修改程序星期三:上机调试、完善程序星期四:上机调试、完善程序星期五:答辩星期六-星期天:撰写课程设计报告一、问题描述:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。
二、功能要求:1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。
2、本系统显示这样的菜单:请选择系统功能项:a. 学生基本信息录入b. 学生基本信息显示c. 学生基本信息保存d. 学生基本信息删除e. 学生基本信息修改(要求先输入密码)f. 学生基本信息查询(1) 按学号查询(2) 按姓名查询(3) 按性别查询(4) 按年龄查询g. 退出系统3、执行一个具体的功能之后,程序将重新显示菜单。
4、将学生基本信息保存到文件中。
5、进入系统之前要先输入密码。
三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。
姓名学号性别年龄备注char char char int char四、测试数据:学生人数N=10目录第一章绪论背景描述.....................................本文所做的工作..............................第二章需求分析项目开发的目的..................................系统概述.............................项目的功能需求系统开发的流程系统的性能要求系统的运行要求第三章概要设计程序模块的组成...................................班级档案管理信息数据结构体.................各个程序的功能介绍系统结构图第四章模块设计分析.................................学生基本信息录入.................................学生基本信息的显示...............................学生基本信息的保存................................学生基本信息的删除...............................学生基本信息的修改(要求先输入密码)............学生基本信息的查询........................(1)按学号查询.............................(2) 按姓名查询.............................(3)按性别查询...........................(4)按年龄查询..........................退出系统.....................................第五章测试.........................................存在的问题.......................测试方案..........................第六章使用说明书..................................第七章总结......................................... 附录A 参考文献................................B 源程代码...............................第一章绪论1.1背景描述:随着社会信息量的与日俱增和国家的招生规模的不断扩大,学校需要有一个很好的班级档案管理系统,以方便对学生档案进行有效的管理。
系统应具有既方便教师对学生档案的录入和保存还有显示、删除、修改、查询等功能。
班级档案管理系统这个系统名字是在经过与客户商量而确定的,在有极大的生存空间下而开始开发的,得到了学校与师生们的一致好评。
在诸多管理系统的班级档案管理系统与其他管理系统都是一种基础系统,本系统具有数据操作方便、高效、迅速等优点。
该软件是采用功能强大的数据库软件开发工具进行开发,具有很好的可移植。
同时可通过设置密码来控制其访问权限,确保系统数据的安全性,使用该系统能够既能把管理人员从繁忙的数据统计中解脱出来,使其具有更多的精力去从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量,同时也减轻任课教师的负担,让其有更多的时间投入到教学和科研中,其作主要的功能是能够便于学校的管理。
班级档案系统是学生的基本信息数据位主的管理,合理的管理让该系统的功能得以顺利的实现。
(1)系统现状目前,我国大中专院校的学生管理的水平普遍不高。
在当今的信息时代,传统的管理方法必然要被以计算机为基础的信息管理所代替,而去目前很多重点院校都已经有了自己的教务管理系统。
已有的大都偏向学生成绩管理系统、学籍管理等,而本系统则重点放在档案管理上,从整体上,从整体上进行分析设计,这对于其他类似的管理系统的设计很有高的参考意义。
(2)用户需求针对目前各大高校对学生档案管理方面存在的问题和管理的实际需要,我们将理顺管理体制和建立各种管理规范与开发系统的有机结合起来,从用户的角度来看系统首先因该提供便捷的强大的查询功能。
对于学校和全体教师而言,他们因该具有对系统各个部分具有各自不同的权限。
对学生用户而言,系统因该提供能够查询自己档案的功能。
从教务管理者的角度来看,系统因该能够实现即时查询功能,记录学生的档案,以实现对档案的各种操作等功能。
还要具有比较高的安全性,用户登录时必须要有密码验证,这样可以保证用户的信息的安全从而使用户的隐私不至于被泄露。
总之档案管理系统就是在这种背景下应运而生的。
本文所做的工作在决定要开发这个项目的那一刻,我们团队就做好打一场硬仗的准备我们先使分组,然后再是查找资料,学校的电子阅览室,图书馆,还有各大权威网站,C语言的各种书籍,查阅了大量资料或是摘抄,或是复印,不惜牺牲我们的休息时间在为能够顺利完成任务了坚持不懈,直到完成主体的工作我们才松了一口气。
总之我们在这次课程设计中确实做出比较正确的时间规划和安排,为计划的设计的顺利完成奠定了基础。
在我们的研发团队的不懈的坚持下我们工作有序的进行,我们分成了几个小组,第一组负责项目的研发,第二组是开发,第三组是测试部门,第四组是我们的后勤部门,我们分工合作,在明确我们要做什么之后,每天晚上睡觉前先明天的工作的流程先在了一张小纸上,然后明天只要跟着上面去做就可以了,晚上我们还要参加一个由我们的小组举行的讨论会,在会上我们积极发言,毫无保留的把自己的心得体会都告诉大家,让我们都少走了许多的弯路,节约了许多宝贵的时间,为我们的认识的如期完成奠定了坚实的基础。
在每的紧张忙碌下,我们把所有手上的资料进行整合,然后把要做的事情先分成几个小部分,这样有利于我们的工作的开展,把一个个的小模块的工作完成了,我们的信心得到了提高,在各个模块的攻坚下我们采用了许多的实用工具,想word、等,这也样我们省了不少力,这就是我们在这次系统开发中所做的工作,正是因为这些工作才使得我们的系统开发的成功有了基本的保证,为我们日后的成功奠定了基础。
第二章需求分析2.1项目开发的目的该系统是一个简单的班级档案管理系统,能够使老师了解到相应的信息。
是针对目前的现状,把管理人员从繁忙的数据统计中解脱出来,使其具有更多的精力去从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量,同时也减轻任课教师的负担,让其有更多的时间投入到教学和科研中,还有学生档案管理工作的重要性,以及当前的档案管理的现实,为了改善这种情况,使档案管理工作真正的步入高效,健康的轨道从而促使了我们开发了这个系统,以提高档案管理工作的效率和满足用户的基本需求为目的,实现档案管理工作的信息化。
系统概述以广大用户的利益为基础,实现对学生或者其他用户的信息的网络化信息化管理,从而实现档案管理工作的高效率化,班级档案管理系统是以学生的基本信息的保存为载体的管理系统,它有着很大的优越性,是目前市场上同类系统的一个有很强的竞争力的系统,该系统操作简单,每个步骤都有明确的提示,而去容易操作,一般用户对其基本操作的掌握是完全没有问题的,容易操作时该系统的一个亮点。
2.3项目的功能需求1)未开发软件的功能描述学生档案管理系统必须能够完成系统管理、学生基本信息的录入、学生基本信息的显示、学生基本信息的保存、学生基本信息的删除、学生基本信息的修改、学生基本信息的查询、和退出系统的功功能(1)系统管理主要是维护系统的正常运行和安全性设置,包括登录用户身份时管理员能够完成添加用户、删除用户、修改密码、查询用户的权限和重新登录等功能,以及针对未涉及到数据库中数据的备份和恢复是能够实现按照学号、学生姓名、学生性别、学生年龄、进行查询。