奖学金评定系统源代码
软件工程课程设计---奖学金评定系统

软件工程课程设计说明书题目:奖学金评定系统学院:计算机学院专业:网络工程学生姓名:学号:指导教师:2013 年6 月23日摘要奖学金评定是高校学生教务管理工作的一个重要环节。
作为管理学生工作的工作人员,能够通过奖学金评定系统清楚明了的看到学生的成绩,奖学金的评定说明,奖学金的评定结果等诸多信息。
另外,也保证了奖学金评定工作的客观,公正,和透明化,使奖学金的评定更深入人心。
正是基于如此的优点和作用,本课程设计分析并设计了奖学金评定系统。
为了整个奖学金评定的尽可能公正公平公开,根据奖学金评定的流程现对系统进行规划。
整个系统包括:信息管理,职位管理,消息管理,活动管理,成绩管理,证书管理,课程管理,权限管理7个功能模块。
奖学金评定的流程如下:辅导员可以输入特定的号码登录此系统通过批量导入教务处成绩以及赋予特定学生权限录入活动得分记录,证书得分记录,职位得分记录以及特殊课程的得分记录从而系统根据记录计算出F1(思想政治道德法律)、F2(专业)、F3(人文社会管理)、F4(创新)、F5(信息科学工程)、F6(身体心理)并且排名,从而辅导员可以通过点击计算和查看管理部分对计算出的全院6项和总分排名以及各系6项和排名进行查看,辅导员登录后还可以授权给特定的学生对最新的活动和奖学金动态在消息管理平台进行公布;学生登录注册后可以通过计算和查分管理部分实现查看自己的各项素质分(由F1-F6六个模块组成)以及点击各个管理模块查看自己具体的得分情况以及如果出现素质分错误可以下载相应的表格进行填表反馈。
此奖学金评定系统根据实际需求和实际软件发展情况设计而成,界面友好,操作简单。
软件投入使用后更是能够根据客户新的需求而不断的添加和更新其功能。
关键词:成绩查询、成绩管理、证书管理、活动赋分、绩点计算、动态信息显示、奖学金评定、客户机\服务器、SQL-Server目录1. 绪论 (1)1.1奖学金评定系统的重要性 (1)1.2 预期目标 (1)2. 可行性研究报告 (2)2.1引言 (2)2.1.1 编写目的: (2)2.1.3 定义: (2)2.2 可行性研究的前提 (3)2.2.1 基本要求: (3)2.2.2 开发目标: (3)2.3 技术的可行性分析 (3)2.3.1支出 (3)2.3.2效益 (3)2.4 社会可行性分析 (4)2.4.1 法律方面的可行性 (4)2.4.2 使用方面的可行性 (4)2.5 结论 (4)3.项目开发计划 (5)3.1引言 (5)3.1.1编写目的 (5)3.1.2项目背景 (5)3.1.3定义 (6)3.2项目概述 (6)3.2.1工作内容 (6)3.2.2条件与限制 (6)3.2.3产品 (6)3.2.4运行环境 (7)3.2.5服务 (7)3.2.6验收标准 (7)3.3实施计划 (7)3.3.1任务分解 (7)3.3.2进度 (7)3.3.3关键问题 (8)3.4人员组织 (8)3.5交付期限 (8)4需求规格说明书 (9)4.1引言 (9)4.1.1编写目的 (9)4.1.2项目背景 (9)4.1.3定义 (9)4.1.4参考资料 (10)4.2任务概述 (10)4.2.1目标 (10)4.3 系统描述 (11)4.3.1 系统概述 (11)4.3.2.系统结构功能图 (13)4.3.3系统流程图(辅导员登陆) (14)4.3.4 静态数据 (15)4.3.5 动态数据 (15)4.3.6 数据库描述 (15)4.3.7局部E-R图 (15)4.3.8 整体E-R图 (18)4.3.9物理设计 (19)4.3.10数据字典 (20)4.3.11 数据采集 (23)4.3.12 系统体系结构 (24)4.4功能需求 (25)4.4.1 功能划分 (25)4.4.2 功能描述 (25)4.5.性能需求 (26)4.5.1数据精确度 (26)4.5.2时间特性. (26)4.6.运行需求 (26)4.6.1硬件接口. (26)4.6.2软件接口. (26)4.6.3故障处理.. (27)4.7.其它需求 (27)4.7.1可使用性 (27)4.7.2保密性 (27)4.7.3可维护性 (27)4.7.4可转移、可转移性 (27)4.7.5注释 (28)5. 软件概要设计说明书 (29)5.1.引言 (29)5.1.1定义 (29)5.2.需求概述 (29)5.2.1目标 (30)5.2.2用户的特点 (30)5.2.3 功能需求 (30)5.2.4性能需求 (33)5.2.5 其他需求 (33)5.2.6运行环境 (33)5.3.总体设计 (33)5.3.1软件系统体系结构的设计 (34)5.3.2基本设计概念和处理流程 (35)5.3.3 模块的详细设计 (36)5.4. 界面设计 (36)5.5.安全保密设计 (37)6.详细设计说明书 (38)6.1 引言 (38)6.1.1 编写目的 (38)6.1.2项目背景 (38)6.1.3定义 (38)6.2.该系统的相关用例图 (39)7.个人完成内容 (41)8.个人体会 (43)1. 绪论1.1奖学金评定系统的重要性随着高校的快速发展和不断扩建,目前在学生的教务管理上,学分制管理已取代了过去的学年制管理。
山东奖助学金评审管理系统

