当前位置:文档之家› 学生管理系统(数据结构课程设计之完整代码)

学生管理系统(数据结构课程设计之完整代码)

学生管理系统(数据结构课程设计之完整代码)
学生管理系统(数据结构课程设计之完整代码)

数据结构课程设计

学生信息管理系统C语言编写仅供参考:

#include

#include

#include

#include

#define LEN sizeof(LNode)

typedef struct LNode

{

//用于存放学生信息节点

int stuNumber;

char telenum[50];

int age;

char chass[50];

char deptName[50];

/*char zhuanY e[50];

char adress[50];*/

char name[20];

struct LNode *next;

}LNode,*Link;

//****************创建链表结点************************************************************************** Link createLink(Link L)

{ //初始化定义函数,声明变量

void inserStu(Link L,Link Elem);//定义插入函数

int count(Link L);

int temp;

temp=count(L);

printf("节点个数为%d:\n",temp);

Link p;

int num=1, stuNumber;

char telenum[50];

char name[20];

int age;

/* char deptName[50];

char adress[50];

char zhuanY e[50];*/

char chass[50];

//开始输出学生信息

while(1)

{

printf("请输入学生的信息:学号,姓名,年龄,班级,院系,专业,家庭住址,电话号码\n");

printf("学号输入负数结束!\n");

printf("请输入学号%d: ",num);

scanf("%10d",&stuNumber);

if(stuNumber<0) {break;}

printf("请输入姓名%d: ",num);

getchar();

gets(name);

printf("请输入年龄%d: ",num);

scanf("%d",&age);

printf("请输入班级%d: ",num);

getchar();

gets(chass);

printf("请输入电话号码: ",num);

getchar();

gets(telenum);

/* printf("请输入院系%d: ",num);

getchar();

gets(deptName);*/

if(stuNumber>=0)

{

p=(Link)malloc(LEN);

p->stuNumber=stuNumber;

strcpy(p->chass,chass);

/* strcpy(p->deptName,deptName);*/

p->age=age;

strcpy(p->telenum,telenum);

strcpy(p->name,name);//插入新结点

inserStu(L,p);

num++;

}

}

return (L);

}

//******************打印头结点为L的学生记录********************************************************

void printList(Link L)

