求救:帮忙想想毕业设计的课题!~~~(50分)

  • 主题发起人 主题发起人 yonge23
  • 开始时间 开始时间
Y

yonge23

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在是大三的学生,我们学校要求,在大三之前每个学生要做出一个项目(要评分的,分数将会占毕业设计的30%),可我现在还没有想到项目,郁闷啊,请各位指导一二,在下将感激涕零!!!
本人水平太有限了.:(
主要学过:pascal,c,数据结构.准备开始学delphi.
前几天参加中程考试,应该可以过吧!
各位兄弟姐妹帮忙想想!!!
 
就做一个学校学生成绩管理的
 
这个会不会土的点啊,我们这边好多人都做这个啊!!!
有没有其它的啊!?
 
做个考试系统
 
还有没有什么好的意见或建议,提出来讨论一下!
 
做个进销存的吧
 
进销存是什么啊,我不懂
 
作个简单的mp3,里面带上什么注册的,写ini文件的,加密的,又有深度,又有创意.
 
做个小游戏行吗?像贪食蛇什么的,挺有意思阿。不过要点功底。
 
我现在正在开始学DELPHI,所以什么都不懂,希望大家多提意见,给我个方向!!!

谢谢!!!
 
建议学习一下数据库,这个无论你在学校还是工作都可以使用,
 
这是我做的Java版贪食蛇:做得不好,不过你可以参考
/* Java版贪食蛇游戏 1.0版
* 玩法:蛇水平移动时,只能向上或向下改变方向。如果鼠标在蛇头的上方,
* 则方向改为向上,如果鼠标在蛇头的下方,则方向改为向下。
* 蛇上下移动时,只能向左或向右改变方向。如果鼠标在蛇头的左方,
* 则方向改为向左,如果鼠标在蛇头的右方,则方向改为向右。
*/
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.util.TimerTask;
import java.util.Timer;
import java.util.Random;
import javax.swing.JOptionPane;
public class Snake extends Applet {
//用于产生新的蛇身
Label star;
//定时器
Timer timer;
//定时器任务
myTimerTask timerTask;
//用于记录运行时间
TimerTotal timerTotal;
//初始蛇身数
int starNumber = 5;
//当前鼠标位置,与蛇的运动方向相比较,决定改变的方向
int mouseX , mouseY;
//目标蛇身的位置
int starX = 200 , starY = 152;
//用于产生蛇身位置的随机类
Random r;
//状态栏上显示的信息
String msg = "向下";
//蛇身的位置,X坐标和Y坐标
public int[][] mystar = new int[100][2];
//每次移动的距离
int moveDistance = 8;
//游戏级别,每吃到5个*,级别加1,速度减20
int level = 1;
//吃到的*数量
int eatStarNumbers = 0;
//允许移动的最快速度
int MaxSpeed = 60;

//游戏速度,每30秒,速度减20,值越小,速度越快
int speed = 500;
//用于显示的速度
int showSpeed = 1;
//原来的移动方向,用于重新调度
int olddirection = 2;

public void init() {

setBackground(Color.pink);
setForeground(Color.blue);
requestFocus();
addMouseListener(new MyMouseAdapter());
addMouseMotionListener(new MyMouseMotionAdapter());
addKeyListener(new MyKeyAdapter());
setLayout(null);

for(int i = starNumber-1 ;
i >= 0 ;
i--) {
mystar[0] = 200 ;
mystar[1] = (starNumber-i) * moveDistance;
}
star = new Label("*");
star.setBounds(starX , starY , 8 , 8);
this.add(star);

timer = new Timer();
timerTask = new myTimerTask();
timerTotal = new TimerTotal();
timer.schedule(timerTask , 0 , speed);
timer.schedule(timerTotal , 1000 * 30 , 1000 * 30 );
}

class TimerTotal extends TimerTask {
public void run() {
if (speed > MaxSpeed) {
speed -= 20;
showSpeed++;
}
timer.cancel();
timer = new Timer();
timerTask = new myTimerTask();
timerTotal = new TimerTotal();
timer.schedule(timerTask , 0 , speed);
timer.schedule(timerTotal , 1000 * 30 , 1000 * 30 );
}
}

class MyKeyAdapter extends KeyAdapter {
public void keyPressed(KeyEvent ke) {
int direction = timerTask.getdirection();
int key = ke.getKeyCode();
if (direction == 1 || direction == 2) {
if (key == KeyEvent.VK_RIGHT) {
timerTask.setdirection(4);
olddirection = 4;
msg = "向右";
}
else
if (key == KeyEvent.VK_LEFT) {
timerTask.setdirection(3);
olddirection = 3;
msg = "向左";
}
}

if (direction == 3 || direction == 4) {
if (key == KeyEvent.VK_DOWN) {
timerTask.setdirection(2);
olddirection = 2;
msg = "向下";
}
else
if (key == KeyEvent.VK_UP) {
timerTask.setdirection(1);
olddirection = 1;
msg = "向上";
}
}
}
}
class MyMouseMotionAdapter extends MouseMotionAdapter {
public void mouseMoved(MouseEvent me) {
mouseX = me.getX();
mouseY = me.getY();
}
}
class MyMouseAdapter extends MouseAdapter {
public void mousePressed(MouseEvent e) {
int direction = timerTask.getdirection();
//上下移动时,只判断鼠标水平位置
if (direction == 1 || direction == 2) {
if (mouseX > mystar[0][0]) {
timerTask.setdirection(4);
olddirection = 4;
msg = "向右";
}
else
{
timerTask.setdirection(3);
olddirection = 3;
msg = "向左";
}
}

//左右移动时,只判断鼠标垂直位置
if (direction == 3 || direction == 4) {
if (mouseY > mystar[0][1]) {
timerTask.setdirection(2);
olddirection = 2;
msg = "向下";
}
else
{
timerTask.setdirection(1);
olddirection = 1;
msg = "向上";
}
}
}
}
public void setstarLocation() {
r = new Random();
int X = r.nextInt(47);
int Y = r.nextInt(35);
starX = (X + 1) * moveDistance ;
starY = (Y + 1) * moveDistance ;
star.setLocation(starX,starY);
}
class myTimerTask extends TimerTask {
//direction 为移动的方向,1向上,2向下,3向左,4向右
//移动的方向
int direction = olddirection ;
int ii = 1;
int dead = 0;
public void setdirection(int direction) {
this.direction = direction;
}
public int getdirection() {
return this.direction;
}
public void run() {
for(int i = starNumber-1 ;
i >=1 ;
i--) {
mystar[0] = mystar[i-1][0];
mystar[1] = mystar[i-1][1];
}
switch(direction) {
case 1: //向上
//如果超范围,停止
if (mystar[0][1] < moveDistance * 2 ) {
timer.cancel();
dead = 1;
new ErrorDialog("你的贪食蛇越界了!");
}
else
mystar[0][1] -= moveDistance;
break;
case 2: //向下
//如果超范围,停止
if (mystar[0][1] >= 300 ) {
timer.cancel();
dead = 1;
new ErrorDialog("你的贪食蛇越界了!");
}
else
mystar[0][1] += moveDistance;
break;
case 3: //向左
//如果超范围,停止
if (mystar[0][0] <= 0 ) {
timer.cancel();
dead = 1;
new ErrorDialog("你的贪食蛇越界了!");
}
else
mystar[0][0] -= moveDistance;
break;
case 4: //向右
//如果超范围,停止
if (mystar[0][0] >= 400 - moveDistance ) {
timer.cancel();
dead = 1;
new ErrorDialog("你的贪食蛇越界了!");
}
else
mystar[0][0] += moveDistance;
break;
}
if (dead ==0) {
//以下判断吃*号 如果蛇头与*号坐标相同,则吃
if (mystar[0][0] == starX &amp;&amp;
mystar[0][1] == starY + moveDistance &amp;&amp;
starNumber < 100) {
starNumber++;
mystar[starNumber-1][0] = mystar[starNumber-2][0];
mystar[starNumber-1][1] = mystar[starNumber-2][1];
eatStarNumbers++;
if (eatStarNumbers == 5) {
eatStarNumbers = 0;
level++;
if (speed > MaxSpeed) {
speed -= 20;
showSpeed++;
}
timer.cancel();
timer = new Timer();
timerTask = new myTimerTask();
timerTotal = new TimerTotal();
timer.schedule(timerTask , 0 , speed);
timer.schedule(timerTotal , 1000 * 30 , 1000 * 30 );
}
setstarLocation();
}
else
{
//以下判断是否吃到了自己
for (ii=1;ii<starNumber;ii++) {
if(mystar[0][0]==mystar[ii][0] &amp;&amp;
mystar[0][1]==mystar[ii][1]) {
timer.cancel();
new ErrorDialog("你的贪食蛇吃自己了!!");
break;
}
}
}
repaint();
}
}
}

class ErrorDialog extends JOptionPane {
public ErrorDialog(String message) {
this.showMessageDialog(this,message,"游戏结束",JOptionPane.INFORMATION_MESSAGE);
}
}

public void paint(Graphics g) {
int i = 0;
while (i < starNumber) {
g.drawString("*",mystar[0] + 2,mystar[1] + 1);
i++;
}
showStatus(msg + " 目标:" + star.getX() + " , " + star.getY()
+ " 蛇头: " + mystar[0][0] + " , " + (mystar[0][1] - moveDistance)
+ " 数量:" + starNumber + " 级别:" + level + " 速度:" + showSpeed);

}

}
 
简单的做一个系统定制的软件,其实就是像超级兔子那样的软件,也就是对注册表的操作
简单吧,又好用,又能加深对系统理解。我有写了一个,可以给你代码
 
浮生:
能否把代码贴出来以供学习.

Email: yong_e23@163.com
 
还有没有人有什么建议啊!?
 
还是你自己拿主意吧,刚开始学,说什么也没有用,从基础开始,去书店找一本delphi的书,找个例子,跟着做一遍,最后加入自己的一些创意,不是很好吗?
 
可是我们院里,现在要我们先写好计划书啊!!!
苦啊!!!
我课题就先暂定为做一个MIS吧.
不过,现在觉得最重要的还是先把面向对象编程的基础打好.
 
偶想做一个MIS系统,设计书初步拟定了.
如下:
书店“进销存”现代办公管理软件
立项依据与研究内容
1.项目的立项依据:“进销存”还是现在中国大部分书店的基本经营模式,但其管理方法与方式还相当的混乱,导致书店决策的失误,引起较大的经济损失。我们的思维定势所造成的错误认识,“进”和“存”与“销”之间出现了一个断裂,“进存销”其实是一个不可分割的整体,公司在做决策时,应充分考虑到“进销存”及其它们之间的关系,要比较好的做好以上工作,一个管理功能相对强大的“进销存”管理软件是必不可少的。
2、项目的研究内容、研究目标,以及拟解决的关键问题。研究内容:对书店进行调研,做好数据库方面的需求分析;参考相关软件,对其架构进行合理设计。研究目标:做出功能相对强大的商业性软件,暂时定为单机版,并做好相应的接口,供以后扩展为网络版做好基础。解决的关键问题:数据库和软件架构的设计。
3、拟采取的研究方案及可行性分析。开发工具:SQL2000和Delphi 7.0,数据库采用SQL2000设计,并将其嵌入到Delphi应用程序中。测试方面:考虑在网络上发布,并进行测试。
简要系统分析以及软件计划:确定软件的总体要求和适用范围。
(1) 模块划分:初步设计将本系统划分为档案管理系统、进货管理系统、销售管理系统、仓库管理系统、统计查询及分析报警系统等五大系统模块。
(2) 具体模块的实现功能:
○1 档案管理系统:供货商、销售商、书本以及管理人员等基本档案的管理。
○2 进货管理系统:采购定货管理实现相应的预算功能、货源之间以及与前期的进货价进行对比,从而帮助决策。
○3 销售管理系统:实现销售开单、销售预支以及结算等功能。
○4 仓库管理系统:书本入库、出库、退库管理。
○5 统计查询及分析报警系统:资金查询、库存查询、销售查询、报表生成、数据统计分析、异常报警等功能。
4、本项目的特色与创新之处:将数据库开发和面向对象开发结合起来,及针对书店进行项目研究。
5、项目研究计划及预期研究结果。前期:进行数据库编程和面向对象开发的理论性学习。后期:进行本项目的开发与研究。

大伙给点建议!!!
 
在学校,你们最容易了解的,也最容易实地调查的就是《选修课管理系统》,包括:选修课安排,管理等方面,看似容易,真正做好并不是很容易,不要说什么土不土的问题,要看你从中能得到什么,我想,你要是把这个系统做好了,出去找工作,凭这个系统,轻松找个不成问题,当然,前提是你做得好。还有一点,我建议用VC++,或者Delphi+SqlServer2000,用这些外面比较实用得工具,不要去用那些已经过时得工具开发。
 
后退
顶部