山东省奖助学金评审管理系统学校用户使用说明山东省奖助学金评审管理系统用于管理国家奖学金、省政府奖学金、国家励志奖学金和国家助学金。
系统访问方式为:登陆山东省学生资助管理网(),点击右下角快速通道的“奖学金评审系统”。
图1 奖助学金评审流程图一、登陆系统登陆系统类型选择默认登陆,用户名选择左边“选择用户”按钮,点开前面的“+”号选择您的学校名称,输入密码和验证码,登陆系统。
图1 选择学校名称图2 输入密码和下面的数字验证码二、初始化系统选择正确的学校名称,输入用户名和密码,登陆系统后,系统会自动提示您输入学校奖助学金经办人的联系信息,按照系统提示输入完成后,点击保存按钮。
进入系统主界面。
系统初始化主要完成下面3方面的工作:1、初始化本校院系信息,可以手工输入和批量导入。
点击首页右边的“院系信息”菜单,点击“管理院系”,出现如图1所示界面,点击添加院系按钮或者导入院系按钮,根据系统提示,将本学校的院系录入系统。
图1 管理院系界面输入院系名称和该院系的初始化登陆密码(一般可以使用院系的电话号码作为初始化密码),点击添加按钮,院系创建成功。
图2 添加院系界面首先下载导入模板文件,模板文件为excel格式,粘贴学校院系到excel 文件,点击浏览,选中该文件,点击导入数据,则导入成功。
图3 导入院系界面2、院系账号初始化本院系专业信息。
上一步院系账号创建完成后,各个院系就可以登陆系统了。
登陆方法为在登陆页面点击选择用户,点击学校名称前面的小加号,选择院系名称,输入密码和验证码就可登陆。
进入系统后,院系账号首先要初始化本院系的专业信息,如下图所示,点击管理专业,点击添加专业,进入添加专业界面。
在添加专业界面,输入专业名称,点击添加即可。
3、设置各类奖助学金每个院系的录入名额。
设置每种奖助学金的录入名额,该操作由院系账号进行操作,在省里下达每个学校的奖助学金名额和金额后,学校需要将该名额分配给每个院系,院系才能录入申请的学生信息。
奖学金评审系统使用说明

奖学金评审系统使用说明
网址:专项奖学金评审系统网址:http://202.118.68.97:82/ 一、网上申报 1、
2、
3、
4、
5、
其他注意事项:
(1) 评审基本单位名称为:【电气信息类】;评审单位基本人数【442】;奖学金
名称为【学习优秀奖学金(一等/二等)】【精神文明奖学金】【社会工作奖学金】【文体活动奖学金】【社会实践奖学金】 另:生物医学专业请注意:评审基本单位名称为:【生物医学工程】;评审单位基本人数【29】
(2) 成绩得分和评审基本单位名次,见群邮件 (3) 其他如实填写即可 6、【申请人主要事迹】一栏:人称请用“该生”,字数不超过1000字,但不要写太少。
7、【获奖感言】一栏,先不填,请另外用word
写出获奖感言,一定要真实,不
可抄袭。
二、填写专用申请表
从图中标示处下载“国家奖学金申请表”或“国家励志奖学金”申请表,填写后,命名为“XXX—国家/国家励志奖学金申请表。
将电子版发送到我的QQ 邮箱。
注意格式。
三、再次强调,需要做的事情
1、网上申报
2、填写国家奖学金/国家励志奖学金专用申请表
获奖感言(250—300字)与初拟评语(200字以内),两个写在一个word里,命名为“XX获奖感言”
将以上两个word电子版发送到我的QQ邮箱。
84.2679 50
28.64 24。
国家奖学金、励志奖学金、助学金资助系统填报流程

陕西省学生资助管理系统填报流程第一步:登陆网址http://219.244.0.28:8080/First_Main_Page/index.aspx,显示如图(1)对话框页面。
“陕西省高等学校学生资助管理信息系统”。
图(1)第二步:在图(1)显示对话框中登陆系统。
用户名:学生本人身证号码。
密码:123456。
第三步:进入系统后,显示如图(2)页面,先填写学生基本信息。
注意班级代码填写时:如中09(1)班就写成0901;中09(2)班就写成0902;秘09在选择所读专业后写成0901;新闻09在选择所读专业后写成0901,广09在选择所读专业后写成0901。
图(2)第五步:学生基本信息填写完毕后点击图(3)中的“提交”键,提交后继续点击图(3)中“贫困生继续填写”键,填写相应信息。
图(3)第六步:填写完基本信息后,等待学院管理员进行认定是否为贫困生,认定后的学生方可填写申请表。
认定时间一般为3小时。
第七步:学生基本信息填写完成后,点击“返回”键,回到图(2)显示页面,点击“在线申请”键,进入如图(5)显示页面,选择自己相应奖项进行申报填写。
图(5)注:1、各班所有本次获得励志奖学金(5000元)、特等助学金(3500元)和一等助学金(2500元),的学生必须在本系统进行注册。
学校的小红帽填写特等助学金。
截止时间:2011年10月25日。
2、学生自行填写,照片自照,大小在20kb以内,以二寸照片为准。
3、小红帽和3500元资助的同学在贫困等级一栏中一律选择“特困”,2500元资助的同学一律选择“一般贫困”。
否则不予通过。
4、申请理由必须详细充分,真实客观,字数要达到要求,对于填写不充分,字数过少的一律不予认定。
填写贫困情况时不要说家庭贫困这种空话,要用父母的工作状况,经济收入来源、具体收入、开支负担等方面说明。
5、填写有疑问时请联系石老师办公室电话:2333823文学院2011年10月20日2。
python超详细实现完整学生成绩管理系统