{

printf("\n*********************学号,姓名,年龄,班级,电话号码

**************************\n");

printf("\n 学号姓名年龄专业班级电话号码\n");

int n=1;

Link p=L;

int count(Link L);

int temp;

temp=count(L);//结点个数:

if(temp==0)printf("系统中没有元素\n");//判断学生管理系统中有无信息

else

while(p->next!=NULL)

{

printf("%2d%-9d",n,p->next->stuNumber);

printf("%-8s %-5d %-12s %s \n",p->next->name, p->next->age,p->next->chass,p->next->telenum/*p->next->deptName*/);//首个字符打印不出来

p= p->next;

n++;

}

printf("\n****************************************************************** *****************\n");

return;

}

//********************************插入学生信息**************************************

void inserStu(Link L,Link Elem)

{

Link prior(Link L,Link p);

Link p=L->next;//*******%%%%****

while(p!=NULL&&Elem->stuNumber>=p->stuNumber)

{

if(p->stuNumber==Elem->stuNumber)

{

printf("重复输入学号,输入失败!");return ;

}

p=p->next;

}//确定Elem的插入位置

if(p==NULL)

{

p=prior(L,p);Elem->next=NULL;p->next=Elem;//若为空表,插入到头结点之后}

else

{

p=prior(L,p);Elem->next=p->next;p->next=Elem;

}

}

//***********************找到当前地址元素的前一元素的地址*************************************************************************

Link prior(Link L,Link p)

{

if(L->next==NULL)return(L);

Link p_prior=L;

while(p_prior->next!=p)

{

p_prior= p_prior->next ;

}

return (p_prior);

}

//********************************8按学号查询学生信息***************************************************************************

int searchName(Link L,char n[])

{

int flag=0;//标志要查找的学生和学生记录中的姓名是否匹配

Link p=L->next;

int seat=1;

if(L->next==NULL||L==NULL)printf("没有学生信息\n");

else

{

while(p!=NULL)

{

if(!strcmp(p->name,n))//比较要查找的姓名是否和当前学生信息所指的姓名匹配

{

flag=1;//输入姓名匹配

printf("要查找的是第%d位学生\n",seat);

printf("学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%s\n",p->stuNumber,p->name,p->age,p->chass,p->telenum);

}

p=p->next ;seat++;

}

}

return flag;

}

//****************************************按学号查找学生信息

*********************************************************************

int searchNum(Link L,int n)

{

int flag=0;//标志要查找的学生和管理信息系统中的学号是否匹配

Link p=L->next;

int seat=1;

if(L->next==NULL)printf("没有学生信息\n");

else

{

while(p!=NULL)

{

if(p->stuNumber<=n)

{

if(p->stuNumber==n)//比较要查找的学号是否和当前学生信息所指的学号匹配

{

flag=1;//输入学号匹配

printf("要查找的是第%d位学生\n",seat);

printf("学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%s\n",p->stuNumber,p->name,p->age,p->chass,p->telenum);

}

}

p=p->next ;seat++;

}

}

return flag;

}

//*******************************从通讯录中删除第i个元素*************************************************************************** void deleteElem(Link L,int i)

{

Link p=L;

int j=0;

while(p->next&&j

{

p= p->next;j++;

}

if(!(p->next))//判断i时候合法,i不能大于元素的个数,也不能小于等于0

{

printf("第%d个学生删除失败\n",i);

return;

}

Link q=p->next;

p->next=q->next;

free(q);

}

//*******************按姓名删除学生信息******************************************************************************* ***************

int deleName(Link L, char n[])

{ void deteS tu(Link);

int flag=0;//判断要删除的学生与系统中的姓名是否匹配

Link p=L->next;

int seat =1;

if(L->next==NULL){printf("\n删除提示:系统中没有元素,删除失败!\n");deteStu( L);} else

{

while(p!=NULL)

{

if(!strcmp(p->name ,n))//比较名字是否匹配

{

flag=1;

printf("%s",p->name );

p=p->next;

deleteElem(L,seat);//删除第i个学生的信息

}

else

{

p=p->next ;seat++;

}

if(flag)printf("被删除了\n");

}

}

return flag;

}

//*****************按学号删除学生信息*****************************************************************

int deleNum(Link L,int n)

{ void deteStu(Link);

int flag=0;

Link p=L->next ;

int seat=1;

if(L->next==NULL)

{

printf("\n删除提示:系统中没有元素,删除失败!\n");deteS tu( L);

}

else

{

while(p!=NULL)

{

if(p->stuNumber==n)

{

flag=1;

printf("%d",p->stuNumber);

p=p->next;

deleteElem(L,seat);

break;

}

p=p->next ;

seat++;

}

if(flag){

printf("被删除了\n");}

else{

printf("没有找到学生信息\n");

}

}

return flag;

}

//***************************************************************************** ********

void searchWay1(Link L)

{ void searchMenu(Link L);

int searchWay=0;//控制跳出循环,再次选择查询方式

if(searchWay==0)

{

printf("请输入要查询的学生的学号:\n");

int n,s;

scanf("%d",&n);

s=searchNum(L, n);

if(s==0)printf("查找失败\n");

searchWay=1;

}

if(searchWay==1)

{

searchMenu( L);

}

}

//***************************************************************************** ***

void searchWay2(Link L)

{ void searchMenu(Link L);

int searchWay=0;//控制跳出循环,再次选择查询方式

if(searchWay==0)

{

char n[20];int flag;

printf("请输入要查询的学生姓名\n");

char temp2=getchar();

gets(n);

flag= searchName(L,n);

if(flag==0)printf("查找失败!\n");

searchWay=1;

}

if(searchWay==1)

{

searchMenu( L);

}

}

//*****************************************************************8

void searchMenu(Link L)

{

int mainMenu();

printf(" ********************** 查询菜单************************************** \n");

printf(" *** 1 输入学生学号查询学生信息\n");

printf(" *** 2 输入学生姓名查询学生信息\n");

printf(" *** 3 返回上级菜单\n");

printf(" ********************** 查询菜单

************************************** \n");

printf("请选择1-3: ");

int menu;

scanf("%d",&menu);

switch(menu)

{

case 1:{ searchWay1(L);break;}

case 2:{ searchWay2(L);break;}

case 3:{

break;//跳回主菜单程序

}

}

}

//************************************更新学生信息模块*****************************************

void alterStu(Link L)//按学号更新学生信息

{

int n;printf("请输入要修改的学生学号:");

scanf("%d",&n);

Link p=L->next;

if(p==NULL){printf("学生管理系统没有学生信息!");}

while(p!=NULL)//循环查找学生信息,如果找到该学号则进入循环体更改学生信息

{//***************************************************************************** *****************

if(p->stuNumber==n){

int num=1, stuNumber,age;

char telenum[50];

char name[20];

char chass[50];

printf("***********************更改学生信息*****************************************\n");

printf("请输入学生的学号,姓名和电话号码\n");

printf("请输入学号%d: ",num);

scanf("%d",&stuNumber);

printf("请输入姓名%d: ",num);

getchar();

gets(name);

printf("请输入年龄%d: ",num);

scanf("%d",&age);

printf("请输入班级%d: ",num);

getchar();

gets(chass);

printf("请输入电话号码: ",num);

getchar();

gets(telenum);

p->age=age;

p->stuNumber=stuNumber;

strcpy(p->telenum,telenum);

strcpy(p->name,name);

strcpy(p->chass,chass);

//更新新结点

printf("***********************更改学生信息完毕*****************************************\n");

//***************************************************************************** ********************

}

p=p->next;

}

}

//****************保存学生信息模块*************************************************************************** void keepStu(Link L)

{

Link p=L->next;

FILE* fp;

if((fp=fopen("student.txt","r"))==NULL)//打开文件,不存在此文件则新建

{

fp=fopen("E:\\测试\\student.txt","w");

fclose(fp);

}

fp=fopen("E:\\测试\\student.txt","a");

while(p!=NULL)

{

fprintf(fp,"%d\t%s\t%s\n",p->stuNumber,p->name,p->telenum);

p=p->next;

}

fclose(fp);

printf("文件保存成功!\n");

}

//********************统计结点个数模块

******************************************************************************* ****

int count(Link L)

{

int n=0;

Link p=L->next;

if(p==NULL){printf("不存在学生信息\n");}

while(p!=NULL)

{

p=p->next;

n++;

}

return n;

}

//********************************导入学生信息模块**********************************************************************

Link stuEntry()

{

FILE* fp;

Link p,q ,L;

if((fp=fopen("E:\\测试\\student.txt","r"))==NULL)//打开文件,不存在此文件则新建

{

;

}

L=q=(Link)malloc(LEN);

printf("\n学号姓名手机号\n");

printf("**********************************************************\n");

while(!feof(fp))

{p=(Link)malloc(LEN);

fscanf(fp,"%d\t%s\t%s\n",&p->stuNumber,&p->name,&p->telenum);

printf("\n%d\t%s\t%s\n",p->stuNumber,p->name,p->telenum);

q->next=p;

q=p;

}

q->next=NULL;

fclose(fp);

printf("按任意键结束:");

getch();//返回

return L;

}

//********************添加学生信息**************************************************************************

void AddStu(Link L)

{ int temp;

temp=count(L);

printf("节点个数为%d:\n",temp);

if(temp==0){createLink(L);}//如果没有学生信息则调用初始化函数

createLink(L);

}

//****************删除学生菜单****************************************************

void deteStu(Link L)

{

int flag=0,way,n;

printf("\n************************ 删除菜单********************\n");

printf("\n选择操作方式************* 1:按学号********************\n");

printf(" ************* 2:按姓名********************\n");

printf(" ************* 3: 返回主菜单*********************\n");

printf("\n请输入删除方式:");

scanf("%d",&way);

if(way<1||way>3){deteS tu(L);}

switch (way)

{

case 1: {

printf("请输入要删除的学生学号:");

scanf("%d",&n);

flag= deleNum(L,n);break;

}

case 2:{

char n[20];

printf("请输入要删除的学生姓名:");

char temp1=getchar();

gets(n);

flag=deleName(L,n);break;

}

case 3:{break;}

}

if(flag)

{

printf("删除成功!\n");deteStu(L);

}

}

//**********************主菜单程序****************************************************************************** int mainMenu()

{

printf("\n****************************欢迎使用学生管理信息系统***********************************************\n");

printf("* *** 1 输入学生信息**** * \n");

printf("* *** 2 显示学生信息**** * \n");

printf("* *** 3 查询学生信息**** * \n");

printf("* *** 4 更新学生信息**** * \n");

printf("* *** 5 添加学生信息**** * \n");

printf("* *** 6 删除学生信息**** * \n");

printf("* *** 7 保存学生信息**** * \n");

printf("* *** 8从文件导入学生信息**** * \n");

printf("* *** 0 退出管理信息系统**** * \n");

printf("****************************欢迎使用学生管理信息系统***********************************************");

int menu=0;

printf("请选择0-8:");

scanf("%d",&menu);

if(menu<0&&menu>8)

{

printf("输入无效,请正确输入有效序号0-8:");

scanf("%d",&menu);

}

return menu;

}

//**************************main()程序******************************************************************************* **********************

void main()

{

Link L=(Link)malloc(LEN);//在主函数上首先让结构体指针初始化;

L->next=NULL;

int flag=0;//学生信息是否建立

int menu=0;//菜单选项

do{

menu=mainMenu();

switch(menu)//用于调用子菜单

{

case 1:{L=createLink(L);break;}

case 2:{printList(L); break;}

case 3:{searchMenu(L); break;}

case 4:{alterStu(L) ;break;}

case 5:{createLink(L);break;}

case 6:{deteS tu( L); break;}

case 7:{keepStu( L); break;}

case 8:{L=stuEntry();break;}

case 0:{return;}

}

}while(1);

}

//***************************************************************************** *************************************************

学生管理系统源代码

#include #include #include #include #define INIT_SIZE 10 #define INCRE_SIZE 10 #define SUBJECT_NUM 3 #define LEN 3 void show_Start(); void show_Table(); void addRecord(); void Info_delete(); void deleteRecord(); void delete_Num(int); void delete_Name(char tarName[]); void Info_modify(); void modifyRecord(); void modify_Num(int); void modify_Name(char[]); void Info_query(); void queryRecord(); void query_Num(int); void query_Name(char[]); void display(); void quit(); void menu_CMD(); char *subject[SUBJECT_NUM] = struct STUDENT

{ int num; char name[20]; char sex; float score[SUBJECT_NUM]; }; //struct STUDENT stu[LEN + 1]; //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); int static stuNum = 0; // STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);; int main() { //record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); /* record[1].num = 1001; strcpy(record[1].name,"Jason"); record[1].sex = 'M'; record[1].score[0] = 85.0; record[1].score[1] = 90.0; record[1].score[2] = 95.0; record[2].num = 1002; strcpy(record[2].name,"Jerry"); record[2].sex = 'M'; record[2].score[0] = 85.0; record[2].score[1] = 90.0; record[2].score[2] = 95.0; record[3].num = 1003; strcpy(record[3].name,"Jessie");

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

学生选修课信息管理系统软件工程导论课程设计

湖南人文科技学院计算机系 课程设计说明书 课程名称: 软件工程导论 课程代码: 题目: 学生选修课信息管理系统年级/专业/班: 09级计科2班 学生姓名: 赵浩胡碧山文盼聂惠俊杨晨学号: 09408237 ;09408207 ; 09408203; 09408250; 09408214 指导老师: 颜富强 开题时间: 2010年6月5日 完成时间: 2010年6月30日 2010年6月30日

课程设计任务书及成绩评定 课程名称: 软件工程导论 完成者: 赵浩胡碧山文盼聂惠俊杨晨 1、设计的目的与要求 1)加强学生的实践能力; 2)理解小型系统开发的基本步骤; 3)本系统的功能包括:选修课信息查询模块、注册模块、选修课信息管理模块(包括基本的添加、修改、删除功能)。 2、设计进度及完成情况 3、成绩评定 设计成绩:(教师填写) 指导老师:(签字) 2011 年月日

目录 第一章项目开发计划书 (1) 1.1引言 (1) 1.1.1编写目的 (1) 1.1.2背景 (1) 1.2项目概述 (1) 1.2.1工作内容 (1) 1.2.2主要参加人员 (2) 1.2.3产品 (2) 1.2.4服务 (2) 1.2.5验收标准 (2) 1.2.6本计划的批准者和批准日期 (2) 1.3实施计划 (2) 1.3.1工作任务的分配与人员分工 (2) 1.3.2进度 (3) 1.4支持条件 (3) 1.4.1计算机系统支持 (3) 第二章可行性分析 (4) 2.1可行性研究前提 (4) 2.2 对现有系统的分析 (4) 2.3 建议新系统 (4) 2.3.1 新系统说明 (4) 2.3.2 新系统的流程图 (5) 2.4经济上可行性 (5) 2.5技术可行性 (6) 2.6开发工具的选择 (6) 2.7 新系统的影响 (6) 2.8 结论 (6) 第三章需求分析 (7) 3.1市场需求分析 (7) 3.2系统功能性需求分析 (7) 3.2.1 功能划分 (7) 3.2.2 功能描述 (8) 3.2.2.1 学生注册信息模块 (8) 3.2.2.2 课程信息模块 (8) 3.2.2.3学生登录功能模块 (8) 3.2.2.5选课功能模块 (9) 3.2.2.4选修课查询模块 (9) 3.3 系统非功能性需求 (9) 3.3.1 可用性 (9) 3.3.2 可靠性 (9) 3.4数据字典 (9)

软件工程-银行储蓄管理系统源代码

package src.day01; public class ACC { //父类,以下是共有属性和方法 //卡号 protected static long id; // 名字 protected static String name; // 身份证 protected static String personId; //电子邮件 protected static String email; // 密码 protected static long password; //余额 protected static double balance; public ACC(){ } public ACC(long id,String name,String personId,String email,long password,double balance ){ this.id = id; https://www.doczj.com/doc/a314079036.html, = name; this.personId = personId; this.email = email; this.password = password; this.balance = balance; } // 存款方法 public static void deposit(double money){ balance += money; System.out.println("存款成功,你存入的金额为:" + money); } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { https://www.doczj.com/doc/a314079036.html, = name; } public String getPersonId() {

学生信息管理系统系统源代码

系统源代码 一、登录界面代码 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; public partial class login : System.Web.UI.Page { protected void txtid_Click(object sender, EventArgs e) { txtid.Text = ""; txtpassword.Text = ""; } protected void Button1_Click(object sender, EventArgs e) { string strconn = ConfigurationManager.AppSettings["connStr"]; SqlConnection conn = new SqlConnection(strconn); conn.Open(); DataSet ds=new DataSet () ; SqlDataAdapter da = new SqlDataAdapter("select * from users where userid='" + txtid.Text + "' and userpwd='" + txtpassword.Text + "'", conn);

C++学生管理系统课程设计 源代码

//===================================================================== ============================================ //student.h 定义了抽象类Person,派生了student(及为信息类)、定义了节点类Node、定义了链表类List //===================================================================== ============================================ #ifndef STUDATA_H #define STUDATA_H #include //================================================================ int GetID(); class List; //------------------------------------- class Person{ //抽象类 protected: int ID; //学号 char Name[15]; //姓名 public: virtual bool operator<(Person&)=0; //<运算符重载 virtual bool operator>=(Person&)=0; //>=运算符重载 }; //--------------------------------------------------------------------------------------- class Student:public Person{ //学生类 int Score[4]; //成绩 void SwapData(Student*); //交换数据 public: Student(int =0,char* =NULL,int* =NULL); //构造函数 bool operator<(Person&); //<运算符重载 bool operator>=(Person&); //>=运算符重载 friend ofstream&operator<<(ofstream&,Student*); //<<运算符重载输出到文件 friend ifstream&operator>>(ifstream&,Student*); //>>运算符重载从文件输入 friend ostream_withassign& operator<<(ostream_withassign&,Student*); //<<运算符重载输出到显示器 friend istream_withassign& operator>>(istream_withassign&,Student*); //>>运算符重载从键盘输入 friend class List; }; //---------------------------------------------------------------------------------------------------------------- class Node{ //结点类 Student *Stup; //指向学生对象指针 Node *Prev,*Next; //指向前后结点指针 public: Node(); //构造函数 Node(Student*); //构造函数

数据结构课程设计题目选择

数据结构课程设计题目 说明: (1)选用语言:C或Java语言; (2)需要注明3人(可少于3人)小组各自承担和完成的任务(据此给予成绩); (3)如下带“*”的题目,“*”越多,难度越大一些,分值权重更高---要得到更高分数,推荐选择。 要求: (1) 用中文给出设计说明书(含重要子函数的流程图); (2) 给出测试通过、能实现相应功能的源代码; (3) 测试报告。 0、小学数学四则混合运算试题出题、评价、题库自动生成与组卷系统(****)---已经有2组选择 任务: (1)将随机给出的四则混合运算表达式显示在计算机显示器上,要求应试者给出答案;并且使用堆栈对该表达式求值,同给出的答案进行比较,判断 正确和错误。给出鼓励信息和嘉奖信息; (2)保存多人在不同时间应试的题目与他(或她)给出的答案,评价所出题目的难易程度(通过多人回答正确与否的情况给出),形成题库; (3)按照用户给出的题目难易程度指标(例如让50人的得分满足怎样的正态分布,如90分以上10%,80分以上30%,70分以上30%,60分以上20%,60分 以下10%),从题库中抽取不同的题目,组成试卷。 要求:随机产生的题目中,参加运算的数据随机、运算符随机。题目涉及加减乘除,带括弧的混合运算;随时可以退出;保留历史分数,能回顾历史,给出与历史分数比较后的评价。 1、集合的并、交和差运算---已经有1组选择 任务:编制一个能演示执行集合的并、交和差运算的程序。 要求: (1) 集合的元素限定为小写字母字符[…a?..?z?] 。 (2) 演示程序以用户和计算机的对话方式执行。 实现提示:以链表表示集合。 选作内容: (1) 集合的元素判定和子集判定运算。 (2) 求集合的补集。 (3) 集合的混合运算表达式求值。 (4) 集合的元素类型推广到其他类型,甚至任意类型。 2、停车场管理------已经有2组选择 任务:设停车场是一个可以停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次有北向南排列(大门在最南端,最先到达的第一车停放在车场的最北端),若车场内已停满n辆车,那么后来的车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 要求:以栈模拟停车场,以队列模拟车场外的便道。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停车不收费)。栈以顺序存储结构实现,队列以链表结构实现。 3、哈夫曼码的编/译码系统(**)---已经有1组选择

学生选修课管理系统C++课程设计

#include #include #include #include #include //using namespace std; const int count =3; class situaction; class student { public: int sno; char sname[20]; char sex[3]; int age; char depart[20]; char classno[20]; char lianx[40]; //public: friend void sselect(); friend void supdate(); friend void sdelet(); friend void saccount(); friend void sdisplay(); friend istream & operator >> (istream & in,student &stu) { in>>stu.sno>>stu.sname>>stu.sex>>stu.age>>stu.depart>>stu.classno>>stu.lianx; return in; } friend ostream & operator<< ( ostream & out,student &stu) { out<

学生管理系统程序源代码

#include <> #include <> struct student { long int num; char name[20]; int age; char sex[4]; int e; char m[20]; char b[30]; char p[15]; }; int n=0; struct student stu[100]; struct student *p; void lr(); void ll(); void cx(); void xg(); void sc(); void bc(); void dq(); void px(); void main() { int z; printf("+---------------------------+\n"); printf("| 欢迎使用学生档案管理系统 |\n"); printf("+---------------------------+\n"); printf("提示:为保证您的操作得到保存,请按正常顺序退出系统^_^\n"); do { printf("\n\t\t\t--------------------------------\n"); printf("\t\t\t+ 主菜单 |\n"); printf("\t\t\t--------------------------------\n"); printf("\t\t\t+ [1]----录入学生信息 |\n"); printf("\t\t\t+ [2]----浏览学生信息 |\n"); printf("\t\t\t+ [3]----查询学生信息 |\n"); printf("\t\t\t+ [4]----删除学生信息 |\n"); printf("\t\t\t+ [5]----修改学生信息 |\n");

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#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 /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,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"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

数据结构课程设计题目及要求

实验一~实验四任选一题;实验五~实验九任选一题。 实验一运动会分数统计 一、实验目的: (1)熟练掌握线性表的两种存储方式 (2)掌握链表的操作和应用。 (3)掌握指针、结构体的应用 (4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。 二、实验内容: 【问题描述】 参加运动会的n个学校编号为1~n。比赛分成m个男子项目和w个女子项目,项目编号分别为1~m和m+1~m+w。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为7,5,3,2,1;还有些项目只取前三名,得分顺序为5,3,2。写一个统计程序产生各种成绩单和得分报表。 【基本要求】 产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩)、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。 【测试数据】 对于n=4,m=3,w=2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。 【实现提示】 可以假设m≤20,m≤30,w≤20,姓名长度不超过20个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩)。 【选作内容】 允许用户指定某些项目可采取其他名次取法。

实验二停车场管理 一、实验目的: (1)熟练掌握栈顺存和链存两种存储方式。 (2)掌握栈的基本操作及应用。 (3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。 二、实验内容: 【问题描述】 设停车场是一个可停放n辆汽车的长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端),若车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。 【基本要求】 以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现,队列以链表结构实现。 【测试数据】 设n=2,输入数据为:(A,1,5),(A,1,15),(A,3,20),(A,4,25),(A,5,30),(D,2,35),(D,4,40),(E,0,0)。其中:A表示到达(Arrival);D表示离去(Departure);E表示输入结束(End)。 【实现提示】 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。 【选作内容】 (1)两个栈共享空间,思考应开辟数组的空间是多少? (2)汽车可有不同种类,则他们的占地面积不同收费标准也不同,如1辆客车和1.5辆小汽车的占地面积相同,1辆十轮卡车占地面积相当于3辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改结构以满足这种要求。

选修课程管理系统

选修课程管理系统 一、实验目的 1、使学生掌握DBMS的基本工作原理; 2、培养学生基本掌数据库应用系统设计的基本思路和方法; 3、培养学生分析、解决问题的能力; 二、实验简述 针对给定的系统进行需求分析,设计系统结构图和系统功能模块图;针对需求分析,画出E-R图表示的概念模型,并将其转换为至少满足3NF的关系模式,设计较为合理的数据库模式;系统中应能体现对数据库的保护(数据恢复、并发控制、安全性和完整性);系统应该有较为友好的用户界面; 通过本系统软件,能帮助教研人员利用计算机,快速方便的对学生选课进行管理、输入、输出、查找的所需操作,使散乱的档案能够具体化,直观化、合理化。 三、课程设计过程 1、需求分析 2、概念结构设计及系统结构设计 3、系统功能实现 3.1需求分析 学生包含学号等属性,通过登记系统保存学生成绩的信息。学生通过分组程序分出个个选修课的学生名单。课程包含课程号,名称等属性。分组信息分出选修课教师,教师包含名称,教师编号属性。 用户通过SQL SERVER 2000 的查询分析器直接输入各种操作代码,其中包括对系统管理原的的创建,管理员可以创建其他管理员权限,当然,系统管理员可以对所有表进行修改,删除,增加。 3.2 概念结构设计及系统结构设计 1..用E-R图设计信息模型

2.设计相应关系模型,确定数据库结构 设计关系模型如下:下划线为关系的码 学生(学号,姓名,地址,邮编,市,省,性别) 教师(教师编号,姓名,电话,工资) 课程(课程编号,课程名,系名,学分) 分组(分组号,教师编号,课程号,学生数) 登记(课程号,组号,学生号,成绩) 3.设计应用系统的系统结构图,确定系统结构

超市管理系统完整+源代码

有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列功能: 1.保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显示。 2.计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。 3.统计。统计输出库存量低于100的货号及类别。统计输出有两种以上(含两种)商品库存量低于100的商品类别。 1.2总体结构 本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。 1)主模块:通过调用各分模块实现功能; 2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息; 3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中; 4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储; 5)计算模块:将所有商品的价格与库存量进行累加求和; 6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别; 8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别。附录(程序清单)

