C++课程设计《学生信息管理系统》代码
- 格式:docx
- 大小:17.50 KB
- 文档页数:10
课程设计(论文) C#学生信息管理系统系别:计算机科学与技术系专业(班级):计算机科学与技术10级2班作者(学号):指导教师:完成日期: 2011年12月25日蚌埠学院教务处制目录中文摘要 (2)英文摘要 (3)1学生数据库需求分析 (4)1.1用户需求 (4)1.2功能流程分析 (4)2概念设计 (6)3逻辑设计 (7)3.1数据库初步构思框架 (7)3.2 具体逻辑模型设计 (7)4物理设计 (8)5 功能模块设计 (8)5.1主模块设计 (8)5.2相关子模块的设计 (9)5.2.1登陆模块 (9)5.2.2主界面模块 (10)5.2.3学生信息管理模块 (13)5.2.4班级信息管理模块 (18)5.2.5成绩信息管理模块 (19)6 功能运行截图 (21)6.1登录系统界面 (21)6.2学生信息管理系统界面 (21)6.3学生信息管理界面 (22)6.3.1添加学生信息界面 (22)6.3.2删除学生信息界面 (22)6.3.3查找学生信息界面 (23)6.3.4修改学生信息界面 (24)6.4班级信息管理界面 (25)6.4.1查找班级信息界面 (25)6.4.2删除班级信息界面 (26)6.4.3修改班级信息界面 (27)6.5成绩信息管理界面 (28)6.5.1添加学生成绩 (28)6.5.2查询学生成绩界面 (28)6.5.3修改学生成绩界面 (29)7 课程设计总结 (29)8 结束语 (30)参考文献 (30)附录:程序清单 (31)中文摘要C sharp(又被简称为"C#")是微软公司在二OOO年六月发布的一种新的编程语言,并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是微软公司研究员Anders Hejlsberg的最新成果。
C#看起来与Java 有着惊人的相似;它包括了诸如单一继承、界面、与Java几乎同样的语法,和编译成中间代码再运行的过程。
学籍管理系统一、系统简介设计一个基于结构体数组的学生学籍管理系统,能实现对学生学籍信息进行录入,修改,删除,查询和输出等基本操作二、需求分析学籍管理系统应该实现以下功能:1、能录入学生的基本信息,包括学号,姓名,专业,年级,性别和出生日期信息,保存到结构体数组中。
2、能根据输入的学号查询学生,进行信息的修改。
3、能根据输入的学号从结构体数组中删除学生的记录。
4、实现查询功能,能根据输入的学号或年级在屏幕上显示相应的学生信息。
5、能在屏幕上以列表的方式输出所有学生的信息。
三、概要设计1、系统功能根据项目的开发要求,本系统划分成六个主要功能模块:录入学生信息模块、修改学生信息模块、删除学生信息模块、查询学生信息模块、输出模块和推出模块。
系统功能机构图如下:2、重要数据的数据结构设计学生学籍的记录项用结构体Stu message表示,包括6个属性,stuno,name、spec、grade、sex、birthday 分另U代表学生的学号、专业、年级、性另U和出生日期,其中birthday 类型为自定义的结构体类型Date.Struct stumessage {Char stuno[11]: // 学号Char name[9]: // 姓名Char spec[2]: // 专业Char grade: // 年级Char sex : // 性别Stuct date birthday: // 出生日期};日期类型date包括三个属性,分别代表年、月、日Struct date{int year : // 年Int month: //Int day: // H};3、函数设计学籍管理系统程序采用了结构化程序设计的思想,由1个.h 头文件和3个C源文件组成。
程序中除了主函数外,共设计了以下14个函数,分别包含在3个.c源文件中。
以下是这些函数原型及功能设计。
(1) void sysinfo(void)函数功能:在屏幕上输入系统及信息并等待用户响应。
C程序学生管理系统以下是用C语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)#include"stdio.h"#include”stdlib。
h"#include"string。
h”typedefstruct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedefstruct unit//定义接点{studentdate;struct unit*next;}unit;unit大build()//建立链表并返回指针{unit*p;if((p=(unit*)malloc(sizeof(unit)))==NULL){printf("二>初始化失败!”);return0;}else{p—>next=NULL;p-〉date.number=O;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit大head)//增加学生{unit*p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”二〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("二〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q二二NULL)n二1;while(q){if(q->date.number==m){prinTf("二>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL)n=1;}}}p一〉date。
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h> #define N 3 #define CODE 123 #define LEN sizeof(struct student) typedef struct date{char year[5];// 年char month[5];// 月char day[5];// 日}DATE;struct student{char NO[10];// 学号char name[10];// 姓名char age[5];// 年龄char sex[3];// 性别DATE birthday;// 出生日期char origo[20];// 籍贯char college[10];// 学院char major[10];// 专业char achieve[10];// 奖惩struct student *next;};typedef struct student STU;STU *head=NULL;int n,i=0;void show_stu();// 显示菜单功能void menu_stu();// 选择菜单功能void creat_stu();// 建立链表void input_stu();// 输入功能void print_stu();// 浏览功能void search_NO();// 以学号的方式查找信息void search_name();// 以姓名的方式查找信息void insert_stu();// 插入功能void delete_stu();// 删除功能void revise_stu();// 修改功能void save_stu();// 保存功能void code_stu();// 输入密码void arrage_stu();// 排序功能main(){code_stu(); creat_stu(); menu_stu();}void code_stu() // 输入密码{int start,end,code,i=0;do{i++;if(i>N){ i=1;printf("\t\t 密码错误!请10 秒后重新输入密码:\n"); start=time(NULL);END: end=time(NULL); if(difftime(end,start)==10) //10 秒后重新输入密码goto end;elsegoto END;}end:printf("\t\t 这是第%d 次输入密码(数字):\n",i); scanf("%d",&code);} while(code!=CODE);}void creat_stu(){long size;STU *p,*q;char c;FILE *fp; // 文件指针char ch; // 用来接收读取到的字符head=(STU*)malloc(sizeof(STU));head->next=NULL;if((fp=fopen("fname.txt","r"))==NULL ) // 判断文件是否打开成功{// 打开文件失败了printf("\t\t 没有找到该文件,请查证!\n"); return;} ch=fgetc(fp); // 读取第一个字符size=ftell(fp);if(!size){printf("\t\t 这是空表!\n");printf("\n");return;}printf("\n");printf("\t\t 文档有记录,是否要清空所有记录(y/n)?\t");scanf(" %c",&c);if(c=='Y'||c=='y'){fp=fopen("fname.txt","w+"); // 以只读方式.如果这个文件存在, 就清空, 如果不存在就创建size=ftell(fp);if(!size){printf("\t\t 这是空表!\n");printf("\n");return;}}rewind(fp); // 将文件的位置指针重新移到文件头p=head;while(!feof(fp)){ q=(STU*)malloc(sizeof(STU));fscanf(fp,"%s %s %s %s %s %s %s %s %s %s %s\n",q->NO,q->name,q->age,q->sex,q->birthday.yearJq->birthday.month,q->birthday.day,q->origo,q->college,q->major,q->achieve);p->next=q;p=q;}q->next=NULL;fclose(fp);// 关闭数据文件}void input_stu() // 录入功能{STU *p=NULL,*q=NULL;char c;int n=0;p=head; doq=(STU*)malloc(sizeof(STU));printf( 录入信息**************** **\n");printf("\t\t 学号:");scanf("%s",q->NO); printf("\t\t 姓名:"); scanf("%s",q->name); printf("\t\t 年龄:");scanf("%s",q->age); printf("\t\t 性别:");scanf("%s",q->sex);printf("\t\t 出生年月:");scanf("%s %s %s",q->birthday.year,q->birthday.month,q->birthday.day);printf("\t\t 籍贯:");scanf("%s",q->origo); printf("\t\t 学院:"); scanf("%s",q->college); printf("\t\t 专业:");scanf("%s",q->major); printf("\t\t 奖惩信息:"); scanf("%s",q->achieve); printf("\n");if(head->next==NULL) // 录入信息之前,链表为空,则直接将节点连接{ p->next=q;q->next=NULL;}else{ while(p->next!=NULL) // 若链表不为空,则先遍历整个链表,再将节点连接{ p=p->next;} p->next=q; q->next=NULL;}save_stu();printf("\t\t 是否还要继续录入( Y/N) ?\t"); scanf(" %c",&c);} while(c=='Y'||c=='y');void print_stu()// 浏览功能{STU *p=NULL;int i=0;if(head->next==NULL){printf("\t\t 文档无信息!请先录入信息\n");printf("\n");return;}else// 若链表不为空,则遍历整个链表,并输出信息{printf("\t\t 文档有记录!\n");printf("\n");p=head->next;while(p!=NULL){i++;printf("\t\t 这是第%d 个学生:\n",i);printf("\t\t 学号: %s\n",p->NO);printf("\t\t 姓名: %s\n",p->name);printf("\t\t 年龄:%s\n",p->age);printf("\t\t 性别:%s\n",p->sex);printf("\t\t 出生月: %s %s %s\n",p->birthday.year,p->birthday.month,p->birthday.day);printf("\t\t 籍贯:%s\n",p->origo);printf("\t\t 学院:%s\n",p->college);printf("\t\t 专业:%s\n",p->major);printf("\t\t 奖惩信息:%s\n",p->achieve); printf("\n");p=p->next;}}return;}void delete_stu()// 删除功能{STU *p,*q;int i=0;char NO[10];if(head->next==NULL)printf("\t\t 文档无信息!请先录入信息\n"); printf("\n");}else// 若链表不为空,则遍历链表{printf("\t\t 文档有记录 !\n");printf("\n");printf("\t\t 你想删除学生的学号: \n");scanf("%s",NO);p=head;q=p->next;while(q!=NULL){if(!strcmp(q->NO,NO))// 如果找到要删除的信息,进行删除操作 {月: %s %s %s\n",q->birthday.year,q->birthday.month,q->birthday.day); printf("\t\t 籍贯: %s\n",q->origo); printf("\t\t 学院: %s\n",q->college);printf("\t\t 专业: %s\n",q->major); printf("\t\t 奖惩信息: %s\n",q->achieve); if(q->next!=NULL) // 删除的信息不在尾节点{p->next=q->next;free(q);printf("\t\t 删除成功! \n"); save_stu();return;}else// 删除的信息在尾节点{ p->next=NULL;free(q);printf("\t\t 删除成功! \n");save_stu();return;}}else // 若果没有找到要删除的信息i=1;printf("\t\t 你要删除学生的信息 :\ printf("\t\t 学号: %s\n",q->NO); printf("\t\t 姓名: %s\n",q->name); printf("\t\t 年龄: %s\n",q->age); printf("\t\t 性别: %s\n",q->sex); printf("\t\t出 ");p=p->next; q=q->next;if(!i)〃如果为真,即(!i==1),没有该信息{ printf("\t\t 请查证 ,没有该生信息! \n");}}}void revise_stu() // 修改信息{STU *p ; int a,i=0;char c,NO[10]; if(head->next==NULL){printf("\t\t 文档无信息!请先录入信息 \n"); printf("\n");return;}printf("\t\t 文档有记录 !\n");printf("\n");printf("\t\t 你想修改学生的学号: \n");scanf("%s",NO);p=head;while(p!=NULL){if(!strcmp(p->NO,NO))// 如果找到匹配的信息,则进行选择修改内容 {i=1;printf("\t\t 学院: %s\n",p->college);printf("\t\t 专业: %s\n",p->major);printf("\t\t 奖惩信息 :%s\n",p->achieve); printf("\n"); printf("\t\t 学号: %s\n",p->NO);printf("\t\t 姓名: %s\n",p->name);printf("\t\t 年龄: %s\n",p->age);printf("\t\t 性别: %s\n",p->sex);printf("\t\t出 生 printf( “******************* 你要修改的学生是 月: %s %s %s\n",p->birthday.year,p->birthday.month,p->birthday.day);**********************\n");do{printf(" ***************** 修改%s的信息******************* *\n",NO);printf("\t\t1. 学号\n");printf("\t\t2. 姓名\n");printf("\t\t3. 年龄\n");printf("\t\t4. 性别\n");printf("\t\t5. 出生年月\n");printf("\t\t6. 籍贯\n");printf("\t\t7. 学院\n");printf("\t\t8. 专业\n");printf("\t\t9. 奖惩信息\n");printf("\t\t 选择你想修改的内容!\n"); scanf("%d",&a);switch(a){getchar();case 1:printf("\t\t 修改学生学号为:\t"); scanf("%s",p->NO);printf(" 修改成功!\n");break;case 2:printf("\t\t 修改学生姓名为:\t"); scanf("%s",p->name); printf(" 修改成功!\n");break;case 3:printf("\t\t 修改学生年龄为:\t"); scanf("%s",p->age);printf(" 修改成功!\n");break;case 4:printf("\t\t 修改学生性别为:\t"); scanf("%s",p->sex);printf(" 修改成功!\n");break;case 5:printf("\t\t 修改学生出生年月为:\t");scanf("%s %s %s",p->birthday.year,p->birthday.month,p->birthday.day); printf (" 修改成功!\n");break;case 6:printf("\t\t 修改学生籍贯为:\t");scanf("%s",p->origo);printf(" 修改成功!\n");break;case 7:printf("\t\t 修改学生学院为:\t");scanf("%s",p->college);printf(" 修改成功!\n");break;case 8:printf("\t\t 修改学生专业为:\t");scanf("%s",p->major);printf(" 修改成功!\n");case 9:printf("\t\t 修改学生奖惩信息为:\t");scanf("%s",p->achieve);printf(" 修改成功!\n");break;case 0:exit(0);}save_stu();printf("\t\t 是否继续修改( Y/N)?\t"); scanf(" %c",&c);}while(c=='y'||c=='Y');return;}else // 若没有找到匹配的信息,则将指针向后移动{p=p->next;}}if(!i) // 如果遍历链表,仍然没有找到,则说明没有该信息printf("\t\t 请查证,没有该生的信息!\n");i=0;}void insert_stu()// 插入功能{STU *p,*q;int a,i= 1,n=0 ;p=head;while(p!=NULL) // 遍历链表{if(p->next!=NULL)// 若不是尾节点,则n++n++;}p=p->next; // 否则将指针向后移动}printf("\t\t 你想插入第几个位置:\t"); scanf("%d",&a);if(a>n+1||a<1)// 判断插入的位置是否合法{printf("\t\t 插入位置不合理!\n"); return;} q=(STU*)malloc(sizeof(STU));printf("****************** 插入信息******************\n"); printf("\t\t 学号:");scanf("%s",q->NO);printf("\t\t 姓名:"); scanf("%s",q->name);printf("\t\t 年龄:"); scanf("%s",q->age);printf("\t\t 性别:"); scanf("%s",q->sex);printf("\t\t 出生年月:");scanf("%s %s %s",q->birthday.year,q->birthday.month,q->birthday.day); printf("\t\t 籍贯:");scanf("%s",q->origo);printf("\t\t 学院:"); scanf("%s",q->college);printf("\t\t 专业:"); scanf("%s",q->major);printf("\t\t 奖惩信息:"); scanf("%s",q->achieve);printf("\n");p=head;while(p!=NULL) // 遍历链表{if(i==a) // 如果插入位置与定义的相同{if(p->next!=NULL) // 插入的位置不是尾节点{q->next=p->next;p->next=q;printf("\t\t 插入成功"); printf("\n");save_stu();return;}else // 插入的位置是尾节点{p->next=q; q->next=NULL; printf("\t\t 插入成功 "); printf("\n");save_stu(); return;}}else // 如果插入位置与定义的不同,则将指针向后移动{p=p->next;i++;}}}void search_NO() // 以学号的方式查询学生信息{STU *p;int i=0;char NO[10];if(head->next==NULL){printf("\t\t 文档无信息!请先录入信息 \n"); printf("\n");return;}printf("\t\t 文档有记录 !\n");printf("\n");printf("\t\t 你想查找学生的学号 :\t");scanf("%s",NO);p=head;while(p!=NULL)// 同上{if(!strcmp(p->NO,NO))// 同上你要查找的学生是**********************\n"); %s\n",p->NO);%s\n",p->name); %s\n",p->age);{printf( "*** printf("\t\t printf("\t\t printf("\t\t 学号 姓名 年龄printf("\t\t 性别:%s\n",p->sex);printf("\t\t 出生月:%s %s %s\n",p->birthday.year,p->birthday.month,p->birthday.day);printf("\t\t 籍贯:%s\n",p->origo);printf("\t\t 学院:%s\n",p->college);printf("\t\t 专业:%s\n",p->major);printf("\t\t 奖惩信息:%s\n",p->achieve); printf("\n");return;}else{p=p->next;}}if(!i){printf("\t\t 请查证,没有该生信息!\n");}i=0;}void search_name()// 以姓名的方式查询学生信息{STU *p;int i=0;char name[10];if(head->next==NULL){printf("\t\t 文档无信息!请先录入信息\n");printf("\n");return;}printf("\t\t 文档有记录!\n");printf("\n");printf("\t\t 你想查找学生的姓名:\t");scanf("%s",name);p=head; while(p!=NULL) {if(!strcmp(p->name,name))printf( 你要查找的学生是******************** **\n");printf("\t\t 学号:%s\n",p->NO);printf("\t\t 姓名:%s\n",p->name);printf("\t\t 年龄:%s\n",p->age);printf("\t\t 性别:%s\n",p->sex);printf("\t\t 出生月:t%s %s %s\n",p->birthday.year,p->birthday.month,p->birthday.day);printf("\t\t 籍贯:%s\n",p->origo);printf("\t\t 学院:%s\n",p->college);printf("\t\t 专业:%s\n",p->major);printf("\t\t 奖惩信息:%s\n",p->achieve);printf("\n");return;}else{p=p->next;}}if(!i){printf("\t\t 请查证,没有该生信息!\n");}i=0;}void arrage_stu()// 按学号排序{STU *p,*p1,*p2,*p3;STU h, t;if (head->next== NULL){printf("\t\t 文档无记录!请输入\n");printf("\n");return;}printf("\t\t 文档有记录!\n");printf("\n");h.next=head;p=&h;while (p->next!=NULL){p=p->next;}p=p->next=&t;while (p!=h.next)p3=&h;p1=p3->next;p2=p1->next;while (p2!=p){if (strcmp( p1->NO , p2->NO )<0){p1->next=p2->next;p2->next=p1;p3->next=p2;p3=p2;p2=p1->next;}else{p3=p1;p1=p2;p2=p2->next; }}p=p1;}while (p->next!=&t){p=p->next;}p->next=NULL;save_stu();return;}void save_stu()// 保存信息{printf("\n");printf(" ***************** 信息已保存成功);STU *p=NULL;FILE *fp;char *filename="fname.txt"; if((fp=fopen("fname.txt","w"))==NULL) { printf("\t\t 打不开文件!\n"); return;}if(head->next==NULL)printf("\n");printf("\t\t 信息已为空!\n");return;}elsep=head->next;while(p!=NULL){fprintf(fp,"%s %s %s %s %s %s %s %s %s %s %s\n",p->NO,p->name,p->age,p->sex,p->birthday.yearp->birthday.month,p->birthday.day,p->origo,p->college,p->major,p->achieve);p=p->next;}printf("\n");printf("\t\t 保存完毕!\n"); fclose(fp);}void show_stu()// 显示菜单功能{printf("\n");printf(" ********************* 菜单******************* **\n");printf("\t\t1. 录入信息\n");printf("\t\t2. 显示信息\n");printf("\t\t3. 删除信息\n");printf("\t\t4. 修改信息\n");printf("\t\t5. 插入信息\n");printf("\t\t6. 以学号方式查询信息\n"); printf("\t\t7. 以姓名方式查询信息\n"); printf("\t\t8. 排序\n");printf("\t\t9. 清屏\n");printf("\t\t0. 退出\n");printf(" ********************************************* **\n");printf("\t\t 请选择:\t");printf("\n");}void menu_stu()// 执行菜单功能{int c;show_stu();while(1)scanf("%d",&c);switch(c)getchar();case 1: input_stu(); break;case 2: print_stu(); break;case 3:delete_stu(); break;case 4:revise_stu(); break;case 5: insert_stu(); break; case 6: search_NO(); break; case 7: search_name(); break; case 8: arrage_stu(); break; case 9:system("cls");// 清屏break; case 0:exit(0);}show_stu();。
#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语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考) #include"stdio.h"#include”stdlib。
h"#include"string。
h”typedef struct student//定义学生{char name[10];int number;char sex[2];int math;int eglish;int clanguge;int average;}student;typedef struct unit//定义接点{student date;struct unit *next;}unit;unit* build()//建立链表并返回指针{unit *p;if((p=(unit*)malloc(sizeof(unit)))==NULL){ printf("=>初始化失败!”);return 0;}else{p—>next=NULL;p-〉date.number=0;//头结点存放学生人数printf("初始化成功!\n");return p;}}void add(unit *head)//增加学生{unit *p,*q;int m,n=0;q=head-〉next;p=(unit*)malloc(sizeof(unit));printf(”=〉请输入新生姓名!\n");gets(p—>);fflush(stdin);printf("=〉请输入学号!\n");while(n==0){scanf("%d",&m);fflush(stdin);if(q==NULL) n=1;while(q){if(q->date.number==m){printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");q=head-〉next;break;}else{q=q->next;if(q==NULL) n=1;}}}p—〉date。
采⽤MVC模式设计学⽣信息管理系统基于jsp,servlet,mysql设计学⽣信息管理系统1.系统功能 1>⽤户登录⽤户输⼊⽤户名密码,系统验证登录,登录成功进⼊主页,否则返回登录页⾯。
要求检查⾮空输⼊,登录失败时进⾏提⽰。
2>⽤户注册⽤户输⼊⽤户名密码进⾏注册。
要求⽤户名唯⼀,检查⾮空输⼊,对密码进⾏⼆次确认。
3>添加学⽣信息⽤户输⼊学号、姓名、性别、出⽣⽇期、QQ号、⼿机号、住址,上传近照,添加成功后以表格形式显⽰所有学⽣信息;添加失败提⽰后进⼊添加学⽣页⾯。
其中学号、姓名、性别、出⽣⽇期、近照为必填字段,要求进⾏⾮空检查,数据格式验证,上传⽂件名唯⼀。
4>修改学⽣信息⽤户输⼊学号、姓名、性别、出⽣⽇期、QQ号、⼿机号、住址,上传近照,修改成功后以表格形式显⽰所有学⽣信息;修改失败提⽰后进⼊修改学⽣页⾯。
其中学号、姓名、性别、出⽣⽇期、近照为必填字段,要求显⽰原始数据,进⾏⾮空检查,数据格式验证,上传⽂件名唯⼀。
5>删除学⽣信息根据学⽣数据ID删除学⽣信息,同时删除上传⽂件。
6>查询学⽣信息⽤户输⼊查询关键字,系统已表格形式显⽰所有学⽣信息。
要求关键字模糊匹配学号和姓名。
7>查看个⼈照⽚⽤户选择不同学⽣,可以查看该学⽣个⼈近照。
8>修改密码⽤户输⼊旧密码,⼆次输⼊新密码,若旧密码正确则修改为新密码;否则提⽰原密码错误。
要求⾮空检查,检查两次输⼊新密码是否⼀致。
9>退出系统退出系统到登录页⾯,并注销⽤户登录状态2.运⾏截图 主页设计模型 分页设计 登录设计模型 添加学⽣信息 修改密码 显⽰照⽚3.获取项⽬源码——添加⼩编QQ:1786347400(答案:npcy),点波关注不迷路哦。
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
C++简单学生成绩管理系统(C++课程设计)C++学生成绩管理系统要求使用C++语言编写学生成绩管理系统,能够进行添加、删除、修改、输入和输出等操作,并使用面向对象的原理实现该系统。
学生成绩管理系统分析:学生成绩管理系统分为8个模块,分别是:添加学生信息、输出学生成绩、查找学生成绩、修改学生成绩、删除学生成绩、学生成绩排序、保存数据到文件和读取文件中学生成绩的模块。
学生成绩管理系统结构:Main()函数Menu()函数Student类Add()函数Output()函数Find()函数Modify()函数Deleted()函数Sort()函数Save()函数Load()函数重载符号Student类私有成员:char name[20];char sex[5];int number;int score[3];int total;int average;各个子函数功能及其流程:1.首先定义一个学生类Class Student,并定义其各个私有变量和公有函数。
2.Student()构造函数,用于初始化学生类中的各个变量并记录。
3.Add()函数:用于添加学生信息的函数,包括学号、姓名、成绩等内容。
主函数main():菜单函数menu()选择菜单中的选项添加学生信息调用Add()函数调用重载<<并添加信息4.Output()函数:用于输出学生信息,包括学号、姓名、各科及总分、平均成绩。
主函数main():菜单函数menu()选择菜单中的选项输出学生信息调用Output()函数输出学生信息5.Find()函数:用于查找学生各项信息。
主函数main():菜单函数menu()选择菜单中的选项查找学生信息调用Find()函数要求输入学生姓名查找并输出学生信息6.Modify()函数:用于修改学生各项信息。
主函数main():菜单函数menu()选择菜单中的选项修改学生信息调用Modify()函数要求输入学生姓名修改并保存学生信息7.Deleted()函数:用于删除学生信息。
以下内容是本人将近一个星期的劳动成果;C语言程序设计,作为本学期最后一次实训。
设计内容:学生信息查询系统可实现:1录入学生信息2显示学生成绩3修改学生成绩4删除学生成绩5按学号查询学生信息6按学好显示学生信息7按总成绩递减输出学生信息其中学生的信息包括:学生总人数,学号,姓名,性别,英语,数学,C语言三科单科成绩及总成绩以下为源程序内容:#include <stdio.h>#include <string.h>//strcpy()#include<process.h>//system(),exit()#include <conio.h>//getch()#define M 100/*全局变量*/int num=-1;/*学生数,从STU[0]开始记录学生信息*/struct studen{long id;/*学号*/char name[8];/*姓名*/char sex[2];/*性别*/intmath;/*数学*/intenglish;/*英语*/intc_program;/*C语言*/inttotal;/*总分*/}STU[M];/*函数声明*/voidpage_title();//显示主菜单void student_new();//输入学生信息void student_del();//删除学生信息void student_edit();//修改学生信息void score_search();//按学号查询成绩void score_sort();//按成绩排序void id_sort();//按学号排序void show();//显示学生记录//void save();//void display();void left();void page_head1();/*打印表头1*/void page_head2();/*打印表头2*/intfind(long);/*按学号查找学生*/voidshow_one(int);/*显示一条记录*/void input_one(int);/*输入一个新学生的信息*/void count(int);/*计算一个新学生的总分*/void in_menu();/*按任意键进入主菜单*//*主函数*/void main(){//display();while(1){ page_title();}}/*主菜单*/void page_title(){char c;system("cls");/*清屏*/printf("\n\n>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>学生成绩管理系统<<<<<<<<<<<<<<<<<<<<\n\n");printf("\t\t\t\t1录入学生成绩记录\n\n");printf("\t\t\t\t2显示学生成绩记录\n\n");printf("\t\t\t\t3修改学生成绩记录\n\n");printf("\t\t\t\t4删除学生成绩记录\n\n");printf("\t\t\t\t5按学号查询学生记录\n\n");printf("\t\t\t\t6按学号显示学生记录\n\n");printf("\t\t\t\t7按总成绩递减输出\n\n");printf("\t\t\t\t8保存\n\n");printf("\t\t\t\t0退出\n\n");printf("********************************************************** ****************\n");printf("请用数字键0-8选择操作:\n");/*填充程序,完成主菜单显示*/c=getchar();system("cls");switch(c){case'1':student_new();break;case'2':show();break;case'3':student_edit();break;case'4':student_del();break;case'5':score_search();break;case'6':id_sort();break;case'7':score_sort();break;//case'8':save();break;case'0':left();}}/*录入学生基本信息*/void student_new(){int i,n;printf("请输入学生的个数(1-%d)",M);scanf("%d",&n);while(!(n>0 && n<=M)){printf("\n输入的学生人数太多,请重新输入学生人数:");scanf ("%d",&n);}page_head1();while(n--){num++;input_one(num);count(num);}}/*删除学生基本信息*/voidstudent_del(){long id;char c;int n;while(1){printf("请输入你要删除学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1)break;elsesystem("cls");}page_head2();show_one(n);printf("\n请确认删除吗?请输入Y或者N");c=getch();if('Y'==c || 'y'==c){STU[n]=STU[num];num--;}}/*按学号查找学生*/int find(long id){int n;for(n=0;n<=num;n++)if(STU[n].id==id) return n;return -1;}/*输入一个新学生的信息*/void input_one(intn){scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].sex,&STU[n].math,&STU[n].english,&STU[n].c_program);printf("---------------------------------------------------------------------\n");}/*显示所有记录*/void show(){inti,j;page_head2();for(i=0;i<num+1;i++){//if(-1==n)//j=num-i;//else//j=i;show_one(i);}in_menu();}/*显示一条记录*/void show_one(intn){if(strlen(STU[n].name)>=10){printf("%ld\t\t%s\t\t%s\t\t",STU[n].id,STU[n].name,S TU[n].sex);}else{printf("%ld\t\t%s\t\t%s\t",STU[n].id,STU[n].name,STU[n].sex);}printf ("%3d\t%3d\t%3d\t%3d\t\n",STU[n].math,STU[n].english,STU[n].c_program,STU[n].t otal);printf("----------------------------------------------------------------------\n");}/*计算一个新学生的总分*/void count(intn){STU[n].total=STU[n].english+STU[n].math+STU[n].c_program;}/*退出*/voidleft(){exit(0);}/*修改信息*/void student_edit(){long id;int n;while(1){printf("请输入你要修改学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1)break;elsesystem("cls");}page_head2();show_one(n);printf("\n请输入新的信息:\n");page_head1();scanf("%ld%s%s%d%d%d",&STU[n].id,STU[n].name,STU[n].se x,&STU[n].math,&STU[n].english,&STU[n].c_program);count(n);}/*进入主菜单*/void in_menu(){printf("\n请按任意键进入主菜单");getch();}/*按学号查询成绩*/void score_search(){long id;int n;printf("请输入你要修改学生的学号:");scanf("%ld",&id);printf("\n");n=find(id);if(n!=-1){page_head2();show_one(n);}elseprintf("不存在该学号学生信息!!");in_menu();}/*按学号排序显示*/void id_sort(){int i=0;int n;longmin=STU[0].id;for(i=1;i<=num;i++){if(STU[i].id<min)min=STU[i].id;}page_head2();for(i=0;i<=num;){n=find(min++);if(n!=-1){i++;show_one(n);}}in_menu();}/*按总成绩冒泡降序显示*/voidscore_sort(){struct student t;int i,j;system("cls");for(i=0;i<num;i++){for(j=0;j<num-i;j++){if(STU[j].total<STU[j+1].total){t=STU[j];STU[j]=STU[j+1];STU[j+1]=t;}}}show();}/*打印表头2*/voidpage_head2(){printf("**************************************************** ******************\n");printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\t总成绩\n");printf("**********************************************************************\n");}/*打印表头1*/voidpage_head1(){printf("**************************************************** **********\n");printf("学号\t\t姓名\t\t性别\t数学\t英语\tC语言\n");printf("************************************************************ **\n");}。
#include #include #include #include using namespace std; #define M 200 //可以存信息总量 int N=0; //学生总量 class student { public: student(); void set(); //初始化信息,第一次对信息的录入 void add(); //添加学生信息 void del(); //删除某学生信息 void change(); //修改某学生信息 void search(); //查询某学生信息 void display(); //显示全部学生信息 private: static int num; string name,sex,age,birthday,address,tel,Email; }; int student::num=1000;
student::student() {} ///初始化文件
void student::set() { int i; string setname,setsex,setage,setbirthday,setaddress,settel,setEmail; ofstream outfile; outfile.open("f1.txt",ios::out); //----打开文件---- if(!outfile) { cerr<<" open error"
///添加文件 void student::add() { string addname,addsex,addage,addbirthday,addaddress,addtel,addEmail;
//----以追加的方式录入信息,直接将信息追加到以前文件的末尾---- ofstream outfile("f1.txt",ios::app); if(!outfile) { cerr<<" open error" ///删除文件 void student::del() { int k,i; int num[M]; string name[M],sex[M],age[M],birthday[M],address[M],tel[M],Email[M]; ifstream infile("f1.txt",ios::in); if(!infile) { cerr<<" open error" ///修改文件 void student::change() { int i,k; int num[M]; string name[M],sex[M],age[M],birthday[M],address[M],tel[M],Email[M]; ifstream infile("f1.txt",ios::in); if(!infile) { cerr<<" open error"