python超详细实现完整学⽣成绩管理系统⽬录学⽣成绩管理系统简介源代码students.txtmain.pyLogin.pydb.pyMenuPage.pyview.py学⽣成绩管理系统简介⼀个带有登录界⾯具有增减改查功能的学⽣成绩管理系统(⾯向对象思想,利⽤tkinter库进⾏制作,利⽤.txt⽂件进⾏存储数据)源代码仅供学习参考,最好还是⾃⼰多敲多练习(实践是检验真理的唯⼀标准) students.txt⽤于存储数据main.pyfrom tkinter import *from Login import *import tkinter as tkroot = ()root.title('欢迎进⼊学⽣成绩管理系统')LoginPage(root)root.mainloop()Login.pyfrom tkinter import *from tkinter.messagebox import *from MenuPage import *class LoginPage(object):def __init__(self, master=None):self.root = master # 定义内部变量rootself.root.geometry('%dx%d' % (300, 180)) # 设置窗⼝⼤⼩ername = StringVar()self.password = StringVar()self.createPage()def createPage(self):self.page = Frame(self.root) # 创建Frameself.page.pack()Label(self.page).grid(row=0, stick=W)Label(self.page, text='账户: ').grid(row=1, stick=W, pady=10)Entry(self.page, textvariable=ername).grid(row=1, column=1, stick=E)Label(self.page, text='密码: ').grid(row=2, stick=W, pady=10)Entry(self.page, textvariable=self.password, show='*').grid(row=2, column=1, stick=E) Button(self.page, text='登陆', command=self.loginCheck).grid(row=3, stick=W, pady=10) Button(self.page, text='退出', command=self.page.quit).grid(row=3, column=1, stick=E) def loginCheck(self):name = ername.get()password = self.password.get()if name == 'hacker707' and password == 'admin':self.page.destroy()MenuPage(self.root)else:showinfo(title='错误', message='账号或密码错误!')db.pyimport jsonclass StudentDB(object):def __init__(self):self.students = []self._load_students_data()def insert(self, student):self.students.append(student)print(self.students)def all(self):return self.studentsdef delete_by_name(self, name): # 删除数据for student in self.students:if name == student["name"]:self.students.remove(student)breakelse:return Falsereturn True# 查询def search_by_name(self, name):for student in self.students:if name == student["name"]:return student # 姓名+成绩else:return False# 修改def update(self, stu): # 修改数据name = stu["name"]for student in self.students:if name == student["name"]:student.update(stu)return Trueelse:return False# 加载⽂件def _load_students_data(self):with open("students.txt", "r", encoding="utf-8") as f:text = f.read()if text:self.students = json.loads(text)# 保存数据def save_data(self):with open("students.txt", 'w', encoding="utf-8") as f:text = json.dumps(self.students, ensure_ascii=False)f.write(text)db = StudentDB()MenuPage.pyimport tkinter as tkfrom view import *class MenuPage(object):def __init__(self, master=None):self.root = masterself.root.geometry('%dx%d' % (600, 400))self.create_page()self.input_page = InputFrame(self.root)self.query_page = QuerryFrame(self.root)self.delete_page = DeleteFrame(self.root)self.update_page = UpdateFrame(self.root)self.about_page = AboutFrame(self.root)self.input_page.pack()def create_page(self):# 创建菜单对象menubar = tk.Menu(self.root)# add_command 添加menubar.add_command(label="录⼊", command=self.input_data) # label menubar.add_command(label="查询", command=self.query_data) # label menubar.add_command(label="删除", command=self.delete_data) # label menubar.add_command(label="修改", command=self.update_data) # label menubar.add_command(label="关于", command=self.about_data) # label # 设置菜单栏self.root.config(menu=menubar)# 切换界⾯def input_data(self):self.input_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def query_data(self):self.input_page.pack_forget()self.query_page.pack()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack_forget()def update_data(self):self.input_page.pack_forget()self.update_page.pack()self.delete_page.pack_forget()self.about_page.pack_forget()self.query_page.pack_forget()def delete_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack()self.about_page.pack_forget()self.query_page.pack_forget()def about_data(self):self.input_page.pack_forget()self.update_page.pack_forget()self.delete_page.pack_forget()self.about_page.pack()self.query_page.pack_forget()view.pyimport tkinter as tkfrom db import dbfrom tkinter import ttk# 录⼊类class InputFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = master = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self).grid(row=0, stick=tk.W, pady=10)bel(self, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self, textvariable=self.english).grid(row=4, column=1, stick=tk.E)tk.Button(self, text="录⼊", command=self.recode_student).grid(row=5, column=1, stick=tk.E, pady=10) bel(self, textvariable=self.status).grid(row=6, column=1, stick=tk.E, pady=10)# 录⼊成绩def recode_student(self):student = {"name": .get(),"math": self.math.get(),"chinese": self.chinese.get(),"english": self.english.get(),} # ⼀个学⽣的成绩db.insert(student)# get()得到值# set()设置值self.status.set("插⼊数据成功!")self._clear_data()db.save_data()# 清空⽂本数据def _clear_data(self):.set("")self.math.set("")self.chinese.set("")self.english.set("")# 查询类class QuerryFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()# 创建查询界⾯def create_page(self):self.create_tree_view()self.show_data_frame()# grid()tk.Button(self, text="刷新数据", command=self.show_data_frame).pack(anchor=tk.E, pady=5) # Treeviewdef create_tree_view(self):# 表头columns = ("name", "chinese", "math", "english")self.tree_view = ttk.Treeview(self, show='headings', columns=columns)self.tree_view.column("name", width=80, anchor='center')self.tree_view.column("chinese", width=80, anchor='center')self.tree_view.column("math", width=80, anchor='center')self.tree_view.column("english", width=80, anchor='center')self.tree_view.heading("name", text='姓名')self.tree_view.heading("chinese", text='语⽂')self.tree_view.heading("math", text='数学')self.tree_view.heading("english", text='英语')self.tree_view.pack()# 显⽰数据def show_data_frame(self):# 删除原节点 map(int,值)for i in map(self.tree_view.delete, self.tree_view.get_children("")):pass# 拿到列表⾥⾯所有值、students[]students = db.all()# 同时拿到索引跟value值for index, stu in enumerate(students):self.tree_view.insert('', index, values=(stu["name"], stu["chinese"], stu["math"], stu["english"]))class DeleteFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)bel(self, text='删除数据').pack()self.status = tk.StringVar()self.de_name = tk.StringVar() # 获取删除学⽣的姓名self.create_page()# 创建界⾯def create_page(self):bel(self, text="根据姓名删除信息").pack(anchor=tk.W, padx=20)e1 = tk.Entry(self, textvariable=self.de_name)e1.pack(side=tk.LEFT, padx=20, pady=5)tk.Button(self, text='删除', command=self._delete).pack(side=tk.RIGHT)bel(self, textvariable=self.status).pack()# 删除def _delete(self):name = self.de_name.get()print(name)result = db.delete_by_name(name)if result:self.status.set(f'{name}已经被删')self.de_name.set("")else:self.status.set(f'{name}不存在')class UpdateFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterbel(self, text='修改界⾯').pack()self.change_frame = tk.Frame(self)self.change_frame.pack() = tk.StringVar()self.math = tk.StringVar()self.chinese = tk.StringVar()self.english = tk.StringVar()self.status = tk.StringVar()self.create_page()def create_page(self):bel(self.change_frame).grid(row=0, stick=tk.W, pady=10)bel(self.change_frame, text="姓名:").grid(row=1, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=).grid(row=1, column=1, stick=tk.E)bel(self.change_frame, text="数学:").grid(row=2, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.math).grid(row=2, column=1, stick=tk.E)bel(self.change_frame, text="语⽂:").grid(row=3, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.chinese).grid(row=3, column=1, stick=tk.E)bel(self.change_frame, text="英语:").grid(row=4, stick=tk.W, pady=10)# 单⾏⽂本框 entry,textvariable绑定变量tk.Entry(self.change_frame, textvariable=self.english).grid(row=4, column=1, stick=tk.E)# 按钮tk.Button(self.change_frame, text='查询', command=self._search).grid(row=6, column=0, stick=tk.W, pady=10) tk.Button(self.change_frame, text='修改', command=self._change).grid(row=6, column=1, stick=tk.E, pady=10) bel(self.change_frame, textvariable=self.status).grid(row=7, column=1, stick=tk.E, pady=10)# 查询def _search(self):name = .get()student = db.search_by_name(name)if student:self.math.set(student["math"])self.chinese.set(student["chinese"])self.english.set(student["english"])self.status.set(f'查询到{name}同学的信息')else:self.status.set(f'没有查询到{name}同学的信息')# 更改成绩def _change(self):name = .get()math = self.math.get()chinese = self.chinese.get()english = self.english.get()stu = {"name": name,"math": math,"chinese": chinese,"english": english,}r = db.update(stu)if r:self.status.set(f"{name}同学的信息更新完毕")else:self.status.set(f"{name}同学的信息更新失败")class AboutFrame(tk.Frame):def __init__(self, master=None):super().__init__(master)self.root = masterself.create_page()def create_page(self):bel(self, text="关于本作品(⼈⽣苦短,我⽤python)").pack(anchor=tk.W)以上就是使⽤python实现学⽣成绩管理系统,如果有改进的建议,欢迎在评论区留⾔奥~这篇⽂章参加了csdn的活动,还请⼤家多多三连⽀持⼀下博主,你们的⽀持就是我创作的动⼒到此这篇关于python超详细实现完整学⽣成绩管理系统的⽂章就介绍到这了,更多相关python 学⽣成绩管理系统内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
学生奖学金考评与发放管理系统

