华东交通大学
课程设计(论文)任务书
学院
一、课程设计(论文)题目 基于ASP.NET 学生成绩管理系统
二、课程设计(论文)工作自 2013 年 6 月 24 日起至 2013 年 6 月 30 日止。
三、课程设计(论文) 地点: 创新大楼304
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)通过课程设计把课堂上讲的内容融会贯通,利用ASP.NET应用软件、C#程序、 SQL数据库等设计开发各类小型应用系统。
(2)通过课程设计掌握ASP.NET,准确的使用其中的各项功能,使设计的系统结 构清晰、易于维护。
(3)通过课程设计掌握ASP.NET工具开发方法和步骤、编程流程。
2.课程设计的任务及要求
1)基本要求:
基于ASP.NET 学生成绩管理系统
(1)学生成绩查询:学生可以根据学号、课程名进行查询。
(2)学生信息查询:学生可以根据学号、姓名、专业进行查询.
(3)学生信息管理:主要是用于学生信息更新、插入、删除;
(4)学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新;
(5)登录、用户界面需求:简洁、易懂、易用、友好的用户界面;
(6)安全保密性需求:只有凭借用户名、密码和相应权限登陆系统,才能进行 相应信息的管理等。
2)课程设计论文编写要求
(1)要按照书稿的规格打印与写课程设计论文
(2)论文包括目录、功能描述、设计思路、具体实现、运行调试与分析讨 论、设计体会与小结、参考文献、附录(源代码)等
(3)课程设计论文装订按学校的统一要求完成
3)答辩与评分标准:
(1)考勤与学习态度:20分;
(2)设计思路:20分;
(3)代码实现:20分;
ASP.NET课程设计
(4)调试与分析:20分;
(5)回答问题:10分;
(6)论文规范性:10分。
4)课程设计进度安排
内容 天数 地点
熟悉页面 1天 创新大楼304
需求分析 1天 创新大楼304
详细设计 1天 创新大楼304
学生签名:
20xx年6月24日
课程设计(论文)评审意见
(1)考勤与态度 (20分):优( )、良( )、中( )、一般( )、差( );
(2)设计思路 (20分):优( )、良( )、中( )、一般( )、差( );
(3)代码实现 (20分):优( )、良( )、中( )、一般( )、差( );
(4)调试与分析 (20分):优( )、良( )、中( )、一般( )、差( );
(5)回答问题 (10分):优( )、良( )、中( )、一般( )、差( );
(6)论文规范性 (10分):优( )、良( )、中( )、一般( )、差( );
评阅人: 职称: 讲师
20xx年7月1日
-第 2 页 -
XXX:基于ASP.NET 学生成绩管理系统
目 录
1 绪论 .................................................................................................. 1
2 功能描述 .......................................................................................... 2
3 设计思路 .......................................................................................... 3
4 具体实现 .......................................................................................... 6
5 运行调试及结果分析 ...................................................................... 8
6 设计体会与小结 ............................................................................ 11
7 参考文献 ........................................................................................ 12
-第 3 页 -
XXX:基于ASP.NET 学生成绩管理系统
1 绪论
本课程设计的目的是使学生能熟练掌握简单的ASP.NET的应用,希望通过本次课程设计锻炼学生使用C#语言解决ASP.NET实际问题的能力。
本系统后台数据库采用Microsoft SQL Server 数据库,该数据库系统在安全性、准确性和运行速度方面有绝对的优势,并且处理数据量大,效率高;前台采用Microsoft 公司的Visual Studio 2010作为主要开发工具,可与SQL Server 2008数据库无缝链接。
系统开发平台:Microsoft Visual Studio2010
系统开发语言:C#
数据库管理软件:SQL Server 2008
本报告详细的介绍了学生成绩管理系统的开发过程,主要涉及到的工作如下:系统的功能描述、设计思路、具体实现、运行调试及结果分析、设计体会与小结。
第 1 页
ASP.NET课程设计
2 功能描述
1.系统目标
学生根据查询条件实现成绩的查询;
管理员或教师查询学生信息、查询学生成绩;
学生信息、成绩信息的增加、删除、修改;
对基本信息完成增加、删除、修改时,需注意表与表之间的关联。
2.功能需求分析
本系统的功能需求分析如下:
学生成绩查询:学生可以根据学号、课程名进行查询。
学生信息查询:学生可以根据学号、姓名、专业进行查询. 学生信息管理:主要是用于学生信息更新、插入、删除;
学生成绩录入:用于学生成绩管理,录入学生成绩,也可以更新; 登录、用户界面需求:简洁、易懂、易用、友好的用户界面。 安全保密性需求:只有凭借用户名、密码和相应权限登陆系统,才
能进行相应信息的管理等。
-第 2 页 -
XXX:基于ASP.NET 学生成绩管理系统
3 设计思路
3.1 设计概述
根据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能; 3.2 系统总体结构及功能模块划分
经过对系统的需求分析,学生成绩管理系统主要划分为三个部分:学生成绩查询,学生信息管理,学生成绩录入三个功能模块。如图3.2.1 系
3.2.1 成绩查询模块
学生成绩查询:学生可以根据学号、课程名进行查询。如图3.2.2学生成绩查询模块结构。
第 3 页
图3.2.2 成绩查询模块结构
ASP.NET课程设计
3.2.2 学生信息管理模块
学生信息管理:主要是用于学生信息更新、插入、删除,如图3.2.3学生信息管理模块结构。
图3.2.3 学生信息管理模块结构
3.2.3 学生成绩管理模块
3.3 系统数据库概念结构设计
根据对数据项与数据结构的分析,设计出能够满足系统需求的各种实体,及它们之间的关系,为后面的逻辑结构设计打下基础。
3.3.1 系统E-R图
系统E-R图可以将各个实体之间的关系显示出来,将各个实体间的属性依赖表示清楚。如图3.3.1系统E-R图结构。
-第 4 页 - 图3.2.4 学生成绩查询模块结构
XXX:基于ASP.NET 学生成绩管理系统
图3.3.1系统E-R图结构
3.4 安全保密设计
3.4.1 用户登录安全性
系统设计了登录界面,每个合法用户有用户名、密码及权限,只有当用户输入正确的用户名、密码及权限组合后才能够对学生信息进行操作。
第 5 页
ASP.NET课程设计
4 具体实现
4.1 概述
具体实现阶段的根本目标是确定应该怎样具体的实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
4.2 系统程序流程图
程序流程图又称为程序框图,它是历史悠久使用最广泛的描述软件设计的方法。它可将整个程序的总体流程清楚明白的显示出来。如图4.2.1系统总流程图结构。
图4.2.1系统总体流程图
-第 6 页 -
XXX:基于ASP.NET 学生成绩管理系统
4.3 系统数据库的设计
综合以上分析,要实现上面的所有功能模块,主要设计表如下:
表4-1 LOGIN表
表4-2 XS表
表4-3 KC表
表4-4 XS_KC表
第 7 页
ASP.NET课程设计
5 运行调试及结果分析
1.登陆界面运行图
图5-1 登陆界面
2.学生注册界面
图5-2 学生注册界面
3.学生成绩查询界面
图5-3 学生成绩查询界面
4.管理员或教师登陆界面
-第 8 页 -
XXX:基于ASP.NET 学生成绩管理系统
图5-4 管理员或教师登陆界面
5.系统主界面
图5-5 系统主界面
6.学生信息查询界面
图5-6学生信息查询界面
7.教师或管理员成绩查询界面
第 9 页
ASP.NET课程设计
图5-7 成绩查询界面
8.添加修改删除学生记录界面
图5-8添加修改删除学生记录界面
9.学生成绩录入
图5-9 学生成绩录入
-第 10 页 -
XXX:基于ASP.NET 学生成绩管理系统
6 设计体会与小结
为期一周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我按照系统工程软件设计的要求,从系统的功能描述、设计思路、具体实现、运行调试及结果分析等各个步骤,分步完成系统的各项任务,实现了系统中的学生成绩查询,学生成绩更新,学生成绩添加等模块的功能。
在这短短的五天里我收获如下:
1、巩固和加深了对ASP.NET和C#的理解,提高综合运用本课程所学知识的能力。
2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。
3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。
根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:
1、认真上好专业实验课,多在实践中锻炼自己。
2、写程序的过程中要考虑周到,严密。
3、在做设计的时候要有信心,有耐心,切勿浮躁。
4、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。
5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。
第 11 页
ASP.NET课程设计
7 参考文献
[1] 郑阿奇,王志瑞. ASP.NET 3.5 应用实践教程[M]. 电子工业出版社
[2] 郑阿奇,赵青松.C#实用教程[M].电子工业出版社
-第 12 页 -
第二篇:【华东交通大学】C++课程设计报告
课程设计(论文)任务书
学 院 业
一、课程设计(论文)题目 职工信息管理系统
二、课程设计(论文)工作自 2012 年 6 月 11 日起至 2011 年 6 月 15 日止。
三、课程设计(论文) 地点: 创新楼306、308
四、课程设计(论文)内容要求:
1.本课程设计的目的
(1)使学生掌握软件开发的基本工作流程;
(2)巩固C++程序设计课程所学的内容;
(3)培养学生的计算机思维能力以及合作的精神;
(4)培养学生分析、解决问题的能力;
(5)提高学生的科技论文写作能力。
2.课程设计的任务及要求
1)基本要求:
(1)研究课程设计任务,并进行系统需求分析;
(2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;
(3)实现各功能模块代码;
(4)组装各模块,并测试、完善系统。
2)创新要求: 在基本要求达到后,可进行创新设计,如提高系统的容错能力,实现更复杂功能,或进行代码优化。
3)课程设计论文编写要求
(1)要按照书稿的规格打印誊写课程设计论文
(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结
一
(3)论文装订按学校的统一要求完成
4)参考文献:
(1)谢昕、刘觉夫、王更生 .《C++程序设计》 北京邮电大学出版社
(2)Stephen Prata .《C++ Primer Plus》 人民邮电出版社
5)课程设计进度安排
内容 天数 地点
系统总体设计 1 实验室
软件设计及调试 2 实验室、图书馆
答辩及撰写报告 2 实验室、图书馆
学生签名:
20xx年6月11日
课程设计(论文)评审意见
1)课程设计过程(20分):优( )、良( )、中( )、一般( )、差( );
2)是否完成调试,系统运行效果(30分):优( )、良( )、中( )、一般( )、差( );
3)回答问题 (20分):优( )、良( )、中( )、一般( )、差( );
4)课程设计报告 (30分):优( )、良( )、中( )、一般( )、差( );
5)格式规范性及考勤是否降等级:是( )、否( )
阅人: 职称: 副教授
20xx年 6月15 日
二
职工信息管理系统的研究与设计
摘 要
职工信息管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据文档的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立一个文档用来以二进制方式储存职工信息,而对于后者则要求应用程序功能完备,易使用等特点。
本系统以dat文档存放数据,首先是登陆模块,该模块以职工编号为登陆验证,登陆后获得对应权限,然后是登陆后的菜单显示,菜单显示由职工信息查询模块、增加职工信息模块、删除职工信息模块、修改职工工资模块以及退出系统模块组成,实现了以下基本功能:已录入到文档中的职工根据职工编号登陆,领导及人事秘书对职工详细信息查看、人事秘书增加和删除职工信息、财务人员修改职工工资以及普通员工查询职工信息简表。
[关键字] 职工信息管理系统;二进制;
三
目录
1. 题目内容、要求与分组情况总体介绍 .......................... 五
1.1 题目内容及要求 ..................................................... 五
1.2 分组情况总体介绍 ................................................... 六
2. 系统总体设计 ................................................................... 七
2.1相关理论知识介绍 .................................................... 七
2.2系统需求分析 ............................................................ 八
2.3类设计、菜单设计 .................................................... 九
2.4 系统总体框架、程序流程 ................................... 十一
3.具体实现.......................................................................... 十三
3.1 登陆界面及实现代码 ........................................... 十三
3.2 输出选择菜单界面及实现代码 ........................... 十五
3.3 职工查询模块界面及实现代码 ........................... 十六
4. 运行调试与分析讨论 ................................................... 十八
5.设计体会与小结 ............................................................. 二十
6. 参考文献 ................................................................... 二十一
四
1. 题目内容、要求与分组情况总体介绍
1.1 题目内容及要求
题目:职工信息管理系统
? 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)
? 根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表)
? 增加新职工信息(由人事秘书完成,需要身份确认) ? 删除职工信息(由人事秘书完成,需要身份确认) ? 修改职工工资(由财务处人员完成,需要身份确认) ? 要求所有信息能够存储在文件中,并具有良好的用户界面
五
1.2 分组情况总体介绍
组员:付强、王睿、黄剑、付欣艺;
共同设计类、统计文件中数据总数登陆函数以及在主函数内的初始化数据;
各模块分工:
? 付强:职工信息查询;
? 黄剑:增加新职工信息;
? 王睿:删除职工信息;
? 付欣艺:修改职工工资;
六
2. 系统总体设计
2.1相关理论知识介绍
创建并使用类;
使用switch判断输入选择;
使用for循环输入输出;
使用if-else语句判断;
使用iomanip头文件实现setw()函数设置宽度,使显示优化;
使用while循环来反复选择;
七
2.2系统需求分析
1.要求所有信息能够存储在文件中,并具有良好的用户界面
2. 系统安全、可靠;
3. 功能齐全、操作方便;
4. 易于维护和扩充
5.依据权限:
a.能对职工信息进行录入:。
b.能对职工信息进行按编号、姓名、及所有职工信息查询。 c.能对职工信息进行删除。
d.能对职工工资进行修改。
八
2.3类设计、菜单设计
设计和定义一个职工类staff:
class staff
{姓名,性别,年龄,职务,电话,工资和家庭成员信息*/ public:
int num; //职工编号
char name[LIM],sex[3]; //职工姓名、性别
int age; //职工年龄
char job[10],phone[15]; //职工职务、电话
double wages; //职工工资
char home[20]; //职工家庭信息
int admin; //职工对应的权限
void printf(); //总的职工信息输出函数
void printf1(); //职工全部信息输出函数
void printf2(); //职工部分信息输出函数
void printf3(); //职工信息简表输出函数
};
九
菜单的设计:
void menu()
{
cout<<"\t╔╤╤╤╤╤╤职工编号: "<<na<<"╤╤╤╤╤╤╤╤╤┐"<<endl;
cout<<"\t╠╬╬╬╬如需更改身份登录请关闭重新打开程序╬╬╣"<<endl;
cout<<"\t╠╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╣"<<endl;
cout<<"\t╠***************职工信息管理系统***************╣"<<endl;
cout<<"\t╠**********************************************╣"<<endl;
cout<<"\t╠*************1--职工信息查询******************╣"<<endl;
cout<<"\t╠*************2--增加新职工信息****************╣"<<endl;
cout<<"\t╠*************3--删除职工信息******************╣"<<endl;
cout<<"\t╠*************4--修改职工工资******************╣"<<endl;
cout<<"\t╠*************5--退出系统**********************╣"<<endl;
cout<<"\t╚╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╝"<<endl;
}
十
2.4 系统总体框架、程序流程
十一
十二
3.具体实现
3.1 登陆界面及实现代码
登录界面为小组成员共同设计,
登录界面截图
代码如下:
void loading() //登陆的实现部分
{
cout<<"\t┏┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┳┓"<<endl;
cout<<"\t┣╋**************登录程序:******************╋┫"<<endl;
cout<<"\t┣╋**********请输入你的职工编号:************╋┫"<<endl;
cout<<"\t┗┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┻┛"<<endl;
十三
int w=0; while(!(cin>>na)) { …… fstream find; find.open(file,ios_base::in|ios_base::out|ios_base::binary); staff stu; for(int i=1;i<=ct;i++) { streampos place =(i-1) * sizeof stu; find.seekp(place); find.read((char *) &stu, sizeof stu); if(stu.num==na) {w=1;Admin=stu.admin;} }
……
……
}
登陆成功或者失败都要有相应的提示;
ct为数据文件中数据组数,其计算函数代码如下: int stu_num() //计算数据组数 {
staff stu;
ifstream stunum;
stunum.open(file,ios_base::in|ios_base::binary); if(stunum.is_open())
{
stunum.seekg(0);
while(stunum.read((char *)&stu,sizeof stu))ct++; }
stunum.close();
return ct;
}
十四
3.2 输出选择菜单界面及实现代码
输出选择菜单函数为 menu2( ),其函数体全部为输出语句;其界面截图:
实现代码如下:
void menu2() //二级菜单
{ cout<<"\t╔╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤┐"<<endl;
cout<<"\t╠*************1--职工编号查询******************╣"<<endl;
cout<<"\t╠*************2--职工姓名查询******************╣"<<endl;
cout<<"\t╠*************3--全部职工查询******************╣"<<endl;
cout<<"\t╚╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╝"<<endl;
}
十五
3.3 职工查询模块界面及实现代码
领导及人事秘书查询时能见的是:职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息,用文件读取。领导及人事秘书能使全部职工信息输出,;
财务人员查询能见的是:职工编号,姓名,性别,年龄,电话,工资。查找方法同上。
普通职工查询能见的是信息简表:编号,姓名,电话。查找方法同上。 用来函数printf1(),printf2(),printf3()分别是领导及人事秘书能见的所有信息输出、财务人员能见的部分信息输出、普通员工能见的信息简表输出。 实现查询的总函数为find(),再由find 根据用户输入选择应用switch语句来确定是依据编号还是姓名查询,然后再由总输出函数printf()调用各下级输出函数printf1()或printf2()或printf3();
如果未找到显示相应提示;
find( )函数代码的如下:
void find()
{
……
fstream find;
find.open(file,ios_base::in|ios_base::out|ios_base::binary);
……
for(int i=1;i<=ct;i++)
{
streampos place =(i-1) * sizeof stu;
find.seekp(place);
find.read((char *) &stu, sizeof stu);
switch(a)
{
case 1:if(stu.num==na){……};break;
case 2:if(!strcmp(stu.name,sna)){……};break;
……
}
find.close();
}
}
其中 hline(int n)函数用来显示信息时的头部,由于不同的人查询的时候信息显示不同,所以其头部也应该对应不同。函数带一个参数,函数内用一个
十六
switch语句调用hline(int n)里面的参数n来判断显示的头部应包含哪些信息;
void hline(int n) //输出信息的头部
{
switch(n)
{
case 1:{cout<<"编号 姓名 性别 年龄 职务 电话号码 工资 家庭信息"<<endl;};break;
case 2:{cout)<<"编号 姓名 性别 年龄 电话号码 工资"<<endl;};break; case 3:{cout<<s"编号 姓名 电话号码"<<endl;};break;
}
}
函数printf1(),printf2(),printf3()分别是领导及人事秘书能见的所有信息输出、财务人员能见的部分信息输出、普通员工能见的信息简表输出,其函数体均为cout语句;比如printf3();
void staff::printf3()
{
hline(3);
cout<< num<<” ”<<name<<” ”<<phone<<endl;
}
函数output()为所有信息的输出,供领导和人事秘书使用,应用for 循环使得读取指针从第一组数据到最后一组数据然后输出每个对象的各信息。 void output()
{
staff stu;
ifstream find;
find.open(file,ios_base::in|ios_base::binary);
hline(1);
while(find.read((char *) &stu,sizeof stu))
{
……
}
find.close();
}
十七
4. 运行调试与分析讨论
对于查询后的输出,原输出不直观,且界面混乱。后改进采用setw(n)格式设置宽度,再使用cout<<left;是输出左对齐,使得输出时界面整齐。
使用各种功能时判断权限,定义一个全局变量,使其在登陆时获取登陆人的权限,使其显示相应信息;
以领导或人事秘书的身份登陆时:
以财务人员的身份登陆时:
十八
以普通员工的身份登陆时
:
以领导或者人事秘书的身份登陆查询全部职工信息时:
其他不满足权限的查询将会提示相应信息:
十九
5.设计体会与小结
通过这次课程设计我感受了编程的乐趣,从中也学到了不少知识。大一第一学期,我们学习了C语言程序设计,但学的不是很好,前几章还行,但越往后就有点跟不上了,因此C语言编程中的问题很大。尤其是指针,还有形参和实参的传等 问题都没搞的很清楚,而且同大多数人一样,眼高手低!编程量太少了,容易 出问题!所以做起来很困难。
我感受最深的一点是:以前上实验课时,只是注重如何编写函数能够完成所需要的功能,似乎没有明确的战术,只是凭单纯的意识和简单的语句来堆砌出一段程序。感觉有点像张飞打仗,有勇无谋,只要能完成任务就行。但现在编程感觉完全不同了。在编写一个程序之前,自己能够综合考虑各种因素,首先选取自己需要的数据结构,是树还是图或是别的什么?然后选定一种或几种存储结构来具体的决定后面的函数的主要风格。最后在编写每一个函数之前,可以仔细斟酌比对,挑选出最适合当前状况的算法。这样,即使在完整的程序还没有写出来之前,自己心中已经有了明确的原图了。这样无形中就提高了自己编写的程序的质量。经历了这次课程设计,不仅对我的学习提供了帮助,而且在意志力方面也得到了锻炼。没有足够的耐力和信心就很难坚持对课程设计每一步的顺利进行。
总之,我会继续我的兴趣编写程序的,相信在越来越多的尝试之后,自己会不断进步不断提高的。
二十
6. 参考文献
(1)谢昕、刘觉夫、王更生 .《C++程序设计》 北京邮电大学出版社
(2)Stephen Prata .
C++ Primer Plus》二十一 人民邮电出版社 《