#include "stdio.h" /*输入,输出头文件*/ #include "stdlib.h" /*申请空间头文件*/ #include "string.h" /*对字符串加工头文件*/ #include "conio.h" /*清屏头文件*/ FILE *fp; int n=0; /*定义文件指针类型*/ int i,j,a[4],m; /*定义整数类型*/ float aver[4],sum[4],g[4],h; /*定义浮点类型*/ char c[5]="elec"; /*定义字符数组类型*/ char d[5]="comm"; /*定义字符数组类型*/ char e[5]="food"; /*定义字符数组类型*/ char f[5]="offi"; /*定义字符数组类型*/ struct good /*定义结构体*/ { int num; /*商品编号*/ char name[20]; /*商品名称*/ char kind[40]; /*商品类型*/ float price; /*商品价格*/ char unit[10]; /*商品单位*/ int quantity; /*商品数量*/ struct good *next; /*定义结构体指针类型*/ }*head,*p1,*p2; struct good *createlist() /*创建链表函数*/ { struct good *head1,*p1,*p2; /*定义结构体指针类型*/

学生信息管理系统(Java)+代码

学生信息管理系统设计 1、系统简介 本系统提供了学生信息管理中常见的基本功能,主要包括管理员和学生两大模块。 管理员的主要功能有对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。学生的主要功能有对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2、功能设计 2.1 需求分析 本系统需要实现的功能: (1)、管理员对学生信息和课程信息进行增加、删除、修改、查找等操作,对选课信息进行管理,对成绩信息和用户信息进行修改、查找等操作。 (2)、学生对学生信息和成绩信息进行查看,对个人的密码信息进行修改等。 2.2 总体设计 学生信息管理系统主要包括管理员和学生两大模块。管理员模块包括:学生信息管理、课程信息管理、选课信息管理、成绩信息管理、用户信息管理等。用户模块包括:学生信息查看、成绩信息查看、个人信息管理等。系统总体结构如图所示。 总体结构图 2.3 模块详细设计 1、学生信息管理模块 学生信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。