目录第一章系统概述 (1)1.1背景 (1)1.2目的及任务 (2)1.3开发环境 (2)1.4本人所做的工作 (3)第二章系统分析 (3)2.1可行性分析 (4)2.2系统详细调查 (4)2.1.1现行系统的规模 (4)2.1.2主要功能 (5)2.1.3 现行系统存在的薄弱环节 (5)2.2业务流程调查 (5)2.3数据流程调查 (6)2.4 数据字典 (6)第三章系统设计 (9)3.1系统硬软件配置 (9)3.1.1硬件资源 (9)3.1.2软件资源 (10)3.2 系统功能结构设计 (10)3.2.1功能结构图 (10)3.2.2 模块说明书 (11)3.3 E-R模型的建立 (12)3.4 数据库设计 (13)3.4.1 数据库总体结构 (13)3.4.2 数据库逻辑设计 (13)3.4.3 数据库物理设计 (13)3.4.4 数据库保证 (14)3.5代码设计..................................................... 错误!未定义书签。
3.5.1 代码设计原则 .............................................. 错误!未定义书签。
3.5.2 代码设计 .................................................. 错误!未定义书签。
3.6输出设计 (15)3.7输入设计 (15)3.8安全保密设计 (16)个人总结 (17)参考文献 (18)第一章系统概述1.1背景信息在社会和经济的发展中所起的作用越来越为人们所重视。
信息资源的开发利用水平成为衡量一个国家综合国力的重要标志之一。
计算机作为信息处理的工具,为适应数据处理需求的迅速提高,满足各类信息系统对数据管理的要求,在文件系统的基础上发展基础数据库系统,数据库方法针对事物处理中大量数据管理需求。
随着微机管理系统的推广,数据库应用逐渐普及。
学生成绩管理系统源代码

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <dos.h>#include<ctype.h>#include<conio.h>#include<stddef.h>#include<time.h>#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"); cprintf("\n\r 9.帮助学生成绩信息在这里你可以获得帮助信息.\n");cprintf("\n\r 0.退出系统在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");}void menu(){cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");cprintf("\r\xba 学生信息导入\xba 学生信息处理\xba");cprintf("\r\xba____________________________________\xba___________________________ _______________\xba");cprintf("\r\xba 1-->输入学生成绩信息\xba 6-->学生成绩信息统计\xba");cprintf("\r\xba 2-->注销学生成绩信息\xba 7-->显示学生成绩信息\xba");cprintf("\r\xba 3-->查询学生成绩信息\xba 8-->保存学生成绩信息\xba");cprintf("\r\xba 4-->修改学生成绩信息\xba 9-->帮助学生成绩信息\xba");cprintf("\r\xba 5-->学生成绩信息排序\xba 0-->退出系统\xba");cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\xc d\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\ xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");}void wrong(){cprintf("\n\r输入错误!请验证后重新输入.\n");}void notfind(){cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");}void printc() /* 此函数用于输出中文格式*/{cprintf("\r学号姓名班级英语数学C语言总分平均分\n ");}void printe(Node *p) /* 此函数用于输出英文格式*/{cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->,p->data.cla,p->dat a.score3,p->data.score2,p->data.score1,p->data.total,p->data.ave);}Node* Locate(L l,char findinfo[],char nameornum[]) /* 该函数用于定位连表中符合要求的接点,并返回该指针*/{Node *r;if(strcmp(nameornum,"num")==0)/* 按学号查询*/{r=l->next;while(r!=NULL){if(strcmp(r->data.num,findinfo)==0)return r;r=r->next;}}else if(strcmp(nameornum,"name")==0) /* 按姓名查询*/{r=l->next;while(r!=NULL){if(strcmp(r->,findinfo)==0)return r;r=r->next;}}return 0;}void input(L l) /* 增加学生*/{Node *p,*r,*s;char num[10];r=l;s=l->next;while(r->next!=NULL)r=r->next;/* 将指针置于最末尾*/while(1){ cprintf("\r如果输入完毕,请按任意键返回主菜单\n");cprintf("\r如果你还想输入,请按y(yes)继续\n\r");scanf("%s",num);if(strcmp(num,"y")==0){ cprintf("请你输入学号:");scanf("%s",num); } else break;while(s){if(strcmp(s->data.num,num)==0){printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);print1();printc();printe(s);print1();printf("\n");getch();return;}s=s->next;}p=(Node *)malloc(sizeof(Node));strcpy(p->data.num,num);cprintf("\r请你输入姓名:");scanf("%s",p->);getchar();cprintf("\r请你输入班级:");scanf("%s",p->data.cla);getchar();cprintf("\r请你输入c语言成绩(0-100):");scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入数学成绩(0-100):");scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入英语成绩(0-100):");scanf("%d",&p->data.score3);getchar();p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total / 3; /* 信息输入已经完成*/p->next=NULL;r=p;shoudsave=1;}}void query(L l) /* 查询学生信息*/{int select;char findinfo[20];Node *p;if(!l->next){cprintf("\n 没有信息可以查询!\n");return;}cprintf("\n1==>按学号查找\n\r2==>按姓名查找\n\r");scanf("%d",&select);if(select==1) /* 学号*/{cprintf("\r请你输入要查找的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf(" 查找结果\n\r");print1();printc();printe(p);print1();}elsenotfind();}else if(select==2) /* 姓名*/{cprintf("\r请你输入要查找的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){cprintf(" 查找结果\n\r");print1();printc();print1();}elsenotfind();}elsewrong();}void Delete(L l) /* 删除学生信息*/{int select;Node *p,*r;char findinfo[20];if(!l->next){cprintf("\n 没有信息可以删除!\n");return;}cprintf("\n1==>按学号删除\n\r2==>按姓名删除\n\r");scanf("%d",&select);if(select==1){cprintf("\r请你输入要删除的学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else if(select==2){cprintf("\r请你输入要删除的姓名:");scanf("%s",findinfo);p=Locate(l,findinfo,"name");if(p){r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);cprintf("\n\r该学生已经成功删除!\n");shoudsave=1;}elsenotfind();}else wrong();}void modify(L l) /*修改学生信息*/{Node *p;char findinfo[20];if(!l->next){cprintf("\n\r没有信息可以修改!\n");return;}cprintf("\r请你输入要修改的学生学号:");scanf("%s",findinfo);p=Locate(l,findinfo,"num");if(p){cprintf("\r请你输入新学号(原来是%s):",p->data.num);scanf("%s",p->data.num);cprintf("\r请你输入新姓名(原来是%s):",p->);scanf("%s",p->);getchar();cprintf("\r请你输入新班级(原来是%s):",p->data.cla);scanf("%s",p->data.cla);cprintf("\r请你输入新的c语言成绩(原来是%d分):",p->data.score1);scanf("%d",&p->data.score1);getchar();cprintf("\r请你输入新的数学成绩(原来是%d分):",p->data.score2);scanf("%d",&p->data.score2);getchar();cprintf("\r请你输入新的英语成绩(原来是%d分):",p->data.score3);scanf("%d",&p->data.score3);p->data.total=p->data.score3+p->data.score1+p->data.score2;p->data.ave=p->data.total/3;cprintf("\n\r信息修改成功!\n");shoudsave=1;}elsenotfind();}void display(L l){/*显示全部学生信息*/int count=0;Node *p;p=l->next;if(!p){cprintf("\n\r 没有信息可以显示!\n");return;}cprintf(" 显示结果");print1();printc();while(p){ if(count%5==0) getch();printe(p);p=p->next;count++;}print1();cprintf("\n");}void Statistic(L l) /*统计学生信息*/{Node *pm_max,*pe_max,*pc_max,*pt_max,*pa_max; /* 用于指向分数最高的接点*/ Node *pm_min,*pe_min,*pc_min,*pt_min,*pa_min;Node *r=l->next;if(!r){cprintf("\n\r 没有信息可以统计!\n");return ;}pm_max=pe_max=pc_max=pt_max=pa_max=pm_min=pe_min=pc_min=pt_min=pa_min=r; while(r!=NULL){if(r->data.score1>=pc_max->data.score1)pc_max=r;if(r->data.score1<=pc_min->data.score1)pc_min=r;if(r->data.score2>=pm_max->data.score2)pm_max=r;if(r->data.score2<=pm_min->data.score2)pm_min=r;if(r->data.score3>=pe_max->data.score3)pe_max=r;if(r->data.score3<=pe_min->data.score3)pe_min=r;if(r->data.total>=pt_max->data.total)pt_max=r;if(r->data.total<=pt_min->data.total)pt_min=r;if(r->data.ave>=pa_max->data.ave)pa_max=r;if(r->data.ave<=pa_min->data.ave)pa_min=r;r=r->next;}cprintf("====================================统计结果====================================\n");cprintf("\r总分最高者: %-16s %d分\n",pt_max->,pt_max->data.total); cprintf("\r平均分最高者: %-16s %d分\n",pa_max->,pa_max->data.ave); cprintf("\r英语最高者: %-16s %d分\n",pe_max->,pe_max->data.score3); cprintf("\r数学最高者: %-16s %d分\n",pm_max->,pm_max->data.score2); cprintf("\rc语言最高者: %-16s %d分\n\r",pc_max->,pc_max->data.score1); cprintf("\r总分最低者: %-16s %d分\n",pt_min->,pt_min->data.total); cprintf("\r平均分最低者: %-16s %d分\n",pa_min->,pa_min->data.ave); cprintf("\r英语最低者: %-16s %d分\n",pe_min->,pe_min->data.score3); cprintf("\r数学最低者: %-16s %d分\n",pm_min->,pm_min->data.score2); cprintf("\rc语言最低者: %-16s %d分\n\r",pc_min->,pc_min->data.score1); print1();}void Sort(L l){L ll;Node *p,*rr,*s;ll=(L)malloc(sizeof(Node)); /* 用于做新的连表*/ll->next=NULL;if(l->next==NULL){cprintf("\n\r 没有信息可以排序!\n");return ;}p=l->next;while(p){s=(Node*)malloc(sizeof(Node)); /* 新建接点用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL && rr->next->data.total>=p->data.total)rr=rr->next;if(rr->next==NULL)rr->next=s;else{s->next=rr->next;rr->next=s;}p=p->next;}free(l);l->next=ll->next;cprintf("\n\r 排序已经完成!\n");}void Save(L l) /* */{FILE* fp;Node *p;int flag=1,count=0;fp=fopen("c:\\student","wb");if(fp==NULL){cprintf("\n\r 重新打开文件时发生错误!\n");exit(1);}p=l->next;while(p){if(fwrite(p,sizeof(Node),1,fp)==1){p=p->next;count++;}else{flag=0;break;}}if(flag){cprintf("\n\r 文件保存成功.(有%d条信息已经保存.)\n\r",count);shoudsave=0;}fclose(fp);}void main() /* */{L l; /* 链表*/FILE *fp; /* 文件指针*/int count=0 ,i,menu_select; /*菜单选择*/char ch ,creat;Node *p,*r;time_t it;clrscr();textmode(C80);window(1,1,80,25);textbackground(1); clrscr();textcolor(10);printf("\r 学生成绩管理系统");printf("\r -------扬州大学信息工程学院软件0902班") ;printf("\r 设计人员:李天鹏");l=(Node*)malloc(sizeof(Node));l->next=NULL;r=l;fp=fopen("c:\\student","rb");if(fp==NULL){cprintf("\n\r 该文件还未存在,是否需要创建?(y/n,Y/N)\n\r");scanf("%c",&creat);if(creat=='y'||creat=='Y'){fp=fopen("c:\\student","wb");}elseexit(0);}gotoxy(9,11); textcolor(12);cprintf("\n\r 文件已经打开,系统正在导入信息");for(i=0;i<6;i++){ cprintf(".");sleep(1);}textcolor(10);gotoxy(9,11); cprintf("\n ");while(!feof(fp)){p=(Node*)malloc(sizeof(Node));if(fread(p,sizeof(Node),1,fp)) /* 将文件的内容放入接点中*/{p->next=NULL;r->next=p;r=p; /* 将该接点挂入连中*/count++;}}fclose(fp);/* 关闭文件*/gotoxy(1,3);cprintf("\n\r信息导入完毕,系统共导入%d条信息",count);sleep(1);while(1){ menu();textcolor(12);cprintf("\r现在时间: "); it=time(NULL);cprintf(ctime(&it));cprintf("\r左边数字对应功能选择,请按0--9选择操作:\n\r");textcolor(10) ;scanf("%d",&menu_select);if(menu_select==0){if(shoudsave==1){ getchar(); textcolor(128+12);cprintf("\n\r 信息已经改动,是否将改动保存到文件中(y/n Y/N)?\n\r"); scanf("%c",&ch);if(ch=='y'||ch=='Y')Save(l);}cprintf("\n\r 你已经成功退出学生成绩信息系统,欢迎下次继续使用!\n"); break;}switch(menu_select){case 1: clrscr(); input(l); clrscr(); break; /* 输入学生*/case 2: clrscr(); Delete(l); PRINT1 /* 删除学生*/case 3: clrscr(); query(l); PRINT1 /* 查询学生*/case 4: clrscr(); modify(l); PRINT1 /* 修改学生*/case 5: clrscr(); Sort(l); PRINT1case 6: clrscr(); Statistic(l); PRINT1case 7: clrscr(); display(l); PRINT1case 8: clrscr(); Save(l); PRINT1 /* 保存学生*/case 9: clrscr(); cprintf(" ==========帮助信息==========\n");print2(); PRINT1 ;default: wrong(); getchar(); break;}}}。
学生绩点计算系统C语言(附完整源代码)

