C课程设计学生学籍管理系统Word下载.docx

上传人:b****5 文档编号:17468374 上传时间:2022-12-01 格式:DOCX 页数:13 大小:59.86KB
下载 相关 举报
C课程设计学生学籍管理系统Word下载.docx_第1页
第1页 / 共13页
C课程设计学生学籍管理系统Word下载.docx_第2页
第2页 / 共13页
C课程设计学生学籍管理系统Word下载.docx_第3页
第3页 / 共13页
C课程设计学生学籍管理系统Word下载.docx_第4页
第4页 / 共13页
C课程设计学生学籍管理系统Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C课程设计学生学籍管理系统Word下载.docx

《C课程设计学生学籍管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C课程设计学生学籍管理系统Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

C课程设计学生学籍管理系统Word下载.docx

第四步:

及时整理资料,撰写课程设计报告中有关这个题目的内容。

三、系统功能介绍

(一)程序对学生学籍的数据处理要求

1能够输入并浏览学生的基本信息;

2能够实现对学生信息的查询和修改;

3能够对成绩进行统计;

4能够对学生的信息进行保存;

(二)系统功能:

资料维护:

系统维护包括对各学生信息和成绩的录入操作。

对数据表中的信息进行浏览。

系统查询:

可以对不同科目的总成绩、不及率、各科平均成绩相关信息。

四、输入输出的设计

1.界面的设计

①、界面设计

程序运行后会出现一个简捷的窗口,便于用户查询数据。

②、功能设计

通过主窗体调用其他窗体,具体实现可以参照系统分析相关内容。

应用系统主控界面包括学生信息录入,查找等功能模块。

学生信息录入功能完成学生信息和成绩的输入。

记录查询功能可以对数据各分类的记录进行查询。

2.数据输出设计

主要运行界面:

统计界面:

查找界面:

显示界面:

录入界面:

保存界面:

修改界面:

删除界面:

3、系统运行的结果:

(仅部分)

五、详细设计

1、系统功能结构图:

 

2、

(1)类:

student

数据成员:

编号,姓名,性别,籍贯,民族,生日,政治面貌,省份证,数学成绩,英语成绩,计算机成绩

(2)类:

school

成员函数:

录入函数Input():

输入编号到计算机的成绩;

统计函数count():

统计各科的总成绩,计算平均成绩,统计各科的及格率;

查询函数found():

按学号或姓名查找学生的记录;

修改函数mend():

修改指定学号学生成绩记录;

删除函数del():

删除指定学号学生记录;

输出函数show():

输出班级所有学生成绩记录;

UML图:

六、附录:

(主要代码)

#include<

iostream.h>

string.h>

fstream.h>

iomanip.h>

//操纵符定义在其中

classstudent