学生信息管理模块结构图 2、课程信息管理模块 课程信息管理模块包括增加、删除、修改、查询、显示全部等。具体的结构图如图所示。 课程信息管理模块结构图 3、选课信息管理模块 选课信息管理模块包括查询、显示全部等。具体的结构图如图所示。 选课信息管理模块结构图 4、成绩信息管理模块 成绩信息管理模块包括修改成绩、查询、显示全部等。具体的结构图如图所示。

成绩信息管理模块结构图 5、用户信息管理模块 用户信息管理模块包括修改、查询、显示全部等。具体的结构图如图所示。 用户信息管理模块结构图 3、数据库设计 在数据库student中共有4张数据表:s(学生信息表)、c(课程信息表)、sc(选课信息表)、unpw(用户信息表),下面定义每张表的字段名称和数据类型。

选修课程管理系统

课程设计 课程名称大型数据库课程设计 题目名称选修课程管理系统 专业班级10级计算机科学与技术本1学生姓名戴赛跑、汪雨生、杨涛学号510020110 22 37 44指导教师戚晓明(副教授) 二○一二年十二月十二日

目录 摘要 (1) 第一章前言 (2) 1.1题目与要求 (2) 1.2问题的提出 (2) 1.2.1本系统设计的知识点 (2) 1.2.2功能需求 (2) 1.3设计目的 (2) 1.4课程设计的简介 (3) 第二章开发环境 (4) 2.1 系统开发环境 (4) 2.1.1 开发环境的选择 (4) 2.1.2 Visual Studio 2008简介 (4) 2.1.3 SQL server 2008简介 (5) 第三章需求分析 (7) 3.1 设计思想 (7) 3.2 可行性分析 (7) 3.2.1 操作可行性 (7) 3.2.2 技术可行性 (8) 3.2.3 经济可行性 (8) 3.3 功能需求 (8) 3.3.1 基本功能需求 (8) 3.3.2 用户界面需求 (9) 3.4 性能需求 (9) 3.4.1 系统可扩展性 (9) 3.5 系统设计基础 (9) 3.6模块分析及设计 (10)

