C语言程序设计报告2000字,C语言程序设计报告.doc

大连理工大学大连理工大学《《程序设计基础程序设计基础》》设计报告设计报告 《《程序设计基础程序设计基础》》成绩管理系统设计成绩管理系统设计 学 生 姓 名: 杨晓欧 院系、班级 : 电信学部 电气 1404 学 号 : 201481098 联 系 电 话: 18340833523 Email : [email protected] 完 成 日 期: 2015.06.05 装 订 线 《程序设计基础》成绩管理系统设计 3 一、设计任务 随着信息时代的到来,办公趋向无纸化、高效化,对于学生成绩的管理更是如此, 基于此,我选择了《程序设计基础》学生成绩管理系统作为我的课题,希望能够模仿 教务系统中成绩的录入与查询功能,编写自己的成绩管理系统。从教师与学生两个角 度分别实现成绩的录入、删除、修改、排序、导出与查询功能。 二、 程序设计与实现 1. 程序结构 本程序面向两类用户即教师与学生,有两个入口,教师登录需密码,共有添加, 删除,修改,查找,密码修改五个功能,学生权限为查看本人详细成绩和本班排名。 系统程序组成框图如图 1.所示。 图 学生成绩管理系统程序功能组成框图 2. 数据描述 本系统使用的结构体。结构体类型定义及结构体成员含义说明如图;采用数组进 行数据存储。 图 结构体类型定义及结构体成员含义说明 《程序设计基础》学生成绩管理系统 教师入口学生入口 添加记录 查看本班成绩 查看本人成绩 密码修改 分类排序查找 修改记录 删除记录 大连理工大学《程序设计基础》设计报告 2 该程序除结构体数组外还定义了全局变量 int tol,存储文件中学生记录总数,在每 次添加/删除操作后都会自增/自减,用来作为读取记录时结束的标志。 3. 功能模块设计 (1) 函数名:void login () 函数功能:显示登录界面 入口参数:无 出口参数:无 算法描述:用 if 判断用户输入跳转相应界面。 (2) 函数名:void star(int x) 函数功能:在屏幕上显示给定个数“*”,用于优化界面。 入口参数:整型,给定的个数 出口参数:无 算法描述:用 for 循环显示*。 (3) 函数名: void pwd() 函数功能:密码输入界面 入口参数:无 出口参数:无 算法描述:用 strcmp 对从键盘接收输入值与从文件读取的密码值进行比较 (4) 函数名:void key() 函数功能:密码修改界面 入口参数:无 出口参数:无 算法描述:将读入的新密码密码写入文件 (5) 函数名:void file_w(int t) 函数功能:将学生记录写入文件 入口参数:整型,学生记录总数 出口参数:无 算法描述:for 与 fprintf (6) 函数名:void file_r(int t) 函数功能:从文件中读入学生记录 《程序设计基础》成绩管理系统设计 3 入口参数:整型,学生记录总数 出口参数:无 算法描述:for 与 fscanf (7) 函数名:void st() 函数功能:学生登录界面 入口参数:无 出口参数:无 算法描述:获取学号,使用顺序查找在文件中查找该记录 (8) 函数名:void st_scan(int i) 函数功能:学生查看功能 入口参数:整型,为学生该学生信息所在数组下标 出口参数:无 算法描述: 如图 图 st_scan()函数流程图 开始 输出菜单 输入选择 e e=0? 返回上一级 e=1? e=2? 输出个人成绩 输入班级 i总数? 班级相同? 输出该记录 i++ 结束 Y N N Y Y N N Y Y N 大连理工大学《程序设计基础》设计报告 2 (9) 函数名:void tec() 函数功能:教师功能菜单 入口参数:无 出口参数:无 算法描述:switch 语句实现功能选择 (10)函数名:void insert() 函数功能:添加记录 入口参数:无 出口参数:无 算法描述:先将原有信息读入结构体数组,追加新记录,然后一起写入文件 (11)函数名:void correct() 函数功能:修改记录 入口参数:无 出口参数:无 算法描述:读取文件,查找要修改的记录,修改,重新写入文件 (12)函数名:void del() 函数功能:删除记录 入口参数:无 出口参数:无 算法描述:读取文件,查找要删除的记录,删除,重新写入文件 (13)函数名:void scan() 函数功能:教师查看功能菜单 入口参数:无 出口参数:无 算法描述:switch 语句进行功能选择 (14)函数名:void scan_n() 函数功能:教师按学号查找功能 入口参数:无 出口参数:无 算法描述:读入文件,顺序查找 《程序设计基础》成绩管理系统设计 3 (15)函数名:void scan_c() 函数功能:教师按班级查看功能 入口参数:无 出口参数:无 算法描述:读入文件,显示班级与输入值相同的学生信息 (16)函数名:void scan_f() 函数功能:查看挂科同学名单 入口参数:无 出口参数:无 算法描述:读入文件,显示挂科标志量 mem[].flag 为 1 的同学 (17)函数名:void scan_a() 函数功能:查看全部学生排名 入口参数:无 出口参数:无 算法描述:读入文件,选择法排序后显示 三、 设计难点与解决方法 1.页面跳转不正常的问题。例如在密码输入多次错误时,会持续显示报错信息, 键盘无法输入指令。在添加了 fflush(stdin)语句后解决了问题。 大连理工大学《程序设计基础》设计报告 2 密码修改问题。之前密码定义为常量,不能进行修改,为实现密码修改功能及加 密,将密码写入二进制文件,实现了修改,但是并没有做到加密。 四、设计效果与不足之处 系统启动界面,调用 system(“cls”);Sleep(); 《程序设计基础》成绩管理系统设计 3 通过学号查看个人成绩 查看班级成绩 教师登录需要输入密码 教师登录后的菜单界面 大连理工大学《程序设计基础》设计报告 2 删除记录功能 密码修改功能 教师查看功能子菜单 全部学生排名 《程序设计基础》成绩管理系统设计 3 存在的不足:1.界面显示、数据输出不整齐 2.部分功能未实现屏蔽非法输入 五、对本课程学习体会及建议 C 语言是一门重视实践的课程,无论课堂上你听的有多仔细,上机实践还是会有 这样那样的问题,一些错误只有自己亲身经历,并努力解决才会影响深刻。从刚开始 的面对一堆 error 手足无措,到之后盯着调试窗口一点一点找逻辑错误,到现在想着如 何优化算法,输出友好界面,感谢 12 周以来老师的辛苦讲授让我成长,当然我们现在 的水平还只是入门,今后还有更多的挑战等着我们,但我相信只要多动脑,勤动手, 我们编程的水平会有更大的的提高! 对课程的一点建议是希望上机与理论课能交替进行,及时训练巩固理论课所学知 识。 附录:程序使用说明 (1) 程序运行环境:本系统使用 C-Free 5.0 开发。 (2) 文件夹设置:文件夹内共包含一个源程序(*.c),一个可执行文件(*.exe),一个密 码记录文件(*.dat),三个文本文档记录数据及说明(*.txt),三个程序导出的成 绩单(*.doc)。 (3) 操作说明:教师初始密码为 123456;本系统最大可容纳 100 人,学生信息录入按 以下格式即可:“201481098 杨晓欧 男 电气 1404 88 88 88”,其余操作按 照提示即可。