{

protected:

intnumber;

charname[20];

charsex[6];

charplace[20];

charnation[6];

charbirth[20];

charparty[10];

charid[20];

floatscore[3];

public:

student*next;

student(){}

~student(){}

char*getname(){returnname;

}

intgetnumber(){returnnumber;

doublegetscore(inti){returnscore[i];

floatgetg(){return(score[0]+score[1]+score[2]);

voidinput()

{inte=1;

cout<

<

"

\t\t\t按提示输入:

endl;

\t\t输入编号:

;

cin>

>

number;

\t\t输入姓名:

name;

do

{cout<

\t\t输入性别:

sex;

if(strcmp(sex,"

男"

)==0||strcmp(sex,"

女"

)==0)

\t\t输入籍贯:

place;

\t\t输入民族:

nation;

\t\t输入生日:

birth;

\t\t输入政治面貌:

party;

\t\t输入身份证号:

id;

\t\t输入数学分数:

score[0];

\t\t输入英语分数:

score[1];

\t\t输入计算机分数:

score[2];

e=0;

else

\t\t\t无此类型性别!

重新输入!

e=1;

}while(e);

return;

voidinput(ifstream&

is)

{is>

number>

name>

sex>

place>

nation>

birth>

party>

id

score[0]>

score[1]>

is.get();

voidoutput()

学生基本信息如下:

编号:

number<

姓名:

name<

性别:

sex<

籍贯:

place

民族:

nation<

生日:

birth<

政治面貌:

party<

endl

身份证号:

id<

数学:

score[0]<

英语:

score[1]

计算机:

score[2]<

总分:

getg()<

endl<

voidoutput(ofstream&

os)

{os<

setw(6)<

setw(15)<

setw(20)<

party

}};

//操纵符指定宽度

classschool

{public:

school(){head=newstudent;

head->

next=NULL;

key=0;

~school(){deletehead;

voidinput();

voidmend();

voiddel();

intfind(student**p,intnum,char*pn="

^"

);

voidfound();

voidshow();

voidcount();

voidsave();

voidbegin();

voidclear();

charmainmenu();

intgetkey(){returnkey;

voidsetkey(intk){key=k;

private:

student*head;

intkey;

};

//录入函数

voidschool:

:

input()

{student*p,*p2=NULL;

p=head;

intn;

while(p->

next)

p=p->

next;

while(n)

{p2=newstudent;

p2->

input();

p->

next=p2;

school:

setkey

(1);

\t\t\t按1继续,按0返回:

n;

}}

//子查找函数

intschool:

find(student**p1,intnum,char*pn)

{student*p;

(*p1)=p;

if((p->

next)->

getnumber()==num||!

strcmp((p->

getname(),pn))

return1;

return0;

//查找函数

found()

intnum=-1,n=9;

charname[20]="

\t\t1:

按编号查找,2:

按姓名查找:

}while(n<

1||n>

2);

if(n==1)

\t\t\t输入编号:

num;

if(n==2)

\t\t\t输入姓名:

if(!

find(&

p,num,name))

\t\t找不到你要查找的内容!

(p->

output();

//删除函数

del()

{student*p,*p2;

intnum;

p,num,"

))

\t\t找不到你要删除的内容!

p2=p->

next=p2->

deletep2;

show()//显示函数

{(p->

//修改函数

mend()

intnum=-1,n;

按编号修改,2:

按姓名修改:

\t\t找不到你要修改的内容!

save()//保存函数

ofstreamos("

student.txt"

ios:

out);

if(school:

getkey()==1)

output(os);

\t\t\t文件已保存!

setkey(0);

begin()//初始化函数

clear();

longt;

ifstreamis("

in);

{ofstreamos("

os.close();

intnum=-1;

while

(1)

{num=-1;

t=is.tellg();

is>

is.seekg(t);

if(num<

0)

{is.close();

p2=newstudent;

input(is);

clear()//清空函数

p=head->

while(p)

{p2=p;

count()//统计函数

intn=0;

doubleg[3]={0,0,0};

floatj[3]={0,0,0};

{p=p->

n++;

for(inti=0;

i<

3;

i++)

{g[i]=g[i]+(p->

getscore(i));

getscore(i))>

=60.0?

j[i]++:

0;

\t\t\b\b\b\b数学总分:

g[0]<

平均分:

g[0]/n

及格率:

j[0]/n<

\t\t\b\b\b\b英语总分:

g[1]

g[1]/n<

j[1]/n<

\t\t\b\b\b\b计算机总分:

g[2]<

g[2]/n

j[2]/n<

//主选菜单函数

charschool:

mainmenu()

charn[6];

\n\n☆☆☆☆欢迎进入学籍管理系统☆☆☆☆"

****************************"

**1:

录入学生信息**"

**2:

显示学生信息**"

**3:

查找学生信息**"

**4:

删除学生信息**"

**5:

修改学生信息**"

**6:

统计学生成绩**"

**7:

保存学生信息**"

**0:

退出系统**"

请选择:

returnn[0];

//主函数

voidmain()

{schoolpp;

intk=1;

charn;

pp.begin();

while(k==1)

{n=pp.mainmenu();

switch(n)

{case'

1'

pp.input();

break;

case'

2'

pp.show();

3'

pp.found();

4'

pp.del();

5'

pp.mend();

6'

pp.count();

7'

pp.save();

0'

if(pp.getkey()==1)

\t\t\t是否保存?

1:

保存0:

不保存:

k;

if(k==1)

pp.clear();

k=0;

}}}

七、系统设计、开发过程中遇到的问题及创新点

本程序基本完成了题目要求的功能。

但是由于显示的限制,所罗列的学生成绩只给出了数学,英语,计算机的成绩。

程序可通过改进,增加科目数。

程序在显示学生信息时输入过于繁杂,不够清晰明朗,若显示成类似表格的形式就好了。

解决办法将输出函数的输出格式改一下,难点是计算输出点的控制。

至于创新,就是在课题的选择上,我更加偏向于选择自己感兴趣的课题,更加注意程序的实用性

八、心得体会

通过这次课程设计,我学会了很多的知识,我通过自学相关的书籍,浏览网站,接触了大量的编程知识,在编程过程中逐渐提升自己的自学能力,克服困难的能力。

我觉得首先要对程序的设计要求有一个比较明确的认识,然后系统分析与系统设计,最后是代码设计与调试。

程序实现上,设计了简单的查询界面,将各个功能集中出来按照程序编写原则,便于查询。

根据C++课程所学的概念、理论和方法,按照C++程序设计的基本步骤,设计出一个适当规模的程序;

进一步加深对C++语言的理解和掌握。

理论联系实际,加深和巩固所学的理论知识,提高实践能力和计算机的综合运用能力。

我们编写程序的过程是辛苦与快乐的,程序的编写原则很重要,只要我们在编程,就必须不断改进,才能更好提高编程能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1