首页 > 编程资源分享区 > C/C++源代码共享 > 功能超强的学生成绩管理系统
2008
08-13

功能超强的学生成绩管理系统

一. 程序功能说明


本程序可以实现以下功能


1.主功能


1.登录认证和密码修改


2. 自动读取和存储数据


3. 添加,删除,修改学生信息(名字,学号,专业班级等)


4. 添加,删除,修改科目信息(开科时间,科目学分,科目名称等)


5. 添加,删除,修改分数信息


6. 多重搜索(学生姓名,学号,科目)


7. 按升序或降序显示所有学生任一科目的成绩(包括加权成绩)


:程序中可以存储同名的学生,但是不允许学号相同,因此做了部分处理应对这种情况。当搜索某个同名学生时,倘若通过姓名搜索,则会显示所有该姓名的学生,然后再通过学号确定。


2.辅助功能


1.       全自动生成数据。为便于程序测试,由系统自动随机生成所有数据(包括学生姓名,学科的相关信息,学生的各科成绩等).


(本来想写一个程序自动测试脚本的,算法已经成熟了,然而精力有限未能完成)



.总体算法设计


1.数据存储文件结构


a)本程序的二进制存储文件为stuinfo.dat,文件包含两个部分,文件头和数据区,类似于bmp文件结构.文件头中存储了文件信息,包括学生数,科目数,冗余块数,冗余块的位移地址数组,以及学科信息数组及用户的登录密码.当文件进行数据的操作时首先要读入文件头,当数据操作完后会自动修改头文件,头文件的存在使文件能高效的操作.当数据块删除时,不采取文件大块数据整体移动的物理删除方法,而是采用将数据块的flag标志位置零的逻辑删除方法,同时将该数据块的起始偏移地址写入冗余块数组中,当有新数据写入文件时,则由文件头中的冗余块数组得到某个冗余块的偏移地址,然后新数据即可写入该处,而不是简单地追加到文件末,此法可以有效地利用文件空间,减少冗余度.


       b)由于数据存储文件为二进制形式,因此当对该文件进行数据写入或删除等操作后,无法掌握是否正确地完成了相关功能,文件结构是否保持正常.当程序出现异常时,无法及时定位导致异常的数据块,因此另外生成了一个辅助文件test.txt,stuinfo.dat文件中的所有变量以文本形式一一写入test.txt,此法便于调试程序及对异常数据的准确定位


       c)为便于测试程序,需要首先建立一个数据文件,同时输入大量数据,人工输入未免过于麻烦,因此我专门写了个模块用于随机产生数据文件,随机产生学生的姓名,学号,性别,所有科目的成绩,所有学科的学分,开课时间等.随机产生字符串时,需要抽取字符进行组合,对于随机产生姓名,其长度及字符都是随机的,而学号由十二位数字组成,学生的分数,学科的学分都为double,因此产生随机整数乘以0.5,随机数产生时要严格控制其范围,如分数不能超过100,学分不超过6.(本想使随机产生的成绩成正态分布,且学生间分数拉开,由于时间有限,算法研究未成熟,因此只能采用简单的随机数生成获得成绩).


 


 


源代码有4个头文件,5个C文件,1700多行,不便在此贴出


如有需要源代码的,请与我联系


我的邮箱jmy2446267@163.com


请广大同志多多指教


功能超强的学生成绩管理系统》有 22 条评论

  1. wyong 说:

    小弟想要一份学习学习,多谢楼主分享,wyong9@163.com

  2. jszydnj 说:

    我也想学习学习。jxynanjing@126.com

  3. Perfect 说:

    我也来一份,学习学习

    344155279@qq.com

  4. 为理想蜕变 说:

    给我来一份,谢谢啦

    学习一下

    857382945@qq.com

  5. mianhuhu 说:

    快给我一份,谢谢

    363800649@qq.com

  6. loong 说:

    小弟急不可耐

    weiiyonglong@126.com

  7. hiroki 说:

    感谢楼主分享

  8. xyh00001 说:

    想学习一下,谢谢

    xiangyihong@gmail.com

  9. xianzq888 说:

    如果有空也给我来 一份吧x8990253@126.com

  10. yjhxr 说:

    我也想学习你能把代码发给我吧 谢啦 我的423863665@qq.com

  11. kenphp 说:

    学习学习,能把代码发给我吧 谢啦 我的385294033@qq.com

  12. yiyun8541 说:

    我也要一份,谢谢.

    email:man.inthewind@163.com

    yiyun85412009-12-29 22:16:19

  13. wangzizheng 说:

    您好!我也想要一份,zizhengwang@163.com,谢谢了!

  14. 杨过 说:

    您好,我也想要一份谢谢!!

    yangguo67890@163.com

  15. 泛舟于海 说:

    小弟,要一份,麻烦传下谢了 founding1990@163.com

  16. study 说:

    给我也来一份吧,参考参考学习下。960773740@qq.com

  17. a281768443 说:

    那就给我一份吧   正好现在在做这个东西   lizhidong3724@yahoo.cn

  18. mzf1112 说:

    我也需要一份,主要想看一下登录功能!请楼主方便给发一份 122281021@qq.com 谢谢!

  19. 126474292 说:

    1264747292@qq.com,感谢楼主!

  20. hy_szz 说:

    有时间也给我一份吧 hy_reg@hotmail.com 谢谢了

  21. Linux_C 说:

     我想要一份。。。看看具体怎么编写实现的、、

              我的地址c527380322@sina.com    麻烦你了  谢谢

留下一个回复