展开阅读全文

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSU 大一上 C语言实验报告 (1)教材第2章编程题第2题:编写计算球体体积的程序。 说明:本题声明适当变量,用户键入数据,运算并输出结果,较简单。 (2)教材第2章编程题第8题:编写程序计算第一、第二、第三月还贷后剩余贷款金额。 说明:本题要求用户输入总额、利率、每月还贷净额,输出每月剩余,对输入输出、类型定义考查。 (3)教材第3章编程题第2题:编写程序实现对用户输入的产品信息进行格式化。 说明:本题考查格式化输入输出、转义符的运用。 (4)教材第4章编程题第4题:编写程序实现将输入的整数按八进制输出。 说明:本题重在考查简单的运算符和表达式运用。 (5)用户输入一个三位数,输出各位数之和。 说明:本题重在考查如何从一个整数中取出每一个数。 (6)教材第5章编程题第5题:编写程序计算用户输入所得额的税金。 说明:本题考查简单的选择结构。 (7)教材第5章编程题第11题:编写程序实现将用户输入的两位数转化为英文。 说明:本题考查switch语句的应用。 (8)教材第6章编程题第8题:编写程序显示单月日历,用户指定这个月的天数和该月起始日是星期几。 说明:本题考查循环结构和选择结构的综合应用,判断是否一个星期最后一天,换行符。 (9)教材第6章编程题第11题:编程序实现利用无穷级数法估计e的值。 说明:本题考查根据公式设计循环结构并实现。 (10)因子之和等于其本身的数称为完数,如28的因子为1、2、4、7、14,而28=1+2+4+7+14,因此28为完数。编程序找出2~5000中的完数。 说明:本题利用变量i在2~5000中变化,判断其是否是完数。 (11)教材第7章编程题第12题:编程计算从左至右求值的表达式的值。 说明:本题考查对运算符和操作数的判断。 (12)教材第7章编程题第14题:编程序用牛顿计算法计算浮点数平方根。 说明:本题考查对循环结构的掌握,对表达式的合理运用,对基本类型的理解。 (13)教材第8章编程题第14题:编写程序颠倒句子中单词的顺序。 说明:本题考查对符数组的处理,对一些循环选择结构的理解。 (14)教材第8章编程题第15题:编写程序实现凯撒密码加密。 说明:本题考查对符数组的掌握,对符处理的理解。 (15)编程序实现将用户输入的数符串转化为整数输出。 说明:本题考察对符、整数关系的掌握与理解,对循环结构的熟练运用。 (16)教材第9章编程题第1题:编写选择排序的函数,并递归调用。 说明:本题利用函数简化程序、使得结构更清晰、熟练掌握。 (17)教材第9章编程题第7题:编写计算xn的函数。 说明:本题考查函数定义、调用,并初步考察递归运用。 (18)教材第10章编程题第6题:编写程序实现逆波兰运算。 说明:本题考查对程序每部分的理解、掌握,外部、内部变量,主函数,小函数的编写与应用。初步了解栈的一些实现函数。 (19)编程序找出2~5000中满足条件的数x:x是素数且x的每位数是素数、每位数之和是素数,如23、223、2333等。 说明:本题考查函数方法与循环选择结构的综合运用。 (20)教材第11章编程题第3题:用指针变量编写简化一个分数的函数。 说明:本题用来解决函数无法传回传递的实际参数,指针变量。 (21)教材第12章编程题第2题:编写函数读入用户输入的一条消息,检测是否是回文,分别用数组、指针来解决。 说明:本题可以体会到数组与指针的特点,利用指针的便利。 (22)利用指针编写程序,实现从键盘键入符串,将此符串从m个符开始的n个符复制成另一个符串。 说明:本题用指针指向符串,进行跟踪和复制操作。 (23)教材第13章编程题第5题:编写程序实现对输入命令行参数求和。 说明:本题加深对命令行参数的理解、考查知识的综合应用。 (24)教材第16章编程题第5题:用结构变量解决搜索离用户输入时间最近的航班信息,并输出。 说明:本题考查结构与数组的结合运用,有助于理解结构。首先,定义一个存储起飞、到达时间的结构,再定义一个该类型的数组,循环搜索即可。 (25)教材第17章编程题第5题:用指针数组存储键入的符串,对数组排序。 说明:本题应用动态分配内存、数组排序,考查综合能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值