学生绩点计算系统C语言(附完整源代码)本文档提供了一个用于计算学生绩点的C语言程序的完整源代码。
程序简介该程序是一个学生绩点计算系统,它可以读取学生的课程成绩和学分信息,并计算出每门课程的绩点以及整个学期的绩点。
该程序可以帮助学生快速准确地计算自己的绩点,以便了解自己在学业上的表现。
源代码以下是该程序的完整源代码:include <stdio.h>int main() {int numCourses;float totalCredits = 0;float totalGradePoints = 0;printf("请输入您的课程数量:");scanf("%d", &numCourses);for (int i = 0; i < numCourses; i++) {int credits;float grade;printf("请输入第%d门课的学分:", i + 1); scanf("%d", &credits);printf("请输入第%d门课的成绩:", i + 1); scanf("%f", &grade);totalCredits += credits; totalGradePoints += credits * grade;}float gpa = totalGradePoints / totalCredits;printf("\n您的绩点为:%.2f\n", gpa);return 0;}该程序首先会要求用户输入课程数量,然后逐一询问每门课程的学分和成绩。
程序会根据用户输入的数据计算出总学分和总绩点,并最终计算出绩点(GPA),并将结果输出。
使用方法1. 运行该程序;2. 按照提示输入课程数量;3. 按照提示逐一输入每门课程的学分和成绩;4. 程序将会输出您的绩点(GPA)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.awt.*;import java.awt.event.*;import java.sql.*;import javax.swing.event.*;import javax.swing.*;public class mainFrame extends JFrame implements ActionListener{JPanel p;JLabel pic=new JLabel(new ImageIcon("G:\\奖学金评定系统\\校门.jpg"));JSplitPane top;JSplitPane left;JPanel labelLeft,labelRight;JButton jb1,jb2,jb3,jb4,jchushihua,help,jgeshihua;JComboBox jcom1,jcom2,jcom3,jcom4;JLabel jlab1,jlab2,jlab3,jlab4;JPanel jp1,jp2,jp3,jp4;JTextField jt,jtt;JPanel mark;mainFrame(){super("haha");Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();this.setBounds((screen.width-1000)/2,(screen.height-610)/2,1000,610);//窗口居中Container c=this.getContentPane();labelLeft=new JPanel(); // 左边面板labelRight=new JPanel(); //右边面板labelLeft.setLayout(new GridLayout(8,3,0,0));jp1=new JPanel(); //信息入库jlab1=new JLabel(new ImageIcon("G:\\奖学金评定系统\\信息入库.jpg"));jcom1=new JComboBox(new String[]{"基本信息入库","分数入库"});jcom1.setFont(new Font("黑体",Font.CENTER_BASELINE,20));jb1=new JButton("确定");jb1.addActionListener(this);jb1.setSize(53,40);jp1.add(jlab1);jp1.add(jcom1);jp1.add(jb1);labelLeft.add(jp1);jp2=new JPanel(); // 查找信息jlab2=new JLabel(new ImageIcon("G:\\奖学金评定系统\\信息查找.jpg"));jcom2=new JComboBox(new String[]{"姓名","学号"});jcom2.setFont(new Font("黑体",Font.CENTER_BASELINE,20));jt=new JTextField(6);jt.setFont((new Font("黑体",Font.CENTER_BASELINE,20)));jb2=new JButton("确定");jb2.addActionListener(this);jp2.add(jlab2);jp2.add(jcom2);jp2.add(jt);jp2.add(jb2);labelLeft.add(jp2);jp3=new JPanel();jlab3=new JLabel(new ImageIcon("G:\\奖学金评定系统\\统计结果.jpg")); //统计结果jcom3=new JComboBox(new String[]{"5","10","15","20","全部"});jcom3.setFont(new Font("黑体",Font.CENTER_BASELINE,20));jb3=new JButton("确定");jb3.addActionListener(this);jp3.add(jlab3);jp3.add(jcom3);jp3.add(jb3);labelLeft.add(jp3);jp4=new JPanel(); //删除信息jlab4=new JLabel(new ImageIcon("G:\\奖学金评定系统\\删除信息.jpg"));jcom4=new JComboBox(new String[]{"学号","姓名"});jcom4.setFont(new Font("黑体",Font.CENTER_BASELINE,20));jb4=new JButton("确定");jb4.addActionListener(this);jb4.setSize(53,40);jtt=new JTextField(6);jtt.setFont((new Font("黑体",Font.CENTER_BASELINE,18)));jp4.add(jlab4);jp4.add(jcom4);jp4.add(jtt);jp4.add(jb4);labelLeft.add(jp4);mark=new JPanel();jchushihua=new JButton("系统初始化"); //系统初始化事件jchushihua.addActionListener(this);help=new JButton("帮助"); //帮助按钮事件help.addActionListener(this);jgeshihua=new JButton("系统格式化"); //系统格式化事件jgeshihua.setSize(40,40);jgeshihua.addActionListener(this);jgeshihua.setFont(new Font("黑体",Font.CENTER_BASELINE,16));help.setSize(40,40);jchushihua.setSize(40,40);help.setFont(new Font("黑体",Font.CENTER_BASELINE,16));jchushihua.setFont(new Font("黑体",Font.CENTER_BASELINE,16));mark.add(help);mark.add(jchushihua);mark.add(jgeshihua);labelLeft.add(mark);labelLeft.add(new JLabel(new ImageIcon("G:\\奖学金评定系统\\系统.jpg")));labelLeft.add(new JLabel(new ImageIcon("G:\\奖学金评定系统\\班级.jpg")));labelRight.add(new JLabel(new ImageIcon("G:\\奖学金评定系统\\厚德.jpg")));//右边面板加入组件left=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,labelLeft,labelRight);//左右面板加入到主面板left.setDividerLocation(350);left.setDividerSize(1);top=new JSplitPane(JSplitPane.VERTICAL_SPLIT,pic,left);//主面板在次分为上下面板top.setDividerLocation(69);top.setDividerSize(0);c.add(top);this.setResizable(false);this.setDefaultCloseOperation(3);this.setVisible(true);}public void actionPerformed (ActionEvent e){Object c=e.getSource();if(c==jb1){ // 添加信息if(jcom1.getSelectedIndex()==0){new basicImformation();}new creditImformation();}}elseif(c==jb2){ // 。
查找信息if(jcom2.getSelectedIndex()==0){String xingming=jt.getText();String sql1="select * from JSWZ where 姓名='"+xingming+"';";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql1);}else{String xuehao=jt.getText();String sql1="select * from JSWZ where 学号='"+xuehao+"';";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql1);}}elseif(c==jb3){ //。
统计结果int n=jcom3.getSelectedIndex();if(n==0){String sql="select top(5) * from JSWZ order by 总分desc";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql);}else if(n==1){String sql="select top(10) * from JSWZ order by 总分desc";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql);}else if(n==2){String sql="select top(15) * from JSWZ order by 总分desc";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql);}else if(n==3){String sql="select top(20) * from JSWZ order by 总分desc";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql);}String sql="select * from JSWZ order by 总分desc";lianjieshujuku j=new lianjieshujuku();j.chazhaoshuju(sql);}}elseif(c==jb4){ // 。