第四章数据库的设计说明 (11) 4.1数据表 (11) 4.2数据库的完整性和安全性 (11) 4.3选修课数据库的设计 (12) 4.3.1建立一个选修课程数据库: (12) 4.3.2建立一个学生student表 (12) 4.3.3建立一个登录t_login表 (13) 第五章系统功能的实现 (16) 5.1 系统登录窗体 (16) 5.2学生操作主界面 (18) 5.2.1选修课程的选修 (18) 5.2.2退选功能 (19) 5.2.3密码修改 (20) 5.3教师操作主界面 (21) 5.3.1 录入学生选修课程的成绩 (21) 5.3.2 增加选修课程 (22) 5.3.3 删除选修课程信息 (23) 5.3.4 修改选修课程基本信息 (25) 5.4注销和退出 (26) 5.4.1注销 (26) 5.4.2 退出 (27) 总结 (29) 致谢 (32) 参考文献 (33)

(完整版)JAVA学生管理系统源代码

JA V A学生管理系统源代码 一、程序 import java.util.*; public class Test {//主程序 public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("------请定义学生的人数:------"); Student[] stuArr = new Student[in.nextInt()]; Admin adminStu = new Admin(); while(true){ System.out.println("-----请选择你要执行的功能-----"); System.out.println("10:添加一个学生"); System.out.println("11:查找一个学生"); System.out.println("12:根据学生编号更新学生基本信息"); System.out.println("13:根据学生编号删除学生"); System.out.println("14:根据编号输入学生各门成绩"); System.out.println("15:根据某门成绩进行排序"); System.out.println("16:根据总分进行排序"); System.out.println("99:退出系统"); String number = in.next(); if(number.equals("10")){ System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next(); System.out.println("请输入学生的年龄:"); int age = in.nextInt(); adminStu.Create(num,name,age,stuArr);//添加学生}else if(number.equals("11")){ System.out.println("执行查找学生基本信息的操作"); System.out.println("请输入学生的编号进行查找:"); int num = in.nextInt(); adminStu.find(num,stuArr);//查找学生 }else if(number.equals("12")){ System.out.println("执行更新学员的基本信息操作"); System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next();

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

相关主题
文本预览
相关文档 最新文档